diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000000..b5924c32836 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +node_modules/ +.vercel +.next +.env.local +.env.production +.env.dev +.env.* \ No newline at end of file diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index b93f36c2483..5d9f46f73b2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,2 +1,4 @@ /studio/ @supabase/frontend /apps/www/ @supabase/frontend +/apps/reference/ @supabase/docs +/spec/ @supabase/docs diff --git a/.github/workflows/docs-compilation-check.yml b/.github/workflows/docs-compilation-check.yml index ce774357678..0c41676a3a6 100644 --- a/.github/workflows/docs-compilation-check.yml +++ b/.github/workflows/docs-compilation-check.yml @@ -4,12 +4,10 @@ name: Docs Compilation Check on: - push: - branches: [master] pull_request: branches: [master] paths: - - 'web/**' + - 'apps/reference/**' jobs: build: @@ -37,12 +35,8 @@ jobs: - name: Install Deps run: npm ci - working-directory: ./web - - - name: Pull Specs - run: make - working-directory: ./web/spec + working-directory: ./apps/reference - name: Build run: npm run build - working-directory: ./web + working-directory: ./apps/reference diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 34150c7c715..0c9a3c46ebd 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -1,15 +1,9 @@ -# This is a basic workflow to help you get started with Actions name: Tests # Controls when the workflow will run on: - # Triggers the workflow on push or pull request events but only for the main branch - push: - branches: [master] - pull_request: - branches: [master] - - # Allows you to run this workflow manually from the Actions tab + schedule: + - cron: '0 4/6 * * *' workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel @@ -41,17 +35,23 @@ jobs: - name: Install dependencies run: npm ci - - name: Run infrastructure - run: | - cp ../docker/.env.example ../docker/.env - npm run docker:up + - uses: supabase/setup-cli@v1 + - run: supabase start - name: Run Test - run: npm run test - continue-on-error: true + run: npm run test:local + env: + SUPABASE_DB_PORT: 54322 + SUPABASE_DB_PASS: postgres + SUPABASE_DB_HOST: localhost + SUPABASE_GOTRUE: http://localhost:54321 + SUPABASE_URL: http://localhost:54321 + SUPABASE_KEY_ANON: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24ifQ.625_WdcF3KHqz5amU0x2X5WWHP-OEs_4qj0ssLNHzTs + SUPABASE_KEY_ADMIN: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSJ9.vI9obAHOGyVVKa3pD--kJlyxp-Z2zV9UUMAhKpNLAcU - name: Stop infrastructure - run: npm run docker:down + if: always() + run: supabase stop - name: Get Allure history uses: actions/checkout@v2 @@ -73,7 +73,7 @@ jobs: keep_reports: 50 - name: Deploy report to Github Pages - if: ${{ !github.event.pull_request.head.repo.fork }} + if: always() uses: peaceiris/actions-gh-pages@v2 env: EXTERNAL_REPOSITORY: supabase/test-reports @@ -82,7 +82,7 @@ jobs: PUBLISH_DIR: allure-history - name: Post the link to the report - if: ${{ !github.event.pull_request.head.repo.fork }} + if: always() uses: Sibz/github-status-action@v1 with: authToken: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/publish_docker_hub.yml b/.github/workflows/publish_docker_hub.yml deleted file mode 100644 index a3aecce6d10..00000000000 --- a/.github/workflows/publish_docker_hub.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Publish to Docker Hub - -on: - push: - branches: - - studio - paths: - - 'studio/**' - workflow_dispatch: - -jobs: - publish: - name: Publish to Docker Hub - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - - - uses: docker/setup-qemu-action@v1 - with: - platforms: amd64,arm64 - - - uses: docker/setup-buildx-action@v1 - - - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - uses: docker/build-push-action@v2 - with: - context: studio - platforms: linux/amd64,linux/arm64 - push: true - tags: supabase/studio:latest - target: production diff --git a/.github/workflows/publish_image.yml b/.github/workflows/publish_image.yml new file mode 100644 index 00000000000..8ed1db87295 --- /dev/null +++ b/.github/workflows/publish_image.yml @@ -0,0 +1,57 @@ +name: Publish to Image Registry + +on: + push: + tags: + - '*' + workflow_dispatch: + inputs: + version: + description: 'Image tag' + required: true + type: string + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - id: meta + uses: docker/metadata-action@v4 + with: + images: | + supabase/studio + public.ecr.aws/t3w2s2c9/studio + flavor: | + latest=false + tags: | + type=ref,event=tag + type=raw,value=${{ inputs.version }},enable=${{ github.event_name != 'push' }} + + - uses: docker/setup-qemu-action@v2 + with: + platforms: amd64,arm64 + + - uses: docker/setup-buildx-action@v2 + + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Login to ECR + uses: docker/login-action@v2 + with: + registry: public.ecr.aws + username: ${{ secrets.PROD_ACCESS_KEY_ID }} + password: ${{ secrets.PROD_SECRET_ACCESS_KEY }} + + - uses: docker/build-push-action@v3 + with: + push: true + context: '{{defaultContext}}:studio' + target: production + platforms: linux/amd64,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/studio-build.yml b/.github/workflows/studio-build.yml index bb90e12f18c..b51253bbf04 100644 --- a/.github/workflows/studio-build.yml +++ b/.github/workflows/studio-build.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - node-version: [14.x] + node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: diff --git a/.github/workflows/studio-tests.yml b/.github/workflows/studio-tests.yml index fa0dc31697b..1a99a50182d 100644 --- a/.github/workflows/studio-tests.yml +++ b/.github/workflows/studio-tests.yml @@ -5,31 +5,32 @@ name: Studio Unit Tests on: push: - branches: [ master ] + branches: [master] + paths: + - 'studio/**' pull_request: - branches: [ master ] + branches: [master] paths: - 'studio/**' jobs: build: - runs-on: ubuntu-latest strategy: matrix: - node-version: [14.x] + node-version: [16.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - - name: Install deps - run: npm i - working-directory: ./studio - - name: Run tests - run: npm test - working-directory: ./studio + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - name: Install deps + run: npm ci + working-directory: ./ + - name: Run tests + run: npm run test:studio + working-directory: ./ diff --git a/.turbo-cookie b/.turbo-cookie new file mode 100755 index 00000000000..9e5d1817106 --- /dev/null +++ b/.turbo-cookie @@ -0,0 +1 @@ +cookie \ No newline at end of file diff --git a/DEVELOPERS.md b/DEVELOPERS.md index 8dc4cc188d5..c3448678b88 100644 --- a/DEVELOPERS.md +++ b/DEVELOPERS.md @@ -1,64 +1,60 @@ # Developing Supabase -- [Development Setup](#development-setup) - - [Installing Dependencies](#installing-dependencies) - - [Forking Supabase on GitHub](#forking-supabase-on-github) -- [Building Supabase](#building-supabase) - - [Choosing Directory](#choosing-directory) -- [Start a Development Server](#start-a-development-server) - - [Supabase Website Development Server](#supabase-website-development-server) - - [Supabase Docs Development Server](#supabase-docs-development-server) - - [Supabase Studio Development Server](#supabase-studio-development-server) +1. [Development setup](#development-setup) + - [Install dependencies](#install-dependencies) + - [Fork the repository](#fork-the-repository) +1. [Build Supabase](#build-supabase) + - [Choose a directory](#choose-a-directory) +1. [Start a development server](#start-a-development-server) + - [Supabase Website](#supabase-website) + - [Supabase Docs](#supabase-docs) + - [Supabase Studio](#supabase-studio) +1. [Create a pull request](#create-a-pull-request) + +- [Common tasks](#common-tasks) + - [Add a redirect](#add-a-redirect) - [Monorepo](#monorepo) - [Getting started](#getting-started) - [Shared components](#shared-components) - [Installing packages](#installing-packages) - [Development](#development) -- [Common Tasks](#common-tasks) - - [Adding Redirects](#adding-redirects) -- [Finally](#finally) -- [Community Channels](#community-channels) +- [Community channels](#community-channels) -## Development Setup +## Development setup -First off, thanks for your interest in Supabase and for wanting to contribute! before you begin, read the +Thanks for your interest in Supabase and for wanting to contribute! Before you begin, read the [code of conduct](https://github.com/supabase/.github/blob/main/CODE_OF_CONDUCT.md) and check out the [existing issues](https://github.com/supabase/supabase/issues). This document describes how to set up your development environment to build and test Supabase. -### Installing Dependencies +### Install dependencies -Before you can build Supabase, you must install and configure the following dependencies on your -machine: +You need to install and configure the following dependencies on your machine to build Supabase: - [Git](http://git-scm.com/) - - [Node.js v16.x (LTS)](http://nodejs.org) +- [npm](https://www.npmjs.com/) version 7+ or [Yarn](https://yarnpkg.com/) -- [npm](https://www.npmjs.com/) version 7+. +### Fork the repository -### Forking Supabase on GitHub +To contribute code to Supabase, you must fork the [Supabase Repository](https://github.com/supabase/supabase). -To contribute code to Supabase, you must fork the [Supabase Repository](https://github.com/supabase/supabase). After you fork the repository, you may now begin editing the source code. +## Build Supabase -## Building Supabase - -To build Supabase, you clone the source code repository: - -2. Clone your GitHub forked repository: +1. Clone your GitHub forked repository: ```sh git clone https://github.com//supabase.git ``` -3. Go to the Supabase directory: +1. Go to the Supabase directory: ```sh cd supabase ``` -### Choosing Directory +### Choose a directory -Before you start a development server, you must choose if you want to work on the [Supabase Website](https://supabase.com), [Supabase Docs](https://supabase.com/docs), or [Supabase Studio](https://app.supabase.com). +Choose if you want to work on the [Supabase Website](https://supabase.com), [Supabase Docs](https://supabase.com/docs), or [Supabase Studio](https://app.supabase.com). 1. Go to the [Supabase Website](https://supabase.com) directory @@ -69,7 +65,7 @@ Before you start a development server, you must choose if you want to work on th Go to the [Supabase Docs](https://supabase.com/docs) directory ```sh - cd web + cd apps/reference ``` Go to the [Supabase Studio](https://app.supabase.com) directory @@ -78,7 +74,7 @@ Before you start a development server, you must choose if you want to work on th cd studio ``` -2. Install npm dependencies: +1. Install npm/yarn dependencies: npm @@ -92,19 +88,19 @@ Before you start a development server, you must choose if you want to work on th yarn install ``` -## Start a Development Server +## Start a development server -To debug code, and to see changes in real time, it is often useful to have a local HTTP server. Click one of the three links below to choose which development server you want to start. +To debug code and to see your changes in real time, it is often useful to have a local HTTP server. Click one of the three links below to choose which development server you want to start. -- [Supabase Website](#Supabase-Website-Development-Server) -- [Supabase Docs](#Supabase-Docs-Development-Server) -- [Supabase Studio](#Supabase-Studio-Development-Server) +- [Supabase Website](#supabase-website) +- [Supabase Docs](#supabase-docs) +- [Supabase Studio](#supabase-studio) -### Supabase Website Development Server +### Supabase Website The website is moving to a new monorepo setup. See the [Monorepo](#monorepo) section below. -### Supabase Docs Development Server +### Supabase Docs 1. Build development server @@ -120,7 +116,7 @@ The website is moving to a new monorepo setup. See the [Monorepo](#monorepo) sec yarn build ``` -2. Start development server +1. Start development server npm @@ -134,13 +130,9 @@ The website is moving to a new monorepo setup. See the [Monorepo](#monorepo) sec yarn start ``` -3. To access the local server, enter the following URL into your web browser: +1. Access the local server in your web browser at http://localhost:3010/docs. - ```sh - http://localhost:3005/docs - ``` - -### Supabase Studio Development Server +### Supabase Studio 1. Start development server @@ -156,13 +148,22 @@ The website is moving to a new monorepo setup. See the [Monorepo](#monorepo) sec yarn dev ``` -2. To access the local server, enter the following URL into your web browser: +1. Access the local server in your web browser at http://localhost:8082/. +See the [Supabase Studio readme](./studio/README.md) for more information. - ```sh - http://localhost:8082/ - ``` +## Create a pull request -For more information on Supabase Studio, see the [Supabase Studio readme](./studio/README.md). +After making your changes, open a pull request (PR). Once you submit your pull request, others from the Supabase team/community will review it with you. + +Did you have an issue, like a merge conflict, or don't know how to open a pull request? Check out [GitHub's pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests) tutorial on how to resolve merge conflicts and other issues. Once your PR has been merged, you will be proudly listed as a contributor in the [contributor chart](https://github.com/supabase/supabase/graphs/contributors). + +--- + +## Common tasks + +### Add a redirect + +Create a new entry in the [`next.config.js`](https://github.com/supabase/supabase/blob/master/apps/www/next.config.js) file in our main site. ## Monorepo @@ -179,16 +180,12 @@ npm run dev # start all the applications Then edit and visit any of the following sites: -- `/apps/www`: http://localhost:3000 - - The main website. -- `/apps/reference`: http://localhost:3010 - - Reference Documentation. -- `/apps/temp-docs`: http://localhost:3001 - - We are migrating the docs to a Next.js application. -- `/apps/temp-community-forum`: http://localhost:3002 - - pulls all our github discussions into a nextjs site. Temporary/POC -- `/apps/temp-community-tutorials`: http://localhost:3003 - - pulls all our DEV articles (which community members can write) into a nextjs site. Temporary/POC +Site | Directory | Description | Local development server +---- | --------- | ----------- | ------------------------ +[supabase.com](https://supabase.com) | `/apps/www` | The main website | http://localhost:3000 +[supabase.com/docs](https://supabase.com/docs) | `apps/reference` | Guides and Reference documentaion | http://localhost:3010/docs +[POC] Community forum | `/apps/temp-community-forum` | GitHub Discussions in a Next.js site | http://localhost:3002 +[POC] DEV articles site | `/apps/temp-community-tutorials` | A Next.js site for our DEV articles (which community members can write) | http://localhost:3003 ### Shared components @@ -198,6 +195,15 @@ The monorepo has a set of shared components under `/packages`: - `/packages/config`: All shared config - `/packages/spec`: Generates documentation using spec files. - `/packages/tsconfig`: Shared Typescript settings +- `/packages/ui`: Shared UI components (formerly @supabase/ui) + +To use these 'packages', or any of their components from a Next.JS app, you must use `next-transpile-modules` in the `next.config.js` file. This looks like: + +```tsx +// next.config.js +const withTM = require('next-transpile-modules')(['ui', 'common']) +module.exports = withTM({}) +``` ### Installing packages @@ -216,18 +222,8 @@ You do not need to install `devDependencies` in each workspace. These can all be `npm run dev` -## Common Tasks +--- -### Adding Redirects +## Community channels -To add a redirect, simple create a new entry in the [`next.config.js`](https://github.com/supabase/supabase/blob/master/apps/www/next.config.js) file in our main site. - -## Finally - -After making your changes to the file(s) you'd like to update, it's time to open a pull request. Once you submit your pull request, others from the Supabase team/community will review it with you. - -Did you have an issue, like a merge conflict, or don't know how to open a pull request? Check out [GitHub's pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests) tutorial on how to resolve merge conflicts and other issues. Once your PR has been merged, you will be proudly listed as a contributor in the [contributor chart](https://github.com/supabase/supabase/graphs/contributors) - -## Community Channels - -Stuck somewhere? Have any questions? please join the [Discord Community Server](https://discord.supabase.com/) or the [Github Discussions](https://github.com/supabase/supabase/discussions). We are here to help! +Stuck somewhere? Have any questions? Join the [Discord Community Server](https://discord.supabase.com/) or the [Github Discussions](https://github.com/supabase/supabase/discussions). We are here to help! diff --git a/README.md b/README.md index 1bab9efde6f..e8a1708cb3e 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ To see how to Contribute, visit [Getting Started](./DEVELOPERS.md) We are currently in Public Beta. Watch "releases" of this repo to get notified of major updates. -Watch this repo +Watch this repo --- @@ -58,7 +58,7 @@ Supabase is a combination of open source tools. We’re building the features of Supabase is a [hosted platform](https://app.supabase.com). You can sign up and start using Supabase without installing anything. You can also [self-host](https://supabase.com/docs/guides/hosting/overview) and [develop locally](https://supabase.com/docs/guides/local-development). -![Architecture](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architecture](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) is an object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance. - [Realtime](https://github.com/supabase/realtime) is an Elixir server that allows you to listen to PostgreSQL inserts, updates, and deletes using websockets. Realtime polls Postgres' built-in replication functionality for database changes, converts changes to JSON, then broadcasts the JSON over websockets to authorized clients. @@ -76,7 +76,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i Language Client - Feature-Clients (bundled in Supabase client) + Feature-Clients (bundled in Supabase client) @@ -85,6 +85,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i GoTrue Realtime Storage + Functions - ⚡️ Official ⚡️ + ⚡️ Official ⚡️ JavaScript (TypeScript) supabase-js @@ -105,8 +106,9 @@ Our approach for client libraries is modular. Each sub-library is a standalone i gotrue-js realtime-js storage-js + functions-js - 💚 Community 💚 + 💚 Community 💚 C# supabase-csharp @@ -114,6 +116,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i gotrue-csharp realtime-csharp storage-csharp + functions-csharp Dart (Flutter) @@ -122,6 +125,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i gotrue-dart realtime-dart storage-dart + functions-dart Go @@ -129,6 +133,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i postgrest-go - - + storage-go - @@ -138,6 +143,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i gotrue-java - - + - Kotlin @@ -146,6 +152,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i gotrue-kt - - + - Python @@ -153,7 +160,8 @@ Our approach for client libraries is modular. Each sub-library is a standalone i postgrest-py gotrue-py realtime-py - - + storage-py + functions-py Ruby @@ -162,6 +170,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i - - - + - Rust @@ -170,6 +179,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i - - - + - Swift @@ -178,6 +188,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i gotrue-swift realtime-swift storage-swift + - @@ -189,10 +200,12 @@ Our approach for client libraries is modular. Each sub-library is a standalone i - [Arabic | العربية](/i18n/README.ar.md) - [Albanian / Shqip](/i18n/README.sq.md) - [Bangla / বাংলা](/i18n/README.bn.md) +- [Bulgarian / Български](/i18n/README.bg.md) - [Catalan / Català](/i18n/README.ca.md) - [Danish / Dansk](/i18n/README.da.md) - [Dutch / Nederlands](/i18n/README.nl.md) - [English](https://github.com/supabase/supabase) +- [Finnish / Suomalainen](/i18n/README.fi.md) - [French / Français](/i18n/README.fr.md) - [German / Deutsch](/i18n/README.de.md) - [Greek / Ελληνικά](/i18n/README.gr.md) @@ -212,6 +225,7 @@ Our approach for client libraries is modular. Each sub-library is a standalone i - [Portuguese (Brazilian) / Português Brasileiro](/i18n/README.pt-br.md) - [Romanian / Română](/i18n/README.ro.md) - [Russian / Pусский](/i18n/README.ru.md) +- [Serbian / Srpski](/i18n/README.sr.md) - [Sinhala / සිංහල](/i18n/README.si.md) - [Spanish / Español](/i18n/README.es.md) - [Simplified Chinese / 简体中文](/i18n/README.zh-cn.md) diff --git a/SECURITY.md b/SECURITY.md index 247288302c4..b257313bf5d 120000 --- a/SECURITY.md +++ b/SECURITY.md @@ -1 +1 @@ -web/static/.well-known/security.txt \ No newline at end of file +apps/reference/static/.well-known/security.txt diff --git a/about/docs/careers/_snippets/about.mdx b/about/docs/careers/_snippets/about.mdx index e5a186ffad5..d86aaefe294 100644 --- a/about/docs/careers/_snippets/about.mdx +++ b/about/docs/careers/_snippets/about.mdx @@ -1,3 +1,3 @@ -Supabase is an open source Firebase alternative. We're backed by Y Combinator, Mozilla, Coatue, and a bunch of [amazing developers](https://supabase.com/blog/2021/03/25/angels-of-supabase). +Supabase is an open source Firebase alternative. We're backed by Y Combinator, Mozilla, Coatue, and a bunch of [amazing developers](https://supabase.com/blog/angels-of-supabase). Supabase is a platform which makes it incredibly easy to build _and_ scale your projects. diff --git a/about/docs/handbook/supasquad.mdx b/about/docs/handbook/supasquad.mdx index 7611efdc5eb..28ac655629a 100644 --- a/about/docs/handbook/supasquad.mdx +++ b/about/docs/handbook/supasquad.mdx @@ -46,7 +46,7 @@ Help us maintain the community guidelines in our GitHub and Community-led commun - Access to a Supabase Discord channel providing direct communication with the team, Discord badges, and elevated privileges. - Special AMA sessions with members of the Supabase team. -- Monthly DevRel committee call with industry-leading Developer Advocates (many of whom are [angel investors](https://supabase.com/blog/2021/03/25/angels-of-supabase)), where you can learn from the best. +- Monthly DevRel committee call with industry-leading Developer Advocates (many of whom are [angel investors](https://supabase.com/blog/angels-of-supabase)), where you can learn from the best. - We'll help you build your audience by promoting content via the Supabase social channels. - Early access to new features (and the opportunity to provide feedback to the team!). - Free credits that you can use for Squad efforts. diff --git a/about/src/css/custom.css b/about/src/css/custom.css index 7d12b14f42d..01b3ef754fe 100755 --- a/about/src/css/custom.css +++ b/about/src/css/custom.css @@ -1,5 +1,5 @@ -/* - Font import +/* + Font import */ @import url('https://rsms.me/inter/inter.css'); @@ -30,7 +30,7 @@ :root[data-theme='dark'] { /* See theme-specific "--custom" vars below */ - /* + /* Customization here for both Light and Dark themes */ --custom-font-base: 'Inter', BlinkMacSystemFont, -apple-system, 'Segoe UI', 'Roboto', 'Oxygen', @@ -71,7 +71,7 @@ --custom-shadow-tl: 0 12px 28px 0 rgba(0, 0, 0, 0.2), 0 2px 4px 0 rgba(0, 0, 0, 0.1); --custom-shadow-xl: 0 30px 60px 0 rgba(0, 0, 0, 0.1); - /* + /* Infirma overrides with customization */ /* Colors */ @@ -542,8 +542,8 @@ a.card:hover { line-height: calc(var(--ifm-spacing-vertical) * 1); } -/* - Link chevrons +/* + Link chevrons */ .menu .menu__link.menu__link--sublist::after { background-image: url('data:image/svg+xml;utf8,'); diff --git a/apps/reference/.gitignore b/apps/reference/.gitignore index 8ea2c34929e..6327667b400 100644 --- a/apps/reference/.gitignore +++ b/apps/reference/.gitignore @@ -19,5 +19,4 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -# _supabase_js/sdk/**/* -# !_supabase_js/sdk/.gitkeep \ No newline at end of file +**/*/generated \ No newline at end of file diff --git a/apps/reference/_api/usage.mdx b/apps/reference/_api/usage.mdx index c8c8e4d8fa6..09584d7a96b 100644 --- a/apps/reference/_api/usage.mdx +++ b/apps/reference/_api/usage.mdx @@ -5,17 +5,25 @@ title: Usage toc_max_heading_level: 3 --- -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + + + ## Organizations {#organizations} Organization endpoints + + ### List all organizations {#list-all-organizations} @@ -26,8 +34,15 @@ GET https://api.supabase.com/v1/organizations + + + + + + + #### Responses @@ -36,8 +51,11 @@ GET https://api.supabase.com/v1/organizations + + + ```json { "schema": { @@ -52,12 +70,16 @@ GET https://api.supabase.com/v1/organizations "type": "string" } }, - "required": ["id", "name"] + "required": [ + "id", + "name" + ] } } } ``` + @@ -68,6 +90,8 @@ Unexpected error listing organizations + + @@ -76,6 +100,7 @@ Unexpected error listing organizations
+ ### Create an organization {#create-an-organization} @@ -86,9 +111,15 @@ POST https://api.supabase.com/v1/organizations + + + + + -#### Body + +#### Body Parameters ```json { @@ -99,11 +130,14 @@ POST https://api.supabase.com/v1/organizations "type": "string" } }, - "required": ["name"] + "required": [ + "name" + ] } } ``` + #### Responses @@ -112,8 +146,11 @@ POST https://api.supabase.com/v1/organizations + + + ```json { "schema": { @@ -126,11 +163,15 @@ POST https://api.supabase.com/v1/organizations "type": "string" } }, - "required": ["id", "name"] + "required": [ + "id", + "name" + ] } } ``` + @@ -141,6 +182,8 @@ Unexpected error creating an organization + + @@ -149,10 +192,14 @@ Unexpected error creating an organization
+ + ## Projects {#projects} Project endpoints + + ### List all projects {#list-all-projects} @@ -163,8 +210,15 @@ GET https://api.supabase.com/v1/projects + + + + + + + #### Responses @@ -173,8 +227,11 @@ GET https://api.supabase.com/v1/projects + + + ```json { "schema": { @@ -198,12 +255,19 @@ GET https://api.supabase.com/v1/projects "type": "string" } }, - "required": ["id", "organization_id", "name", "region", "created_at"] + "required": [ + "id", + "organization_id", + "name", + "region", + "created_at" + ] } } } ``` + @@ -212,6 +276,7 @@ GET https://api.supabase.com/v1/projects
+ ### Create a project {#create-a-project} @@ -222,9 +287,15 @@ POST https://api.supabase.com/v1/projects + + + + + -#### Body + +#### Body Parameters ```json { @@ -242,7 +313,10 @@ POST https://api.supabase.com/v1/projects }, "plan": { "type": "string", - "enum": ["free", "pro"] + "enum": [ + "free", + "pro" + ] }, "region": { "type": "string", @@ -260,13 +334,23 @@ POST https://api.supabase.com/v1/projects "ap-south-1", "sa-east-1" ] + }, + "kps_enabled": { + "type": "boolean" } }, - "required": ["db_pass", "name", "organization_id", "plan", "region"] + "required": [ + "db_pass", + "name", + "organization_id", + "plan", + "region" + ] } } ``` + #### Responses @@ -275,8 +359,11 @@ POST https://api.supabase.com/v1/projects + + + ```json { "schema": { @@ -298,11 +385,18 @@ POST https://api.supabase.com/v1/projects "type": "string" } }, - "required": ["id", "organization_id", "name", "region", "created_at"] + "required": [ + "id", + "organization_id", + "name", + "region", + "created_at" + ] } } ``` + @@ -311,6 +405,7 @@ POST https://api.supabase.com/v1/projects
+ ### List all functions {#list-all-functions} @@ -321,23 +416,39 @@ GET https://api.supabase.com/v1/projects/{ref}/functions -#### Parameters + +#### Path Parameters + + + + + + #### Responses @@ -346,8 +457,11 @@ GET https://api.supabase.com/v1/projects/{ref}/functions + + + ```json { "schema": { @@ -365,7 +479,11 @@ GET https://api.supabase.com/v1/projects/{ref}/functions "type": "string" }, "status": { - "enum": ["ACTIVE", "REMOVED", "THROTTLED"], + "enum": [ + "ACTIVE", + "REMOVED", + "THROTTLED" + ], "type": "string" }, "version": { @@ -395,6 +513,19 @@ GET https://api.supabase.com/v1/projects/{ref}/functions } ``` + + + + + + + + + + + + + @@ -405,6 +536,8 @@ Failed to retrieve project's functions + + @@ -413,6 +546,7 @@ Failed to retrieve project's functions
+ ### Create a function {#create-a-function} @@ -423,24 +557,39 @@ POST https://api.supabase.com/v1/projects/{ref}/functions -#### Parameters + +#### Path Parameters + + + + -#### Body + +#### Body Parameters ```json { @@ -449,7 +598,7 @@ POST https://api.supabase.com/v1/projects/{ref}/functions "properties": { "slug": { "type": "string", - "pattern": {} + "pattern": "/^[A-Za-z0-9_-]+$/" }, "name": { "type": "string" @@ -461,11 +610,16 @@ POST https://api.supabase.com/v1/projects/{ref}/functions "type": "boolean" } }, - "required": ["slug", "name", "body"] + "required": [ + "slug", + "name", + "body" + ] } } ``` + #### Responses @@ -474,8 +628,11 @@ POST https://api.supabase.com/v1/projects/{ref}/functions + + + ```json { "schema": { @@ -491,7 +648,11 @@ POST https://api.supabase.com/v1/projects/{ref}/functions "type": "string" }, "status": { - "enum": ["ACTIVE", "REMOVED", "THROTTLED"], + "enum": [ + "ACTIVE", + "REMOVED", + "THROTTLED" + ], "type": "string" }, "version": { @@ -520,6 +681,19 @@ POST https://api.supabase.com/v1/projects/{ref}/functions } ``` + + + + + + + + + + + + + @@ -530,6 +704,8 @@ Failed to create project's function + + @@ -538,6 +714,7 @@ Failed to create project's function
+ ### Retrieve a function {#retrieve-a-function} @@ -548,41 +725,57 @@ GET https://api.supabase.com/v1/projects/{ref}/functions/{function_slug} -#### Parameters + +#### Path Parameters + + + + + + #### Responses @@ -591,8 +784,11 @@ GET https://api.supabase.com/v1/projects/{ref}/functions/{function_slug} + + + ```json { "schema": { @@ -608,7 +804,11 @@ GET https://api.supabase.com/v1/projects/{ref}/functions/{function_slug} "type": "string" }, "status": { - "enum": ["ACTIVE", "REMOVED", "THROTTLED"], + "enum": [ + "ACTIVE", + "REMOVED", + "THROTTLED" + ], "type": "string" }, "version": { @@ -640,6 +840,19 @@ GET https://api.supabase.com/v1/projects/{ref}/functions/{function_slug} } ``` + + + + + + + + + + + + + @@ -650,6 +863,8 @@ Failed to retrieve function with given slug + + @@ -658,6 +873,7 @@ Failed to retrieve function with given slug
+ ### Update a function {#update-a-function} @@ -668,33 +884,57 @@ PATCH https://api.supabase.com/v1/projects/{ref}/functions/{function_slug} -#### Parameters + +#### Path Parameters + + + + -#### Body + +#### Body Parameters ```json { @@ -715,6 +955,7 @@ PATCH https://api.supabase.com/v1/projects/{ref}/functions/{function_slug} } ``` + #### Responses @@ -723,8 +964,11 @@ PATCH https://api.supabase.com/v1/projects/{ref}/functions/{function_slug} + + + ```json { "schema": { @@ -740,7 +984,11 @@ PATCH https://api.supabase.com/v1/projects/{ref}/functions/{function_slug} "type": "string" }, "status": { - "enum": ["ACTIVE", "REMOVED", "THROTTLED"], + "enum": [ + "ACTIVE", + "REMOVED", + "THROTTLED" + ], "type": "string" }, "version": { @@ -769,6 +1017,19 @@ PATCH https://api.supabase.com/v1/projects/{ref}/functions/{function_slug} } ``` + + + + + + + + + + + + + @@ -779,6 +1040,8 @@ Failed to update function with given slug + + @@ -787,6 +1050,7 @@ Failed to update function with given slug
+ ### Delete a function {#delete-a-function} @@ -797,32 +1061,57 @@ DELETE https://api.supabase.com/v1/projects/{ref}/functions/{function_slug} -#### Parameters + +#### Path Parameters + + + + + + #### Responses @@ -831,8 +1120,24 @@ DELETE https://api.supabase.com/v1/projects/{ref}/functions/{function_slug} + + + + + + + + + + + + + + + + @@ -843,6 +1148,8 @@ Failed to delete function with given slug + + @@ -851,6 +1158,7 @@ Failed to delete function with given slug
+ ### List all secrets {#list-all-secrets} @@ -861,23 +1169,39 @@ GET https://api.supabase.com/v1/projects/{ref}/secrets -#### Parameters + +#### Path Parameters + + + + + + #### Responses @@ -886,8 +1210,11 @@ GET https://api.supabase.com/v1/projects/{ref}/secrets + + + ```json { "schema": { @@ -902,12 +1229,28 @@ GET https://api.supabase.com/v1/projects/{ref}/secrets "type": "string" } }, - "required": ["name", "value"] + "required": [ + "name", + "value" + ] } } } ``` + + + + + + + + + + + + + @@ -918,6 +1261,8 @@ Failed to retrieve project's secrets + + @@ -926,6 +1271,7 @@ Failed to retrieve project's secrets
+ ### Bulk create secrets {#bulk-create-secrets} @@ -936,24 +1282,39 @@ POST https://api.supabase.com/v1/projects/{ref}/secrets -#### Parameters + +#### Path Parameters + + + + -#### Body + +#### Body Parameters ```json { @@ -967,15 +1328,19 @@ POST https://api.supabase.com/v1/projects/{ref}/secrets }, "value": { "type": "string", - "pattern": {} + "pattern": "/^(?!SUPABASE_).*/" } }, - "required": ["name", "value"] + "required": [ + "name", + "value" + ] } } } ``` + #### Responses @@ -984,8 +1349,24 @@ POST https://api.supabase.com/v1/projects/{ref}/secrets + + + + + + + + + + + + + + + + @@ -996,6 +1377,8 @@ Failed to create project's secrets + + @@ -1004,6 +1387,7 @@ Failed to create project's secrets
+ ### Bulk delete secrets {#bulk-delete-secrets} @@ -1014,24 +1398,39 @@ DELETE https://api.supabase.com/v1/projects/{ref}/secrets -#### Parameters + +#### Path Parameters + + + + -#### Body + +#### Body Parameters ```json { @@ -1044,6 +1443,7 @@ DELETE https://api.supabase.com/v1/projects/{ref}/secrets } ``` + #### Responses @@ -1052,8 +1452,11 @@ DELETE https://api.supabase.com/v1/projects/{ref}/secrets + + + ```json { "schema": { @@ -1062,6 +1465,19 @@ DELETE https://api.supabase.com/v1/projects/{ref}/secrets } ``` + + + + + + + + + + + + + @@ -1072,6 +1488,8 @@ Failed to delete secrets with given names + + @@ -1079,3 +1497,4 @@ Failed to delete secrets with given names
+ diff --git a/apps/reference/_auth_helpers/intro.md b/apps/reference/_auth_helpers/intro.md deleted file mode 100644 index 51239a87b48..00000000000 --- a/apps/reference/_auth_helpers/intro.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -slug: / -sidebar_label: Auth Helpers ---- - -# Auth Helpers - -A collection of framework specific Auth utilities for working with Supabase. - -## Status - -The Auth Helpers are in `beta`. They are usable in their current state, but it's likely that there will be breaking changes. - -## Additional Links - -- [Source code](https://github.com/supabase/auth-helpers) -- [Known bugs and issues](https://github.com/supabase/auth-helpers/issues) diff --git a/apps/reference/_auth_helpers/next-js.md b/apps/reference/_auth_helpers/next-js.md deleted file mode 100644 index 3cc90c70794..00000000000 --- a/apps/reference/_auth_helpers/next-js.md +++ /dev/null @@ -1,315 +0,0 @@ ---- -id: next-js -slug: next-js -sidebar_label: With Next.js ---- - -# Supabase Auth with Next.js - -This submodule provides convenience helpers for implementing user authentication in Next.js applications. - -## Installation - -Using [npm](https://npmjs.org): - -```sh -npm install @supabase/auth-helpers-nextjs - -# Main components and hooks for React based frameworks (optional) -npm install @supabase/auth-helpers-react -``` - -Using [yarn](https://yarnpkg.com/): - -```sh -yarn add @supabase/auth-helpers-nextjs - -# Main components and hooks for React based frameworks (optional) -yarn add @supabase/auth-helpers-react -``` - -This library supports the following tooling versions: - -- Node.js: `^10.13.0 || >=12.0.0` - -- Next.js: `>=10` - -## Getting Started - -### Configuration - -Set up the fillowing env vars. For local development you can set them in a `.env.local` file. See an example [here](../../examples/nextjs/.env.local.example)). - -```bash -# Find these in your Supabase project settings > API -NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co -NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key -``` - -### Basic Setup - -- Create an `auth` directory under the `/pages/api/` directory. - -- Create a `[...supabase].js` file under the newly created `auth` directory. - -The path to your dynamic API route file would be `/pages/api/auth/[...supabase].js`. Populate that file as follows: - -```js -import { handleAuth } from '@supabase/auth-helpers-nextjs' - -export default handleAuth({ logout: { returnTo: '/' } }) -``` - -Executing `handleAuth()` creates the following route handlers under the hood that perform different parts of the authentication flow: - -- `/api/auth/callback`: The `UserProvider` forwards the session details here every time `onAuthStateChange` fires on the client side. This is needed to set up the cookies for your application so that SSR works seamlessly. - -- `/api/auth/user`: You can fetch user profile information in JSON format. - -- `/api/auth/logout`: Your Next.js application logs out the user. You can optionally pass a `returnTo` parameter to return to a custom relative URL after logout, eg `/api/auth/logout?returnTo=/login`. This will overwrite the logout `returnTo` option specified `handleAuth()` - -Wrap your `pages/_app.js` component with the `UserProvider` component: - -```jsx -// pages/_app.js -import React from 'react' -import { UserProvider } from '@supabase/auth-helpers-react' -import { supabaseClient } from '@supabase/auth-helpers-nextjs' - -export default function App({ Component, pageProps }) { - return ( - - - - ) -} -``` - -You can now determine if a user is authenticated by checking that the `user` object returned by the `useUser()` hook is defined. - -## Client-side data fetching with RLS - -For [row level security](https://supabase.com/docs/learn/auth-deep-dive/auth-row-level-security) to work properly when fetching data client-side, you need to make sure to import the `{ supabaseClient }` from `# @supabase/auth-helpers-nextjs` and only run your query once the user is defined client-side in the `useUser()` hook: - -```js -import { Auth } from '@supabase/ui' -import { useUser } from '@supabase/auth-helpers-react' -import { supabaseClient } from '@supabase/auth-helpers-nextjs' -import { useEffect, useState } from 'react' - -const LoginPage = () => { - const { user, error } = useUser() - const [data, setData] = useState() - - useEffect(() => { - async function loadData() { - const { data } = await supabaseClient.from('test').select('*') - setData(data) - } - // Only run query once user is logged in. - if (user) loadData() - }, [user]) - - if (!user) - return ( - <> - {error &&

{error.message}

} - - - ) - - return ( - <> - -

user:

-
{JSON.stringify(user, null, 2)}
-

client-side data fetching with RLS

-
{JSON.stringify(data, null, 2)}
- - ) -} - -export default LoginPage -``` - -### Server-side rendering (SSR) - withPageAuth - -If you wrap your `getServerSideProps` with `withPageAuth` your props object will be augmented with the user object. - -```js -// pages/profile.js -import { withPageAuth } from '@supabase/auth-helpers-nextjs' - -export default function Profile({ user }) { - return
Hello {user.name}
-} - -export const getServerSideProps = withPageAuth({ redirectTo: '/login' }) -``` - -If there is no authenticated user, they will be redirect to your home page, unless you specify the `redirectTo` option. - -You can pass in your own `getServerSideProps` method, the props returned from this will be merged with the -user props. You can also access the user session data by calling `getUser` inside of this method, eg: - -```js -// pages/protected-page.js -import { withPageAuth, getUser } from '@supabase/auth-helpers-nextjs' - -export default function ProtectedPage({ user, customProp }) { - return
Protected content
-} - -export const getServerSideProps = withPageAuth({ - redirectTo: '/foo', - async getServerSideProps(ctx) { - // Access the user object - const { user, accessToken } = await getUser(ctx) - return { props: { email: user?.email } } - }, -}) -``` - -### Server-side data fetching with RLS - -For [row level security](https://supabase.com/docs/learn/auth-deep-dive/auth-row-level-security) to work in a server environment, you need to inject the request context into the supabase client: - -```js -import { - User, - withPageAuth, - supabaseServerClient, -} from '@supabase/auth-helpers-nextjs' - -export default function ProtectedPage({ - user, - data, -}: { - user: User, - data: any, -}) { - return ( - <> -
Protected content for {user.email}
-
{JSON.stringify(data, null, 2)}
-
{JSON.stringify(user, null, 2)}
- - ) -} - -export const getServerSideProps = withPageAuth({ - redirectTo: '/', - async getServerSideProps(ctx) { - // Run queries with RLS on the server - const { data } = await supabaseServerClient(ctx).from('test').select('*') - return { props: { data } } - }, -}) -``` - -### Server-side data fetching to OAuth APIs using `provider_token` - -When using third-party auth providers, sessions are initiated with an additional `provider_token` field which is persisted as an HTTPOnly cookie upon logging in to enabled usage on the server side. The `provider_token` can be used to make API requests to the OAuth provider's API endpoints on behalf of the logged-in user. In the following example, we fetch the user's full profile from the third-party API during SSR using their id and auth token: - -```js -import { User, withPageAuth, getUser } from '@supabase/auth-helpers-nextjs' - -interface Profile { - /* ... */ -} - -export default function ProtectedPage({ - user, - data, -}: { - user: User, - profile: Profile, -}) { - return
Protected content
-} - -export const getServerSideProps = withPageAuth({ - redirectTo: '/', - async getServerSideProps(ctx) { - // Retrieve provider_token from cookies - const provider_token = ctx.req.cookies['sb-provider-token'] - // Get logged in user's third-party id from metadata - const { user } = await getUser(ctx) - const userId = user?.user_metadata.provider_id - const profile: Profile = await ( - await fetch(`https://api.example.com/users/${userId}`, { - method: 'GET', - headers: { - Authorization: `Bearer ${provider_token}`, - }, - }) - ).json() - return { props: { profile } } - }, -}) -``` - -## Protecting API routes - -Wrap an API Route to check that the user has a valid session. If they're not logged in the handler will return a -401 Unauthorized. - -```js -// pages/api/protected-route.js -import { - withApiAuth, - supabaseServerClient, -} from '@supabase/auth-helpers-nextjs' - -export default withApiAuth(async function ProtectedRoute(req, res) { - // Run queries with RLS on the server - const { data } = await supabaseServerClient({ req, res }) - .from('test') - .select('*') - res.json(data) -}) -``` - -If you visit `/api/protected-route` without a valid session cookie, you will get a 401 response. - -## Protecting routes with [Nextjs Middleware](https://nextjs.org/docs/middleware) - -As an alternative to protecting individual pages using `getServerSideProps` with `withPageAuth`, `withMiddlewareAuth` can be used from inside a `_middleware` file to protect an entire directory. In the following example, all requests to `/protected/*` will check whether a user is signed in, if successful the request will be forwarded to the destination route, otherwise the user will be redirected to `/login` (defaults to: `/`) with a 307 Temporary Redirect response status: - -```ts -// pages/protected/_middleware.ts -import { withMiddlewareAuth } from '@supabase/auth-helpers-nextjs/middleware' - -export const middleware = withMiddlewareAuth({ redirectTo: '/login' }) -``` - -It is also possible to add finer granularity based on the user logged in. I.e. you can specify a promise to determine if a specific user has permission or not. - -```ts -// pages/protected/_middleware.ts -import { withMiddlewareAuth } from '@supabase/auth-helpers-nextjs/dist/middleware' - -export const middleware = withMiddlewareAuth({ - redirectTo: '/login', - authGuard: { - isPermitted: async (user) => user.email?.endsWith('@example.com') ?? false, - redirectTo: '/insufficient-permissions', - }, -}) -``` - -## Migrating from @supabase/supabase-auth-helpers to @supabase/auth-helpers - -This is a step by step guide on migrating away from the `@supabase/supabase-auth-helpers` to the newly released `@supabase/auth-helpers`. - -1. Install `@supabase/supabase-js`, `@supabase/auth-helpers-nextjs` and `@supabase/auth-helpers-react` libraries from npm. -2. Replace all imports of `@supabase/supabase-auth-helpers/nextjs` in your project with `@supabase/auth-helpers-nextjs`. -3. Replace all imports of `@supabase/supabase-auth-helpers/react` in your project with `@supabase/auth-helpers-react`. -4. Replace all instances of `withAuthRequired` in any of your NextJS pages with `withPageAuth`. -5. Replace all instances of `withAuthRequired` in any of your NextJS API endpoints with `withApiAuth`. -6. Uninstall `@supabase/supabase-auth-helpers`. diff --git a/apps/reference/_auth_helpers/svelte-kit.md b/apps/reference/_auth_helpers/svelte-kit.md deleted file mode 100644 index 0b868d560eb..00000000000 --- a/apps/reference/_auth_helpers/svelte-kit.md +++ /dev/null @@ -1,303 +0,0 @@ ---- -id: sveltekit -slug: sveltekit -sidebar_label: With SvelteKit ---- - -# Supabase Auth with SvelteKit - -This submodule provides convenience helpers for implementing user authentication in [SvelteKit](https://kit.svelte.dev/) applications. - -## Installation - -Using [npm](https://npmjs.org): - -```sh -npm install @supabase/auth-helpers-sveltekit - -# Main component for Svelte based frameworks (optional but recommended) -npm install @supabase/auth-helpers-svelte -``` - -Using [yarn](https://yarnpkg.com/): - -```sh -yarn add @supabase/auth-helpers-sveltekit - -# Main component for Svelte based frameworks (optional but recommended) -yarn add @supabase/auth-helpers-svelte -``` - -This library supports the following tooling versions: - -- Node.js: `^16.15.0` - -## Getting Started - -### Configuration - -Set up the fillowing env vars. For local development you can set them in a `.env` file. See an example [here](../../examples/sveltekit/.env.example). - -```bash -# Find these in your Supabase project settings > API -VITE_SUPABASE_URL=https://your-project.supabase.co -VITE_SUPABASE_ANON_KEY=your-anon-key -``` - -### SupabaseClient and SupaAuthHelper component setup - -We will start off by creating a `db.ts` file inside of our `src/lib` directory. Now lets instantiate our `supabaseClient` by using our `createSupabaseClient` function from the `@supabase/auth-helpers-sveltekit` library. - -```ts -// src/lib/db.ts -import { createSupabaseClient } from '@supabase/auth-helpers-sveltekit' - -const { supabaseClient } = createSupabaseClient( - import.meta.env.VITE_SUPABASE_URL as string, - import.meta.env.VITE_SUPABASE_ANON_KEY as string -) - -export { supabaseClient } -``` - -Edit your `__layout.svelte` file and add import the `SupaAuthHelper` component, the `supabaseClient` we just instantiated and the `session` store. - -```html -// src/routes/__layout.svelte - - - - - -``` - -### Hooks setup - -Our `hooks.ts` file is where the heavy lifting of this library happens, we need to import our function to handle the sign in, signing out and cookie creation phase. we can import all the hooks using `handleAuth` function and destructure its returned data. - -```ts -// src/hooks.ts -import { handleAuth } from '@supabase/auth-helpers-sveltekit' -import type { GetSession, Handle } from '@sveltejs/kit' -import { sequence } from '@sveltejs/kit/hooks' - -export const handle: Handle = sequence(...handleAuth()) - -export const getSession: GetSession = async (event) => { - const { user, accessToken, error } = event.locals - return { - user, - accessToken, - error, - } -} -``` - -These will create the handlers under the hood that perform different parts of the authentication flow: - -- `/api/auth/callback`: The `UserHelper` forwards the session details here every time `onAuthStateChange` fires on the client side. This is needed to set up the cookies for your application so that SSR works seamlessly. -- `/api/auth/user`: You can fetch user profile information in JSON format. -- `/api/auth/logout`: You can logout the user. - -### Typings - -In order to get the most out of TypeScript and its intellisense, you should import our types into the `app.d.ts` type definition file that comes with your SvelteKit project. - -```ts -// src/app.d.ts -/// -// See https://kit.svelte.dev/docs/types#app -// for information about these interfaces -declare namespace App { - interface UserSession { - user: import('@supabase/supabase-js').User - accessToken?: string - } - interface Locals extends UserSession { - error: import('@supabase/supabase-js').ApiError - } - - interface Session extends UserSession {} // interface Platform {} // interface Stuff {} -} -``` - -### Signing out - -This library has provided a dedicated endpoint for you to use to sign a user out. This endpoint will sign the user out of the Gotrue server, clear the cookies that were set when the user logged in and redirect the user to a configurable path. - -The logout handler endpoint is `/api/auth/logout`, this will take a `GET` request which means it can be used as the href for a normal `a` tag in your html. - -```html -Sign out -``` - -### Logout handler configuration - -In your `src/hooks.ts` file the logout handler is already setup and you can configure the redirect path from here. - -> By default the redirect path after logging out will be `/`. - -```ts -export const handle = sequence( - ...handleAuth({ - logout: { returnTo: '/auth/signin' }, - }) -) -``` - -### Basic Setup - -You can now determine if a user is authenticated on the client-side by checking that the `user` object returned by the `$session` store is defined. - -```html -// example - - -{#if !$session.user} -

I am not logged in

-{:else} -

Welcome {$session.user.email}

-

I am logged in!

-{/if} -``` - -## Client-side data fetching with RLS - -For [row level security](https://supabase.com/docs/learn/auth-deep-dive/auth-row-level-security) to work properly when fetching data client-side, you need to make sure to import the `{ supabaseClient }` from `@supabase/auth-helpers-sveltekit` and only run your query once the user is defined client-side in the `$session`: - -```html - - -{#if !$session.user} - {#if $error} -

{$error.message}

- {/if} -

{$isLoading ? `Loading...` : `Loaded!`}

- -{:else} - Sign out -

user:

-
{JSON.stringify($session.user, null, 2)}
-

client-side data fetching with RLS

-
{JSON.stringify(loadedData, null, 2)}
-{/if} -``` - -### Server-side data fetching with RLS - -For [row level security](https://supabase.com/docs/learn/auth-deep-dive/auth-row-level-security) to work in a server environment, you need to inject the request context into the supabase client: - -```html - - - -
Protected content for {user.email}
-
{JSON.stringify(data, null, 2)}
-
{JSON.stringify(user, null, 2)}
-``` - -```ts -// src/routes/profile.ts -import { - supabaseServerClient, - withApiAuth, -} from '@supabase/auth-helpers-sveltekit' -import type { RequestHandler } from './__types/profile' - -interface TestTable { - id: string - created_at: string -} - -interface GetOutput { - user: User - data: TestTable[] -} - -export const GET: RequestHandler = async ({ locals }) => - withApiAuth( - { - redirectTo: '/', - user: locals.user, - }, - async () => { - const { data } = await supabaseServerClient(session.accessToken) - .from('test') - .select('*') - - return { - body: { - user: locals.user, - data, - }, - } - } - ) -``` - -## Protecting API routes - -Wrap an API Route to check that the user has a valid session. If they're not logged in the handler will return a -303 and redirect header. - -```ts -// src/routes/api/protected-route.ts -import { - supabaseServerClient, - withApiAuth, -} from '@supabase/auth-helpers-sveltekit' -import type { RequestHandler } from './__types/protected-route' - -interface TestTable { - id: string - created_at: string -} - -interface GetOutput { - data: TestTable[] -} - -export const GET: RequestHandler = async ({ locals, request }) => - withApiAuth({ user: locals.user }, async () => { - // Run queries with RLS on the server - const { data } = await supabaseServerClient(request) - .from('test') - .select('*') - - return { - status: 200, - body: { data }, - } - }) -``` - -If you visit `/api/protected-route` without a valid session cookie, you will get a 303 response. diff --git a/apps/reference/_supabase_js/sdk/.gitkeep b/apps/reference/_cli/generated/.gitkeep similarity index 100% rename from apps/reference/_supabase_js/sdk/.gitkeep rename to apps/reference/_cli/generated/.gitkeep diff --git a/apps/reference/_cli/generated/config.mdx b/apps/reference/_cli/generated/config.mdx deleted file mode 100644 index 4f69366e0f0..00000000000 --- a/apps/reference/_cli/generated/config.mdx +++ /dev/null @@ -1,337 +0,0 @@ ---- -id: config -slug: /config -title: Configuration -toc_max_heading_level: 3 ---- - - - -A `config.toml` file is generated after running `supabase init`. - -This file is located in the `supabase` folder under `supabase/config.toml`. - - - -## General {#general} - -### `project_id` {#project_id} - -A string used to distinguish different Supabase projects on the same host. Defaults to the working directory name when running `supabase init`. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- - - -## Auth Settings {#auth} - -### `auth.site_url` {#auth.site_url} - -The base URL of your website. Used as an allow-list for redirects and for constructing URLs used in emails. - - - -
- -### `auth.additional_redirect_urls` {#auth.additional_redirect_urls} - -A list of _exact_ URLs that auth providers are permitted to redirect to post authentication. - - - -
- -### `auth.jwt_expiry` {#auth.jwt_expiry} - -How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 seconds (one week). - - - -
- -### `auth.enable_signup` {#auth.enable_signup} - -Allow/disallow new user signups to your project. - - - -
- -### `auth.email.enable_signup` {#auth.email.enable_signup} - -Allow/disallow new user signups via email to your project. - - - -
- -### `auth.email.double_confirm_changes` {#auth.email.double_confirm_changes} - -If enabled, a user will be required to confirm any email change on both the old, and new email addresses. If disabled, only the new email is required to confirm. - - - -
- -### `auth.email.enable_confirmations` {#auth.email.enable_confirmations} - -If enabled, users need to confirm their email address before signing in. - - - -
- -### `auth.external..enabled` {#auth.external.provider.enabled} - -Use an external OAuth provider. The full list of providers are: - -- `apple` -- `azure` -- `bitbucket` -- `discord` -- `facebook` -- `github` -- `gitlab` -- `google` -- `twitch` -- `twitter` -- `slack` -- `spotify` - - - -
- -### `auth.external..client_id` {#auth.external.provider.client_id} - -Client ID for the external OAuth provider. - - - -
- -### `auth.external..secret` {#auth.external.provider.secret} - -Client secret for the external OAuth provider. - - - -
- - - -## API Settings {#api} - -### `api.port` {#api.port} - -Port to use for the API URL. - - - -
- -### `api.extra_search_path` {#api.extra_search_path} - -Extra schemas to add to the `search_path` of every request. - - - -
- -### `api.max_rows` {#api.max_rows} - -The maximum number of rows returned from a view, table, or stored procedure. Limits payload size for accidental or malicious requests. - - - -
- - - -## Database Settings {#database} - -### `db.port` {#db.port} - -Port to use for the local database URL. - - - -
- -### `db.major_version` {#db.major_version} - -The database major version to use. This has to be the same as your remote database's. Run `SHOW server_version;` on the remote database to check. - - - -
- - - -## Dashboard Settings {#dashboard} - -### `studio.port` {#studio.port} - -Port to use for Supabase Studio. - -
    -
  • - Required: true -
  • -
  • - Default: 54323 -
  • -
- -
- - - -## Local Development {#local} - -### `inbucket.port` {#inbucket.port} - -Port to use for the email testing server web interface. - -Emails sent with the local dev setup are not actually sent - rather, they are monitored, and you can view the emails that would have been sent from the web interface. - - - -
diff --git a/apps/reference/_cli/generated/usage.mdx b/apps/reference/_cli/generated/usage.mdx deleted file mode 100644 index 7235621cecb..00000000000 --- a/apps/reference/_cli/generated/usage.mdx +++ /dev/null @@ -1,1008 +0,0 @@ ---- -id: usage -slug: /usage -title: Usage -toc_max_heading_level: 3 ---- - - - -Supabase CLI provides you with tools to develop your application locally, and deploy your application to the Supabase platform. - - - -
-
- -### Stop all local Supabase containers {#supabase-stop} - - - -```sh -supabase stop [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for stop -``` - - - -
-
- -### Show status of local Supabase containers {#supabase-status} - - - -```sh -supabase status [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for status -``` - - - -
-
- -### Start containers for Supabase local development {#supabase-start} - - - -```sh -supabase start [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for start -``` - - - -
-
- -## Manage Supabase secrets {#supabase-secrets} - - - - - -**Available Commands** - -- - supabase secrets list - - -- - supabase secrets set - - -- - supabase secrets unset - - - - -**Options** - -```sh - -h, --help help for secrets -``` - - - -
-
- -### Unset a secret(s) on Supabase {#supabase-secrets-unset} - - - -Unset a secret(s) from the linked Supabase project. - -```sh -supabase secrets unset ... [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for unset -``` - - - -
-
- -### Set a secret(s) on Supabase {#supabase-secrets-set} - - - -Set a secret(s) to the linked Supabase project. - -```sh -supabase secrets set [flags] ... -``` - - - - - -**Options** - -```sh - --env-file string Read secrets from a .env file. - -h, --help help for set -``` - - - -
-
- -### List all secrets on Supabase {#supabase-secrets-list} - - - -List all secrets in the linked project. - -```sh -supabase secrets list [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for list -``` - - - -
-
- -## Manage Supabase projects {#supabase-projects} - - - - - -**Available Commands** - -- - supabase projects create - - -- - supabase projects list - - - - -**Options** - -```sh - -h, --help help for projects -``` - - - -
-
- -### List all Supabase projects {#supabase-projects-list} - - - -List all Supabase projects the logged-in user can access. - -```sh -supabase projects list [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for list -``` - - - -
-
- -### Create a project on Supabase {#supabase-projects-create} - - - -```sh -supabase projects create [flags] -``` - - - - - -**Options** - -```sh - --db-password string Database password of the project. - -h, --help help for create - -i, --interactive Enables interactive mode. - --org-id string Organization ID to create the project in. - --plan string Select a plan that suits your needs. (default "free") - --region string Select a region close to you for the best performance. -``` - - - -
-
- -## Manage Supabase organizations {#supabase-orgs} - - - - - -**Available Commands** - -- - supabase orgs list - - - - -**Options** - -```sh - -h, --help help for orgs -``` - - - -
-
- -### List all organizations {#supabase-orgs-list} - - - -List all organizations the logged-in user belongs. - -```sh -supabase orgs list [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for list -``` - - - -
-
- -## Manage database migration scripts {#supabase-migration} - - - - - -**Available Commands** - -- - supabase migration list - - -- - supabase migration new - - - - -**Options** - -```sh - -h, --help help for migration -``` - - - -
-
- -### Create an empty migration script {#supabase-migration-new} - - - -```sh -supabase migration new [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for new -``` - - - -
-
- -### List local and remote migrations {#supabase-migration-list} - - - -```sh -supabase migration list [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for list - -p, --password string Password to your remote Postgres database. -``` - - - -
-
- -### Authenticate using an access token {#supabase-login} - - - -```sh -supabase login [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for login -``` - - - -
-
- -### Link to a Supabase project {#supabase-link} - - - -```sh -supabase link [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for link - -p, --password string Password to your remote Postgres database. - --project-ref string Project ref of the Supabase project. -``` - - - -
-
- -### Initialize a local project {#supabase-init} - - - -```sh -supabase init [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for init -``` - - - -
-
- -## Run code generation tools {#supabase-gen} - - - - - -**Available Commands** - -- - supabase gen types - - - - -**Options** - -```sh - -h, --help help for gen -``` - - - -
-
- -## Generate types from Postgres schema {#supabase-gen-types} - - - - - -**Available Commands** - -- - supabase gen types typescript - - - - -**Options** - -```sh - -h, --help help for types -``` - - - -
-
- -### Generate types for TypeScript {#supabase-gen-types-typescript} - - - -Generate types for TypeScript. Must specify either --local or --db-url - -```sh -supabase gen types typescript [flags] -``` - - - - - -**Options** - -```sh - --db-url string Generate types from a database url. - -h, --help help for typescript - --local Generate types from the local dev database. -``` - - - -
-
- -## Manage Supabase Edge functions {#supabase-functions} - - - - - -**Available Commands** - -- - supabase functions delete - - -- - supabase functions deploy - - -- - supabase functions new - - -- - supabase functions serve - - - - -**Options** - -```sh - -h, --help help for functions -``` - - - -
-
- -### Serve a Function locally {#supabase-functions-serve} - - - -```sh -supabase functions serve [flags] -``` - - - - - -**Options** - -```sh - --env-file string Path to an env file to be populated to the Function environment. - -h, --help help for serve - --no-verify-jwt Disable JWT verification for the Function. -``` - - - -
-
- -### Create a new Function locally {#supabase-functions-new} - - - -```sh -supabase functions new [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for new -``` - - - -
-
- -### Deploy a Function to Supabase {#supabase-functions-deploy} - - - -Deploy a Function to the linked Supabase project. - -```sh -supabase functions deploy [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for deploy - --no-verify-jwt Disable JWT verification for the Function. - --project-ref string Project ref of the Supabase project. -``` - - - -
-
- -### Delete a Function from Supabase {#supabase-functions-delete} - - - -Delete a Function from the linked Supabase project. This does NOT remove the Function locally. - -```sh -supabase functions delete [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for delete - --project-ref string Project ref of the Supabase project. -``` - - - -
-
- -## Manage local Postgres databases {#supabase-db} - - - - - -**Available Commands** - -- - supabase db branch - - -- - supabase db diff - - -- - supabase db push - - -- - supabase db remote - - -- - supabase db reset - - - - -**Options** - -```sh - -h, --help help for db -``` - - - -
-
- -### Resets the local database to current migrations {#supabase-db-reset} - - - -```sh -supabase db reset [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for reset -``` - - - -
-
- -## Manage remote databases {#supabase-db-remote} - - - - - -**Available Commands** - -- - supabase db remote changes - - -- - supabase db remote commit - - - - -**Options** - -```sh - -h, --help help for remote - -p, --password string Password to your remote Postgres database. -``` - - - -
-
- -### Commit remote changes as a new migration {#supabase-db-remote-commit} - - - -```sh -supabase db remote commit [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for commit -``` - - - -
-
- -### Show changes on the remote database {#supabase-db-remote-changes} - - - -Show changes on the remote database since last migration. - -```sh -supabase db remote changes [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for changes -``` - - - -
-
- -### Push new migrations to the remote database {#supabase-db-push} - - - -```sh -supabase db push [flags] -``` - - - - - -**Options** - -```sh - --dry-run Print the migrations that would be applied, but don't actually apply them. - -h, --help help for push - -p, --password string Password to your remote Postgres database. -``` - - - -
-
- -### Diffs the local database for schema changes {#supabase-db-diff} - - - -```sh -supabase db diff [flags] -``` - - - - - -**Options** - -```sh - -f, --file string Saves schema diff to a file. - -h, --help help for diff - -s, --schema strings List of schema to include. (default [public]) - --use-migra Use migra to generate schema diff. -``` - - - -
-
- -## Manage local database branches {#supabase-db-branch} - - - -Manage local database branches. Each branch is associated with a separate local database. Forking remote databases is NOT supported. - - - -**Available Commands** - -- - supabase db branch create - - -- - supabase db branch delete - - -- - supabase db branch list - - -- - supabase db branch switch - - - - -**Options** - -```sh - -h, --help help for branch -``` - - - -
-
- -### Switch the active branch {#supabase-db-branch-switch} - - - -```sh -supabase db branch switch [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for switch -``` - - - -
-
- -### List branches {#supabase-db-branch-list} - - - -```sh -supabase db branch list [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for list -``` - - - -
-
- -### Delete a branch {#supabase-db-branch-delete} - - - -```sh -supabase db branch delete [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for delete -``` - - - -
-
- -### Create a branch {#supabase-db-branch-create} - - - -```sh -supabase db branch create [flags] -``` - - - - - -**Options** - -```sh - -h, --help help for create -``` - - diff --git a/apps/reference/_cli/installing-and-updating.mdx b/apps/reference/_cli/installing-and-updating.mdx deleted file mode 100644 index 4585fd0d0b5..00000000000 --- a/apps/reference/_cli/installing-and-updating.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -id: installing-and-updating ---- - -# Installing and Updating - -## macOS - -### Installing - -Available via [Homebrew](https://brew.sh). To install: - -```sh -brew install supabase/tap/supabase -``` - -### Upgrading - -To upgrade: - -```sh -brew upgrade supabase -``` - -## Windows - -### Installing - -Available via [Scoop](https://scoop.sh). To install: - -```powershell -scoop bucket add supabase https://github.com/supabase/scoop-bucket.git -scoop install supabase -``` - -### Upgrading - -To upgrade: - -```powershell -scoop update supabase -``` - -## Linux - -### Homebrew - -Available via [Homebrew](https://brew.sh) and Linux packages. - -To install: - -```sh -brew install supabase/tap/supabase -``` - -To upgrade: - -```sh -brew upgrade supabase -``` - -### Linux packages - -Linux packages are provided in [Releases](https://github.com/supabase/cli/releases). -To install, download the `.apk`/`.deb`/`.rpm` file depending on your package manager -and run one of the following: - -- `sudo apk add --allow-untrusted <...>.apk` -- `sudo dpkg -i <...>.deb` -- `sudo rpm -i <...>.rpm` diff --git a/apps/reference/_cli/intro.mdx b/apps/reference/_cli/intro.mdx index 8206cb32a50..1615aa7ae28 100644 --- a/apps/reference/_cli/intro.mdx +++ b/apps/reference/_cli/intro.mdx @@ -8,17 +8,19 @@ hide_table_of_contents: true # Supabase CLI -The Supabase CLI can be found in our [CLI](https://github.com/supabase/cli) repository. +The Supabase CLI provides tools to develop your project locally and deploy to the Supabase Platform. +The CLI is still under development, but it contains all the functionality for working with your Supabase projects and the Supabase Platform. -The CLI is still under heavy development, but it will contain all the functionality for working with Supabase projects and the Supabase platform. - -- Running Supabase locally: [`supabase start`](./cli/usage#supabase-start) -- Managing database migrations: [`supabase migration`](./cli/usage#supabase-migration) -- Pushing your local changes to production: [`supabase commit`](./cli/usage#supabase-db-remote-commit) -- Manage your Supabase Projects: [`supabase projects`](./cli/usage#supabase-projects) -- Generating types directly from your database schema: [`supabase gen types`](./cli/usage#supabase-gen) +- Run Supabase locally: [`supabase start`](https://supabase.com/docs/reference/cli/usage#supabase-start) +- Manage database migrations: [`supabase migration`](https://supabase.com/docs/reference/cli/usage#supabase-migration) +- CI/CD for releasing to production: [`supabase db push`](https://supabase.com/docs/reference/cli/usage#supabase-db-push) +- Manage your Supabase projects: [`supabase projects`](https://supabase.com/docs/reference/cli/usage#supabase-projects) +- Generate types directly from your database schema: [`supabase gen types`](https://supabase.com/docs/reference/cli/usage#supabase-gen) ## Additional Links +- [Install the Supabase CLI](/docs/guides/cli) - [Source code](https://github.com/supabase/cli) - [Known bugs and issues](https://github.com/supabase/cli/issues) +- [Supabase CLI v1 and Admin API Beta](https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta) +- [The CLI team announcing CLI V1 and Admin API Beta - Video](https://www.youtube.com/watch?v=OpPOaJI_Z28) diff --git a/apps/reference/_gotrue/config.mdx b/apps/reference/_gotrue/config.mdx index dfa0090df45..9a00a5a380e 100644 --- a/apps/reference/_gotrue/config.mdx +++ b/apps/reference/_gotrue/config.mdx @@ -1,244 +1,35 @@ --- id: config +slug: /config title: Configuration +toc_max_heading_level: 3 --- -## Security + -| Parameter | Type | Description | -| :-------------------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `SITE_URL` | `string` | **Required**. The base URL your site is located at. Currently used in combination with other settings to construct URLs used in emails. Any URI that shares a host with `SITE_URL` is a permitted value for `redirect_to` params (see `/authorize` etc.). | -| `URI_ALLOW_LIST` | `string` | A comma separated list of URIs (e.g. `"https://foo.example.com,https://*.foo.example.com"`) which are permitted as valid `redirect_to` destinations. Defaults to [ ].

Supports wildcard matching through globbing. (e.g. `https://*.foo.example.com` will allow `https://a.foo.example.com` and `https://b.foo.example.com` to be accepted.)

Globbing is also supported on subdomains. (e.g. `https://foo.example.com/*` will allow `https://foo.example.com/page1` and `https://foo.example.com/page2` to be accepted.)
For more common glob patterns, check out the [following link](https://pkg.go.dev/github.com/gobwas/glob#Compile). | -| `OPERATOR_TOKEN` | `string` | The shared secret with an operator for this microservice. Used to verify requests have been proxied through the operator and the payload values can be trusted. | -| `DISABLE_SIGNUP` | `bool` | When signup is disabled the only way to create new users is through invites. Defaults to `false`, all signups enabled. | -| `EXTERNAL_EMAIL_ENABLED` | `bool` | Use this to disable email signups (users can still use external oauth providers to sign up / sign in) | -| `EXTERNAL_PHONE_ENABLED` | `bool` | Use this to disable phone signups (users can still use external oauth providers to sign up / sign in) | -| `RATE_LIMIT_TOKEN_REFRESH` | `string` | Rate limit the number of requests sent to `/token` | -| `RATE_LIMIT_EMAIL_SENT` | `string` | Rate limit the number of emails sent per hr on the following endpoints: `/signup`, `/invite`, `/magiclink`, `/recover`, `/otp`, & `/user`. | -| `PASSWORD_MIN_LENGTH` | `int` | Minimum password length, defaults to 6. | +A `config.toml` file is generated after running `supabase init`. -These options control additional security settings available in gotrue. If self-hosting, they need to be prefixed with `GOTRUE_SECURITY_` . +This file is located in the `supabase` folder under `supabase/config.toml`. -| Parameter | Type | Description | -| :---------------------------------------------------------------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `REFRESH_TOKEN_ROTATION_ENABLED` | `bool` | If refresh token rotation is enabled, gotrue will automatically detect malicious attempts to reuse a revoked refresh token. When a malicious attempt is detected, gotrue immediately revokes all tokens that descended from the offending token. | -| `REFRESH_TOKEN_REUSE_INTERVAL` | `string` | This setting is only applicable if `REFRESH_TOKEN_ROTATION_ENABLED` is enabled. The reuse interval for a refresh token allows for exchanging the refresh token multiple times during the interval to support concurrency or offline issues.
During the reuse interval, gotrue will not consider using a revoked token as a malicious attempt and will simply return the child refresh token.
Only the previous revoked token can be reused. Using an old refresh token way before the current valid refresh token will trigger the reuse detection. | -| `CAPTCHA_ENABLED` | `string` | Enables the captcha middleware. | -| `CAPTCHA_PROVIDER` | `string` | The only captcha provider option supported is: `hcaptcha`. | -| `CAPTCHA_SECRET` | `string` | The captcha secret token. Retrieve this from your captcha account. | -| `CAPTCHA_TIMEOUT` | `string` | The http timeout on the captcha request. | -| `UPDATE_PASSWORD_REQUIRE_REAUTHENTICATION` | `bool` | When enabled, this requires a user to reauthenticate before being able to update their password. | -## API -| Parameter | Type | Description | -| :------------------------------------------------------ | :------- | :--------------------------------------------------------------------------------------------- | -| `API_HOST` | `string` | Hostname to listen on. | -| `PORT` | `number` | Port number to listen on. Defaults to `8081`. | -| `REQUEST_ID_HEADER` | `string` | If you wish to inherit a request ID from the incoming request, specify the name in this value. | -## Database + -| Parameter | Type | Description | -| :---------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------- | -| `DB_DRIVER` | `string` | **Required**. Chooses what dialect of database you want. Must be `postgres`. | -| `DATABASE_URL` | `string` | **Required**. Connection string for the database. | -| `DB_MAX_POOL_SIZE` | `int` | Sets the maximum number of open connections to the database. Defaults to 0 which is equivalent to an "unlimited" number of connections. | -| `DB_NAMESPACE` | `string` | Specifies the schema in which the tables are to be created in. | +## General {#general} -## JSON Web Tokens (JWT) -| Parameter | Type | Description | -| :---------------------------------------------------------------- | :------- | :----------------------------------------------------------------------------------- | -| `JWT_SECRET` | `string` | **Required**. The secret used to sign JWT tokens with. | -| `JWT_EXP` | `number` | How long tokens are valid for in seconds. Defaults to 3600 (1 hour). | -| `JWT_AUD` | `string` | The default JWT audience. Use audiences to group users. Defaults to `authenticated`. | -| `JWT_ADMIN_GROUP_NAME` | `string` | The name of the admin group (if enabled). Defaults to `admin`. | -| `JWT_DEFAULT_GROUP_NAME` | `string` | The default group to assign all new users to. | -## External Authentication Providers +### `project_id` {#project_id} -We support `apple`, `azure`, `bitbucket`, `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin`, `notion`, `spotify`, `slack`, `twitch`, `twitter` and `workos` for external authentication. +A string used to distinguish different Supabase projects on the same host. Defaults to the working directory name when running `supabase init`. -Use the names as the keys underneath `external` to configure each separately. -No external providers are required, but you must provide the required values if you choose to enable any. +
    +
  • Required: true
  • +
  • Default: None
  • +
-| Parameter | Type | Description | -| :------------------------------------------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `EXTERNAL_X_ENABLED` | `bool` | Whether this external provider is enabled or not | -| `EXTERNAL_X_CLIENT_ID` | `string` | **Required**. The OAuth2 Client ID registered with the external provider. | -| `EXTERNAL_X_SECRET` | `string` | **Required**. The OAuth2 Client Secret provided by the external provider when you registered. | -| `EXTERNAL_X_REDIRECT_URI` | `string` | **Required**. Also known as the callback url, this is the URI an OAuth2 provider will redirect to with the `code` and `state` values. | -| `EXTERNAL_X_URL` | `string` | The base URL used for constructing the URLs to request authorization and access tokens. Used by `gitlab` and `keycloak`. For `gitlab` it defaults to `https://gitlab.com`. For `keycloak` you need to set this to your realm url, (e.g. `https://keycloak.example.com/auth/realms/myrealm`) | +
-### Apple OAuth -To try out sign-in with Apple locally, you will need to do the following: - -1. Run GoTrue over `https` via a reverse proxy (like ngrok). -2. Generate the `crt` and `key` file. See [here](https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/) for more information. -3. Generate the `GOTRUE_EXTERNAL_APPLE_SECRET` by following this [post](https://medium.com/identity-beyond-borders/how-to-configure-sign-in-with-apple-77c61e336003)! - -## SMTP Configuration - -Sending email is not required, but highly recommended for password recovery. If `mailer_autoconfirm` is enabled, no emails will be sent out for `signup`, `recovery`, `invite`. Emails will only be sent out for `magiclink`. - -| Parameter | Type | Description | -| :-------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `SMTP_ADMIN_EMAIL` | `string` | **Required**. The `From` email address for all emails sent. | -| `SMTP_HOST` | `string` | **Required**. The mail server hostname to send emails through. | -| `SMTP_PORT` | `string` | **Required**. The port number to connect to the mail server on. | -| `SMTP_USER` | `string` | **Required**. If the mail server requires authentication, the username to use. | -| `SMTP_PASS` | `string` | **Required**. If the mail server requires authentication, the password to use. | -| `SMTP_MAX_FREQUENCY` | `string` | Controls the minimum amount of time that must pass before sending another signup confirmation or password reset email. The value is the number of seconds. Defaults to 60 seconds. | -| `SMTP_SENDER_NAME` | `string` | Sets the name of the sender. Defaults to the `SMTP_ADMIN_EMAIL` if not used. | - -## Email - -These options control the emails sent from GoTrue. - -| Parameter | Type | Description | -| :---------------------------------------------------------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `MAILER_AUTOCONFIRM` | `bool` | If you do not require email confirmation, you may set this to `true`. Defaults to `false`. | -| `MAILER_SECURE_EMAIL_CHANGE_ENABLED` | `bool` | If `true`, send an email to both the user's current and new email with a confirmation link, otherwise send an email with confirmation link only to new email. Defaults to `true`. | -| `MAILER_OTP_EXP` | `string` | Controls the duration an email link or otp is valid for. Defaults to 24 hrs. | -| `MAILER_URLPATHS_INVITE` | `string` | URL path to use in the user invite email. Defaults to `/`. | -| `MAILER_URLPATHS_CONFIRMATION` | `string` | URL path to use in the signup confirmation email. Defaults to `/`. | -| `MAILER_URLPATHS_RECOVERY` | `string` | URL path to use in the password reset email. Defaults to `/`. | -| `MAILER_URLPATHS_EMAIL_CHANGE` | `string` | URL path to use in the email change confirmation email. Defaults to `/`. | -| `MAILER_SUBJECTS_INVITE` | `string` | Email subject to use for user invite. Defaults to `You have been invited`. | -| `MAILER_SUBJECTS_CONFIRMATION` | `string` | Email subject to use for signup confirmation. Defaults to `Confirm Your Signup`. | -| `MAILER_SUBJECTS_RECOVERY` | `string` | Email subject to use for password reset. Defaults to `Reset Your Password`. | -| `MAILER_SUBJECTS_MAGIC_LINK` | `string` | Email subject to use for magic link email. Defaults to `Your Magic Link`. | -| `MAILER_SUBJECTS_EMAIL_CHANGE` | `string` | Email subject to use for email change confirmation. Defaults to `Confirm Email Change`. | - -## Email Templates - -| Parameter | Type | Description | -| :------------------------------------------------------------------ | :------- | :---------------------------------------------------------------------------------------------------------------------------- | -| `MAILER_TEMPLATES_INVITE` | `string` | URL path to an email template to use when inviting a user. `SiteURL`, `Email`, and `ConfirmationURL` variables are available. | - -Default Content (if template is unavailable): - -```html -

You have been invited

-

- You have been invited to create a user on {{ .SiteURL }}. Follow this link to - accept the invite: -

-

Accept the invite

-``` - -| Parameter | Type | Description | -| :------------------------------------------------------------------------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------- | -| `MAILER_TEMPLATES_CONFIRMATION` | `string` | URL path to an email template to use when confirming a signup. `SiteURL`, `Email`, and `ConfirmationURL` variables are available. | - -Default Content (if template is unavailable): - -```html -

Confirm your signup

- -

Follow this link to confirm your user:

-

Confirm your mail

-``` - -| Parameter | Type | Description | -| :---------------------------------------------------------------------- | :------- | :--------------------------------------------------------------------------------------------------------------------------------- | -| `MAILER_TEMPLATES_RECOVERY` | `string` | URL path to an email template to use when resetting a password. `SiteURL`, `Email`, and `ConfirmationURL` variables are available. | - -Default Content (if template is unavailable): - -```html -

Reset Password

- -

Follow this link to reset the password for your user:

-

Reset Password

-``` - -| Parameter | Type | Description | -| :-------------------------------------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------- | -| `MAILER_TEMPLATES_MAGIC_LINK` | `string` | URL path to an email template to use when sending magic link. `SiteURL`, `Email`, and `ConfirmationURL` variables are available. | - -Default Content (if template is unavailable): - -```html -

Magic Link

- -

Follow this link to login:

-

Log In

-``` - -| Parameter | Type | Description | -| :------------------------------------------------------------------------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `MAILER_TEMPLATES_EMAIL_CHANGE` | `string` | URL path to an email template to use when confirming the change of an email address. `SiteURL`, `Email`, `NewEmail` and `ConfirmationURL` variables are available. | - -Default Content (if template is unavailable): - -```html -

Confirm Change of Email

- -

- Follow this link to confirm the update of your email from {{ .Email }} to {{ - .NewEmail }}: -

-

Change Email

-``` - -### Phone Auth - -These options control the SMS-es sent from GoTrue. - -| Parameter | Type | Description | -| :------------------------------------------------------ | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | -| `SMS_AUTOCONFIRM` | `bool` | If you do not require phone confirmation, you may set this to `true`. Defaults to `false`. | -| `SMS_MAX_FREQUENCY` | `number` | Controls the minimum amount of time that must pass before sending another sms otp. The value is the number of seconds. Defaults to 60 (1 minute)). | -| `SMS_OTP_EXP` | `number` | Controls the duration an sms otp is valid for. | -| `SMS_OTP_LENGTH` | `number` | Controls the number of digits of the sms otp sent. Valid otp lengths are between [6 - 10] digits | -| `SMS_PROVIDER` | `string` | Available options are: `twilio`, `messagebird`, `textlocal`, and `vonage` | - -If you're using twilio, you can obtain your credentials from the [twilio dashboard](https://www.twilio.com/docs/usage/requests-to-twilio#credentials): - -You can find the `SMS_TWILIO_ACCOUNT_SID` and `SMS_TWILIO_AUTH_TOKEN` in the account info page of the twilio console dashboard. - -| Parameter | Type | Description | -| :---------------------------------------------------------------------------- | :------- | :------------------------------------------- | -| `SMS_TWILIO_ACCOUNT_SID` | `string` | Your twilio account string identifier (SID). | -| `SMS_TWILIO_AUTH_TOKEN` | `string` | Your twilio auth token. | -| `SMS_TWILIO_MESSAGE_SERVICE_SID` | `string` | Your twilio sender mobile number | - -If you're using MessageBird, you can obtain your credentials from the [MessageBird dashboard](https://dashboard.messagebird.com/en/developers/access): - -| Parameter | Type | Description | -| :-------------------------------------------------------------------- | :------- | :----------------------------------------------------------- | -| `SMS_MESSAGEBIRD_ACCESS_KEY` | `string` | Your MessageBird access key. | -| `SMS_MESSAGEBIRD_ORIGINATOR` | `string` | Your MessageBird sender phone number with + or company name. | - -## Logging - -| Parameter | Type | Description | -| :-------------------------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------- | -| `LOG_LEVEL` | `string` | Controls what log levels are output. Choose from `panic`, `fatal`, `error`, `warn`, `info`, or `debug`. Defaults to `info`. | -| `LOG_FILE` | `string` | If you wish logs to be written to a file, set `log_file` to a valid file path. | - -## Opentracing - -Currently Datadog is the only tracer supported. - -| Parameter | Type | Description | -| :-------------------------------------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `TRACING_ENABLED` | `bool` | Whether tracing is enabled or not. Defaults to `false`. | -| `TRACING_HOST` | `string` | The tracing destination. (e.g. `GOTRUE_TRACING_HOST=127.0.0.1`) | -| `TRACING_PORT` | `int` | The port for the tracing host. | -| `TRACING_TAGS` | `string` | A comma separated list of key:value pairs. These key value pairs will be added as tags to all opentracing spans. (e.g. `GOTRUE_TRACING_TAGS="tag1:value1,tag2:value2"`) | -| `SERVICE_NAME` | `string` | The name to use for the service. | - -## Webhooks - -| Parameter | Type | Description | -| :---------------------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `WEBHOOK_URL` | `string` | URL of the webhook receiver endpoint. This will be called when events like `validate`, `signup` or `login` occur. | -| `WEBHOOK_SECRET` | `string` | Shared secret to authorize webhook requests. This secret signs the [JSON Web Signature](https://tools.ietf.org/html/draft-ietf-jose-json-web-signature-41) of the request. You _should_ use this to verify the integrity of the request. Otherwise others can feed your webhook receiver with fake data. | -| `WEBHOOK_RETRIES` | `number` | How often GoTrue should try a failed hook. | -| `WEBHOOK_TIMEOUT_SEC` | `number` | Time between retries (in seconds). | -| `WEBHOOK_EVENTS` | `list` | Which events should trigger a webhook. You can provide a comma separated list. For example to listen to all events, provide the values `validate,signup,login`. | diff --git a/apps/reference/_gotrue/intro.mdx b/apps/reference/_gotrue/intro.mdx index 7029b5b8037..cb9a386f235 100644 --- a/apps/reference/_gotrue/intro.mdx +++ b/apps/reference/_gotrue/intro.mdx @@ -6,11 +6,9 @@ sidebar_label: Auth Server # Supabase Auth Server -The Supabase Auth Server (GoTrue) is a JWT based API for managing users and issuing JWT tokens. +The Supabase Auth Server (GoTrue) is a JSON Web Token (JWT)-based API for managing users and issuing access tokens. -GoTrue is a small open-source API written in golang, that can act as a self-standing API service for handling user registration and authentication for JAM projects. - -It's based on OAuth2 and JWT and will handle user signup, authentication and custom user data. +GoTrue is an open-source API written in Golang, that acts as a self-standing API service for handling user registration and authentication for JAM projects. It's based on OAuth2 and JWT and handles user signup, authentication, and custom user data. ## Client libraries diff --git a/apps/reference/_gotrue/usage.mdx b/apps/reference/_gotrue/usage.mdx new file mode 100644 index 00000000000..64eed5538f0 --- /dev/null +++ b/apps/reference/_gotrue/usage.mdx @@ -0,0 +1,18 @@ +--- +id: usage +slug: /usage +title: Usage +toc_max_heading_level: 3 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + +Documentation of the gotrue API. + + + + diff --git a/apps/reference/_storage/generated/config.mdx b/apps/reference/_storage/generated/config.mdx deleted file mode 100644 index 93872d8d73e..00000000000 --- a/apps/reference/_storage/generated/config.mdx +++ /dev/null @@ -1,290 +0,0 @@ ---- -id: config -slug: /config -title: Configuration -toc_max_heading_level: 3 ---- - - - -A sample `.env` file is located in the [storage repository](https://github.com/supabase/storage-api/blob/master/.env.sample). - -Use this file to configure your environment variables for your Storage server. - - - -## General {#general} - -### `ANON_KEY` {#ANON_KEY} - -A long-lived JWT with anonymous Postgres privileges. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `SERVICE_KEY` {#SERVICE_KEY} - -A long-lived JWT with Postgres privileges to bypass Row Level Security. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `TENANT_ID` {#TENANT_ID} - -The ID of a Storage tenant. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `REGION` {#REGION} - -Region of your S3 bucket. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `GLOBAL_S3_BUCKET` {#GLOBAL_S3_BUCKET} - -Name of your S3 bucket. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `POSTGREST_URL` {#POSTGREST_URL} - -The URL of your PostgREST server. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `PGRST_JWT_SECRET` {#PGRST_JWT_SECRET} - -A JWT Secret for the PostgREST database. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `DATABASE_URL` {#DATABASE_URL} - -The URL of your Postgres database. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `PGOPTIONS` {#PGOPTIONS} - -Additional configuration parameters for Postgres startup. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `FILE_SIZE_LIMIT` {#FILE_SIZE_LIMIT} - -The maximum file size allowed. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `STORAGE_BACKEND` {#STORAGE_BACKEND} - -The storage provider. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `FILE_STORAGE_BACKEND_PATH` {#FILE_STORAGE_BACKEND_PATH} - -The location storage when the "STORAGE_BACKEND" is set to "file". - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- - - -## Multi-tenant {#multitenant} - -### `IS_MULTITENANT` {#IS_MULTITENANT} - -Operate across multiple tenants. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `MULTITENANT_DATABASE_URL` {#MULTITENANT_DATABASE_URL} - -The URL of the multitenant Postgres database. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `X_FORWARDED_HOST_REGEXP` {#X_FORWARDED_HOST_REGEXP} - -TBD. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `POSTGREST_URL_SUFFIX` {#POSTGREST_URL_SUFFIX} - -The suffix for the PostgREST instance. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `ADMIN_API_KEYS` {#ADMIN_API_KEYS} - -Secure API key for administrative endpoints. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
- -### `ENCRYPTION_KEY` {#ENCRYPTION_KEY} - -An key for encryting/decrypting secrets. - -
    -
  • - Required: true -
  • -
  • - Default: None -
  • -
- -
diff --git a/apps/reference/_storage/generated/usage.mdx b/apps/reference/_storage/generated/usage.mdx deleted file mode 100644 index fc6d15eab32..00000000000 --- a/apps/reference/_storage/generated/usage.mdx +++ /dev/null @@ -1,1327 +0,0 @@ ---- -id: usage -slug: /usage -title: Usage -toc_max_heading_level: 3 ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - - - -API documentation for Supabase Storage - - - -## Object {#object} - -Object end-points - - - -### Delete an object {#delete-an-object} - -``` -DELETE /object/{bucketName}/{wildcard} -``` - - - -#### Parameters - -
    - -
  • -

    - bucketName - required - string -

    -
    -
  • - -
  • -

    - * - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Deprecated (use GET /object/authenticated/{bucketName} instead): Retrieve an object {#deprecated-use-get-objectauthenticatedbucketname-instead-retrieve-an-object} - -``` -GET /object/{bucketName}/{wildcard} -``` - - - -#### Parameters - -
    - -
  • -

    - bucketName - required - string -

    -
    -
  • - -
  • -

    - * - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -
- - - -### Update the object at an existing key {#update-the-object-at-an-existing-key} - -``` -PUT /object/{bucketName}/{wildcard} -``` - - - -#### Parameters - -
    - -
  • -

    - bucketName - required - string -

    -
    -
  • - -
  • -

    - * - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Upload a new object {#upload-a-new-object} - -``` -POST /object/{bucketName}/{wildcard} -``` - - - -#### Parameters - -
    - -
  • -

    - bucketName - required - string -

    -
    -
  • - -
  • -

    - * - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Delete multiple objects {#delete-multiple-objects} - -``` -DELETE /object/{bucketName} -``` - - - -#### Parameters - -
    - -
  • -

    - body - optional - -

    -
    -
  • - -
  • -

    - bucketName - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Retrieve an object {#retrieve-an-object} - -``` -GET /object/authenticated/{bucketName}/{wildcard} -``` - - - -#### Parameters - -
    - -
  • -

    - bucketName - required - string -

    -
    -
  • - -
  • -

    - * - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -
- - - -### Generate a presigned url to retrieve an object {#generate-a-presigned-url-to-retrieve-an-object} - -``` -POST /object/sign/{bucketName}/{wildcard} -``` - - - -#### Parameters - -
    - -
  • -

    - body - optional - -

    -
    -
  • - -
  • -

    - bucketName - required - string -

    -
    -
  • - -
  • -

    - * - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Retrieve an object via a presigned URL {#retrieve-an-object-via-a-presigned-url} - -``` -GET /object/sign/{bucketName}/{wildcard} -``` - - - -#### Parameters - -
    - -
  • -

    - token - required - string -

    -
    -
  • - -
  • -

    - bucketName - required - string -

    -
    -
  • - -
  • -

    - * - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -
- - - -### Generate presigned urls to retrieve objects {#generate-presigned-urls-to-retrieve-objects} - -``` -POST /object/sign/{bucketName} -``` - - - -#### Parameters - -
    - -
  • -

    - body - optional - -

    -
    -
  • - -
  • -

    - bucketName - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Moves an object {#moves-an-object} - -``` -POST /object/move -``` - - - -#### Parameters - -
    - -
  • -

    - body - optional - -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Search for objects under a prefix {#search-for-objects-under-a-prefix} - -``` -POST /object/list/{bucketName} -``` - - - -#### Parameters - -
    - -
  • -

    - body - optional - -

    -
    -
  • - -
  • -

    - bucketName - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Copies an object {#copies-an-object} - -``` -POST /object/copy -``` - - - -#### Parameters - -
    - -
  • -

    - body - optional - -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Retrieve an object from a public bucket {#retrieve-an-object-from-a-public-bucket} - -``` -GET /object/public/{bucketName}/{wildcard} -``` - - - -#### Parameters - -
    - -
  • -

    - bucketName - required - string -

    -
    -
  • - -
  • -

    - * - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -
- -## Bucket {#bucket} - -Bucket end-points - - - -### Create a bucket {#create-a-bucket} - -``` -POST /bucket/ -``` - - - -#### Parameters - -
    - -
  • -

    - body - optional - -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Gets all buckets {#gets-all-buckets} - -``` -GET /bucket/ -``` - - - -#### Parameters - -
    - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Empty a bucket {#empty-a-bucket} - -``` -POST /bucket/{bucketId}/empty -``` - - - -#### Parameters - -
    - -
  • -

    - bucketId - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Get details of a bucket {#get-details-of-a-bucket} - -``` -GET /bucket/{bucketId} -``` - - - -#### Parameters - -
    - -
  • -

    - bucketId - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Update properties of a bucket {#update-properties-of-a-bucket} - -``` -PUT /bucket/{bucketId} -``` - - - -#### Parameters - -
    - -
  • -

    - body - optional - -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
- - - -### Delete a bucket {#delete-a-bucket} - -``` -DELETE /bucket/{bucketId} -``` - - - -#### Parameters - -
    - -
  • -

    - bucketId - required - string -

    -
    -
  • - -
  • -

    - authorization - required - string -

    -
    -
  • - -
- - - - - -#### Responses - - - - - -Default Response - - - - - - - - - -Default Response - - - - - - - - - -
diff --git a/apps/reference/_supabase_dart/generated/auth-onauthstatechange.mdx b/apps/reference/_supabase_dart/generated/auth-onauthstatechange.mdx deleted file mode 100644 index cce37b26796..00000000000 --- a/apps/reference/_supabase_dart/generated/auth-onauthstatechange.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: auth-onauthstatechange -title: 'auth.onAuthStateChange()' -slug: /auth-onauthstatechange -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Receive a notification every time an auth event happens. - -```dart -final subscription = supabase.auth.onAuthStateChange((event, session) { - print(session?.user?.id); - // handle auth state change -}); -``` - -## Examples - -### Listen to auth changes - -```dart -final subscription = supabase.auth.onAuthStateChange((event, session) { - print(session?.user?.id); - // handle auth state change -}); -``` diff --git a/apps/reference/_supabase_dart/generated/auth-session.mdx b/apps/reference/_supabase_dart/generated/auth-session.mdx deleted file mode 100644 index 70948e84238..00000000000 --- a/apps/reference/_supabase_dart/generated/auth-session.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -id: auth-session -title: 'auth.session()' -slug: /auth-session -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Returns the session data, if there is an active session. - -```dart -final session = supabase.auth.session(); -``` - -## Examples - -### Get the session data - -```dart -final session = supabase.auth.session(); -``` diff --git a/apps/reference/_supabase_dart/generated/auth-signin.mdx b/apps/reference/_supabase_dart/generated/auth-signin.mdx deleted file mode 100644 index 97c0e53ec86..00000000000 --- a/apps/reference/_supabase_dart/generated/auth-signin.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: auth-signin -title: 'auth.signIn()' -slug: /auth-signin -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Log in an existing user, or login via a third-party provider. - -```dart -final res = await supabase.auth.signIn(email: 'example@email.com', password: 'example-password'); - -final user = res.data?.user; -final error = res.error; -``` - -## Notes - -- A user can sign up via email, phone number. -- If you provide `email` without a `password`, the user will be sent a magic link. -- The magic link's destination URL is determined by the SITE_URL config variable. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) -- Similarly, if you provide `phone` without a `password`, the user will be sent a one time password. -- If you are looking to sign users in with OAuth in Flutter apps, go to [`signInWithProvider()`](/docs/reference/dart/auth-signinwithprovider). - -## Examples - -### Sign in with email. - -```dart -final res = await supabase.auth.signIn(email: 'example@email.com', password: 'example-password'); - -final user = res.data?.user; -final error = res.error; -``` - -### Sign in with magic link. - -If email is provided, but no password is provided, the user will be sent a "magic link" to their email address, which they can click to open your application with a valid session. By default, a given user can only request a Magic Link once every 60 seconds. - -```dart -final res = await supabase.auth.signIn(email: 'example@email.com'); - -final error = res.error; -``` - -### Get OAuth sign in URL. - -Passing provider parameter to `signIn()` will return a URL to sign your user in via OAuth. -If you are looking to sign in a user via OAuth on Flutter app, go to [`signInWithProvider()`](/docs/reference/dart/auth-signinwithprovider). - -```dart -final res = await supabase.auth.signIn(provider: Provider.github); - -final url = res.data?.url; -final error = res.error; -``` diff --git a/apps/reference/_supabase_dart/generated/auth-signinwithprovider.mdx b/apps/reference/_supabase_dart/generated/auth-signinwithprovider.mdx deleted file mode 100644 index 4889854920d..00000000000 --- a/apps/reference/_supabase_dart/generated/auth-signinwithprovider.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: auth-signinwithprovider -title: 'auth.signInWithProvider()' -slug: /auth-signinwithprovider -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Signs the user in using third party OAuth providers. - -```dart -final res = await supabase.auth.signInWithProvider(Provider.github); - -final error = res.error; -``` - -## Notes - -- `auth.signInWithProvider()` is only available on `supabase_flutter` -- It will open the browser to the relevant login page. - -## Examples - -### Sign in with provider. - -```dart -final res = await supabase.auth.signInWithProvider(Provider.github); - -final error = res.error; -``` - -### With `redirectTo` - -Specify the redirect link to bring back the user via deeplink. -Note that `redirectTo` should be null for Flutter Web. - -```dart -final res = await supabase.auth.signInWithProvider( - Provider.github, - options: AuthOptions( - redirectTo: kIsWeb - ? null - : 'io.supabase.flutter://reset-callback/'), -); - -final error = res.error; -``` - -### With scopes - -If you need additional data from an OAuth provider, you can include a space-separated list of scopes in your request to get back an OAuth provider token. -You may also need to specify the scopes in the provider's OAuth app settings, depending on the provider. - -```dart -const { user, session, error } = await supabase.auth.signIn({ - provider: 'github' -}, { - scopes: 'repo gist notifications' -}) -const oAuthToken = session.provider_token // use to access provider API -``` diff --git a/apps/reference/_supabase_dart/generated/auth-signout.mdx b/apps/reference/_supabase_dart/generated/auth-signout.mdx deleted file mode 100644 index db73ae69d87..00000000000 --- a/apps/reference/_supabase_dart/generated/auth-signout.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: auth-signout -title: 'auth.signOut()' -slug: /auth-signout -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Signs out the current user, if there is a logged in user. - -```dart -final res = await supabase.auth.signOut(); - -final error = res.error; -``` - -## Examples - -### Sign out - -```dart -final res = await supabase.auth.signOut(); - -final error = res.error; -``` diff --git a/apps/reference/_supabase_dart/generated/auth-signup.mdx b/apps/reference/_supabase_dart/generated/auth-signup.mdx deleted file mode 100644 index 8272db0bea1..00000000000 --- a/apps/reference/_supabase_dart/generated/auth-signup.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: auth-signup -title: 'auth.signUp()' -slug: /auth-signup -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Creates a new user. - -```dart -final res = await supabase.auth.signUp('example@email.com', 'example-password'); - -final user = res.data?.user; -final error = res.error; -``` - -## Notes - -- By default, the user will need to verify their email address before logging in. If you would like to change this, you can disable "Email Confirmations" by going to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) -- If "Email Confirmations" is turned on, a user is returned but session will be null -- If "Email Confirmations" is turned off, both a `user` and a `session` will be returned -- When the user confirms their email address, they will be redirected to localhost:3000 by default. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) - -## Examples - -### Sign up. - -```dart -final res = await supabase.auth.signUp('example@email.com', 'example-password'); - -final user = res.data?.user; -final error = res.error; -``` - -### Sign up with third-party providers. - -If you are using Flutter, you can sign up with OAuth providers using the [`signInWithProvider()`](/docs/reference/dart/auth-signinwithprovider) method available on `supabase_flutter`. diff --git a/apps/reference/_supabase_dart/generated/auth-update.mdx b/apps/reference/_supabase_dart/generated/auth-update.mdx deleted file mode 100644 index 644a1a3e166..00000000000 --- a/apps/reference/_supabase_dart/generated/auth-update.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -id: auth-update -title: 'auth.update()' -slug: /auth-update -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Updates user data, if there is a logged in user. - -```dart -final res = await supabase.auth.update( - UserAttributes(data: {'hello': 'world'}) -); - -final error = res.error; -``` - -## Notes - -It's generally better to store user data in a table inside your public schema (i.e. `public.users`). -Use the `update()` method if you have data which rarely changes or is specific only to the logged in user. - -## Examples - -### Update a user's metadata. - -```dart -final res = await supabase.auth.update( - UserAttributes(data: {'hello': 'world'}) -); - -final error = res.error; -``` diff --git a/apps/reference/_supabase_dart/generated/auth-user.mdx b/apps/reference/_supabase_dart/generated/auth-user.mdx deleted file mode 100644 index d3e087d6f2b..00000000000 --- a/apps/reference/_supabase_dart/generated/auth-user.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -id: auth-user -title: 'auth.user()' -slug: /auth-user -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Returns the user data, if there is a logged in user. - -```dart -final user = supabase.auth.user(); -``` - -## Examples - -### Get the logged in user - -```dart -final user = supabase.auth.user(); -``` diff --git a/apps/reference/_supabase_dart/generated/containedby.mdx b/apps/reference/_supabase_dart/generated/containedby.mdx deleted file mode 100644 index 8666429320b..00000000000 --- a/apps/reference/_supabase_dart/generated/containedby.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: containedby -title: '.containedBy()' -slug: /containedby -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```dart -final res = await supabase - .from('countries') - .select('name, id, main_exports') - .containedBy('main_exports', ['cars', 'food', 'machine']) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('countries') - .select('name, id, main_exports') - .containedBy('main_exports', ['cars', 'food', 'machine']) - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .containedBy('main_exports', ['orks', 'surveillance', 'evil']) - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('countries') - .delete() - .containedBy('main_exports', ['cars', 'food', 'machine']) - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_countries') - .containedBy('main_exports', ['cars', 'food', 'machine']) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/contains.mdx b/apps/reference/_supabase_dart/generated/contains.mdx deleted file mode 100644 index f3c795c848f..00000000000 --- a/apps/reference/_supabase_dart/generated/contains.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: contains -title: '.contains()' -slug: /contains -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```dart -final res = await supabase - .from('countries') - .select('name, id, main_exports') - .contains('main_exports', ['oil']) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('countries') - .select('name, id, main_exports') - .contains('main_exports', ['oil']) - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .contains('main_exports', ['oil']) - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('countries') - .delete() - .contains('main_exports', ['oil']) - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_countries') - .contains('main_exports', ['oil']) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/delete.mdx b/apps/reference/_supabase_dart/generated/delete.mdx deleted file mode 100644 index 7a231ce7a99..00000000000 --- a/apps/reference/_supabase_dart/generated/delete.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: delete -title: 'Delete data: delete()' -slug: /delete -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs a DELETE on the table. - -```dart -final res = await supabase - .from('cities') - .delete() - .match({ 'id': 666 }) - .execute(); -``` - -## Notes - -- `delete()` should always be combined with [Filters](/docs/reference/dart/using-filters) to target the item(s) you wish to delete. - -## Examples - -### Delete records - -```dart -final res = await supabase - .from('cities') - .delete() - .match({ 'id': 666 }) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/eq.mdx b/apps/reference/_supabase_dart/generated/eq.mdx deleted file mode 100644 index ff87e716890..00000000000 --- a/apps/reference/_supabase_dart/generated/eq.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: eq -title: '.eq()' -slug: /eq -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` exactly matches the specified `value`. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The shire') - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The shire') - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .eq('name', 'San Francisco') - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .eq('name', 'Mordor') - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .eq('name', 'San Francisco') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/filter.mdx b/apps/reference/_supabase_dart/generated/filter.mdx deleted file mode 100644 index b5734905ab9..00000000000 --- a/apps/reference/_supabase_dart/generated/filter.mdx +++ /dev/null @@ -1,80 +0,0 @@ ---- -id: filter -title: '.filter()' -slug: /filter -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose `column` satisfies the filter. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .filter('name', 'in', '("Paris","Tokyo")') - .execute(); -``` - -## Notes - -- `.filter()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values, so it should only be used as an escape hatch in case other filters don't work. - ```dart - .filter('arraycol','cs','{"a","b"}') // Use Postgres array {} and 'cs' for contains. - .filter('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .filter('id','in','(6,7)') // Use Postgres list () and 'in' for in_ filter. - .filter('id','cs','{${mylist.join(',')}}') // You can insert a Dart array list. - ``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .filter('name', 'in', '("Paris","Tokyo")') - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .filter('name', 'in', '("Paris","Tokyo")') - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .filter('name', 'in', '("Paris","Tokyo")') - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .filter('name', 'in', '("Paris","Tokyo")') -``` - -### Filter embedded resources - -```dart -final res = await supabase - .from('cities') - .select('name, countries ( name )') - .filter('countries.name', 'in', '("France","Japan")') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/getsubscriptions.mdx b/apps/reference/_supabase_dart/generated/getsubscriptions.mdx deleted file mode 100644 index b8ecd471f98..00000000000 --- a/apps/reference/_supabase_dart/generated/getsubscriptions.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -id: getsubscriptions -title: 'getSubscriptions()' -slug: /getsubscriptions -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Returns an array of all your subscriptions. - -```dart -final subscriptions = supabase.getSubscriptions(); -``` - -## Examples - -### Get all subscriptions - -```dart -final subscriptions = supabase.getSubscriptions(); -``` diff --git a/apps/reference/_supabase_dart/generated/gt.mdx b/apps/reference/_supabase_dart/generated/gt.mdx deleted file mode 100644 index 3a1993e0473..00000000000 --- a/apps/reference/_supabase_dart/generated/gt.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: gt -title: '.gt()' -slug: /gt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is greater than the specified `value`. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .gt('country_id', 250) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .gt('country_id', 250) - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .gt('country_id', 250) - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .gt('country_id', 250) - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .gt('country_id', 250) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/gte.mdx b/apps/reference/_supabase_dart/generated/gte.mdx deleted file mode 100644 index f0f6e05224c..00000000000 --- a/apps/reference/_supabase_dart/generated/gte.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: gte -title: '.gte()' -slug: /gte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is greater than or equal to the specified `value`. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .gte('country_id', 250) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .gte('country_id', 250) - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .gte('country_id', 250) - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .gte('country_id', 250) - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .gte('country_id', 250) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/ilike.mdx b/apps/reference/_supabase_dart/generated/ilike.mdx deleted file mode 100644 index 122d7d6f4f5..00000000000 --- a/apps/reference/_supabase_dart/generated/ilike.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: ilike -title: '.ilike()' -slug: /ilike -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value in the stated `column` matches the supplied `pattern` (case insensitive). - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .ilike('name', '%la%') - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .ilike('name', '%la%') - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .ilike('name', '%la%') - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .ilike('name', '%la%') - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .ilike('name', '%la%') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/in_.mdx b/apps/reference/_supabase_dart/generated/in_.mdx deleted file mode 100644 index 183ffa5e800..00000000000 --- a/apps/reference/_supabase_dart/generated/in_.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: in_ -title: '.in_()' -slug: /in_ -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is found on the specified `values`. - -`is_` and `in_` filter methods are suffixed with `_` to avoid collisions with reserved keywords. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .in_('name', ['Rio de Janeiro', 'San Francisco']) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .in_('name', ['Rio de Janeiro', 'San Francisco']) - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .in_('name', ['Rio de Janeiro', 'San Francisco']) - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .in_('name', ['Rio de Janeiro', 'San Francisco']) - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .in_('name', ['Rio de Janeiro', 'San Francisco']) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/index.mdx b/apps/reference/_supabase_dart/generated/index.mdx deleted file mode 100644 index fbfdbb3875f..00000000000 --- a/apps/reference/_supabase_dart/generated/index.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -id: index -title: 'Getting started' -slug: getting-started -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Supabase Dart. diff --git a/apps/reference/_supabase_dart/generated/initializing.mdx b/apps/reference/_supabase_dart/generated/initializing.mdx deleted file mode 100644 index 87d744318c2..00000000000 --- a/apps/reference/_supabase_dart/generated/initializing.mdx +++ /dev/null @@ -1,37 +0,0 @@ ---- -id: initializing -title: 'Initializing' -slug: /initializing -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -## Dart - -You can initialize a new Supabase client using the `SupabaseClient()` method. - -The Supabase client is your entrypoint to the rest of the Supabase functionality -and is the easiest way to interact with everything we offer within the Supabase ecosystem. - -## Flutter - -For `supabase_flutter`, you will be using the static `initialize()` method on `Supabase` class. - -## Examples - -### Dart SupabaseClient() - -```dart -final supabase = SupabaseClient('https://xyzcompany.supabase.co', 'public-anon-key'); -``` - -### Flutter initialize() - -```dart title="main.dart" -Future main() async { - await Supabase.initialize(url: 'https://xyzcompany.supabase.co', anonKey: 'public-anon-key'); - runApp(MyApp()); -} -``` diff --git a/apps/reference/_supabase_dart/generated/insert.mdx b/apps/reference/_supabase_dart/generated/insert.mdx deleted file mode 100644 index 52ceb6a8385..00000000000 --- a/apps/reference/_supabase_dart/generated/insert.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: insert -title: 'Create data: insert()' -slug: /insert -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs an INSERT into the table. - -```dart -final res = await supabase - .from('cities') - .insert([ - {'name': 'The Shire', 'country_id': 554} - ]).execute(); -``` - -## Notes - -- By default, every time you run `insert()`, the client library will make a `select` to return the full record. - This is convenient, but it can also cause problems if your Policies are not configured to allow the `select` operation. - If you are using Row Level Security and you are encountering problems, try setting the `returning` param to `minimal`. - -## Examples - -### Create a record - -```dart -final res = await supabase - .from('cities') - .insert([ - {'name': 'The Shire', 'country_id': 554} - ]).execute(); -``` - -### Bulk create - -```dart -final res = await supabase - .from('cities') - .insert([ - {'name': 'The Shire', 'country_id': 554}, - {'name': 'Rohan', 'country_id': 555}, - ]).execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/invoke.mdx b/apps/reference/_supabase_dart/generated/invoke.mdx deleted file mode 100644 index 18e268fd562..00000000000 --- a/apps/reference/_supabase_dart/generated/invoke.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: invoke -title: 'invoke()' -slug: /invoke -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Invokes a Supabase Function. See the [guide](/docs/guides/functions) for details on writing Functions. - -```dart -final res = await supabaseClient.functions.invoke('hello', body: {'foo': 'baa'}); -final data = res.data; -final error = res.error; -``` - -## Notes - -- Requires an Authorization header. -- Invoke params generally match the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) spec. - -## Examples - -### Basic invocation. - -```dart -final res = await supabaseClient.functions.invoke('hello', body: {'foo': 'baa'}); -final data = res.data; -final error = res.error; -``` - -### Specifying response type. - -By default, `invoke()` will parse the response as JSON. You can parse the response in the following formats: `json`, `blob`, `text`, and `arrayBuffer`. - -```dart -final res = await supabaseClient.functions.invoke( - 'hello', - body: {'foo': 'baa'}, - responseType: ResponseType.text, -); -final data = res.data; -final error = res.error; -``` - -### Parsing custom headers. - -Any `headers` will be passed through to the function. A common pattern is to pass a logged-in user's JWT token as an Authorization header. - -```dart -final res = await supabaseClient.functions.invoke( - 'hello', - body: {'foo': 'baa'}, - headers: { - 'Authorization': 'Bearer ${supabase.auth.session()?.access_token}' - }, -); -``` diff --git a/apps/reference/_supabase_dart/generated/is_.mdx b/apps/reference/_supabase_dart/generated/is_.mdx deleted file mode 100644 index 59591e6fb80..00000000000 --- a/apps/reference/_supabase_dart/generated/is_.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: is_ -title: '.is_()' -slug: /is_ -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -A check for exact equality (null, true, false), finds all rows whose value on the stated `column` exactly match the specified `value`. - -`is_` and `in_` filter methods are suffixed with `_` to avoid collisions with reserved keywords. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .is_('name', null) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .is_('name', null) - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .is_('name', null) - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .is_('name', null) - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .is_('name', null) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/like.mdx b/apps/reference/_supabase_dart/generated/like.mdx deleted file mode 100644 index 641eea3ca57..00000000000 --- a/apps/reference/_supabase_dart/generated/like.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -id: like -title: '.like()' -slug: /like -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value in the stated `column` matches the supplied `pattern` (case sensitive). - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .like('name', '%la%') - .execute(); -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - pattern - - - required - - - string - -

    -
    - -The pattern to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .like('name', '%la%') - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .like('name', '%la%') - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .like('name', '%la%') - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .like('name', '%la%') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/limit.mdx b/apps/reference/_supabase_dart/generated/limit.mdx deleted file mode 100644 index 0270d2ad524..00000000000 --- a/apps/reference/_supabase_dart/generated/limit.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: limit -title: 'limit()' -slug: /limit -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Limits the result with the specified count. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .limit(1) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .limit(1) - .execute(); -``` - -### With embedded resources - -```dart -final res = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .limit(1, foreignTable: 'cities' ) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/lt.mdx b/apps/reference/_supabase_dart/generated/lt.mdx deleted file mode 100644 index e69bd0fa9cb..00000000000 --- a/apps/reference/_supabase_dart/generated/lt.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: lt -title: '.lt()' -slug: /lt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is less than the specified `value`. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .lt('country_id', 250) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .lt('country_id', 250) - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .lt('country_id', 250) - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .lt('country_id', 250) - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .lt('country_id', 250) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/lte.mdx b/apps/reference/_supabase_dart/generated/lte.mdx deleted file mode 100644 index 039a1458f6c..00000000000 --- a/apps/reference/_supabase_dart/generated/lte.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -id: lte -title: '.lte()' -slug: /lte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is less than or equal to the specified `value`. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .lte('country_id', 250) - .execute(); -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .lte('country_id', 250) - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .lte('country_id', 250) - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .lte('country_id', 250) - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .lte('country_id', 250) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/match.mdx b/apps/reference/_supabase_dart/generated/match.mdx deleted file mode 100644 index 11beeffddce..00000000000 --- a/apps/reference/_supabase_dart/generated/match.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: match -title: '.match()' -slug: /match -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose columns match the specified `query` object. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .match({'name': 'Beijing', 'country_id': 156}) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .match({'name': 'Beijing', 'country_id': 156}) - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .match({'name': 'Beijing', 'country_id': 156}) - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .match({'name': 'Beijing', 'country_id': 156}) - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .match({'name': 'Beijing', 'country_id': 156}) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/neq.mdx b/apps/reference/_supabase_dart/generated/neq.mdx deleted file mode 100644 index eb8606e1db3..00000000000 --- a/apps/reference/_supabase_dart/generated/neq.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: neq -title: '.neq()' -slug: /neq -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` doesn't match the specified `value`. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .neq('name', 'The shire') - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .neq('name', 'The shire') - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .neq('name', 'San Francisco') - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .neq('name', 'Mordor') - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities') - .neq('name', 'Lagos') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/not.mdx b/apps/reference/_supabase_dart/generated/not.mdx deleted file mode 100644 index 73983810af5..00000000000 --- a/apps/reference/_supabase_dart/generated/not.mdx +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: not -title: '.not()' -slug: /not -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows which doesn't satisfy the filter. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .not('name', 'eq', 'Paris') - .execute(); -``` - -## Notes - -- `.not()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```dart - .not('name','eq','Paris') - .not('arraycol','cs','{"a","b"}') // Use Postgres array {} for array column and 'cs' for contains. - .not('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .not('id','in','(6,7)') // Use Postgres list () and 'in' for in_ filter. - .not('id','in','(${mylist.join(',')})') // You can insert a Dart list array. - ``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .not('name', 'eq', 'Paris') - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .not('name', 'eq', 'Paris') - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('cities') - .delete() - .not('name', 'eq', 'Paris') - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_cities) - .not('name', 'eq', 'Paris') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/or.mdx b/apps/reference/_supabase_dart/generated/or.mdx deleted file mode 100644 index 65c0524c452..00000000000 --- a/apps/reference/_supabase_dart/generated/or.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: or -title: '.or()' -slug: /or -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows satisfying at least one of the filters. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .or('id.eq.20,id.eq.30') - .execute(); -``` - -## Notes - -- `.or()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```dart - .or('id.in.(6,7),arraycol.cs.{"a","b"}') // Use Postgres list () and 'in' for in_ filter. Array {} and 'cs' for contains. - .or('id.in.(${mylist.join(',')}),arraycol.cs.{${mylistArray.join(',')}}') // You can insert a Dart list for list or array column. - .or('id.in.(${mylist.join(',')}),rangecol.cs.(${mylistRange.join(',')}]') // You can insert a Dart list for list or range column. - ``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .or('id.eq.20,id.eq.30') - .execute(); -``` - -### Use `or` with `and` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .or('id.gt.20,and(name.eq.New Zealand,name.eq.France)') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/order.mdx b/apps/reference/_supabase_dart/generated/order.mdx deleted file mode 100644 index c4e4820d63f..00000000000 --- a/apps/reference/_supabase_dart/generated/order.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -id: order -title: 'order()' -slug: /order -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Orders the result with the specified column. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .order('id', ascending: false ) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .order('id', ascending: false ) - .execute(); -``` - -### With embedded resources - -```dart -final res = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .order('name', foreignTable: 'cities') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/overlaps.mdx b/apps/reference/_supabase_dart/generated/overlaps.mdx deleted file mode 100644 index 7dfd7db1a18..00000000000 --- a/apps/reference/_supabase_dart/generated/overlaps.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: overlaps -title: '.overlaps()' -slug: /overlaps -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```dart -final res = await supabase - .from('countries') - .select('name, id, main_exports') - .overlaps('main_exports', ['computers', 'minerals']) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('countries') - .select('name, id, main_exports') - .overlaps('main_exports', ['computers', 'minerals']) - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .overlaps('main_exports', ['computers', 'minerals']) - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('countries') - .delete() - .overlaps('main_exports', ['computers', 'minerals']) - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_countries') - .overlaps('main_exports', ['computers', 'minerals']) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/range.mdx b/apps/reference/_supabase_dart/generated/range.mdx deleted file mode 100644 index 44bc2f0e702..00000000000 --- a/apps/reference/_supabase_dart/generated/range.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -id: range -title: 'range()' -slug: /range -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Limits the result to rows within the specified range, inclusive. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .range(0,3) - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .range(0,3) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/rangeadjacent.mdx b/apps/reference/_supabase_dart/generated/rangeadjacent.mdx deleted file mode 100644 index 56957655479..00000000000 --- a/apps/reference/_supabase_dart/generated/rangeadjacent.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: rangeadjacent -title: '.rangeAdjacent()' -slug: /rangeadjacent -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```dart -final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeAdjacent('population_range_millions', '[70, 185]') - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeAdjacent('population_range_millions', '[70, 185]') - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .rangeAdjacent('population_range_millions', '[70, 185]') - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('countries') - .delete() - .rangeAdjacent('population_range_millions', '[70, 185]') - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_countries') - .rangeAdjacent('population_range_millions', '[70, 185]') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/rangegt.mdx b/apps/reference/_supabase_dart/generated/rangegt.mdx deleted file mode 100644 index de3edd00d77..00000000000 --- a/apps/reference/_supabase_dart/generated/rangegt.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: rangegt -title: '.rangeGt()' -slug: /rangegt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```dart -final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGt('population_range_millions', '[150, 250]') - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGt('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .rangeGt('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('countries') - .delete() - .rangeGt('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_countries') - .rangeGt('population_range_millions', '[150, 250]') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/rangegte.mdx b/apps/reference/_supabase_dart/generated/rangegte.mdx deleted file mode 100644 index 13677d21c25..00000000000 --- a/apps/reference/_supabase_dart/generated/rangegte.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: rangegte -title: '.rangeGte()' -slug: /rangegte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```dart -final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGte('population_range_millions', '[150, 250]') - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGte('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .rangeGte('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('countries') - .delete() - .rangeGte('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_countries') - .rangeGte('population_range_millions', '[150, 250]') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/rangelt.mdx b/apps/reference/_supabase_dart/generated/rangelt.mdx deleted file mode 100644 index 132d0472f23..00000000000 --- a/apps/reference/_supabase_dart/generated/rangelt.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: rangelt -title: '.rangeLt()' -slug: /rangelt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```dart -final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLt('population_range_millions', '[150, 250]') - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLt('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .rangeLt('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('countries') - .delete() - .rangeLt('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_countries') - .rangeLt('population_range_millions', '[150, 250]') - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/rangelte.mdx b/apps/reference/_supabase_dart/generated/rangelte.mdx deleted file mode 100644 index 558908e2b91..00000000000 --- a/apps/reference/_supabase_dart/generated/rangelte.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: rangelte -title: '.rangeLte()' -slug: /rangelte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```dart -final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLte('population_range_millions', '[150, 250]') - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLte('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `update()` - -```dart -final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .rangeLte('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `delete()` - -```dart -final res = await supabase - .from('countries') - .delete() - .rangeLte('population_range_millions', '[150, 250]') - .execute(); -``` - -### With `rpc()` - -```dart -// Only valid if the Stored Procedure returns a table type. -final res = await supabase - .rpc('echo_all_countries') - .rangeLte('population_range_millions', [150, 250]) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/removesubscription.mdx b/apps/reference/_supabase_dart/generated/removesubscription.mdx deleted file mode 100644 index bca627c7b78..00000000000 --- a/apps/reference/_supabase_dart/generated/removesubscription.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: removesubscription -title: 'removeSubscription()' -slug: /removesubscription -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Removes an active subscription and returns the number of open connections. - -```dart -supabase.removeSubscription(mySubscription); -``` - -## Notes - -- Removing subscriptions is a great way to maintain the performance of your project's database. Supabase will automatically handle cleanup 30 seconds after a user is disconnected, but unused subscriptions may cause degradation as more users are simultaneously subscribed. - -## Examples - -### Remove a subscription - -```dart -supabase.removeSubscription(mySubscription); -``` diff --git a/apps/reference/_supabase_dart/generated/reset-password-email.mdx b/apps/reference/_supabase_dart/generated/reset-password-email.mdx deleted file mode 100644 index 15d7ea1d5bc..00000000000 --- a/apps/reference/_supabase_dart/generated/reset-password-email.mdx +++ /dev/null @@ -1,61 +0,0 @@ ---- -id: reset-password-email -title: 'Reset Password (Email)' -slug: /reset-password-email -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Sends a reset request to an email address. - -```dart -final res = await supabase.auth.api.resetPasswordForEmail('user@example.com'); - -final error = res.error; -``` - -## Notes - -Sends a reset request to an email address. - -When the user clicks the reset link in the email they will be forwarded to: - -`#access_token=x&refresh_token=y&expires_in=z&token_type=bearer&type=recovery` - -Your app must detect `type=recovery` in the fragment and display a password reset form to the user. - -You should then use the access_token in the url and new password to update the user as follows: - -```dart -final res = await supabase.auth.api.updateUser( - accessToken, - UserAttributes(password: 'NEW_PASSWORD'), -); -``` - -## Examples - -### Reset password - -```dart -final res = await supabase.auth.api.resetPasswordForEmail('user@example.com'); - -final error = res.error; -``` - -### Reset password for Flutter - -You can pass `redirectTo` to open the app via deeplink when user opens the password reset email. - -```dart -final res = await supabase.auth.api.resetPasswordForEmail( - 'user@example.com', - options: AuthOptions(redirectTo: kIsWeb - ? null - : 'io.supabase.flutter://reset-callback/'), -); - -final error = res.error; -``` diff --git a/apps/reference/_supabase_dart/generated/rpc.mdx b/apps/reference/_supabase_dart/generated/rpc.mdx deleted file mode 100644 index 4712abc8c57..00000000000 --- a/apps/reference/_supabase_dart/generated/rpc.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: rpc -title: 'Stored Procedures: rpc()' -slug: /rpc -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -You can call stored procedures as a "Remote Procedure Call". - -That's a fancy way of saying that you can put some logic into your database then call it from anywhere. -It's especially useful when the logic rarely changes - like password resets and updates. - -```dart -final res = await supabase - .rpc('hello_world') - .execute(); -``` - -## Examples - -### Call a stored procedure - -This is an example invoking a stored procedure. - -```dart -final res = await supabase - .rpc('hello_world') - .execute(); -``` - -### With Parameters - -```dart -final res = await supabase - .rpc('echo_city', params: { 'name': 'The Shire' }) - .execute(); -``` - -### With count option - -You can specify a count option to get the row count along with your data. -Allowed values for count option are `exact`, `planned` and `estimated`. - -```dart -final res = await supabase - .rpc('hello_world') - .execute(count: CountOption.exact); -``` diff --git a/apps/reference/_supabase_dart/generated/select.mdx b/apps/reference/_supabase_dart/generated/select.mdx deleted file mode 100644 index 6817e616596..00000000000 --- a/apps/reference/_supabase_dart/generated/select.mdx +++ /dev/null @@ -1,147 +0,0 @@ ---- -id: select -title: 'Fetch data: select()' -slug: /select -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs vertical filtering with SELECT. - -```dart -final res = await supabase - .from('cities') - .select() - .execute(); - -final data = res.data; -final error = res.error; -``` - -## Notes - -- By default, Supabase projects will return a maximum of 1,000 rows. This setting can be changed in Project API Settings. It's recommended that you keep it low to limit the payload size of accidental or malicious requests. You can use `range()` queries to paginate through your data. -- `select()` can be combined with [Modifiers](/docs/reference/dart/using-modifiers) -- `select()` can be combined with [Filters](/docs/reference/dart/using-filters) -- If using the Supabase hosted platform `apikey` is technically a reserved keyword, since the API gateway will pluck it out for authentication. [It should be avoided as a column name](https://github.com/supabase/supabase/issues/5465). - -## Examples - -### Getting your data - -```dart -final res = await supabase - .from('cities') - .select() - .execute(); - -final data = res.data; -final error = res.error; -``` - -### Selecting specific columns - -You can select specific fields from your tables. - -```dart -final res = await supabase - .from('cities') - .select('name') - .execute(); -``` - -### Query foreign tables - -If your database has relationships, you can query related tables too. - -```dart -final res = await supabase - .from('countries') - .select(''' - name, - cities ( - name - ) - ''') - .execute(); -``` - -### Query the same foreign table multiple times - -Sometimes you will need to query the same foreign table twice. -In this case, you can use the name of the joined column to identify -which join you intend to use. For convenience, you can also give an -alias for each column. For example, if we had a shop of products, -and we wanted to get the supplier and the purchaser at the same time -(both in the users) table: - -```dart -final res = await supabase - .from('products') - .select(''' - id, - supplier:supplier_id ( name ), - purchaser:purchaser_id ( name ) - ''') - .execute(); -``` - -### Filtering with inner joins - -If you want to filter a table based on a child table's values you can use the `!inner()` function. For example, if you wanted -to select all rows in a `message` table which belong to a user with the `username` "Jane": - -```dart -final res = await supabase - .from('messages') - .select('*, users!inner(*)') - .eq('users.username', 'Jane') - .execute(); -``` - -### Querying with count option - -You can get the number of rows by using the count option. -Allowed values for count option are [exact](https://postgrest.org/en/stable/api.html#exact-count), [planned](https://postgrest.org/en/stable/api.html#planned-count) and [estimated](https://postgrest.org/en/stable/api.html#estimated-count). - -```dart -final res = await supabase - .from('cities') - .select('name') - .execute(count: CountOption.exact); - -final count = res.count; -``` - -### Querying JSON data - -If you have data inside of a JSONB column, you can apply select -and query filters to the data values. Postgres offers a -[number of operators](https://www.postgresql.org/docs/current/functions-json.html) -for querying JSON data. Also see -[PostgREST docs](http://postgrest.org/en/v7.0.0/api.html#json-columns) for more details. - -```dart -final res = await supabase - .from('users') - .select(''' - id, name, - address->street - ''') - .eq('address->postcode', 90210) - .execute(); -``` - -### Return data as CSV - -By default the data is returned in JSON format, however you can also request for it to be returned as Comma Separated Values. - -```dart -final res = await supabase - .from('users') - .select() - .csv() - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/single.mdx b/apps/reference/_supabase_dart/generated/single.mdx deleted file mode 100644 index 2af86d71db7..00000000000 --- a/apps/reference/_supabase_dart/generated/single.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -id: single -title: 'single()' -slug: /single -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieves only one row from the result. Result must be one row (e.g. using limit), otherwise this will result in an error. - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .single() - .execute(); -``` - -## Examples - -### With `select()` - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .single() - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/storage-createbucket.mdx b/apps/reference/_supabase_dart/generated/storage-createbucket.mdx deleted file mode 100644 index c8754e89a7a..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-createbucket.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: storage-createbucket -title: 'createBucket()' -slug: /storage-createbucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Creates a new Storage bucket - -```dart -final res = await supabase - .storage - .createBucket('avatars'); -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: `insert` - - `objects` permissions: none - -## Examples - -### Create bucket - -```dart -final res = await supabase - .storage - .createBucket('avatars'); -``` diff --git a/apps/reference/_supabase_dart/generated/storage-deletebucket.mdx b/apps/reference/_supabase_dart/generated/storage-deletebucket.mdx deleted file mode 100644 index 9d712da11dc..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-deletebucket.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: storage-deletebucket -title: 'deleteBucket()' -slug: /storage-deletebucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Deletes an existing bucket. A bucket can't be deleted with existing objects inside it. You must first `empty()` the bucket. - -```dart -final res = await supabase - .storage - .deleteBucket('avatars'); -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` and `delete` - - `objects` permissions: none - -## Examples - -### Delete bucket - -```dart -final res = await supabase - .storage - .deleteBucket('avatars'); -``` diff --git a/apps/reference/_supabase_dart/generated/storage-emptybucket.mdx b/apps/reference/_supabase_dart/generated/storage-emptybucket.mdx deleted file mode 100644 index 8755664388e..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-emptybucket.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: storage-emptybucket -title: 'emptyBucket()' -slug: /storage-emptybucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Removes all objects inside a single bucket. - -```dart -final res = await supabase - .storage - .emptyBucket('avatars'); -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: `select` and `delete` - -## Examples - -### Empty bucket - -```dart -final res = await supabase - .storage - .emptyBucket('avatars'); -``` diff --git a/apps/reference/_supabase_dart/generated/storage-from-createsignedurl.mdx b/apps/reference/_supabase_dart/generated/storage-from-createsignedurl.mdx deleted file mode 100644 index dc267a1eadd..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-from-createsignedurl.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: storage-from-createsignedurl -title: 'from.createSignedUrl()' -slug: /storage-from-createsignedurl -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Create signed url to download file without requiring permissions. This URL can be valid for a set number of seconds. - -```dart -final res = await supabase - .storage - .from('avatars') - .createSignedUrl('avatar1.png', 60); - -final signedURL = res.data; -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - -## Examples - -### Create Signed URL - -```dart -final res = await supabase - .storage - .from('avatars') - .createSignedUrl('avatar1.png', 60); - -final signedURL = res.data; -``` diff --git a/apps/reference/_supabase_dart/generated/storage-from-download.mdx b/apps/reference/_supabase_dart/generated/storage-from-download.mdx deleted file mode 100644 index 653c6645a85..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-from-download.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: storage-from-download -title: 'from.download()' -slug: /storage-from-download -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Downloads a file. - -```dart -final res = await supabase - .storage - .from('avatars') - .download('avatar1.png'); -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - -## Examples - -### Download file - -```dart -final res = await supabase - .storage - .from('avatars') - .download('avatar1.png'); -``` diff --git a/apps/reference/_supabase_dart/generated/storage-from-getpublicurl.mdx b/apps/reference/_supabase_dart/generated/storage-from-getpublicurl.mdx deleted file mode 100644 index e959b3786c1..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-from-getpublicurl.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -id: storage-from-getpublicurl -title: 'from.getPublicUrl()' -slug: /storage-from-getpublicurl -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieve URLs for assets in public buckets - -```dart -final res = supabase - .storage - .from('public-bucket') - .getPublicUrl('avatar1.png'); - -final publicURL = res.data; -``` - -## Notes - -- The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://app.supabase.com), clicking the overflow menu on a bucket and choosing "Make public" -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: none - -## Examples - -### Returns the URL for an asset in a public bucket - -```dart -final res = supabase - .storage - .from('public-bucket') - .getPublicUrl('avatar1.png'); - -final publicURL = res.data; -``` diff --git a/apps/reference/_supabase_dart/generated/storage-from-list.mdx b/apps/reference/_supabase_dart/generated/storage-from-list.mdx deleted file mode 100644 index dc27b6f191c..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-from-list.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: storage-from-list -title: 'from.list()' -slug: /storage-from-list -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Lists all the files within a bucket. - -```dart -final res = await supabase - .storage - .from('avatars') - .list(); -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - -## Examples - -### List files in a bucket - -```dart -final res = await supabase - .storage - .from('avatars') - .list(); -``` diff --git a/apps/reference/_supabase_dart/generated/storage-from-move.mdx b/apps/reference/_supabase_dart/generated/storage-from-move.mdx deleted file mode 100644 index 56858fe3a8d..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-from-move.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: storage-from-move -title: 'from.move()' -slug: /storage-from-move -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Moves an existing file, optionally renaming it at the same time. - -```dart -final res = await supabase - .storage - .from('avatars') - .move('public/avatar1.png', 'private/avatar2.png'); -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - -## Examples - -### Move file - -```dart -final res = await supabase - .storage - .from('avatars') - .move('public/avatar1.png', 'private/avatar2.png'); -``` diff --git a/apps/reference/_supabase_dart/generated/storage-from-remove.mdx b/apps/reference/_supabase_dart/generated/storage-from-remove.mdx deleted file mode 100644 index 691cc4153db..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-from-remove.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: storage-from-remove -title: 'from.remove()' -slug: /storage-from-remove -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Deletes files within the same bucket - -```dart -final res = await supabase - .storage - .from('avatars') - .remove(['avatar1.png']); -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `delete` and `select` - -## Examples - -### Delete file - -```dart -final res = await supabase - .storage - .from('avatars') - .remove(['avatar1.png']); -``` diff --git a/apps/reference/_supabase_dart/generated/storage-from-update.mdx b/apps/reference/_supabase_dart/generated/storage-from-update.mdx deleted file mode 100644 index f80f0759636..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-from-update.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -id: storage-from-update -title: 'from.update()' -slug: /storage-from-update -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Replaces an existing file at the specified path with a new one. - -```dart -final avatarFile = File('path/to/file'); -final res = await supabase - .storage - .from('avatars') - .update('public/avatar1.png', avatarFile, fileOptions: FileOptions( - cacheControl: '3600', - upsert: false - )); -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - -## Examples - -### Update file - -```dart -final avatarFile = File('path/to/file'); -final res = await supabase - .storage - .from('avatars') - .update('public/avatar1.png', avatarFile, fileOptions: FileOptions( - cacheControl: '3600', - upsert: false - )); -``` diff --git a/apps/reference/_supabase_dart/generated/storage-from-upload.mdx b/apps/reference/_supabase_dart/generated/storage-from-upload.mdx deleted file mode 100644 index 2db6c5c27bf..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-from-upload.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: storage-from-upload -title: 'from.upload()' -slug: /storage-from-upload -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Uploads a file to an existing bucket. - -```dart -final avatarFile = File('path/to/file'); -final res = await supabase - .storage - .from('avatars') - .upload('public/avatar1.png', avatarFile, fileOptions: FileOptions( - cacheControl: '3600', - upsert: false - )); -``` - -## Parameters - -
    - -
  • -

    - - path - - - required - - - string - -

    -
    - -The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. - -
    - -
  • - -
  • -

    - - fileBody - - - required - - - ArrayBuffer | ArrayBufferView | Blob | Buffer | File | FormData | ReadableStream | ReadableStream | URLSearchParams | string - -

    -
    - -The body of the file to be stored in the bucket. - -
    - -
  • - -
  • -

    - - fileOptions - - - optional - - - FileOptions - -

    -
    - -HTTP headers. -`cacheControl`: string, the `Cache-Control: max-age=` seconds value. -`contentType`: string, the `Content-Type` header value. Should be specified if using a `fileBody` that is neither `Blob` nor `File` nor `FormData`, otherwise will default to `text/plain;charset=UTF-8`. -`upsert`: boolean, whether to perform an upsert. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `insert` - -## Examples - -### Upload file - -```dart -final avatarFile = File('path/to/file'); -final res = await supabase - .storage - .from('avatars') - .upload('public/avatar1.png', avatarFile, fileOptions: FileOptions( - cacheControl: '3600', - upsert: false - )); -``` diff --git a/apps/reference/_supabase_dart/generated/storage-getbucket.mdx b/apps/reference/_supabase_dart/generated/storage-getbucket.mdx deleted file mode 100644 index a6b7ccb20a1..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-getbucket.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: storage-getbucket -title: 'getBucket()' -slug: /storage-getbucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieves the details of an existing Storage bucket. - -```dart -final res = await supabase - .storage - .getBucket('avatars') -``` - -## Parameters - -
    - -
  • -

    - - id - - - required - - - string - -

    -
    - -The unique identifier of the bucket you would like to retrieve. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - -## Examples - -### Get bucket - -```dart -final res = await supabase - .storage - .getBucket('avatars') -``` diff --git a/apps/reference/_supabase_dart/generated/storage-listbuckets.mdx b/apps/reference/_supabase_dart/generated/storage-listbuckets.mdx deleted file mode 100644 index ca770173a04..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-listbuckets.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: storage-listbuckets -title: 'listBuckets()' -slug: /storage-listbuckets -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieves the details of all Storage buckets within an existing product. - -```dart -final res = await supabase - .storage - .listBuckets() -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - -## Examples - -### List buckets - -```dart -final res = await supabase - .storage - .listBuckets() -``` diff --git a/apps/reference/_supabase_dart/generated/storage-updatebucket.mdx b/apps/reference/_supabase_dart/generated/storage-updatebucket.mdx deleted file mode 100644 index 1388bec4699..00000000000 --- a/apps/reference/_supabase_dart/generated/storage-updatebucket.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: storage-updatebucket -title: 'updateBucket()' -slug: /storage-updatebucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Updates a new Storage bucket - -```dart -final res = await supabase - .storage - .updateBucket('avatars', { public: false }); -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: `update` - - `objects` permissions: none - -## Examples - -### Update bucket - -```dart -final res = await supabase - .storage - .updateBucket('avatars', { public: false }); -``` diff --git a/apps/reference/_supabase_dart/generated/stream.mdx b/apps/reference/_supabase_dart/generated/stream.mdx deleted file mode 100644 index f2d826666ee..00000000000 --- a/apps/reference/_supabase_dart/generated/stream.mdx +++ /dev/null @@ -1,67 +0,0 @@ ---- -id: stream -title: 'stream()' -slug: /stream -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Notifies of data at the queried table. - -```dart -supabase - .from('countries') - .stream(['id']) - .execute(); -``` - -## Notes - -- `stream()` will emit the initial data as well as any further change on the database as `Stream` of `List>` by combining Postgrest and Realtime. -- Takes a list of primary key columns as its argument. - -## Examples - -### Listening to a specific table - -```dart -supabase - .from('countries') - .stream(['id']) - .execute(); -``` - -### Listening to a specific rows within a table - -You can listen to individual rows using the format `{table}:{col}=eq.{val}` - where `{col}` is the column name, and `{val}` is the value which you want to match. -This syntax is the as how you can filter data in Realtime - -```dart -supabase - .from('countries:id=eq.120') - .stream(['id']) - .execute(); -``` - -### With `order()` - -```dart -supabase - .from('countries') - .stream(['id']) - .order('name', ascending: false) - .execute(); -``` - -### With `limit()` - -```dart -supabase - .from('countries') - .stream(['id']) - .order('name', ascending: false) - .limit(10) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/subscribe.mdx b/apps/reference/_supabase_dart/generated/subscribe.mdx deleted file mode 100644 index b7efb44f989..00000000000 --- a/apps/reference/_supabase_dart/generated/subscribe.mdx +++ /dev/null @@ -1,119 +0,0 @@ ---- -id: subscribe -title: 'on().subscribe()' -slug: /subscribe -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Subscribe to realtime changes in your database. - -```dart -final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.all, (payload) { - // Handle realtime payload - }) - .subscribe(); -``` - -## Notes - -- Realtime is disabled by default for new Projects for better database performance and security. You can turn it on by [managing replication](/docs/guides/api#managing-realtime). -- If you want to receive the "previous" data for updates and deletes, you will need to set `REPLICA IDENTITY` to `FULL`, like this: `ALTER TABLE your_table REPLICA IDENTITY FULL;` - -## Examples - -### Listen to all database changes - -```dart -final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.all, (payload) { - // Handle realtime payload - }) - .subscribe(); -``` - -### Listening to a specific table - -```dart -final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.all, (payload) { - // Handle realtime payload - }) - .subscribe(); -``` - -### Listening to inserts - -```dart -final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.insert, (payload) { - // Handle realtime payload - }) - .subscribe(); -``` - -### Listening to updates - -By default, Supabase will send only the updated record. If you want to receive the previous values as well you can -enable full replication for the table you are listening too: - -```sql -alter table "your_table" replica identity full; -``` - -```dart -final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.update, (payload) { - // Handle realtime payload - }) - .subscribe(); -``` - -### Listening to deletes - -By default, Supabase does not send deleted records. If you want to receive the deleted record you can -enable full replication for the table you are listening too: - -```sql -alter table "your_table" replica identity full; -``` - -```dart -final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.delete, (payload) { - // Handle realtime payload - }) - .subscribe(); -``` - -### Listening to multiple events - -You can chain listeners if you want to listen to multiple events for each table. - -```dart -final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.insert, handleInsert) - .on(SupabaseEventTypes.delete, handleDelete) - .subscribe(); -``` - -### Listening to row level changes - -You can listen to individual rows using the format `{table}:{col}=eq.{val}` - where `{col}` is the column name, and `{val}` is the value which you want to match. - -```dart -final mySubscription = supabase - .from('countries:id=eq.200') - .on(SupabaseEventTypes.update, handleRecordUpdated) - .subscribe(); -``` diff --git a/apps/reference/_supabase_dart/generated/textsearch.mdx b/apps/reference/_supabase_dart/generated/textsearch.mdx deleted file mode 100644 index 6570dc7bac1..00000000000 --- a/apps/reference/_supabase_dart/generated/textsearch.mdx +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: textsearch -title: '.textSearch()' -slug: /textsearch -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose tsvector value on the stated `column` matches to_tsquery(query). - -## Examples - -### Text search - -```dart -final res = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', "'fat' & 'cat'", - config: 'english' - ) - .execute(); -``` - -### Basic normalization - -Uses PostgreSQL's `plainto_tsquery` function. - -```dart -final res = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', "'fat' & 'cat'", - type: TextSearchType.plain, - config: 'english' - ) - .execute(); -``` - -### Full normalization - -Uses PostgreSQL's `phraseto_tsquery` function. - -```dart -final res = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', "'fat' & 'cat'", - type: TextSearchType.phrase, - config: 'english' - ) - .execute(); -``` - -### Full normalization - -Uses PostgreSQL's `websearch_to_tsquery` function. -This function will never raise syntax errors, which makes it possible to use raw user-supplied input for search, and can be used -with advanced operators. - -- `unquoted text`: text not inside quote marks will be converted to terms separated by & operators, as if processed by plainto_tsquery. -- `"quoted text"`: text inside quote marks will be converted to terms separated by <-> operators, as if processed by phraseto_tsquery. -- `OR`: the word “or” will be converted to the | operator. -- `-`: a dash will be converted to the ! operator. - -```dart -final res = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', "'fat or cat'", - type: TextSearchType.websearch, - config: 'english' - ) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/update.mdx b/apps/reference/_supabase_dart/generated/update.mdx deleted file mode 100644 index d2f7bd7aceb..00000000000 --- a/apps/reference/_supabase_dart/generated/update.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -id: update -title: 'Modify data: update()' -slug: /update -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs an UPDATE on the table. - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Middle Earth' }) - .match({ 'name': 'Auckland' }) - .execute(); -``` - -## Notes - -- `update()` should always be combined with [Filters](/docs/reference/dart/using-filters) to target the item(s) you wish to update. - -## Examples - -### Updating your data - -```dart -final res = await supabase - .from('cities') - .update({ 'name': 'Middle Earth' }) - .match({ 'name': 'Auckland' }) - .execute(); -``` - -### Updating JSON data - -Postgres offers a -[number of operators](https://www.postgresql.org/docs/current/functions-json.html) -for working with JSON data. Right now it is only possible to update an entire JSON document, -but we are [working on ideas](https://github.com/PostgREST/postgrest/issues/465) for updating individual keys. - -```dart -final res = await supabase - .from('users') - .update({ - 'address': { - 'street': 'Melrose Place', - 'postcode': 90210 - } - }) - .eq('address->postcode', 90210) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/upsert.mdx b/apps/reference/_supabase_dart/generated/upsert.mdx deleted file mode 100644 index 68ff80fc25f..00000000000 --- a/apps/reference/_supabase_dart/generated/upsert.mdx +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: upsert -title: 'Upsert data: upsert()' -slug: /upsert -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs an UPSERT into the table. - -```dart -final res = await supabase - .from('messages') - .upsert({ 'id': 3, 'message': 'foo', 'username': 'supabot' }) - .execute(); -``` - -## Notes - -- Primary keys should be included in the data payload in order for an update to work correctly. -- Primary keys must be natural, not surrogate. There are however, [workarounds](https://github.com/PostgREST/postgrest/issues/1118) for surrogate primary keys. - -## Examples - -### Upsert your data - -```dart -final res = await supabase - .from('messages') - .upsert({ 'id': 3, 'message': 'foo', 'username': 'supabot' }) - .execute(); -``` - -### Upserting into tables with constraints - -Running the following will cause supabase to upsert data into the `users` table. -If the username 'supabot' already exists, the `onConflict` argument tells supabase to overwrite that row -based on the column passed into `onConflict`. - -```dart -final res = await supabase - .from('users') - .upsert({ 'username': 'supabot' }, { 'onConflict': 'username' }) - .execute(); -``` - -### Return the exact number of rows - -Allowed values for count option are `exact`, `planned` and `estimated`. - -```dart -final res = await supabase - .from('users') - .upsert({ - 'id': 3, - 'message': 'foo', - 'username': 'supabot' - }) - .execute(count: CountOption.exact); -``` diff --git a/apps/reference/_supabase_dart/generated/using-filters.mdx b/apps/reference/_supabase_dart/generated/using-filters.mdx deleted file mode 100644 index b021848b264..00000000000 --- a/apps/reference/_supabase_dart/generated/using-filters.mdx +++ /dev/null @@ -1,44 +0,0 @@ ---- -id: using-filters -title: 'Using Filters' -slug: /using-filters -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Filters can be used on `select()`, `update()`, and `delete()` queries. - -If a Stored Procedure returns a table response, you can also apply filters. - -### Applying Filters - -You must apply your filters to the end of your query. For example: - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The Shire') // Correct - .execute(); - -final res = await supabase - .from('cities') - .eq('name', 'The Shire') // Incorrect - .select('name, country_id') - .execute(); -``` - -### Chaining - -Filters can be chained together to produce advanced queries. For example: - -```dart -final res = await supabase - .from('cities') - .select('name, country_id') - .gte('population', 1000) - .lt('population', 10000) - .execute(); -``` diff --git a/apps/reference/_supabase_dart/generated/using-modifiers.mdx b/apps/reference/_supabase_dart/generated/using-modifiers.mdx deleted file mode 100644 index e52ca73e09f..00000000000 --- a/apps/reference/_supabase_dart/generated/using-modifiers.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -id: using-modifiers -title: 'Using Modifiers' -slug: /using-modifiers -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Modifiers can be used on `select()` queries. - -If a Stored Procedure returns a table response, you can also apply modifiers to the `rpc()` function. diff --git a/apps/reference/_supabase_dart/initializing.mdx b/apps/reference/_supabase_dart/initializing.mdx new file mode 100644 index 00000000000..e779b7e8ac2 --- /dev/null +++ b/apps/reference/_supabase_dart/initializing.mdx @@ -0,0 +1,36 @@ +--- +id: initializing +title: 'Initializing' +slug: initializing +--- + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' + +## Dart + +You can initialize a new Supabase client using the `SupabaseClient()` method. + +The Supabase client is your entrypoint to the rest of the Supabase functionality +and is the easiest way to interact with everything we offer within the Supabase ecosystem. + +## Flutter + +For `supabase_flutter`, you will be using the static `initialize()` method on `Supabase` class. + +## Examples + +### Dart `SupabaseClient()` + +```dart +final supabase = SupabaseClient('https://xyzcompany.supabase.co', 'public-anon-key'); +``` + +### Flutter `initialize()` + +```dart title="main.dart" +Future main() async { + await Supabase.initialize(url: 'https://xyzcompany.supabase.co', anonKey: 'public-anon-key'); + runApp(MyApp()); +} +``` diff --git a/apps/reference/_supabase_dart/generated/installing.mdx b/apps/reference/_supabase_dart/installing.mdx similarity index 88% rename from apps/reference/_supabase_dart/generated/installing.mdx rename to apps/reference/_supabase_dart/installing.mdx index 59d512d4dc0..2ed91c356fd 100644 --- a/apps/reference/_supabase_dart/generated/installing.mdx +++ b/apps/reference/_supabase_dart/installing.mdx @@ -1,8 +1,7 @@ --- id: installing title: 'Installing' -slug: /installing -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_dart_v1_ref.yml +slug: installing --- import Tabs from '@theme/Tabs' diff --git a/apps/reference/_supabase_dart/intro.mdx b/apps/reference/_supabase_dart/intro.mdx index 29286743efb..f1f68aea552 100644 --- a/apps/reference/_supabase_dart/intro.mdx +++ b/apps/reference/_supabase_dart/intro.mdx @@ -6,6 +6,14 @@ sidebar_label: Supabase Dart Library # Supabase Dart Library +:::note + +You're viewing the Supabase docs for a developer preview version. + +Refer to the `v0` docs for the previous release. + +::: + This reference documents every object and method available in Supabase's isomorphic Dart library, `supabase-dart`. You can use the `supabase-dart` library to: @@ -19,4 +27,4 @@ You can use the `supabase-dart` library to: ## Additional Links - Source Code: [github.com/supabase/supabase-dart](https://github.com/supabase/supabase-dart) -- [Known bugs and issues](https://github.com/supabase/supabase-dart/issues) +- [Known bugs and issues](https://github.com/supabase/supabase-flutter/issues) diff --git a/apps/reference/_supabase_js_versioned_docs/.gitkeep b/apps/reference/_supabase_dart_versioned_docs/version-v0/generated/.gitkeep similarity index 100% rename from apps/reference/_supabase_js_versioned_docs/.gitkeep rename to apps/reference/_supabase_dart_versioned_docs/version-v0/generated/.gitkeep diff --git a/apps/reference/_supabase_dart_versioned_docs/version-v0/intro.mdx b/apps/reference/_supabase_dart_versioned_docs/version-v0/intro.mdx new file mode 100644 index 00000000000..29286743efb --- /dev/null +++ b/apps/reference/_supabase_dart_versioned_docs/version-v0/intro.mdx @@ -0,0 +1,22 @@ +--- +id: intro +slug: / +sidebar_label: Supabase Dart Library +--- + +# Supabase Dart Library + +This reference documents every object and method available in Supabase's isomorphic Dart library, `supabase-dart`. + +You can use the `supabase-dart` library to: + +- interact with your Postgres database +- listen to database changes +- invoke Deno Edge Functions +- build login and user management functionality +- manage large files + +## Additional Links + +- Source Code: [github.com/supabase/supabase-dart](https://github.com/supabase/supabase-dart) +- [Known bugs and issues](https://github.com/supabase/supabase-dart/issues) diff --git a/apps/reference/_supabase_dart_versioned_sidebars/version-v0-sidebars.json b/apps/reference/_supabase_dart_versioned_sidebars/version-v0-sidebars.json new file mode 100644 index 00000000000..44acc0181ad --- /dev/null +++ b/apps/reference/_supabase_dart_versioned_sidebars/version-v0-sidebars.json @@ -0,0 +1,120 @@ +{ + "sidebar": [ + { + "type": "category", + "label": "Getting Started", + "items": ["intro", "generated/installing", "generated/initializing"], + "collapsed": true + }, + { + "type": "category", + "label": "Auth", + "items": [ + "generated/auth-signup", + "generated/auth-signin", + "generated/auth-signinwithprovider", + "generated/auth-signout", + "generated/auth-session", + "generated/auth-user", + "generated/auth-update", + "generated/auth-onauthstatechange", + "generated/reset-password-email" + ], + "collapsed": true + }, + { + "type": "category", + "label": "Functions", + "items": ["generated/invoke"], + "collapsed": true + }, + { + "type": "category", + "label": "Database", + "items": [ + "generated/select", + "generated/insert", + "generated/update", + "generated/upsert", + "generated/delete", + "generated/rpc" + ], + "collapsed": true + }, + { + "type": "category", + "label": "Realtime", + "items": [ + "generated/subscribe", + "generated/removesubscription", + "generated/getsubscriptions", + "generated/stream" + ], + "collapsed": true + }, + { + "type": "category", + "label": "Storage", + "items": [ + "generated/storage-createbucket", + "generated/storage-getbucket", + "generated/storage-listbuckets", + "generated/storage-updatebucket", + "generated/storage-deletebucket", + "generated/storage-emptybucket", + "generated/storage-from-upload", + "generated/storage-from-download", + "generated/storage-from-list", + "generated/storage-from-update", + "generated/storage-from-move", + "generated/storage-from-remove", + "generated/storage-from-createsignedurl", + "generated/storage-from-getpublicurl" + ], + "collapsed": true + }, + { + "type": "category", + "label": "Modifiers", + "items": [ + "generated/using-modifiers", + "generated/limit", + "generated/order", + "generated/range", + "generated/single" + ], + "collapsed": true + }, + { + "type": "category", + "label": "Filters", + "items": [ + "generated/using-filters", + "generated/or", + "generated/not", + "generated/match", + "generated/eq", + "generated/neq", + "generated/gt", + "generated/gte", + "generated/lt", + "generated/lte", + "generated/like", + "generated/ilike", + "generated/is_", + "generated/in_", + "generated/contains", + "generated/containedby", + "generated/rangelt", + "generated/rangegt", + "generated/rangegte", + "generated/rangelte", + "generated/rangeadjacent", + "generated/overlaps", + "generated/textsearch", + "generated/filter" + ], + "collapsed": true + } + ] +} diff --git a/apps/reference/_supabase_dart_versions.json b/apps/reference/_supabase_dart_versions.json index fe51488c706..574c045ecaf 100644 --- a/apps/reference/_supabase_dart_versions.json +++ b/apps/reference/_supabase_dart_versions.json @@ -1 +1 @@ -[] +["v0"] diff --git a/web/docs/gotrue/client/.gitkeep b/apps/reference/_supabase_js/generated/.gitkeep similarity index 100% rename from web/docs/gotrue/client/.gitkeep rename to apps/reference/_supabase_js/generated/.gitkeep diff --git a/apps/reference/_supabase_js/initializing.mdx b/apps/reference/_supabase_js/initializing.mdx deleted file mode 100644 index f921020d8f0..00000000000 --- a/apps/reference/_supabase_js/initializing.mdx +++ /dev/null @@ -1,195 +0,0 @@ ---- -id: initializing -title: 'Initializing' -slug: initializing -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -You can initialize a new Supabase client using the `createClient()` method. - -The Supabase client is your entrypoint to the rest of the Supabase functionality -and is the easiest way to interact with everything we offer within the Supabase ecosystem. - -## Parameters - -
    - -
  • -

    - - supabaseUrl - - - required - - - string - -

    -
    - -The unique Supabase URL which is supplied when you create a new project in your project dashboard. - -
    - -
  • - -
  • -

    - - supabaseKey - - - required - - - string - -

    -
    - -The unique Supabase Key which is supplied when you create a new project in your project dashboard. - -
    - -
  • - -
  • -

    - - options - - - optional - - - SupabaseClientOptions - -

    -
    - -No description provided. - -
    - -
  • - -
- -## Examples - -### createClient() - - - - - -```js -import { createClient } from '@supabase/supabase-js' - -// Create a single supabase client for interacting with your database -const supabase = createClient( - 'https://xyzcompany.supabase.co', - 'public-anon-key' -) -``` - - - - - -### With additional parameters - - - - - -```js -import { createClient } from '@supabase/supabase-js' - -const options = { - schema: 'public', - headers: { 'x-my-custom-header': 'my-app-name' }, - autoRefreshToken: true, - persistSession: true, - detectSessionInUrl: true, -} -const supabase = createClient( - 'https://xyzcompany.supabase.co', - 'public-anon-key', - options -) -``` - - - - - -### API schemas - - - - - -```js -import { createClient } from '@supabase/supabase-js' - -// Provide a custom schema. Defaults to "public". -const supabase = createClient( - 'https://xyzcompany.supabase.co', - 'public-anon-key', - { - schema: 'other_schema', - } -) -``` - -By default the API server points to the `public` schema. You can enable other database schemas within the Dashboard. -Go to `Settings > API > Schema` and add the schema which you want to expose to the API. - -Note: each client connection can only access a single schema, so the code above can access the `other_schema` schema but cannot access the `public` schema. - - - - - -### Custom `fetch` implementation - - - - - -```js -import { createClient } from '@supabase/supabase-js' - -const supabase = createClient( - 'https://xyzcompany.supabase.co', - 'public-anon-key', - { - fetch: fetch.bind(globalThis), - } -) -``` - -`supabase-js` uses the [`cross-fetch`](https://www.npmjs.com/package/cross-fetch) library to make HTTP requests, -but an alternative `fetch` implementation can be provided as an option. -This is most useful in environments where `cross-fetch` is not compatible (for instance Cloudflare Workers). - - - - diff --git a/apps/reference/_supabase_js/installing.mdx b/apps/reference/_supabase_js/installing.mdx index 960bac4e30f..96b254beca2 100644 --- a/apps/reference/_supabase_js/installing.mdx +++ b/apps/reference/_supabase_js/installing.mdx @@ -31,7 +31,7 @@ Find the source code on [GitHub](https://github.com/supabase/supabase-js). Or via CDN ```js - + //or - + ``` diff --git a/apps/reference/_supabase_js/intro.md b/apps/reference/_supabase_js/intro.md index 3d1394ddd95..bec6b4f975e 100644 --- a/apps/reference/_supabase_js/intro.md +++ b/apps/reference/_supabase_js/intro.md @@ -7,14 +7,6 @@ hide_table_of_contents: true # Supabase JavaScript Library -:::note - -You're viewing the Supabase docs for the next version of our library which is not yet released. - -Refer to the `v1` docs for a stable release. - -::: - This reference documents every object and method available in Supabase's isomorphic JavaScript library, `supabase-js`. You can use the `supabase-js` library to: @@ -28,6 +20,6 @@ You can use the `supabase-js` library to: ## Additional Links - Source Code: [github.com/supabase/supabase-js](https://github.com/supabase/supabase-js) -- TypeDoc: [supabase.github.io/supabase-js](https://supabase.github.io/supabase-js) +- TypeDoc: [supabase.github.io/supabase-js](https://supabase.github.io/supabase-js/v2/) - NPM: [npmjs.com/package/@supabase/supabase-js](https://www.npmjs.com/package/@supabase/supabase-js) - [Known bugs and issues](https://github.com/supabase/supabase-js/issues) diff --git a/apps/reference/_supabase_js/migration-guide.md b/apps/reference/_supabase_js/migration-guide.md deleted file mode 100644 index e483c0f7e02..00000000000 --- a/apps/reference/_supabase_js/migration-guide.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -id: migration-guide ---- - -# Migration Guide - -Migrating from v1 to v2. diff --git a/apps/reference/_supabase_js/release-notes.md b/apps/reference/_supabase_js/release-notes.md index c566dc1f89f..57af05f0980 100644 --- a/apps/reference/_supabase_js/release-notes.md +++ b/apps/reference/_supabase_js/release-notes.md @@ -4,8 +4,209 @@ id: release-notes # Release Notes -Supabase.js v2 release +Supabase.js v2 release notes. ## 2.0.0 -TBD +Install the latest with `npm install @supabase/supabase-js`. + +### Explicit constructor options + +All client specific options within the constructor are keyed to the library: [PR](https://github.com/supabase/supabase-js/pull/458): + +```jsx +const supabase = createClient(apiURL, apiKey, { + db: { + schema: 'public', + }, + auth: { + autoRefreshToken: true, + persistSession: true, + detectSessionInUrl: true, + }, + realtime: { + channels, + endpoint, + }, + global: { + fetch: customFetch, + headers: DEFAULT_HEADERS, + }, +}) +``` + +### Typescript support + +The libraries now support typescript. + +```ts +// v2 - definitions are injected in `createClient()` +import type { Database } from './DatabaseDefinitions' +const supabase = createClient(SUPABASE_URL, ANON_KEY) +const { data } = await supabase.from('messages').select().match({ id: 1 }) + +// v1 -- previously definitions were injected in the `from()` method +supabase.from('messages').select('*') +``` + +Types can be generated via the CLI: + +```bash +supabase start +supabase gen types typescript --local > DatabaseDefinitions.ts +``` + +### Data operations return minimal + +`.insert()` / `.upsert()` / `.update()` / `.delete()` don't return rows by default: [PR](https://github.com/supabase/postgrest-js/pull/276). + +Previously, these methods return inserted/updated/deleted rows by default (which caused [some confusion](https://github.com/supabase/supabase/discussions/1548)), and you can opt to not return it by specifying `returning: 'minimal'`. Now the default behavior is to not return rows. To return inserted/updated/deleted rows, add a `.select()` call at the end, e.g.: + +```sql +const { data, error } = await supabase + .from('my_table') + .delete() + .eq('id', 1) + .select() +``` + +### New ordering defaults + +`.order()` now defaults to Postgres’s default: [PR](https://github.com/supabase/postgrest-js/pull/283). + +Previously `nullsFirst` defaults to `false` , meaning `null`s are ordered last. This is bad for performance if e.g. the column uses an index with `NULLS FIRST` (which is the default direction for indexes). + +### Cookies and localstorage namespace + +Storage key name in the Auth library has changed to include project reference which means that existing websites that had their JWT expiry set to a longer time could find their users logged out with this upgrade. + +```jsx +const defaultStorageKey = `sb-${ + new URL(this.authUrl).hostname.split('.')[0] +}-auth-token` +``` + +### New Auth Types + +Typescript typings have been reworked. `Session` interface now guarantees that it will always have an `access_token`, `refresh_token` and `user` + +```jsx +interface Session { + provider_token?: string | null + access_token: string + expires_in?: number + expires_at?: number + refresh_token: string + token_type: string + user: User +} +``` + +### New Auth methods + +We're removing the `signIn()` method in favor of more explicit function signatures: +`signInWithPassword()`, `signInWithPasswordless()`, and `signInWithOtp()`. + +```ts +// v2 +const { data } = await supabase.auth.signInWithPassword({ + email: 'hello@example', + password: 'pass', +}) +// v1 +const { data } = await supabase.auth.signIn({ + email: 'hello@example', + password: 'pass', +}) +``` + +### New Realtime methods + +There is a new `channel()` method in the Realtime library, which will be used for our Multiplayer updates. + +```ts +supabaseClient + .channel('any_string_you_want') + .on('presence', { event: 'track' }, (payload) => { + console.log(payload) + }) + .subscribe() + +supabaseClient + .channel('any_string_you_want') + .on( + 'postgres_changes', + { + event: 'INSERT', + schema: 'public', + table: 'movies', + }, + (payload) => { + console.log(payload) + } + ) + .subscribe() +``` + +We will deprecate the `.from().on().subscribe()` method previosuly used for listening to postgres changes. + +### Deprecated setAuth() + +Deprecated and removed `setAuth()` . To set a custom `access_token` jwt instead, pass the custom header into the `createClient()` method provided: ([PR](https://github.com/supabase/gotrue-js/pull/340)) + +### All changes + +- `supabase-js` + - `shouldThrowOnError` has been removed until all the client libraries support this option ([PR](https://github.com/supabase/supabase-js/pull/490)). +- `postgrest-js` + - TypeScript typings have been reworked [PR](https://github.com/supabase/postgrest-js/pull/279) + - Use `undefined` instead of `null` for function params, types, etc. (https://github.com/supabase/postgrest-js/pull/278) + - Some features are now obsolete: (https://github.com/supabase/postgrest-js/pull/275) + - filter shorthands (e.g. `cs` vs. `contains`) + - `body` in response (vs. `data`) + - `upsert`ing through the `.insert()` method + - `auth` method on `PostgrestClient` + - client-level `throwOnError` +- `gotrue-js` + - `supabase-js` client allows passing a `storageKey` param which will allow the user to set the key used in local storage for storing the session. By default, this will be namespace-d with the supabase project ref. ([PR](https://github.com/supabase/supabase-js/pull/460)) + - `signIn` method is now split into `signInWithPassword` , `signInWithPasswordless` , `signInWithOAuth` ([PR](https://github.com/supabase/gotrue-js/pull/304)) + - Deprecated and removed `session()` , `user()` in favour of using `getSession()` instead. `getSession()` will always return a valid session if a user is already logged in, meaning no more random logouts. ([PR](https://github.com/supabase/gotrue-js/pull/299)) + - Deprecated and removed setting for `multitab` support because `getSession()` and gotrue’s reuse interval setting takes care of session management across multiple tabs ([PR](https://github.com/supabase/gotrue-js/pull/366)) + - No more throwing of random errors, gotrue-js v2 always returns a custom error type: ([PR](https://github.com/supabase/gotrue-js/pull/341)) + - `AuthSessionMissingError` + - Indicates that a session is expected but missing + - `AuthNoCookieError` + - Indicates that a cookie is expected but missing + - `AuthInvalidCredentialsError` + - Indicates that the incorrect credentials were passed + - Renamed the `api` namespace to `admin` , the `admin` namespace will only contain methods that should only be used in a trusted server-side environment with the service role key + - Moved `resetPasswordForEmail` , `getUser` and `updateUser` to the `GoTrueClient` which means they will be accessible from the `supabase.auth` namespace in `supabase-js` instead of having to do `supabase.auth.api` to access them + - Removed `sendMobileOTP` , `sendMagicLinkEmail` in favor of `signInWithOtp` + - Removed `signInWithEmail`, `signInWithPhone` in favor of `signInWithPassword` + - Removed `signUpWithEmail` , `signUpWithPhone` in favor of `signUp` + - Replaced `update` with `updateUser` +- `storage-js` + - Return types are more strict. Functions types used to indicate that the data returned could be null even if there was no error. We now make use of union types which only mark the data as null if there is an error and vice versa. ([PR](https://github.com/supabase/storage-js/pull/60)) + - The `upload` and `update` function returns the path of the object uploaded as the `path` parameter. Previously the returned value had the bucket name prepended to the path which made it harder to pass the value on to other storage-js methods since all methods take the bucket name and path separately. We also chose to call the returned value `path` instead of `Key` ([PR](https://github.com/supabase/storage-js/pull/75)) + - `getPublicURL` only returns the public URL inside the data object. This keeps it consistent with our other methods of returning only within the data object. No error is returned since this method cannot does not throw an error ([PR](https://github.com/supabase/storage-js/pull/93)) + - signed urls are returned as `signedUrl` instead of `signedURL` in both `createSignedUrl` and `createSignedUrls` ([PR](https://github.com/supabase/storage-js/pull/94)) + - Encodes URLs returned by `createSignedUrl`, `createSignedUrls` and `getPublicUrl` ([PR](https://github.com/supabase/storage-js/pull/86)) + - `createsignedUrl` used to return a url directly and and within the data object. This was inconsistent. Now we always return values only inside the data object across all methods. ([PR](https://www.notion.so/LW5-supabase-js-v2-7b0bfcdf571d4f20b9b7a9308883f24b)) + - `createBucket` returns a data object instead of the name of the bucket directly. ([PR](https://github.com/supabase/storage-js/pull/89)) + - Fixed types for metadata ([PR](https://github.com/supabase/storage-js/pull/90)) + - Better error types make it easier to track down what went wrong quicker. + - `SupabaseStorageClient` is no longer exported. Use `StorageClient` instead. ([PR](https://github.com/supabase/storage-js/pull/92)). +- `realtime-js` + - `RealtimeSubscription` class no longer exists and replaced by `RealtimeChannel`. + - `RealtimeClient`'s `disconnect` method now returns type of `void` . It used to return type of `Promise<{ error: Error | null; data: boolean }`. + - Removed `removeAllSubscriptions` and `removeSubscription` methods from `SupabaseClient` class. + - Removed `SupabaseRealtimeClient` class. + - Removed `SupabaseQueryBuilder` class. + - Removed `SupabaseEventTypes` type. + - Thinking about renaming this to something like `RealtimePostgresChangeEvents` and moving it to `realtime-js` v2. + - Removed `.from(’table’).on(’INSERT’, () ⇒ {}).subscribe()` in favor of new Realtime client API. +- `functions-js` + - supabase-js v1 only threw an error if the fetch call itself threw an error (network errors, etc) and not if the function returned HTTP errors like 400s or 500s. We have changed this behaviour to return an error if your function throws an error. + - We have introduced new error types to distinguish between different kinds of errors. A `FunctionsHttpError` error is returned if your function throws an error, `FunctionsRelayError` if the Supabase Relay has an error processing your function and `FunctionsFetchError` if there is a network error in calling your function. + - The correct content-type headers are automatically attached when sending the request if you don’t pass in a `Content-Type` header and pass in an argument to your function. We automatically attach the content type for `Blob`, `ArrayBuffer`, `File`, `FormData` ,`String` . If it doesn’t match any of these we assume the payload is `json` , we serialise the payload as JSON and attach the content type as `application/json`. + - `responseType` does not need to be explicitly passed in. We parse the response based on the `Content-Type` response header sent by the function. We support parsing the responses as `text`, `json`, `blob`, `form-data` and are parsed as `text` by default. diff --git a/apps/reference/_supabase_js/sdk/auth-api-createuser.mdx b/apps/reference/_supabase_js/sdk/auth-api-createuser.mdx deleted file mode 100644 index 8b7a1149efb..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-api-createuser.mdx +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: auth-api-createuser -title: 'createUser()' -slug: /auth-api-createuser -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Creates a new user. - -This function should only be called on a server. Never expose your `service_role` key in the browser. - -```js -const { data: user, error } = await supabase.auth.api.createUser({ - email: 'user@email.com', - password: 'password', - user_metadata: { name: 'Yoda' }, -}) -``` - -## Parameters - -
    - -
  • -

    - - attributes - - - required - - - AdminUserAttributes - -

    -
    - -The data you want to create the user with. - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should be called on a server. Never expose your `service_role` key in the browser. -- If you do not provide the `email_confirm` and `phone_confirm` options to this function, both will default to false. - -## Examples - -### Create a new user. - -```js -const { data: user, error } = await supabase.auth.api.createUser({ - email: 'user@email.com', - password: 'password', - user_metadata: { name: 'Yoda' }, -}) -``` - -### Auto-confirm email. - -```js -const { data: user, error } = await supabase.auth.api.createUser({ - email: 'user@email.com', - email_confirm: true, -}) -``` - -### Auto-confirm phone. - -```js -const { data: user, error } = await supabase.auth.api.createUser({ - phone: '1234567890', - phone_confirm: true, -}) -``` diff --git a/apps/reference/_supabase_js/sdk/auth-api-deleteuser.mdx b/apps/reference/_supabase_js/sdk/auth-api-deleteuser.mdx deleted file mode 100644 index 12ff527f317..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-api-deleteuser.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: auth-api-deleteuser -title: 'deleteUser()' -slug: /auth-api-deleteuser -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Delete a user. Requires a `service_role` key. - -This function should only be called on a server. Never expose your `service_role` key in the browser. - -```js -const { data: user, error } = await supabase.auth.api.deleteUser( - '715ed5db-f090-4b8c-a067-640ecee36aa0' -) -``` - -## Parameters - -
    - -
  • -

    - - uid - - - required - - - string - -

    -
    - -The user uid you want to remove. - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Remove a user completely. - -```js -const { data: user, error } = await supabase.auth.api.deleteUser( - '715ed5db-f090-4b8c-a067-640ecee36aa0' -) -``` diff --git a/apps/reference/_supabase_js/sdk/auth-api-generatelink.mdx b/apps/reference/_supabase_js/sdk/auth-api-generatelink.mdx deleted file mode 100644 index 92a755a813e..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-api-generatelink.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: auth-api-generatelink -title: 'generateLink()' -slug: /auth-api-generatelink -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Generates links to be sent via email or other. - -## Parameters - -
    - -
  • -

    - - type - - - required - - - signup | magiclink | recovery | invite | email_change_current | email_change_new - -

    -
    - -The link type ("signup" or "magiclink" or "recovery" or "invite"). - -
    - -
  • - -
  • -

    - - email - - - required - - - string - -

    -
    - -The user's email. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - data - - - optional - - - object - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - password - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - redirectTo - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should only be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Generate invite link. - -```js -const { data: user, error } = await supabase.auth.api.generateLink( - 'invite', - 'email@example.com' -) -``` diff --git a/apps/reference/_supabase_js/sdk/auth-api-getuser.mdx b/apps/reference/_supabase_js/sdk/auth-api-getuser.mdx deleted file mode 100644 index 235055ad277..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-api-getuser.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: auth-api-getuser -title: 'getUser()' -slug: /auth-api-getuser -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Gets the current user details. - -This method is called by the GoTrueClient `update` where -the jwt is set to this.currentSession.access_token -and therefore, acts like getting the currently authenticated user - -```js -const { user, error } = await supabase.auth.api.getUser('ACCESS_TOKEN_JWT') -``` - -## Parameters - -
    - -
  • -

    - - jwt - - - required - - - string - -

    -
    - -A valid, logged-in JWT. Typically, the access_token for the currentSession - -
    - -
  • - -
- -## Notes - -- Fetches the user object from the database instead of local storage. -- Note that user() fetches the user object from local storage which might not be the most updated. -- Requires the user's access_token. - -## Examples - -### Fetch the user object using the access_token jwt. - -```js -const { user, error } = await supabase.auth.api.getUser('ACCESS_TOKEN_JWT') -``` diff --git a/apps/reference/_supabase_js/sdk/auth-api-inviteuserbyemail.mdx b/apps/reference/_supabase_js/sdk/auth-api-inviteuserbyemail.mdx deleted file mode 100644 index 26e32e2c3a2..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-api-inviteuserbyemail.mdx +++ /dev/null @@ -1,117 +0,0 @@ ---- -id: auth-api-inviteuserbyemail -title: 'inviteUserByEmail()' -slug: /auth-api-inviteuserbyemail -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Sends an invite link to an email address. - -## Parameters - -
    - -
  • -

    - - email - - - required - - - string - -

    -
    - -The email address of the user. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - data - - - optional - - - object - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - redirectTo - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should only be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Basic example. - -```js -const { data: user, error } = await supabase.auth.api.inviteUserByEmail( - 'email@example.com' -) -``` diff --git a/apps/reference/_supabase_js/sdk/auth-api-listusers.mdx b/apps/reference/_supabase_js/sdk/auth-api-listusers.mdx deleted file mode 100644 index b9318d5d854..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-api-listusers.mdx +++ /dev/null @@ -1,30 +0,0 @@ ---- -id: auth-api-listusers -title: 'listUsers()' -slug: /auth-api-listusers -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Get a list of users. - -This function should only be called on a server. Never expose your `service_role` key in the browser. - -```js -const { data: user, error } = await supabase.auth.api.listUsers() -``` - -## Notes - -- Requires a `service_role` key. -- This function should be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Get a full list of users. - -```js -const { data: user, error } = await supabase.auth.api.listUsers() -``` diff --git a/apps/reference/_supabase_js/sdk/auth-api-resetpasswordforemail.mdx b/apps/reference/_supabase_js/sdk/auth-api-resetpasswordforemail.mdx deleted file mode 100644 index 84363170606..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-api-resetpasswordforemail.mdx +++ /dev/null @@ -1,136 +0,0 @@ ---- -id: auth-api-resetpasswordforemail -title: 'resetPasswordForEmail()' -slug: /auth-api-resetpasswordforemail -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Sends a reset request to an email address. - -```js -const { data, error } = await supabase.auth.api.resetPasswordForEmail( - 'user@email.com' -) -``` - -## Parameters - -
    - -
  • -

    - - email - - - required - - - string - -

    -
    - -The email address of the user. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - captchaToken - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - redirectTo - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -Sends a reset request to an email address. - -When the user clicks the reset link in the email they will be forwarded to: - -`#access_token=x&refresh_token=y&expires_in=z&token_type=bearer&type=recovery` - -Your app must detect `type=recovery` in the fragment and display a password reset form to the user. - -You should then use the access_token in the url and new password to update the user as follows: - -```js -const { error, data } = await supabase.auth.api.updateUser(access_token, { - password: new_password, -}) -``` - -## Examples - -### Reset password - -```js -const { data, error } = await supabase.auth.api.resetPasswordForEmail( - 'user@email.com' -) -``` diff --git a/apps/reference/_supabase_js/sdk/auth-api-sendmobileotp.mdx b/apps/reference/_supabase_js/sdk/auth-api-sendmobileotp.mdx deleted file mode 100644 index 9e4f6b6b4a3..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-api-sendmobileotp.mdx +++ /dev/null @@ -1,115 +0,0 @@ ---- -id: auth-api-sendmobileotp -title: 'sendMobileOTP()' -slug: /auth-api-sendmobileotp -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Sends a mobile OTP via SMS. Will register the account if it doesn't already exist - -## Parameters - -
    - -
  • -

    - - phone - - - required - - - string - -

    -
    - -The user's phone number WITH international prefix - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - captchaToken - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - shouldCreateUser - - - optional - - - boolean - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should only be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Basic example. - -```js -const { data: user, error } = await supabase.auth.api.sendMobileOTP('12345879') -``` diff --git a/apps/reference/_supabase_js/sdk/auth-api-updateuserbyid.mdx b/apps/reference/_supabase_js/sdk/auth-api-updateuserbyid.mdx deleted file mode 100644 index 75129556236..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-api-updateuserbyid.mdx +++ /dev/null @@ -1,127 +0,0 @@ ---- -id: auth-api-updateuserbyid -title: 'updateUserById()' -slug: /auth-api-updateuserbyid -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Updates the user data. - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { email: 'new@email.com' } -) -``` - -## Parameters - -
    - -
  • -

    - - uid - - - required - - - string - -

    -
    - -No description provided. - -
    - -
  • - -
  • -

    - - attributes - - - required - - - AdminUserAttributes - -

    -
    - -The data you want to update. - -This function should only be called on a server. Never expose your `service_role` key in the browser. - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should only be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Updates a user's email. - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { email: 'new@email.com' } -) -``` - -### Updates a user's password. - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { password: 'new_password' } -) -``` - -### Updates a user's metadata. - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { user_metadata: { hello: 'world' } } -) -``` - -### Updates a user's app_metadata. - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { app_metadata: { plan: 'trial' } } -) -``` - -### Confirms a user's email address. - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { email_confirm: true } -) -``` - -### Confirms a user's phone number. - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { phone_confirm: true } -) -``` diff --git a/apps/reference/_supabase_js/sdk/auth-onauthstatechange.mdx b/apps/reference/_supabase_js/sdk/auth-onauthstatechange.mdx deleted file mode 100644 index f102c5b9680..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-onauthstatechange.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: auth-onauthstatechange -title: 'onAuthStateChange()' -slug: /auth-onauthstatechange -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Receive a notification every time an auth event happens. - -```js -supabase.auth.onAuthStateChange((event, session) => { - console.log(event, session) -}) -``` - -## Parameters - -
    - -
  • -

    - - callback - - - required - - - object - -

    -
    - -No description provided. - -
    - -
  • - -
- -## Examples - -### Listen to auth changes - -```js -supabase.auth.onAuthStateChange((event, session) => { - console.log(event, session) -}) -``` - -### Listen to sign in - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'SIGNED_IN') console.log('SIGNED_IN', session) -}) -``` - -### Listen to sign out - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'SIGNED_OUT') console.log('SIGNED_OUT', session) -}) -``` - -### Listen to token refresh - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'TOKEN_REFRESHED') console.log('TOKEN_REFRESHED', session) -}) -``` - -### Listen to user updates - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'USER_UPDATED') console.log('USER_UPDATED', session) -}) -``` - -### Listen to user deleted - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'USER_DELETED') console.log('USER_DELETED', session) -}) -``` - -### Listen to password recovery events - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'PASSWORD_RECOVERY') console.log('PASSWORD_RECOVERY', session) -}) -``` diff --git a/apps/reference/_supabase_js/sdk/auth-session.mdx b/apps/reference/_supabase_js/sdk/auth-session.mdx deleted file mode 100644 index 65bd9a57241..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-session.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -id: auth-session -title: 'session()' -slug: /auth-session -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Returns the session data, if there is an active session. - -```js -const session = supabase.auth.session() -``` - -## Examples - -### Get the session data - -```js -const session = supabase.auth.session() -``` diff --git a/apps/reference/_supabase_js/sdk/auth-setauth.mdx b/apps/reference/_supabase_js/sdk/auth-setauth.mdx deleted file mode 100644 index c0d03e8a82f..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-setauth.mdx +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: auth-setauth -title: 'setAuth()' -slug: /auth-setauth -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Overrides the JWT on the current client. The JWT will then be sent in all subsequent network requests. - -```js -function apiFunction(req, res) { - // Assuming the access token was sent as a header "X-Supabase-Auth" - const { access_token } = req.get('X-Supabase-Auth') - - // You can now use it within a Supabase Client - const supabase = createClient("https://xyzcompany.supabase.co", "public-anon-key") - const { user, error } = supabase.auth.setAuth(access_token) - - // This client will now send requests as this user - const { data } = await supabase.from('your_table').select() -} -``` - -## Parameters - -
    - -
  • -

    - - access_token - - - required - - - string - -

    -
    - -a jwt access token - -
    - -
  • - -
- -## Examples - -### Basic example. - -This is most useful on server-side functions where you cannot log the user in, but have access to the user's access token. - -```js -function apiFunction(req, res) { - // Assuming the access token was sent as a header "X-Supabase-Auth" - const { access_token } = req.get('X-Supabase-Auth') - - // You can now use it within a Supabase Client - const supabase = createClient("https://xyzcompany.supabase.co", "public-anon-key") - const { user, error } = supabase.auth.setAuth(access_token) - - // This client will now send requests as this user - const { data } = await supabase.from('your_table').select() -} -``` - -### With Express. - -```js -/** - * Make a request from the client to your server function - */ -async function makeApiRequest() { - const token = newClient.session()?.access_token - - await fetch('https://example.com/withAuth', { - method: 'GET', - withCredentials: true, - credentials: 'include', - headers: { - 'Content-Type': 'application/json', - Authorization: bearer, // Your own auth - 'X-Supabase-Auth': token, // Set the Supabase user - }, - }) -} - -/** - * Use the Auth token in your server-side function. - */ -async function apiFunction(req, res) { - const { access_token } = req.get('X-Supabase-Auth') - - // You can now use it within a Supabase Client - const supabase = createClient( - 'https://xyzcompany.supabase.co', - 'public-anon-key' - ) - const { user, error } = supabase.auth.setAuth(access_token) - - // This client will now send requests as this user - const { data } = await supabase.from('your_table').select() -} -``` diff --git a/apps/reference/_supabase_js/sdk/auth-signin.mdx b/apps/reference/_supabase_js/sdk/auth-signin.mdx deleted file mode 100644 index 1d4c5b197f4..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-signin.mdx +++ /dev/null @@ -1,275 +0,0 @@ ---- -id: auth-signin -title: 'signIn()' -slug: /auth-signin -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Log in an existing user, or login via a third-party provider. - -```js -const { user, session, error } = await supabase.auth.signIn({ - email: 'example@email.com', - password: 'example-password', -}) -``` - -## Parameters - -
    - -
  • -

    - - __namedParameters - - - required - - - UserCredentials - -

    -
    - -No description provided. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - captchaToken - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - queryParams - - - optional - - - object - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - redirectTo - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - scopes - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - shouldCreateUser - - - optional - - - boolean - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- A user can sign up either via email or OAuth. -- If you provide `email` without a `password`, the user will be sent a magic link. -- The magic link's destination URL is determined by the SITE_URL config variable. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) -- Specifying a `provider` will open the browser to the relevant login page. - -## Examples - -### Sign in with email. - -```js -const { user, session, error } = await supabase.auth.signIn({ - email: 'example@email.com', - password: 'example-password', -}) -``` - -### Sign in with magic link. - -If no password is provided, the user will be sent a "magic link" to their email address, which they can click to open your application with a valid session. By default, a given user can only request a Magic Link once every 60 seconds. - -```js -const { user, session, error } = await supabase.auth.signIn({ - email: 'example@email.com', -}) -``` - -### Sign in using third-party providers. - -Supabase supports many different [third-party providers](https://supabase.com/docs/guides/auth#providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - // provider can be 'github', 'google', 'gitlab', and more - provider: 'github', -}) -``` - -### Sign in with Phone. - -Supabase supports Phone Auth. - -```js -const { user, session, error } = await supabase.auth.signIn({ - phone: '+13334445555', - password: 'some-password', -}) -``` - -### Sign in with redirect. - -Note that the `redirectTo` param is only relevant for OAuth logins, where the login flow is managed by -the Auth server. If you are using email/phone logins you should set up your own redirects (within the email/sms template). - -Sometimes you want to control where the user is redirected to after they are logged in. Supabase supports this for -any URL path on your website (the URL must either be on the same domain as your Site URL [see Auth>Settings in dashboard], or must match one of the Additional Redirect URLs [also in Auth>Settings]). - -```js -const { user, session, error } = await supabase.auth.signIn( - { - provider: 'github', - }, - { - redirectTo: 'https://example.com/welcome', - } -) -``` - -### Sign in with scopes. - -If you need additional data from an OAuth provider, you can include a space-separated list of scopes in your request to get back an OAuth provider token. -You may also need to specify the scopes in the provider's OAuth app settings, depending on the provider. - -```js -const { user, session, error } = await supabase.auth.signIn( - { - provider: 'github', - }, - { - scopes: 'repo gist notifications', - } -) -const oAuthToken = session.provider_token // use to access provider API -``` - -### Sign in using a refresh token (e.g. in React Native). - -If you are completing a sign up or login in a React Native app you can pass the refresh token obtained from the provider to obtain a session. - -```js -// An example using Expo's `AuthSession` -const redirectUri = AuthSession.makeRedirectUri({ useProxy: false }) -const provider = 'google' - -AuthSession.startAsync({ - authUrl: `https://MYSUPABASEAPP.supabase.co/auth/v1/authorize?provider=${provider}&redirect_to=${redirectUri}`, - returnUrl: redirectUri, -}).then(async (response: any) => { - if (!response) return - const { user, session, error } = await supabase.auth.signIn({ - refreshToken: response.params?.refresh_token, - }) -}) -``` diff --git a/apps/reference/_supabase_js/sdk/auth-signout.mdx b/apps/reference/_supabase_js/sdk/auth-signout.mdx deleted file mode 100644 index ffe27f139f2..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-signout.mdx +++ /dev/null @@ -1,26 +0,0 @@ ---- -id: auth-signout -title: 'signOut()' -slug: /auth-signout -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Inside a browser context, `signOut()` will remove the logged in user from the browser session -and log them out - removing all items from localstorage and then trigger a "SIGNED_OUT" event. - -For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`. There is no way to revoke a user's session JWT before it automatically expires - -```js -const { error } = await supabase.auth.signOut() -``` - -## Examples - -### Sign out - -```js -const { error } = await supabase.auth.signOut() -``` diff --git a/apps/reference/_supabase_js/sdk/auth-signup.mdx b/apps/reference/_supabase_js/sdk/auth-signup.mdx deleted file mode 100644 index f587ddc1b63..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-signup.mdx +++ /dev/null @@ -1,189 +0,0 @@ ---- -id: auth-signup -title: 'signUp()' -slug: /auth-signup -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Creates a new user. - -```js -const { user, session, error } = await supabase.auth.signUp({ - email: 'example@email.com', - password: 'example-password', -}) -``` - -## Parameters - -
    - -
  • -

    - - __namedParameters - - - required - - - UserCredentials - -

    -
    - -No description provided. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - captchaToken - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - data - - - optional - - - object - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - redirectTo - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- By default, the user will need to verify their email address before logging in. If you would like to change this, you can disable "Email Confirmations" by going to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) -- If "Email Confirmations" is turned on, a `user` is returned but `session` will be null -- If "Email Confirmations" is turned off, both a `user` and a `session` will be returned -- When the user confirms their email address, they will be redirected to localhost:3000 by default. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) -- If signUp() is called for an existing confirmed user: - - If "Enable email confirmations" is enabled on the "Authentication" -> "Settings" page, an obfuscated / fake user object will be returned. - - If "Enable email confirmations" is disabled, an error with a message "User already registered" will be returned. -- To check if a user already exists, refer to getUser(). - -## Examples - -### Sign up. - -```js -const { user, session, error } = await supabase.auth.signUp({ - email: 'example@email.com', - password: 'example-password', -}) -``` - -### Sign up with additional user meta data. - -```js -const { user, session, error } = await supabase.auth.signUp( - { - email: 'example@email.com', - password: 'example-password', - }, - { - data: { - first_name: 'John', - age: 27, - }, - } -) -``` - -### Sign up with third-party providers. - -You can sign up with OAuth providers using the [`signIn()`](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) method. - -### Sign up with Phone. - -Supabase supports Phone Auth. After a user has verified their number, they can use the [`signIn()`](/docs/reference/javascript/auth-signin#sign-in-using-phone) method. - -```js -const { user, session, error } = await supabase.auth.signUp({ - phone: '+13334445555', - password: 'some-password', -}) - -// After receiving an SMS with One Time Password. -let { session, error } = await supabase.auth.verifyOTP({ - phone: '+13334445555', - token: '123456', -}) -``` diff --git a/apps/reference/_supabase_js/sdk/auth-update.mdx b/apps/reference/_supabase_js/sdk/auth-update.mdx deleted file mode 100644 index 4ceb5f7e6e9..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-update.mdx +++ /dev/null @@ -1,73 +0,0 @@ ---- -id: auth-update -title: 'update()' -slug: /auth-update -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Updates user data, if there is a logged in user. - -```js -const { user, error } = await supabase.auth.update({ email: 'new@email.com' }) -``` - -## Parameters - -
    - -
  • -

    - - attributes - - - required - - - UserAttributes - -

    -
    - -No description provided. - -
    - -
  • - -
- -## Notes - -User email: Email updates will send an email to both the user's current and new email with a confirmation link by default. -To toggle this behavior off and only send a single confirmation link to the new email, toggle "Double confirm email changes" under "Authentication" -> "Settings" off. - -User metadata: It's generally better to store user data in a table inside your public schema (i.e. `public.users`). -Use the `update()` method if you have data which rarely changes or is specific only to the logged in user. - -## Examples - -### Update email for authenticated user. - -Sends a "Confirm Email Change" email to the new email address. - -```js -const { user, error } = await supabase.auth.update({ email: 'new@email.com' }) -``` - -### Update password for authenticated user. - -```js -const { user, error } = await supabase.auth.update({ password: 'new password' }) -``` - -### Update a user's metadata. - -```js -const { user, error } = await supabase.auth.update({ - data: { hello: 'world' }, -}) -``` diff --git a/apps/reference/_supabase_js/sdk/auth-user.mdx b/apps/reference/_supabase_js/sdk/auth-user.mdx deleted file mode 100644 index 1f0bda9417a..00000000000 --- a/apps/reference/_supabase_js/sdk/auth-user.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: auth-user -title: 'user()' -slug: /auth-user -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Inside a browser context, `user()` will return the user data, if there is a logged in user. - -For server-side management, you can get a user through `auth.api.getUserByCookie()` - -```js -const user = supabase.auth.user() -``` - -## Notes - -This method gets the user object from memory. - -## Examples - -### Get the logged in user - -```js -const user = supabase.auth.user() -``` diff --git a/apps/reference/_supabase_js/sdk/containedby.mdx b/apps/reference/_supabase_js/sdk/containedby.mdx deleted file mode 100644 index b58a3271632..00000000000 --- a/apps/reference/_supabase_js/sdk/containedby.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: containedby -title: '.containedBy()' -slug: /containedby -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .containedBy('main_exports', ['cars', 'food', 'machine']) -``` - -## Notes - -- `.containedBy()` can work on array columns or range columns. - - ```js - .containedBy('arraycol',["a","b"]) // You can use a javascript array for an array column - .containedBy('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .containedBy('rangecol','(1,2]') // Use Postgres range syntax for range column. - .containedBy('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .containedBy('main_exports', ['cars', 'food', 'machine']) -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .containedBy('main_exports', ['orks', 'surveillance', 'evil']) -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .containedBy('main_exports', ['cars', 'food', 'machine']) -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .containedBy('main_exports', ['cars', 'food', 'machine']) -``` diff --git a/apps/reference/_supabase_js/sdk/contains.mdx b/apps/reference/_supabase_js/sdk/contains.mdx deleted file mode 100644 index 1203d6ad3ed..00000000000 --- a/apps/reference/_supabase_js/sdk/contains.mdx +++ /dev/null @@ -1,66 +0,0 @@ ---- -id: contains -title: '.contains()' -slug: /contains -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .contains('main_exports', ['oil']) -``` - -## Notes - -- `.contains()` can work on array columns or range columns. - It is very useful for finding rows where a tag array contains all the values in the filter array. - - ```js - .contains('arraycol',["a","b"]) // You can use a javascript array for an array column - .contains('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .contains('rangecol','(1,2]') // Use Postgres range syntax for range column. - .contains('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .contains('main_exports', ['oil']) -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .contains('main_exports', ['oil']) -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .contains('main_exports', ['oil']) -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .contains('main_exports', ['oil']) -``` diff --git a/apps/reference/_supabase_js/sdk/delete.mdx b/apps/reference/_supabase_js/sdk/delete.mdx deleted file mode 100644 index c63b41b8e30..00000000000 --- a/apps/reference/_supabase_js/sdk/delete.mdx +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: delete -title: 'Delete data: delete()' -slug: /delete -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs a DELETE on the table. - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .match({ id: 666 }) -``` - -## Parameters - -
    - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - returning - - - required - - - minimal | representation - -

      -
      - -If `true`, return the deleted row(s) in the response. - -
      - -
    • - -
    • -

      - - count - - - required - - - null | exact | planned | estimated - -

      -
      - -Count algorithm to use to count rows in a table. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- `delete()` should always be combined with [filters](/docs/reference/javascript/using-filters) to target the item(s) you wish to delete. -- If you use `delete()` with filters and you have - [RLS](/docs/learn/auth-deep-dive/auth-row-level-security) enabled, only - rows visible through `SELECT` policies are deleted. Note that by default - no rows are visible, so you need at least one `SELECT`/`ALL` policy that - makes the rows visible. - -## Examples - -### Delete records - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .match({ id: 666 }) -``` diff --git a/apps/reference/_supabase_js/sdk/eq.mdx b/apps/reference/_supabase_js/sdk/eq.mdx deleted file mode 100644 index 44e46e82900..00000000000 --- a/apps/reference/_supabase_js/sdk/eq.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: eq -title: '.eq()' -slug: /eq -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` exactly matches the -specified `value`. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The shire') -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The shire') -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .eq('name', 'San Francisco') -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .eq('name', 'Mordor') -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .eq('name', 'San Francisco') -``` diff --git a/apps/reference/_supabase_js/sdk/filter.mdx b/apps/reference/_supabase_js/sdk/filter.mdx deleted file mode 100644 index 0dc9d9bfaaf..00000000000 --- a/apps/reference/_supabase_js/sdk/filter.mdx +++ /dev/null @@ -1,141 +0,0 @@ ---- -id: filter -title: '.filter()' -slug: /filter -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose `column` satisfies the filter. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .filter('name', 'in', '("Paris","Tokyo")') -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - operator - - - required - - - FilterOperator - -

    -
    - -The operator to filter with. - -
    - -
  • - -
  • -

    - - value - - - required - - - any - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Notes - -- `.filter()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values, so it should only be used as an escape hatch in case other filters don't work. - ```js - .filter('arraycol','cs','{"a","b"}') // Use Postgres array {} for array column and 'cs' for contains. - .filter('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .filter('id','in','(6,7)') // Use Postgres list () for in filter. - .filter('id','in',`(${arr})`) // You can insert a javascript array. - ``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .filter('name', 'in', '("Paris","Tokyo")') -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .filter('name', 'in', '("Paris","Tokyo")') -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .filter('name', 'in', '("Paris","Tokyo")') -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .filter('name', 'in', '("Paris","Tokyo")') -``` - -### Filter embedded resources - -```js -const { data, error } = await supabase - .from('cities') - .select('name, countries ( name )') - .filter('countries.name', 'in', '("France","Japan")') -``` diff --git a/apps/reference/_supabase_js/sdk/getsubscriptions.mdx b/apps/reference/_supabase_js/sdk/getsubscriptions.mdx deleted file mode 100644 index 77b312b53a8..00000000000 --- a/apps/reference/_supabase_js/sdk/getsubscriptions.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -id: getsubscriptions -title: 'getSubscriptions()' -slug: /getsubscriptions -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Returns an array of all your subscriptions. - -```js -const subscriptions = supabase.getSubscriptions() -``` - -## Examples - -### Get all subscriptions - -```js -const subscriptions = supabase.getSubscriptions() -``` diff --git a/apps/reference/_supabase_js/sdk/gt.mdx b/apps/reference/_supabase_js/sdk/gt.mdx deleted file mode 100644 index 19f5dffd62c..00000000000 --- a/apps/reference/_supabase_js/sdk/gt.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: gt -title: '.gt()' -slug: /gt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is greater than the -specified `value`. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gt('country_id', 250) -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gt('country_id', 250) -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .gt('country_id', 250) -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .gt('country_id', 250) -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .gt('country_id', 250) -``` diff --git a/apps/reference/_supabase_js/sdk/gte.mdx b/apps/reference/_supabase_js/sdk/gte.mdx deleted file mode 100644 index 0b130750794..00000000000 --- a/apps/reference/_supabase_js/sdk/gte.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: gte -title: '.gte()' -slug: /gte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is greater than or -equal to the specified `value`. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gte('country_id', 250) -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gte('country_id', 250) -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .gte('country_id', 250) -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .gte('country_id', 250) -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .gte('country_id', 250) -``` diff --git a/apps/reference/_supabase_js/sdk/ilike.mdx b/apps/reference/_supabase_js/sdk/ilike.mdx deleted file mode 100644 index e03a5313ab6..00000000000 --- a/apps/reference/_supabase_js/sdk/ilike.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: ilike -title: '.ilike()' -slug: /ilike -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value in the stated `column` matches the supplied -`pattern` (case insensitive). - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .ilike('name', '%la%') -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - pattern - - - required - - - string - -

    -
    - -The pattern to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .ilike('name', '%la%') -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .ilike('name', '%la%') -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .ilike('name', '%la%') -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .ilike('name', '%la%') -``` diff --git a/apps/reference/_supabase_js/sdk/in.mdx b/apps/reference/_supabase_js/sdk/in.mdx deleted file mode 100644 index 382c102d728..00000000000 --- a/apps/reference/_supabase_js/sdk/in.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: in -title: '.in()' -slug: /in -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is found on the -specified `values`. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .in('name', ['Rio de Janeiro', 'San Francisco']) -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - values - - - required - - - object - -

    -
    - -The values to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .in('name', ['Rio de Janeiro', 'San Francisco']) -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .in('name', ['Rio de Janeiro', 'San Francisco']) -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .in('name', ['Rio de Janeiro', 'San Francisco']) -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .in('name', ['Rio de Janeiro', 'San Francisco']) -``` diff --git a/apps/reference/_supabase_js/sdk/index.mdx b/apps/reference/_supabase_js/sdk/index.mdx deleted file mode 100644 index a25a52f0326..00000000000 --- a/apps/reference/_supabase_js/sdk/index.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -id: index -title: 'Supabase Client' -slug: supabase-client -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Supabase JavaScript. diff --git a/apps/reference/_supabase_js/sdk/insert.mdx b/apps/reference/_supabase_js/sdk/insert.mdx deleted file mode 100644 index 588bdc094e0..00000000000 --- a/apps/reference/_supabase_js/sdk/insert.mdx +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: insert -title: 'Create data: insert()' -slug: /insert -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs an INSERT into the table. - -```js -const { data, error } = await supabase - .from('cities') - .insert([{ name: 'The Shire', country_id: 554 }]) -``` - -## Parameters - -
    - -
  • -

    - - values - - - required - - - Partial | array - -

    -
    - -The values to insert. - -
    - -
  • - -
  • -

    - - options - - - optional - - - undefined | reflection - -

    -
    - -No description provided. - -
    - -
  • - -
- -## Notes - -- By default, every time you run `insert()`, the client library will make a `select` to return the full record. - This is convenient, but it can also cause problems if your Policies are not configured to allow the `select` operation. - If you are using Row Level Security and you are encountering problems, try setting the `returning` param to `minimal`. - -## Examples - -### Create a record - -```js -const { data, error } = await supabase - .from('cities') - .insert([{ name: 'The Shire', country_id: 554 }]) -``` - -### Bulk create - -When running a bulk create, the operation is handled in a single transaction. If any of the inserts fail, all other operations are -rolled back. - -```js -const { data, error } = await supabase.from('cities').insert([ - { name: 'The Shire', country_id: 554 }, - { name: 'Rohan', country_id: 555 }, -]) -``` - -### Upsert - -For upsert, if set to true, primary key columns would need to be included -in the data parameter in order for an update to properly happen. Also, primary keys -used must be natural, not surrogate. There are however, -[workarounds](https://github.com/PostgREST/postgrest/issues/1118) -for surrogate primary keys. - -```js -const { data, error } = await supabase.from('cities').insert( - [ - { name: 'The Shire', country_id: 554 }, - { name: 'Rohan', country_id: 555 }, - { name: 'City by the Bay', country_id: 840 }, - ], - { upsert: true } -) -``` diff --git a/apps/reference/_supabase_js/sdk/invoke.mdx b/apps/reference/_supabase_js/sdk/invoke.mdx deleted file mode 100644 index cfd24c6afcb..00000000000 --- a/apps/reference/_supabase_js/sdk/invoke.mdx +++ /dev/null @@ -1,105 +0,0 @@ ---- -id: invoke -title: 'invoke()' -slug: /invoke -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Invokes a Supabase Function. - -```js -const { data: user, error } = await supabase.functions.invoke('hello', { - body: JSON.stringify({ foo: 'bar' }), -}) -``` - -## Parameters - -
    - -
  • -

    - - functionName - - - required - - - string - -

    -
    - -the name of the function to invoke - -
    - -
  • - -
  • -

    - - invokeOptions - - - optional - - - FunctionInvokeOptions - -

    -
    - -object with the following properties -`headers`: object representing the headers to send with the request -`body`: the body of the request -`responseType`: how the response should be parsed. The default is `json` - -
    - -
  • - -
- -## Notes - -- Requires an Authorization header. -- Invoke params generally match the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) spec. - -## Examples - -### Basic invocation. - -```js -const { data: user, error } = await supabase.functions.invoke('hello', { - body: JSON.stringify({ foo: 'bar' }), -}) -``` - -### Specifying response type. - -By default, `invoke()` will parse the response as JSON. You can parse the response in the following formats: `json`, `blob`, `text`, and `arrayBuffer`. - -```js -const { data: user, error } = await supabase.functions.invoke('hello', { - responseType: 'text', - body: JSON.stringify({ foo: 'bar' }), -}) -``` - -### Parsing custom headers. - -You can pass custom headers to your function. Note: supabase-js automatically passes the `Authorization` header with the signed in user's JWT. - -```js -const { data: user, error } = await supabase.functions.invoke('hello', { - headers: { - 'my-custom-header': 'my-custom-header-value', - }, - body: JSON.stringify({ foo: 'bar' }), -}) -``` diff --git a/apps/reference/_supabase_js/sdk/is.mdx b/apps/reference/_supabase_js/sdk/is.mdx deleted file mode 100644 index dbb0c8c72a7..00000000000 --- a/apps/reference/_supabase_js/sdk/is.mdx +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: is -title: '.is()' -slug: /is -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -A check for exact equality (null, true, false), finds all rows whose -value on the stated `column` exactly match the specified `value`. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .is('name', null) -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - boolean | null - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .is('name', null) -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .is('name', null) -``` - -### With `delete()` - -```js -const { data, error } = await supabase.from('cities').delete().is('name', null) -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase.rpc('echo_all_cities').is('name', null) -``` diff --git a/apps/reference/_supabase_js/sdk/like.mdx b/apps/reference/_supabase_js/sdk/like.mdx deleted file mode 100644 index 8a8ac83bebc..00000000000 --- a/apps/reference/_supabase_js/sdk/like.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: like -title: '.like()' -slug: /like -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value in the stated `column` matches the supplied -`pattern` (case sensitive). - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .like('name', '%la%') -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - pattern - - - required - - - string - -

    -
    - -The pattern to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .like('name', '%la%') -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .like('name', '%la%') -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .like('name', '%la%') -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .like('name', '%la%') -``` diff --git a/apps/reference/_supabase_js/sdk/limit.mdx b/apps/reference/_supabase_js/sdk/limit.mdx deleted file mode 100644 index 9dc354106db..00000000000 --- a/apps/reference/_supabase_js/sdk/limit.mdx +++ /dev/null @@ -1,110 +0,0 @@ ---- -id: limit -title: 'limit()' -slug: /limit -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Limits the result with the specified `count`. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) -``` - -## Parameters - -
    - -
  • -

    - - count - - - required - - - number - -

    -
    - -The maximum no. of rows to limit to. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - foreignTable - - - required - - - undefined | string - -

      -
      - -The foreign table to use (for foreign columns). - -
      - -
    • - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) -``` - -### With embedded resources - -```js -const { data, error } = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .limit(1, { foreignTable: 'cities' }) -``` diff --git a/apps/reference/_supabase_js/sdk/lt.mdx b/apps/reference/_supabase_js/sdk/lt.mdx deleted file mode 100644 index c0411060feb..00000000000 --- a/apps/reference/_supabase_js/sdk/lt.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: lt -title: '.lt()' -slug: /lt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is less than the -specified `value`. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lt('country_id', 250) -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lt('country_id', 250) -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .lt('country_id', 250) -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .lt('country_id', 250) -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .lt('country_id', 250) -``` diff --git a/apps/reference/_supabase_js/sdk/lte.mdx b/apps/reference/_supabase_js/sdk/lte.mdx deleted file mode 100644 index 71fd438cbdf..00000000000 --- a/apps/reference/_supabase_js/sdk/lte.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: lte -title: '.lte()' -slug: /lte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is less than or equal -to the specified `value`. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lte('country_id', 250) -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lte('country_id', 250) -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .lte('country_id', 250) -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .lte('country_id', 250) -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .lte('country_id', 250) -``` diff --git a/apps/reference/_supabase_js/sdk/match.mdx b/apps/reference/_supabase_js/sdk/match.mdx deleted file mode 100644 index c2ba9363b02..00000000000 --- a/apps/reference/_supabase_js/sdk/match.mdx +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: match -title: '.match()' -slug: /match -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose columns match the specified `query` object. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .match({ name: 'Beijing', country_id: 156 }) -``` - -## Parameters - -
    - -
  • -

    - - query - - - required - - - Record - -

    -
    - -The object to filter with, with column names as keys mapped -to their filter values. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .match({ name: 'Beijing', country_id: 156 }) -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .match({ name: 'Beijing', country_id: 156 }) -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .match({ name: 'Beijing', country_id: 156 }) -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .match({ name: 'Beijing', country_id: 156 }) -``` diff --git a/apps/reference/_supabase_js/sdk/maybesingle.mdx b/apps/reference/_supabase_js/sdk/maybesingle.mdx deleted file mode 100644 index 8d354b462ed..00000000000 --- a/apps/reference/_supabase_js/sdk/maybesingle.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -id: maybesingle -title: 'maybeSingle()' -slug: /maybesingle -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieves at most one row from the result. Result must be at most one row -(e.g. using `eq` on a UNIQUE column), otherwise this will result in an -error. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'Singapore') - .maybeSingle() -``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'Singapore') - .maybeSingle() -``` diff --git a/apps/reference/_supabase_js/sdk/neq.mdx b/apps/reference/_supabase_js/sdk/neq.mdx deleted file mode 100644 index cdedceafcd1..00000000000 --- a/apps/reference/_supabase_js/sdk/neq.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: neq -title: '.neq()' -slug: /neq -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` doesn't match the -specified `value`. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .neq('name', 'The shire') -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .neq('name', 'The shire') -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .neq('name', 'San Francisco') -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .neq('name', 'Mordor') -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .neq('name', 'Lagos') -``` diff --git a/apps/reference/_supabase_js/sdk/not.mdx b/apps/reference/_supabase_js/sdk/not.mdx deleted file mode 100644 index e0c55713b76..00000000000 --- a/apps/reference/_supabase_js/sdk/not.mdx +++ /dev/null @@ -1,134 +0,0 @@ ---- -id: not -title: '.not()' -slug: /not -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows which doesn't satisfy the filter. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .not('name', 'eq', 'Paris') -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - operator - - - required - - - FilterOperator - -

    -
    - -The operator to filter with. - -
    - -
  • - -
  • -

    - - value - - - required - - - any - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Notes - -- `.not()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```js - .not('name','eq','Paris') - .not('arraycol','cs','{"a","b"}') // Use Postgres array {} for array column and 'cs' for contains. - .not('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .not('id','in','(6,7)') // Use Postgres list () for in filter. - .not('id','in',`(${arr})`) // You can insert a javascript array. - ``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .not('name', 'eq', 'Paris') -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .not('name', 'eq', 'Paris') -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .not('name', 'eq', 'Paris') -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .not('name', 'eq', 'Paris') -``` diff --git a/apps/reference/_supabase_js/sdk/or.mdx b/apps/reference/_supabase_js/sdk/or.mdx deleted file mode 100644 index 3e78274a2da..00000000000 --- a/apps/reference/_supabase_js/sdk/or.mdx +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: or -title: '.or()' -slug: /or -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows satisfying at least one of the filters. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .or('id.eq.20,id.eq.30') -``` - -## Parameters - -
    - -
  • -

    - - filters - - - required - - - string - -

    -
    - -The filters to use, separated by commas. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - foreignTable - - - required - - - undefined | string - -

      -
      - -The foreign table to use (if `column` is a foreign column). - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- `.or()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```js - .or('id.in.(6,7), arraycol.cs.{"a","b"}') // Use Postgres list () for in filter. Array {} for array column and 'cs' for contains. - .or(`id.in.(${arrList}),arraycol.cs.{${arr}}`) // You can insert a javascipt array for list or array on array column. - .or(`id.in.(${arrList}),rangecol.cs.[${arrRange})`) // You can insert a javascipt array for list or range on a range column. - ``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .or('id.eq.20,id.eq.30') -``` - -### Use `or` with `and` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .or('id.gt.20,and(name.eq.New Zealand,name.eq.France)') -``` - -### Use `or` on foreign tables - -```js -const { data, error } = await supabase - .from('countries') - .select('id, cities(*)') - .or('name.eq.Wellington,name.eq.Paris', { foreignTable: 'cities' }) -``` diff --git a/apps/reference/_supabase_js/sdk/order.mdx b/apps/reference/_supabase_js/sdk/order.mdx deleted file mode 100644 index afd5e2a2d16..00000000000 --- a/apps/reference/_supabase_js/sdk/order.mdx +++ /dev/null @@ -1,150 +0,0 @@ ---- -id: order -title: 'order()' -slug: /order -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Orders the result with the specified `column`. - -```js -const { data, error } = await supabase - .from('cities') - .select('name', 'country_id') - .order('id', { ascending: false }) -``` - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to order on. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - nullsFirst - - - required - - - boolean - -

      -
      - -If `true`, `null`s appear first. - -
      - -
    • - -
    • -

      - - foreignTable - - - required - - - undefined | string - -

      -
      - -The foreign table to use (if `column` is a foreign column). - -
      - -
    • - -
    • -

      - - ascending - - - required - - - boolean - -

      -
      - -If `true`, the result will be in ascending order. - -
      - -
    • - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name', 'country_id') - .order('id', { ascending: false }) -``` - -### With embedded resources - -```js -const { data, error } = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .order('name', { foreignTable: 'cities' }) -``` diff --git a/apps/reference/_supabase_js/sdk/overlaps.mdx b/apps/reference/_supabase_js/sdk/overlaps.mdx deleted file mode 100644 index b3f0f877f79..00000000000 --- a/apps/reference/_supabase_js/sdk/overlaps.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: overlaps -title: '.overlaps()' -slug: /overlaps -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .overlaps('main_exports', ['computers', 'minerals']) -``` - -## Notes - -- `.overlaps()` can work on array columns or range columns. - - ```js - .overlaps('arraycol',["a","b"]) // You can use a javascript array for an array column - .overlaps('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .overlaps('rangecol','(1,2]') // Use Postgres range syntax for range column. - .overlaps('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .overlaps('main_exports', ['computers', 'minerals']) -``` - -### With `update()` - -```js -let countries = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .overlaps('main_exports', ['computers', 'minerals']) -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .overlaps('main_exports', ['computers', 'minerals']) -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .overlaps('main_exports', ['computers', 'minerals']) -``` diff --git a/apps/reference/_supabase_js/sdk/range.mdx b/apps/reference/_supabase_js/sdk/range.mdx deleted file mode 100644 index 5f304eff4c8..00000000000 --- a/apps/reference/_supabase_js/sdk/range.mdx +++ /dev/null @@ -1,120 +0,0 @@ ---- -id: range -title: 'range()' -slug: /range -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Limits the result to rows within the specified range, inclusive. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .range(0, 3) -``` - -## Parameters - -
    - -
  • -

    - - from - - - required - - - number - -

    -
    - -The starting index from which to limit the result, inclusive. - -
    - -
  • - -
  • -

    - - to - - - required - - - number - -

    -
    - -The last index to which to limit the result, inclusive. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - foreignTable - - - required - - - undefined | string - -

      -
      - -The foreign table to use (for foreign columns). - -
      - -
    • - -
    - -
  • - -
- -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .range(0, 3) -``` diff --git a/apps/reference/_supabase_js/sdk/rangeadjacent.mdx b/apps/reference/_supabase_js/sdk/rangeadjacent.mdx deleted file mode 100644 index 49aa41beb45..00000000000 --- a/apps/reference/_supabase_js/sdk/rangeadjacent.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: rangeadjacent -title: '.rangeAdjacent()' -slug: /rangeadjacent -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeAdjacent('population_range_millions', '[70, 185]') -``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeAdjacent('population_range_millions', '[70, 185]') -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeAdjacent('population_range_millions', '[70, 185]') -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .rangeAdjacent('population_range_millions', '[70, 185]') -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeAdjacent('population_range_millions', '[70, 185]') -``` diff --git a/apps/reference/_supabase_js/sdk/rangegt.mdx b/apps/reference/_supabase_js/sdk/rangegt.mdx deleted file mode 100644 index 20f7f13cc2a..00000000000 --- a/apps/reference/_supabase_js/sdk/rangegt.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: rangegt -title: '.rangeGt()' -slug: /rangegt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGt('population_range_millions', '[150, 250]') -``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGt('population_range_millions', '[150, 250]') -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeGt('population_range_millions', '[150, 250]') -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .rangeGt('population_range_millions', '[150, 250]') -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeGt('population_range_millions', '[150, 250]') -``` diff --git a/apps/reference/_supabase_js/sdk/rangegte.mdx b/apps/reference/_supabase_js/sdk/rangegte.mdx deleted file mode 100644 index b31f8068d73..00000000000 --- a/apps/reference/_supabase_js/sdk/rangegte.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: rangegte -title: '.rangeGte()' -slug: /rangegte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGte('population_range_millions', '[150, 250]') -``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGte('population_range_millions', '[150, 250]') -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeGte('population_range_millions', '[150, 250]') -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .rangeGte('population_range_millions', '[150, 250]') -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeGte('population_range_millions', '[150, 250]') -``` diff --git a/apps/reference/_supabase_js/sdk/rangelt.mdx b/apps/reference/_supabase_js/sdk/rangelt.mdx deleted file mode 100644 index 5c28fb1b8a9..00000000000 --- a/apps/reference/_supabase_js/sdk/rangelt.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: rangelt -title: '.rangeLt()' -slug: /rangelt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLt('population_range_millions', '[150, 250]') -``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLt('population_range_millions', '[150, 250]') -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeLt('population_range_millions', '[150, 250]') -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .rangeLt('population_range_millions', '[150, 250]') -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeLt('population_range_millions', '[150, 250]') -``` diff --git a/apps/reference/_supabase_js/sdk/rangelte.mdx b/apps/reference/_supabase_js/sdk/rangelte.mdx deleted file mode 100644 index 1884658f482..00000000000 --- a/apps/reference/_supabase_js/sdk/rangelte.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: rangelte -title: '.rangeLte()' -slug: /rangelte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLte('population_range_millions', '[150, 250]') -``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLte('population_range_millions', '[150, 250]') -``` - -### With `update()` - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeLte('population_range_millions', '[150, 250]') -``` - -### With `delete()` - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .rangeLte('population_range_millions', '[150, 250]') -``` - -### With `rpc()` - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeLte('population_range_millions', '[150, 250]') -``` diff --git a/apps/reference/_supabase_js/sdk/removeallsubscriptions.mdx b/apps/reference/_supabase_js/sdk/removeallsubscriptions.mdx deleted file mode 100644 index bd79ef872b9..00000000000 --- a/apps/reference/_supabase_js/sdk/removeallsubscriptions.mdx +++ /dev/null @@ -1,28 +0,0 @@ ---- -id: removeallsubscriptions -title: 'removeAllSubscriptions()' -slug: /removeallsubscriptions -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Closes and removes all subscriptions and returns a list of removed -subscriptions and their errors. - -```js -supabase.removeAllSubscriptions() -``` - -## Notes - -- Removing subscriptions is a great way to maintain the performance of your project's database. Supabase will automatically handle cleanup 30 seconds after a user is disconnected, but unused subscriptions may cause degradation as more users are simultaneously subscribed. - -## Examples - -### Removes all subscriptions - -```js -supabase.removeAllSubscriptions() -``` diff --git a/apps/reference/_supabase_js/sdk/removesubscription.mdx b/apps/reference/_supabase_js/sdk/removesubscription.mdx deleted file mode 100644 index 3c168797420..00000000000 --- a/apps/reference/_supabase_js/sdk/removesubscription.mdx +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: removesubscription -title: 'removeSubscription()' -slug: /removesubscription -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Closes and removes a subscription and returns the number of open subscriptions. - -```js -supabase.removeSubscription(mySubscription) -``` - -## Parameters - -
    - -
  • -

    - - subscription - - - required - - - default - -

    -
    - -The subscription you want to close and remove. - -
    - -
  • - -
- -## Notes - -- Removing subscriptions is a great way to maintain the performance of your project's database. Supabase will automatically handle cleanup 30 seconds after a user is disconnected, but unused subscriptions may cause degradation as more users are simultaneously subscribed. - -## Examples - -### Remove a subscription - -```js -supabase.removeSubscription(mySubscription) -``` diff --git a/apps/reference/_supabase_js/sdk/rpc.mdx b/apps/reference/_supabase_js/sdk/rpc.mdx deleted file mode 100644 index 3e6982909e2..00000000000 --- a/apps/reference/_supabase_js/sdk/rpc.mdx +++ /dev/null @@ -1,187 +0,0 @@ ---- -id: rpc -title: 'Postgres functions: rpc()' -slug: /rpc -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -You can call Postgres functions as a "Remote Procedure Call". - -That's a fancy way of saying that you can put some logic into your database then call it from anywhere. -It's especially useful when the logic rarely changes - like password resets and updates. - -```sql -create or replace function hello_world() returns text as $$ - select 'Hello world'; -$$ language sql; -``` - -```js -const { data, error } = await supabase.rpc('hello_world') -``` - -## Parameters - -
    - -
  • -

    - - fn - - - required - - - string - -

    -
    - -The function name to call. - -
    - -
  • - -
  • -

    - - params - - - optional - - - undefined | object - -

    -
    - -The parameters to pass to the function call. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - head - - - required - - - boolean - -

      -
      - -When set to true, no data will be returned. - -
      - -
    • - -
    • -

      - - count - - - required - - - null | exact | planned | estimated - -

      -
      - -Count algorithm to use to count rows in a table. - -
      - -
    • - -
    - -
  • - -
- -## Examples - -### Call a Postgres function - -This is an example of invoking a Postgres function with no parameters. - -```js -const { data, error } = await supabase.rpc('hello_world') -``` - -### With Parameters - -```js -const { data, error } = await supabase.rpc('echo_city', { name: 'The Shire' }) -``` - -### Bulk processing - -You can process large payloads at once using [array parameters](https://postgrest.org/en/stable/api.html#calling-functions-with-array-parameters). - -```js -const { data, error } = await postgrest.rpc('echo_cities', { - names: ['The Shire', 'Mordor'], -}) -``` - -### With filters - -Postgres functions that return tables can also be combined with -[Modifiers](/docs/reference/javascript/using-modifiers) and -[Filters](/docs/reference/javascript/using-filters). - -```js -const { data, error } = await supabase - .rpc('echo_all_cities') - .select('name, population') - .eq('name', 'The Shire') -``` - -### With count option - -You can specify a count option to get the row count along with your data. -Allowed values for count option are `null`, `exact`, `planned` and `estimated`. - -```js -const { data, error, count } = await supabase.rpc( - 'hello_world', - {}, - { count: 'exact' } -) -``` diff --git a/apps/reference/_supabase_js/sdk/select.mdx b/apps/reference/_supabase_js/sdk/select.mdx deleted file mode 100644 index 0cc42396eba..00000000000 --- a/apps/reference/_supabase_js/sdk/select.mdx +++ /dev/null @@ -1,244 +0,0 @@ ---- -id: select -title: 'Fetch data: select()' -slug: /select -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs vertical filtering with SELECT. - -```js -const { data, error } = await supabase.from('cities').select() -``` - -## Parameters - -
    - -
  • -

    - - columns - - - required - - - string - -

    -
    - -The columns to retrieve, separated by commas. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - head - - - required - - - boolean - -

      -
      - -When set to true, select will void data. - -
      - -
    • - -
    • -

      - - count - - - required - - - null | exact | planned | estimated - -

      -
      - -Count algorithm to use to count rows in a table. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- By default, Supabase projects will return a maximum of 1,000 rows. This setting can be changed in Project API Settings. It's recommended that you keep it low to limit the payload size of accidental or malicious requests. You can use `range()` queries to paginate through your data. -- `select()` can be combined with [Modifiers](/docs/reference/javascript/using-modifiers) -- `select()` can be combined with [Filters](/docs/reference/javascript/using-filters) -- If using the Supabase hosted platform `apikey` is technically a reserved keyword, since the API gateway will pluck it out for authentication. [It should be avoided as a column name](https://github.com/supabase/supabase/issues/5465). - -## Examples - -### Getting your data - -```js -const { data, error } = await supabase.from('cities').select() -``` - -### Selecting specific columns - -You can select specific fields from your tables. - -```js -const { data, error } = await supabase.from('cities').select('name') -``` - -### Query foreign tables - -If your database has foreign key relationships, you can query related tables too. - -```js -const { data, error } = await supabase.from('countries').select(` - name, - cities ( - name - ) - `) -``` - -:::note What about join tables -If you're in a situation where your tables are **NOT** directly related, but instead are joined by a _join table_, -you can still use the `select()` method to query the related data. The PostgREST engine detects the relationship automatically. -For more details, [follow the link](https://postgrest.org/en/latest/api.html#embedding-through-join-tables). - -::: - -### Query the same foreign table multiple times - -Sometimes you will need to query the same foreign table twice. -In this case, you can use the name of the joined column to identify -which join you intend to use. For convenience, you can also give an -alias for each column. For example, if we had a shop of products, -and we wanted to get the supplier and the purchaser at the same time -(both in the users) table: - -```js -const { data, error } = await supabase.from('products').select(` - id, - supplier:supplier_id ( name ), - purchaser:purchaser_id ( name ) - `) -``` - -### Filtering with inner joins - -If you want to filter a table based on a child table's values you can use the `!inner()` function. For example, if you wanted -to select all rows in a `message` table which belong to a user with the `username` "Jane": - -```js -const { data, error } = await supabase - .from('messages') - .select('*, users!inner(*)') - .eq('users.username', 'Jane') -``` - -### Querying with count option - -You can get the number of rows by using the count option. -Allowed values for count option are `null`, [exact](https://postgrest.org/en/stable/api.html#exact-count), [planned](https://postgrest.org/en/stable/api.html#planned-count) and [estimated](https://postgrest.org/en/stable/api.html#estimated-count). - -```js -const { data, error, count } = await supabase - .from('cities') - .select('name', { count: 'exact' }) // if you don't want to return any rows, you can use { count: 'exact', head: true } -``` - -### Querying JSON data - -If you have data inside of a JSONB column, you can apply select -and query filters to the data values. Postgres offers a -[number of operators](https://www.postgresql.org/docs/current/functions-json.html) -for querying JSON data. Also see -[PostgREST docs](http://postgrest.org/en/v7.0.0/api.html#json-columns) for more details. - -```js -const { data, error } = await supabase - .from('users') - .select( - ` - id, name, - address->street - ` - ) - .eq('address->postcode', 90210) -``` - -### Return data as CSV - -By default the data is returned in JSON format, however you can also request for it to be returned as Comma Separated Values. - -```js -const { data, error } = await supabase.from('users').select().csv() -``` - -### Aborting requests in-flight - -You can use an [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) to abort requests. Note that `status` and `statusText` doesn't mean anything for aborted requests, since the request wasn't actually fulfilled. - -```js -const ac = new AbortController() -supabase - .from('very_big_table') - .select() - .abortSignal(ac.signal) - .then(console.log) -ac.abort() -// { -// error: { -// message: 'FetchError: The user aborted a request.', -// details: '', -// hint: '', -// code: '' -// }, -// data: null, -// body: null, -// count: null, -// status: 400, -// statusText: 'Bad Request' -// } -``` diff --git a/apps/reference/_supabase_js/sdk/single.mdx b/apps/reference/_supabase_js/sdk/single.mdx deleted file mode 100644 index c1879471f4d..00000000000 --- a/apps/reference/_supabase_js/sdk/single.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: single -title: 'single()' -slug: /single -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieves only one row from the result. Result must be one row (e.g. using -`limit`), otherwise this will result in an error. - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) - .single() -``` - -## Examples - -### With `select()` - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) - .single() -``` diff --git a/apps/reference/_supabase_js/sdk/storage-createbucket.mdx b/apps/reference/_supabase_js/sdk/storage-createbucket.mdx deleted file mode 100644 index f02934dd370..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-createbucket.mdx +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: storage-createbucket -title: 'createBucket()' -slug: /storage-createbucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Creates a new Storage bucket - -```js -const { data, error } = await supabase.storage.createBucket('avatars', { - public: false, -}) -``` - -## Parameters - -
    - -
  • -

    - - id - - - required - - - string - -

    -
    - -A unique identifier for the bucket you are creating. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - public - - - required - - - boolean - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: `insert` - - `objects` permissions: none - -## Examples - -### Create bucket - -```js -const { data, error } = await supabase.storage.createBucket('avatars', { - public: false, -}) -``` diff --git a/apps/reference/_supabase_js/sdk/storage-deletebucket.mdx b/apps/reference/_supabase_js/sdk/storage-deletebucket.mdx deleted file mode 100644 index c629a8eba95..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-deletebucket.mdx +++ /dev/null @@ -1,56 +0,0 @@ ---- -id: storage-deletebucket -title: 'deleteBucket()' -slug: /storage-deletebucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Deletes an existing bucket. A bucket can't be deleted with existing objects inside it. -You must first `empty()` the bucket. - -```js -const { data, error } = await supabase.storage.deleteBucket('avatars') -``` - -## Parameters - -
    - -
  • -

    - - id - - - required - - - string - -

    -
    - -The unique identifier of the bucket you would like to delete. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` and `delete` - - `objects` permissions: none - -## Examples - -### Delete bucket - -```js -const { data, error } = await supabase.storage.deleteBucket('avatars') -``` diff --git a/apps/reference/_supabase_js/sdk/storage-emptybucket.mdx b/apps/reference/_supabase_js/sdk/storage-emptybucket.mdx deleted file mode 100644 index 8824e754ed8..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-emptybucket.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -id: storage-emptybucket -title: 'emptyBucket()' -slug: /storage-emptybucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Removes all objects inside a single bucket. - -```js -const { data, error } = await supabase.storage.emptyBucket('avatars') -``` - -## Parameters - -
    - -
  • -

    - - id - - - required - - - string - -

    -
    - -The unique identifier of the bucket you would like to empty. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: `select` and `delete` - -## Examples - -### Empty bucket - -```js -const { data, error } = await supabase.storage.emptyBucket('avatars') -``` diff --git a/apps/reference/_supabase_js/sdk/storage-from-copy.mdx b/apps/reference/_supabase_js/sdk/storage-from-copy.mdx deleted file mode 100644 index 1716ed889b5..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-from-copy.mdx +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: storage-from-copy -title: 'from.copy()' -slug: /storage-from-copy -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Copies an existing file. - -```js -const { data, error } = await supabase.storage - .from('avatars') - .copy('public/avatar1.png', 'private/avatar2.png') -``` - -## Parameters - -
    - -
  • -

    - - fromPath - - - required - - - string - -

    -
    - -The original file path, including the current file name. For example `folder/image.png`. - -
    - -
  • - -
  • -

    - - toPath - - - required - - - string - -

    -
    - -The new file path, including the new file name. For example `folder/image-copy.png`. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - -## Examples - -### Copy file - -```js -const { data, error } = await supabase.storage - .from('avatars') - .copy('public/avatar1.png', 'private/avatar2.png') -``` diff --git a/apps/reference/_supabase_js/sdk/storage-from-createsignedurl.mdx b/apps/reference/_supabase_js/sdk/storage-from-createsignedurl.mdx deleted file mode 100644 index 488f6004674..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-from-createsignedurl.mdx +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: storage-from-createsignedurl -title: 'from.createSignedUrl()' -slug: /storage-from-createsignedurl -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Create signed URL to download file without requiring permissions. This URL can be valid for a set number of seconds. - -```js -const { signedURL, error } = await supabase.storage - .from('avatars') - .createSignedUrl('folder/avatar1.png', 60) -``` - -## Parameters - -
    - -
  • -

    - - path - - - required - - - string - -

    -
    - -The file path to be downloaded, including the current file name. For example `folder/image.png`. - -
    - -
  • - -
  • -

    - - expiresIn - - - required - - - number - -

    -
    - -The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - -## Examples - -### Create Signed URL - -```js -const { signedURL, error } = await supabase.storage - .from('avatars') - .createSignedUrl('folder/avatar1.png', 60) -``` diff --git a/apps/reference/_supabase_js/sdk/storage-from-createsignedurls.mdx b/apps/reference/_supabase_js/sdk/storage-from-createsignedurls.mdx deleted file mode 100644 index f17d08e05c1..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-from-createsignedurls.mdx +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: storage-from-createsignedurls -title: 'from.createSignedUrls()' -slug: /storage-from-createsignedurls -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Create signed URLs to download files without requiring permissions. These URLs can be valid for a set number of seconds. - -```js -const { data, error } = await supabase.storage - .from('avatars') - .createSignedUrls(['folder/avatar1.png', 'folder/avatar2.png'], 60) -``` - -## Parameters - -
    - -
  • -

    - - paths - - - required - - - object - -

    -
    - -The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`. - -
    - -
  • - -
  • -

    - - expiresIn - - - required - - - number - -

    -
    - -The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - -## Examples - -### Create Signed URLs - -```js -const { data, error } = await supabase.storage - .from('avatars') - .createSignedUrls(['folder/avatar1.png', 'folder/avatar2.png'], 60) -``` diff --git a/apps/reference/_supabase_js/sdk/storage-from-download.mdx b/apps/reference/_supabase_js/sdk/storage-from-download.mdx deleted file mode 100644 index e4db68c7f26..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-from-download.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: storage-from-download -title: 'from.download()' -slug: /storage-from-download -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Downloads a file. - -```js -const { data, error } = await supabase.storage - .from('avatars') - .download('folder/avatar1.png') -``` - -## Parameters - -
    - -
  • -

    - - path - - - required - - - string - -

    -
    - -The file path to be downloaded, including the path and file name. For example `folder/image.png`. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - -## Examples - -### Download file - -```js -const { data, error } = await supabase.storage - .from('avatars') - .download('folder/avatar1.png') -``` diff --git a/apps/reference/_supabase_js/sdk/storage-from-getpublicurl.mdx b/apps/reference/_supabase_js/sdk/storage-from-getpublicurl.mdx deleted file mode 100644 index 93fc34a5a23..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-from-getpublicurl.mdx +++ /dev/null @@ -1,60 +0,0 @@ ---- -id: storage-from-getpublicurl -title: 'from.getPublicUrl()' -slug: /storage-from-getpublicurl -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieve URLs for assets in public buckets - -```js -const { publicURL, error } = supabase.storage - .from('public-bucket') - .getPublicUrl('folder/avatar1.png') -``` - -## Parameters - -
    - -
  • -

    - - path - - - required - - - string - -

    -
    - -The file path to be downloaded, including the path and file name. For example `folder/image.png`. - -
    - -
  • - -
- -## Notes - -- The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://app.supabase.com), clicking the overflow menu on a bucket and choosing "Make public" -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: none - -## Examples - -### Returns the URL for an asset in a public bucket - -```js -const { publicURL, error } = supabase.storage - .from('public-bucket') - .getPublicUrl('folder/avatar1.png') -``` diff --git a/apps/reference/_supabase_js/sdk/storage-from-list.mdx b/apps/reference/_supabase_js/sdk/storage-from-list.mdx deleted file mode 100644 index e188a4c4970..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-from-list.mdx +++ /dev/null @@ -1,114 +0,0 @@ ---- -id: storage-from-list -title: 'from.list()' -slug: /storage-from-list -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Lists all the files within a bucket. - -```js -const { data, error } = await supabase.storage.from('avatars').list('folder', { - limit: 100, - offset: 0, - sortBy: { column: 'name', order: 'asc' }, -}) -``` - -## Parameters - -
    - -
  • -

    - - path - - - optional - - - undefined | string - -

    -
    - -The folder path. - -
    - -
  • - -
  • -

    - - options - - - optional - - - SearchOptions - -

    -
    - -Search options, including `limit`, `offset`, `sortBy`, and `search`. - -
    - -
  • - -
  • -

    - - parameters - - - optional - - - FetchParameters - -

    -
    - -Fetch parameters, currently only supports `signal`, which is an AbortController's signal - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - -## Examples - -### List files in a bucket - -```js -const { data, error } = await supabase.storage.from('avatars').list('folder', { - limit: 100, - offset: 0, - sortBy: { column: 'name', order: 'asc' }, -}) -``` - -### Search files in a bucket - -```js -const { data, error } = await supabase.storage.from('avatars').list('folder', { - limit: 100, - offset: 0, - sortBy: { column: 'name', order: 'asc' }, - search: 'jon', -}) -``` diff --git a/apps/reference/_supabase_js/sdk/storage-from-move.mdx b/apps/reference/_supabase_js/sdk/storage-from-move.mdx deleted file mode 100644 index 09152fb8619..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-from-move.mdx +++ /dev/null @@ -1,79 +0,0 @@ ---- -id: storage-from-move -title: 'from.move()' -slug: /storage-from-move -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Moves an existing file. - -```js -const { data, error } = await supabase.storage - .from('avatars') - .move('public/avatar1.png', 'private/avatar2.png') -``` - -## Parameters - -
    - -
  • -

    - - fromPath - - - required - - - string - -

    -
    - -The original file path, including the current file name. For example `folder/image.png`. - -
    - -
  • - -
  • -

    - - toPath - - - required - - - string - -

    -
    - -The new file path, including the new file name. For example `folder/image-new.png`. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - -## Examples - -### Move file - -```js -const { data, error } = await supabase.storage - .from('avatars') - .move('public/avatar1.png', 'private/avatar2.png') -``` diff --git a/apps/reference/_supabase_js/sdk/storage-from-remove.mdx b/apps/reference/_supabase_js/sdk/storage-from-remove.mdx deleted file mode 100644 index 8b594a25c53..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-from-remove.mdx +++ /dev/null @@ -1,59 +0,0 @@ ---- -id: storage-from-remove -title: 'from.remove()' -slug: /storage-from-remove -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Deletes files within the same bucket - -```js -const { data, error } = await supabase.storage - .from('avatars') - .remove(['folder/avatar1.png']) -``` - -## Parameters - -
    - -
  • -

    - - paths - - - required - - - object - -

    -
    - -An array of files to be deleted, including the path and file name. For example [`folder/image.png`]. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `delete` and `select` - -## Examples - -### Delete file - -```js -const { data, error } = await supabase.storage - .from('avatars') - .remove(['folder/avatar1.png']) -``` diff --git a/apps/reference/_supabase_js/sdk/storage-from-update.mdx b/apps/reference/_supabase_js/sdk/storage-from-update.mdx deleted file mode 100644 index 3fd9f3cc370..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-from-update.mdx +++ /dev/null @@ -1,123 +0,0 @@ ---- -id: storage-from-update -title: 'from.update()' -slug: /storage-from-update -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Replaces an existing file at the specified path with a new one. - -```js -const avatarFile = event.target.files[0] -const { data, error } = await supabase.storage - .from('avatars') - .update('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false, - }) -``` - -## Parameters - -
    - -
  • -

    - - path - - - required - - - string - -

    -
    - -The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. - -
    - -
  • - -
  • -

    - - fileBody - - - required - - - ArrayBuffer | ArrayBufferView | Blob | Buffer | File | FormData | ReadableStream | ReadableStream | URLSearchParams | string - -

    -
    - -The body of the file to be stored in the bucket. - -
    - -
  • - -
  • -

    - - fileOptions - - - optional - - - FileOptions - -

    -
    - -HTTP headers. -`cacheControl`: string, the `Cache-Control: max-age=` seconds value. -`contentType`: string, the `Content-Type` header value. Should be specified if using a `fileBody` that is neither `Blob` nor `File` nor `FormData`, otherwise will default to `text/plain;charset=UTF-8`. -`upsert`: boolean, whether to perform an upsert. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` -- For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Update file using `ArrayBuffer` from base64 file data instead, see example below. - -## Examples - -### Update file - -```js -const avatarFile = event.target.files[0] -const { data, error } = await supabase.storage - .from('avatars') - .update('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false, - }) -``` - -### Update file using `ArrayBuffer` from base64 file data - -```js -import { decode } from 'base64-arraybuffer' - -const { data, error } = await supabase.storage - .from('avatars') - .update('public/avatar1.png', decode('base64FileData'), { - contentType: 'image/png', - }) -``` diff --git a/apps/reference/_supabase_js/sdk/storage-from-upload.mdx b/apps/reference/_supabase_js/sdk/storage-from-upload.mdx deleted file mode 100644 index 82f0c843e35..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-from-upload.mdx +++ /dev/null @@ -1,123 +0,0 @@ ---- -id: storage-from-upload -title: 'from.upload()' -slug: /storage-from-upload -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Uploads a file to an existing bucket. - -```js -const avatarFile = event.target.files[0] -const { data, error } = await supabase.storage - .from('avatars') - .upload('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false, - }) -``` - -## Parameters - -
    - -
  • -

    - - path - - - required - - - string - -

    -
    - -The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. - -
    - -
  • - -
  • -

    - - fileBody - - - required - - - ArrayBuffer | ArrayBufferView | Blob | Buffer | File | FormData | ReadableStream | ReadableStream | URLSearchParams | string - -

    -
    - -The body of the file to be stored in the bucket. - -
    - -
  • - -
  • -

    - - fileOptions - - - optional - - - FileOptions - -

    -
    - -HTTP headers. -`cacheControl`: string, the `Cache-Control: max-age=` seconds value. -`contentType`: string, the `Content-Type` header value. Should be specified if using a `fileBody` that is neither `Blob` nor `File` nor `FormData`, otherwise will default to `text/plain;charset=UTF-8`. -`upsert`: boolean, whether to perform an upsert. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `insert` -- For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Upload file using `ArrayBuffer` from base64 file data instead, see example below. - -## Examples - -### Upload file - -```js -const avatarFile = event.target.files[0] -const { data, error } = await supabase.storage - .from('avatars') - .upload('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false, - }) -``` - -### Upload file using `ArrayBuffer` from base64 file data - -```js -import { decode } from 'base64-arraybuffer' - -const { data, error } = await supabase.storage - .from('avatars') - .upload('public/avatar1.png', decode('base64FileData'), { - contentType: 'image/png', - }) -``` diff --git a/apps/reference/_supabase_js/sdk/storage-getbucket.mdx b/apps/reference/_supabase_js/sdk/storage-getbucket.mdx deleted file mode 100644 index 38f17b1a56a..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-getbucket.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -id: storage-getbucket -title: 'getBucket()' -slug: /storage-getbucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieves the details of an existing Storage bucket. - -```js -const { data, error } = await supabase.storage.getBucket('avatars') -``` - -## Parameters - -
    - -
  • -

    - - id - - - required - - - string - -

    -
    - -The unique identifier of the bucket you would like to retrieve. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - -## Examples - -### Get bucket - -```js -const { data, error } = await supabase.storage.getBucket('avatars') -``` diff --git a/apps/reference/_supabase_js/sdk/storage-listbuckets.mdx b/apps/reference/_supabase_js/sdk/storage-listbuckets.mdx deleted file mode 100644 index da1fb046c54..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-listbuckets.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -id: storage-listbuckets -title: 'listBuckets()' -slug: /storage-listbuckets -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieves the details of all Storage buckets within an existing project. - -```js -const { data, error } = await supabase.storage.listBuckets() -``` - -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - -## Examples - -### List buckets - -```js -const { data, error } = await supabase.storage.listBuckets() -``` diff --git a/apps/reference/_supabase_js/sdk/storage-updatebucket.mdx b/apps/reference/_supabase_js/sdk/storage-updatebucket.mdx deleted file mode 100644 index fb73694e139..00000000000 --- a/apps/reference/_supabase_js/sdk/storage-updatebucket.mdx +++ /dev/null @@ -1,104 +0,0 @@ ---- -id: storage-updatebucket -title: 'updateBucket()' -slug: /storage-updatebucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Updates a new Storage bucket - -```js -const { data, error } = await supabase.storage.updateBucket('avatars', { - public: false, -}) -``` - -## Parameters - -
    - -
  • -

    - - id - - - required - - - string - -

    -
    - -A unique identifier for the bucket you are updating. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - public - - - required - - - boolean - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: `update` - - `objects` permissions: none - -## Examples - -### Update bucket - -```js -const { data, error } = await supabase.storage.updateBucket('avatars', { - public: false, -}) -``` diff --git a/apps/reference/_supabase_js/sdk/subscribe.mdx b/apps/reference/_supabase_js/sdk/subscribe.mdx deleted file mode 100644 index b25997936c4..00000000000 --- a/apps/reference/_supabase_js/sdk/subscribe.mdx +++ /dev/null @@ -1,165 +0,0 @@ ---- -id: subscribe -title: 'on().subscribe()' -slug: /subscribe -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Subscribe to realtime changes in your database. - -```js -const mySubscription = supabase - .from('*') - .on('*', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - -## Parameters - -
    - -
  • -

    - - event - - - required - - - SupabaseEventTypes - -

    -
    - -The database event which you would like to receive updates for, or you can use the special wildcard `*` to listen to all changes. - -
    - -
  • - -
  • -

    - - callback - - - required - - - object - -

    -
    - -A callback that will handle the payload that is sent whenever your database changes. - -
    - -
  • - -
- -## Notes - -- Realtime is disabled by default for new Projects for better database performance and security. You can turn it on by [managing replication](/docs/guides/api#managing-realtime). -- If you want to receive the "previous" data for updates and deletes, you will need to set `REPLICA IDENTITY` to `FULL`, like this: `ALTER TABLE your_table REPLICA IDENTITY FULL;` - -## Examples - -### Listen to all database changes - -```js -const mySubscription = supabase - .from('*') - .on('*', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - -### Listening to a specific table - -```js -const mySubscription = supabase - .from('countries') - .on('*', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - -### Listening to inserts - -```js -const mySubscription = supabase - .from('countries') - .on('INSERT', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - -### Listening to updates - -By default, Supabase will send only the updated record. If you want to receive the previous values as well you can -enable full replication for the table you are listening too: - -```sql -alter table "your_table" replica identity full; -``` - -```js -const mySubscription = supabase - .from('countries') - .on('UPDATE', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - -### Listening to deletes - -By default, Supabase does not send deleted records. If you want to receive the deleted record you can -enable full replication for the table you are listening too: - -```sql -alter table "your_table" replica identity full; -``` - -```js -const mySubscription = supabase - .from('countries') - .on('DELETE', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - -### Listening to multiple events - -You can chain listeners if you want to listen to multiple events for each table. - -```js -const mySubscription = supabase - .from('countries') - .on('INSERT', handleRecordInserted) - .on('DELETE', handleRecordDeleted) - .subscribe() -``` - -### Listening to row level changes - -You can listen to individual rows using the format `{table}:{col}=eq.{val}` - where `{col}` is the column name, and `{val}` is the value which you want to match. - -```js -const mySubscription = supabase - .from('countries:id=eq.200') - .on('UPDATE', handleRecordUpdated) - .subscribe() -``` diff --git a/apps/reference/_supabase_js/sdk/textsearch.mdx b/apps/reference/_supabase_js/sdk/textsearch.mdx deleted file mode 100644 index 02514ae1b0d..00000000000 --- a/apps/reference/_supabase_js/sdk/textsearch.mdx +++ /dev/null @@ -1,165 +0,0 @@ ---- -id: textsearch -title: '.textSearch()' -slug: /textsearch -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose tsvector value on the stated `column` matches -to_tsquery(`query`). - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - query - - - required - - - string - -

    -
    - -The Postgres tsquery string to filter with. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - config - - - required - - - undefined | string - -

      -
      - -The text search configuration to use. - -
      - -
    • - -
    - -
  • - -
- -## Examples - -### Text search - -```js -const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - config: 'english', - }) -``` - -### Basic normalization - -Uses PostgreSQL's `plainto_tsquery` function. - -```js -const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - type: 'plain', - config: 'english', - }) -``` - -### Full normalization - -Uses PostgreSQL's `phraseto_tsquery` function. - -```js -const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - type: 'phrase', - config: 'english', - }) -``` - -### Websearch - -Uses PostgreSQL's `websearch_to_tsquery` function. -This function will never raise syntax errors, which makes it possible to use raw user-supplied input for search, and can be used -with advanced operators. - -- `unquoted text`: text not inside quote marks will be converted to terms separated by & operators, as if processed by plainto_tsquery. -- `"quoted text"`: text inside quote marks will be converted to terms separated by <-> operators, as if processed by phraseto_tsquery. -- `OR`: the word “or” will be converted to the | operator. -- `-`: a dash will be converted to the ! operator. - -```js -const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat or cat'`, { - type: 'websearch', - config: 'english', - }) -``` diff --git a/apps/reference/_supabase_js/sdk/update.mdx b/apps/reference/_supabase_js/sdk/update.mdx deleted file mode 100644 index 4ad779421da..00000000000 --- a/apps/reference/_supabase_js/sdk/update.mdx +++ /dev/null @@ -1,145 +0,0 @@ ---- -id: update -title: 'Modify data: update()' -slug: /update -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs an UPDATE on the table. - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Middle Earth' }) - .match({ name: 'Auckland' }) -``` - -## Parameters - -
    - -
  • -

    - - values - - - required - - - Partial - -

    -
    - -The values to update. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - returning - - - required - - - minimal | representation - -

      -
      - -By default the updated record is returned. Set this to 'minimal' if you don't need this value. - -
      - -
    • - -
    • -

      - - count - - - required - - - null | exact | planned | estimated - -

      -
      - -Count algorithm to use to count rows in a table. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- `update()` should always be combined with [Filters](/docs/reference/javascript/using-filters) to target the item(s) you wish to update. - -## Examples - -### Updating your data - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Middle Earth' }) - .match({ name: 'Auckland' }) -``` - -### Updating JSON data - -Postgres offers a -[number of operators](https://www.postgresql.org/docs/current/functions-json.html) -for working with JSON data. Right now it is only possible to update an entire JSON document, -but we are [working on ideas](https://github.com/PostgREST/postgrest/issues/465) for updating individual keys. - -```js -const { data, error } = await supabase - .from('users') - .update( - ` - address: { - street: 'Melrose Place', - postcode: 90210 - } - ` - ) - .eq('address->postcode', 90210) -``` diff --git a/apps/reference/_supabase_js/sdk/upsert.mdx b/apps/reference/_supabase_js/sdk/upsert.mdx deleted file mode 100644 index 9fb12f9ae2d..00000000000 --- a/apps/reference/_supabase_js/sdk/upsert.mdx +++ /dev/null @@ -1,199 +0,0 @@ ---- -id: upsert -title: 'Upsert data: upsert()' -slug: /upsert -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs an UPSERT into the table. - -```js -const { data, error } = await supabase - .from('messages') - .upsert({ id: 3, message: 'foo', username: 'supabot' }) -``` - -## Parameters - -
    - -
  • -

    - - values - - - required - - - Partial | array - -

    -
    - -The values to insert. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - returning - - - required - - - minimal | representation - -

      -
      - -By default the new record is returned. Set this to 'minimal' if you don't need this value. - -
      - -
    • - -
    • -

      - - onConflict - - - required - - - undefined | string - -

      -
      - -By specifying the `on_conflict` query parameter, you can make UPSERT work on a column(s) that has a UNIQUE constraint. - -
      - -
    • - -
    • -

      - - ignoreDuplicates - - - required - - - boolean - -

      -
      - -Specifies if duplicate rows should be ignored and not inserted. - -
      - -
    • - -
    • -

      - - count - - - required - - - null | exact | planned | estimated - -

      -
      - -Count algorithm to use to count rows in a table. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Primary keys should be included in the data payload in order for an update to work correctly. -- Primary keys must be natural, not surrogate. There are however, [workarounds](https://github.com/PostgREST/postgrest/issues/1118) for surrogate primary keys. - -## Examples - -### Upsert your data - -```js -const { data, error } = await supabase - .from('messages') - .upsert({ id: 3, message: 'foo', username: 'supabot' }) -``` - -### Bulk Upsert your data - -```js -const { data, error } = await supabase.from('messages').upsert([ - { id: 3, message: 'foo', username: 'supabot' }, - { id: 4, message: 'bar', username: 'supabot' }, -]) -``` - -### Upserting into tables with constraints - -Running the following will cause supabase to upsert data into the `users` table. -If the username 'supabot' already exists, the `onConflict` argument tells supabase to overwrite that row -based on the column passed into `onConflict`. - -```js -const { data, error } = await supabase - .from('users') - .upsert({ username: 'supabot' }, { onConflict: 'username' }) -``` - -### Return the exact number of rows - -```js -const { data, error, count } = await supabase.from('users').upsert( - { - id: 3, - message: 'foo', - username: 'supabot', - }, - { - count: 'exact', - } -) -``` diff --git a/apps/reference/_supabase_js/sdk/using-filters.mdx b/apps/reference/_supabase_js/sdk/using-filters.mdx deleted file mode 100644 index 61c8b3e4286..00000000000 --- a/apps/reference/_supabase_js/sdk/using-filters.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: using-filters -title: 'Using Filters' -slug: /using-filters -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Filters can be used on `select()`, `update()`, and `delete()` queries. - -If a Postgres function returns a table response, you can also apply filters. - -### Applying Filters - -You must apply your filters to the end of your query. For example: - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The Shire') // Correct - -const { data, error } = await supabase - .from('cities') - .eq('name', 'The Shire') // Incorrect - .select('name, country_id') -``` - -### Chaining - -Filters can be chained together to produce advanced queries. For example: - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gte('population', 1000) - .lt('population', 10000) -``` - -### Conditional Chaining - -Filters can be built up one step at a time and then executed. For example: - -```js -const filterByName = null -const filterPopLow = 1000 -const filterPopHigh = 10000 - -let query = supabase.from('cities').select('name, country_id') - -if (filterByName) { - query = query.eq('name', filterByName) -} -if (filterPopLow) { - query = query.gte('population', filterPopLow) -} -if (filterPopHigh) { - query = query.lt('population', filterPopHigh) -} - -const { data, error } = await query -``` diff --git a/apps/reference/_supabase_js/sdk/using-modifiers.mdx b/apps/reference/_supabase_js/sdk/using-modifiers.mdx deleted file mode 100644 index 933bbaaaefb..00000000000 --- a/apps/reference/_supabase_js/sdk/using-modifiers.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -id: using-modifiers -title: 'Using Modifiers' -slug: /using-modifiers -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase_js_v2_ref.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Modifiers can be used on `select()` queries. - -If a Postgres function returns a table response, you can also apply modifiers to the `rpc()` function. diff --git a/apps/reference/_supabase_js/working-with-types.md b/apps/reference/_supabase_js/working-with-types.md index a5c8900b532..90314b8fa92 100644 --- a/apps/reference/_supabase_js/working-with-types.md +++ b/apps/reference/_supabase_js/working-with-types.md @@ -31,7 +31,7 @@ interface Database { } ``` -There is a different between `selects`, `inserts`, and `updates`, because often you will set default values in your database for specific columns. +There is a difference between `selects`, `inserts`, and `updates`, because often you will set default values in your database for specific columns. With default values you do not need to send any data over the network, even if that column is a "required" field. Our type system is granular enough to handle these situations. diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-createuser.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-createuser.mdx deleted file mode 100644 index 5304713306c..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-createuser.mdx +++ /dev/null @@ -1,127 +0,0 @@ ---- -id: auth-api-createuser -title: 'createUser()' -slug: auth-api-createuser -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Creates a new user. - -This function should only be called on a server. Never expose your `service_role` key in the browser. - - - - - -```js -const { data: user, error } = await supabase.auth.api.createUser({ - email: 'user@email.com', - password: 'password', - user_metadata: { name: 'Yoda' }, -}) -``` - - - - - -## Parameters - -
    - -
  • -

    - - attributes - - - required - - - AdminUserAttributes - -

    -
    - -The data you want to create the user with. - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should be called on a server. Never expose your `service_role` key in the browser. -- If you do not provide the `email_confirm` and `phone_confirm` options to this function, both will default to false. - -## Examples - -### Create a new user. - - - - - -```js -const { data: user, error } = await supabase.auth.api.createUser({ - email: 'user@email.com', - password: 'password', - user_metadata: { name: 'Yoda' }, -}) -``` - - - - - -### Auto-confirm email. - - - - - -```js -const { data: user, error } = await supabase.auth.api.createUser({ - email: 'user@email.com', - email_confirm: true, -}) -``` - - - - - -### Auto-confirm phone. - - - - - -```js -const { data: user, error } = await supabase.auth.api.createUser({ - phone: '1234567890', - phone_confirm: true, -}) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-deleteuser.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-deleteuser.mdx deleted file mode 100644 index be86ecc7804..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-deleteuser.mdx +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: auth-api-deleteuser -title: 'deleteUser()' -slug: auth-api-deleteuser -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Delete a user. Requires a `service_role` key. - -This function should only be called on a server. Never expose your `service_role` key in the browser. - - - - - -```js -const { data: user, error } = await supabase.auth.api.deleteUser( - '715ed5db-f090-4b8c-a067-640ecee36aa0' -) -``` - - - - - -## Parameters - -
    - -
  • -

    - - uid - - - required - - - string - -

    -
    - -The user uid you want to remove. - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Remove a user completely. - - - - - -```js -const { data: user, error } = await supabase.auth.api.deleteUser( - '715ed5db-f090-4b8c-a067-640ecee36aa0' -) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-generatelink.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-generatelink.mdx deleted file mode 100644 index d694b2e3357..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-generatelink.mdx +++ /dev/null @@ -1,169 +0,0 @@ ---- -id: auth-api-generatelink -title: 'generateLink()' -slug: auth-api-generatelink -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Generates links to be sent via email or other. - -## Parameters - -
    - -
  • -

    - - type - - - required - - - signup | magiclink | recovery | invite - -

    -
    - -The link type ("signup" or "magiclink" or "recovery" or "invite"). - -
    - -
  • - -
  • -

    - - email - - - required - - - string - -

    -
    - -The user's email. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - data - - - optional - - - object - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - password - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - redirectTo - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should only be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Generate invite link. - - - - - -```js -const { data: user, error } = await supabase.auth.api.generateLink( - 'invite', - 'email@example.com' -) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-getuser.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-getuser.mdx deleted file mode 100644 index 5cf3d958ba9..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-getuser.mdx +++ /dev/null @@ -1,81 +0,0 @@ ---- -id: auth-api-getuser -title: 'getUser()' -slug: auth-api-getuser -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Gets the current user details. - -This method is called by the GoTrueClient `update` where -the jwt is set to this.currentSession.access_token -and therefore, acts like getting the currently authenticated user - - - - - -```js -const { user, error } = await supabase.auth.api.getUser('ACCESS_TOKEN_JWT') -``` - - - - - -## Parameters - -
    - -
  • -

    - - jwt - - - required - - - string - -

    -
    - -A valid, logged-in JWT. Typically, the access_token for the currentSession - -
    - -
  • - -
- -## Notes - -- Fetches the user object from the database instead of local storage. -- Note that user() fetches the user object from local storage which might not be the most updated. -- Requires the user's access_token. - -## Examples - -### Fetch the user object using the access_token jwt. - - - - - -```js -const { user, error } = await supabase.auth.api.getUser('ACCESS_TOKEN_JWT') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-inviteuserbyemail.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-inviteuserbyemail.mdx deleted file mode 100644 index 42b351402dc..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-inviteuserbyemail.mdx +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: auth-api-inviteuserbyemail -title: 'inviteUserByEmail()' -slug: auth-api-inviteuserbyemail -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Sends an invite link to an email address. - -## Parameters - -
    - -
  • -

    - - email - - - required - - - string - -

    -
    - -The email address of the user. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - data - - - optional - - - object - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - redirectTo - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should only be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Basic example. - - - - - -```js -const { data: user, error } = await supabase.auth.api.inviteUserByEmail( - 'email@example.com' -) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-listusers.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-listusers.mdx deleted file mode 100644 index 28c3b32bb40..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-listusers.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: auth-api-listusers -title: 'listUsers()' -slug: auth-api-listusers -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Get a list of users. - -This function should only be called on a server. Never expose your `service_role` key in the browser. - - - - - -```js -const { data: user, error } = await supabase.auth.api.listUsers() -``` - - - - - -## Notes - -- Requires a `service_role` key. -- This function should be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Get a full list of users. - - - - - -```js -const { data: user, error } = await supabase.auth.api.listUsers() -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-resetpasswordforemail.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-resetpasswordforemail.mdx deleted file mode 100644 index 044b55e6246..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-resetpasswordforemail.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: auth-api-resetpasswordforemail -title: 'resetPasswordForEmail()' -slug: auth-api-resetpasswordforemail -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Sends a reset request to an email address. - - - - - -```js -const { data, error } = await supabase.auth.api.resetPasswordForEmail( - 'user@email.com' -) -``` - - - - - -## Parameters - -
    - -
  • -

    - - email - - - required - - - string - -

    -
    - -The email address of the user. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - captchaToken - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - redirectTo - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -Sends a reset request to an email address. - -When the user clicks the reset link in the email they will be forwarded to: - -`#access_token=x&refresh_token=y&expires_in=z&token_type=bearer&type=recovery` - -Your app must detect `type=recovery` in the fragment and display a password reset form to the user. - -You should then use the access_token in the url and new password to update the user as follows: - -```js -const { error, data } = await supabase.auth.api.updateUser(access_token, { - password: new_password, -}) -``` - -## Examples - -### Reset password - - - - - -```js -const { data, error } = await supabase.auth.api.resetPasswordForEmail( - 'user@email.com' -) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-sendmobileotp.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-sendmobileotp.mdx deleted file mode 100644 index 3c206e079cf..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-sendmobileotp.mdx +++ /dev/null @@ -1,126 +0,0 @@ ---- -id: auth-api-sendmobileotp -title: 'sendMobileOTP()' -slug: auth-api-sendmobileotp -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Sends a mobile OTP via SMS. Will register the account if it doesn't already exist - -## Parameters - -
    - -
  • -

    - - phone - - - required - - - string - -

    -
    - -The user's phone number WITH international prefix - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - captchaToken - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - shouldCreateUser - - - optional - - - boolean - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should only be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Basic example. - - - - - -```js -const { data: user, error } = await supabase.auth.api.sendMobileOTP('12345879') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-updateuserbyid.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-updateuserbyid.mdx deleted file mode 100644 index b83d7947919..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-api-updateuserbyid.mdx +++ /dev/null @@ -1,204 +0,0 @@ ---- -id: auth-api-updateuserbyid -title: 'updateUserById()' -slug: auth-api-updateuserbyid -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Updates the user data. - - - - - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { email: 'new@email.com' } -) -``` - - - - - -## Parameters - -
    - -
  • -

    - - uid - - - required - - - string - -

    -
    - -No description provided. - -
    - -
  • - -
  • -

    - - attributes - - - required - - - AdminUserAttributes - -

    -
    - -The data you want to update. - -This function should only be called on a server. Never expose your `service_role` key in the browser. - -
    - -
  • - -
- -## Notes - -- Requires a `service_role` key. -- This function should only be called on a server. Never expose your `service_role` key in the browser. - -## Examples - -### Updates a user's email. - - - - - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { email: 'new@email.com' } -) -``` - - - - - -### Updates a user's password. - - - - - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { password: 'new_password' } -) -``` - - - - - -### Updates a user's metadata. - - - - - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { user_metadata: { hello: 'world' } } -) -``` - - - - - -### Updates a user's app_metadata. - - - - - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { app_metadata: { plan: 'trial' } } -) -``` - - - - - -### Confirms a user's email address. - - - - - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { email_confirm: true } -) -``` - - - - - -### Confirms a user's phone number. - - - - - -```js -const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { phone_confirm: true } -) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-onauthstatechange.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-onauthstatechange.mdx deleted file mode 100644 index 8ccf0c63fb8..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-onauthstatechange.mdx +++ /dev/null @@ -1,189 +0,0 @@ ---- -id: auth-onauthstatechange -title: 'onAuthStateChange()' -slug: auth-onauthstatechange -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Receive a notification every time an auth event happens. - - - - - -```js -supabase.auth.onAuthStateChange((event, session) => { - console.log(event, session) -}) -``` - - - - - -## Parameters - -
    - -
  • -

    - - callback - - - required - - - object - -

    -
    - -No description provided. - -
    - -
  • - -
- -## Examples - -### Listen to auth changes - - - - - -```js -supabase.auth.onAuthStateChange((event, session) => { - console.log(event, session) -}) -``` - - - - - -### Listen to sign in - - - - - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'SIGNED_IN') console.log('SIGNED_IN', session) -}) -``` - - - - - -### Listen to sign out - - - - - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'SIGNED_OUT') console.log('SIGNED_OUT', session) -}) -``` - - - - - -### Listen to token refresh - - - - - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'TOKEN_REFRESHED') console.log('TOKEN_REFRESHED', session) -}) -``` - - - - - -### Listen to user updates - - - - - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'USER_UPDATED') console.log('USER_UPDATED', session) -}) -``` - - - - - -### Listen to user deleted - - - - - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'USER_DELETED') console.log('USER_DELETED', session) -}) -``` - - - - - -### Listen to password recovery events - - - - - -```js -supabase.auth.onAuthStateChange((event, session) => { - if (event == 'PASSWORD_RECOVERY') console.log('PASSWORD_RECOVERY', session) -}) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-session.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-session.mdx deleted file mode 100644 index 33725c8b844..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-session.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: auth-session -title: 'session()' -slug: auth-session -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Returns the session data, if there is an active session. - - - - - -```js -const session = supabase.auth.session() -``` - - - - - -## Examples - -### Get the session data - - - - - -```js -const session = supabase.auth.session() -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-setauth.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-setauth.mdx deleted file mode 100644 index 81a30c9f8d5..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-setauth.mdx +++ /dev/null @@ -1,143 +0,0 @@ ---- -id: auth-setauth -title: 'setAuth()' -slug: auth-setauth -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Overrides the JWT on the current client. The JWT will then be sent in all subsequent network requests. - - - - - -```js -function apiFunction(req, res) { - // Assuming the access token was sent as a header "X-Supabase-Auth" - const { access_token } = req.get('X-Supabase-Auth') - - // You can now use it within a Supabase Client - const supabase = createClient("https://xyzcompany.supabase.co", "public-anon-key") - const { user, error } = supabase.auth.setAuth(access_token) - - // This client will now send requests as this user - const { data } = await supabase.from('your_table').select() -} -``` - - - - - -## Parameters - -
    - -
  • -

    - - access_token - - - required - - - string - -

    -
    - -a jwt access token - -
    - -
  • - -
- -## Examples - -### Basic example. - -This is most useful on server-side functions where you cannot log the user in, but have access to the user's access token. - - - - - -```js -function apiFunction(req, res) { - // Assuming the access token was sent as a header "X-Supabase-Auth" - const { access_token } = req.get('X-Supabase-Auth') - - // You can now use it within a Supabase Client - const supabase = createClient("https://xyzcompany.supabase.co", "public-anon-key") - const { user, error } = supabase.auth.setAuth(access_token) - - // This client will now send requests as this user - const { data } = await supabase.from('your_table').select() -} -``` - - - - - -### With Express. - - - - - -```js -/** - * Make a request from the client to your server function - */ -async function makeApiRequest() { - const token = newClient.session()?.access_token - - await fetch('https://example.com/withAuth', { - method: 'GET', - withCredentials: true, - credentials: 'include', - headers: { - 'Content-Type': 'application/json', - Authorization: bearer, // Your own auth - 'X-Supabase-Auth': token, // Set the Supabase user - }, - }) -} - -/** - * Use the Auth token in your server-side function. - */ -async function apiFunction(req, res) { - const { access_token } = req.get('X-Supabase-Auth') - - // You can now use it within a Supabase Client - const supabase = createClient( - 'https://xyzcompany.supabase.co', - 'public-anon-key' - ) - const { user, error } = supabase.auth.setAuth(access_token) - - // This client will now send requests as this user - const { data } = await supabase.from('your_table').select() -} -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-signin.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-signin.mdx deleted file mode 100644 index 73432bdbc55..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-signin.mdx +++ /dev/null @@ -1,363 +0,0 @@ ---- -id: auth-signin -title: 'signIn()' -slug: auth-signin -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Log in an existing user, or login via a third-party provider. - - - - - -```js -const { user, session, error } = await supabase.auth.signIn({ - email: 'example@email.com', - password: 'example-password', -}) -``` - - - - - -## Parameters - -
    - -
  • -

    - - __namedParameters - - - required - - - UserCredentials - -

    -
    - -No description provided. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - captchaToken - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - queryParams - - - optional - - - object - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - redirectTo - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - scopes - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - shouldCreateUser - - - optional - - - boolean - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- A user can sign up either via email or OAuth. -- If you provide `email` without a `password`, the user will be sent a magic link. -- The magic link's destination URL is determined by the SITE_URL config variable. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) -- Specifying a `provider` will open the browser to the relevant login page. - -## Examples - -### Sign in with email. - - - - - -```js -const { user, session, error } = await supabase.auth.signIn({ - email: 'example@email.com', - password: 'example-password', -}) -``` - - - - - -### Sign in with magic link. - -If no password is provided, the user will be sent a "magic link" to their email address, which they can click to open your application with a valid session. By default, a given user can only request a Magic Link once every 60 seconds. - - - - - -```js -const { user, session, error } = await supabase.auth.signIn({ - email: 'example@email.com', -}) -``` - - - - - -### Sign in using third-party providers. - -Supabase supports many different [third-party providers](https://supabase.com/docs/guides/auth#providers). - - - - - -```js -const { user, session, error } = await supabase.auth.signIn({ - // provider can be 'github', 'google', 'gitlab', and more - provider: 'github', -}) -``` - - - - - -### Sign in with Phone. - -Supabase supports Phone Auth. - - - - - -```js -const { user, session, error } = await supabase.auth.signIn({ - phone: '+13334445555', - password: 'some-password', -}) -``` - - - - - -### Sign in with redirect. - -Note that the `redirectTo` param is only relevant for OAuth logins, where the login flow is managed by -the Auth server. If you are using email/phone logins you should set up your own redirects (within the email/sms template). - -Sometimes you want to control where the user is redirected to after they are logged in. Supabase supports this for -any URL path on your website (the URL must either be on the same domain as your Site URL [see Auth>Settings in dashboard], or must match one of the Additional Redirect URLs [also in Auth>Settings]). - - - - - -```js -const { user, session, error } = await supabase.auth.signIn( - { - provider: 'github', - }, - { - redirectTo: 'https://example.com/welcome', - } -) -``` - - - - - -### Sign in with scopes. - -If you need additional data from an OAuth provider, you can include a space-separated list of scopes in your request to get back an OAuth provider token. -You may also need to specify the scopes in the provider's OAuth app settings, depending on the provider. - - - - - -```js -const { user, session, error } = await supabase.auth.signIn( - { - provider: 'github', - }, - { - scopes: 'repo gist notifications', - } -) -const oAuthToken = session.provider_token // use to access provider API -``` - - - - - -### Sign in using a refresh token (e.g. in React Native). - -If you are completing a sign up or login in a React Native app you can pass the refresh token obtained from the provider to obtain a session. - - - - - -```js -// An example using Expo's `AuthSession` -const redirectUri = AuthSession.makeRedirectUri({ useProxy: false }) -const provider = 'google' - -AuthSession.startAsync({ - authUrl: `https://MYSUPABASEAPP.supabase.co/auth/v1/authorize?provider=${provider}&redirect_to=${redirectUri}`, - returnUrl: redirectUri, -}).then(async (response: any) => { - if (!response) return - const { user, session, error } = await supabase.auth.signIn({ - refreshToken: response.params?.refresh_token, - }) -}) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-signout.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-signout.mdx deleted file mode 100644 index 8a157ce461c..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-signout.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -id: auth-signout -title: 'signOut()' -slug: auth-signout -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Inside a browser context, `signOut()` will remove the logged in user from the browser session -and log them out - removing all items from localstorage and then trigger a "SIGNED_OUT" event. - -For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`. There is no way to revoke a user's session JWT before it automatically expires - - - - - -```js -const { error } = await supabase.auth.signOut() -``` - - - - - -## Examples - -### Sign out - - - - - -```js -const { error } = await supabase.auth.signOut() -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-signup.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-signup.mdx deleted file mode 100644 index be5d55c5610..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-signup.mdx +++ /dev/null @@ -1,233 +0,0 @@ ---- -id: auth-signup -title: 'signUp()' -slug: auth-signup -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Creates a new user. - - - - - -```js -const { user, session, error } = await supabase.auth.signUp({ - email: 'example@email.com', - password: 'example-password', -}) -``` - - - - - -## Parameters - -
    - -
  • -

    - - __namedParameters - - - required - - - UserCredentials - -

    -
    - -No description provided. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - captchaToken - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - data - - - optional - - - object - -

      -
      - -No description provided. - -
      - -
    • - -
    • -

      - - redirectTo - - - optional - - - string - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- By default, the user will need to verify their email address before logging in. If you would like to change this, you can disable "Email Confirmations" by going to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) -- If "Email Confirmations" is turned on, a `user` is returned but `session` will be null -- If "Email Confirmations" is turned off, both a `user` and a `session` will be returned -- When the user confirms their email address, they will be redirected to localhost:3000 by default. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) -- If signUp() is called for an existing confirmed user: - - If "Enable email confirmations" is enabled on the "Authentication" -> "Settings" page, an obfuscated / fake user object will be returned. - - If "Enable email confirmations" is disabled, an error with a message "User already registered" will be returned. -- To check if a user already exists, refer to getUser(). - -## Examples - -### Sign up. - - - - - -```js -const { user, session, error } = await supabase.auth.signUp({ - email: 'example@email.com', - password: 'example-password', -}) -``` - - - - - -### Sign up with additional user meta data. - - - - - -```js -const { user, session, error } = await supabase.auth.signUp( - { - email: 'example@email.com', - password: 'example-password', - }, - { - data: { - first_name: 'John', - age: 27, - }, - } -) -``` - - - - - -### Sign up with third-party providers. - -You can sign up with OAuth providers using the [`signIn()`](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) method. - -### Sign up with Phone. - -Supabase supports Phone Auth. After a user has verified their number, they can use the [`signIn()`](/docs/reference/javascript/auth-signin#sign-in-using-phone) method. - - - - - -```js -const { user, session, error } = await supabase.auth.signUp({ - phone: '+13334445555', - password: 'some-password', -}) - -// After receiving an SMS with One Time Password. -let { session, error } = await supabase.auth.verifyOTP({ - phone: '+13334445555', - token: '123456', -}) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-update.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-update.mdx deleted file mode 100644 index a4f8d8e6bfe..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-update.mdx +++ /dev/null @@ -1,117 +0,0 @@ ---- -id: auth-update -title: 'update()' -slug: auth-update -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Updates user data, if there is a logged in user. - - - - - -```js -const { user, error } = await supabase.auth.update({ email: 'new@email.com' }) -``` - - - - - -## Parameters - -
    - -
  • -

    - - attributes - - - required - - - UserAttributes - -

    -
    - -No description provided. - -
    - -
  • - -
- -## Notes - -User email: Email updates will send an email to both the user's current and new email with a confirmation link by default. -To toggle this behavior off and only send a single confirmation link to the new email, toggle "Double confirm email changes" under "Authentication" -> "Settings" off. - -User metadata: It's generally better to store user data in a table inside your public schema (i.e. `public.users`). -Use the `update()` method if you have data which rarely changes or is specific only to the logged in user. - -## Examples - -### Update email for authenticated user. - -Sends a "Confirm Email Change" email to the new email address. - - - - - -```js -const { user, error } = await supabase.auth.update({ email: 'new@email.com' }) -``` - - - - - -### Update password for authenticated user. - - - - - -```js -const { user, error } = await supabase.auth.update({ password: 'new password' }) -``` - - - - - -### Update a user's metadata. - - - - - -```js -const { user, error } = await supabase.auth.update({ - data: { hello: 'world' }, -}) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-user.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/auth-user.mdx deleted file mode 100644 index 5631da9ebed..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/auth-user.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: auth-user -title: 'user()' -slug: auth-user -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Inside a browser context, `user()` will return the user data, if there is a logged in user. - -For server-side management, you can get a user through `auth.api.getUserByCookie()` - - - - - -```js -const user = supabase.auth.user() -``` - - - - - -## Notes - -This method gets the user object from memory. - -## Examples - -### Get the logged in user - - - - - -```js -const user = supabase.auth.user() -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/containedby.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/containedby.mdx deleted file mode 100644 index 1a4beb88682..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/containedby.mdx +++ /dev/null @@ -1,120 +0,0 @@ ---- -id: containedby -title: '.containedBy()' -slug: containedby -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .containedBy('main_exports', ['cars', 'food', 'machine']) -``` - - - - - -## Notes - -- `.containedBy()` can work on array columns or range columns. - - ```js - .containedBy('arraycol',["a","b"]) // You can use a javascript array for an array column - .containedBy('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .containedBy('rangecol','(1,2]') // Use Postgres range syntax for range column. - .containedBy('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .containedBy('main_exports', ['cars', 'food', 'machine']) -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .containedBy('main_exports', ['orks', 'surveillance', 'evil']) -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .containedBy('main_exports', ['cars', 'food', 'machine']) -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .containedBy('main_exports', ['cars', 'food', 'machine']) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/contains.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/contains.mdx deleted file mode 100644 index 45d1b70c6e2..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/contains.mdx +++ /dev/null @@ -1,121 +0,0 @@ ---- -id: contains -title: '.contains()' -slug: contains -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .contains('main_exports', ['oil']) -``` - - - - - -## Notes - -- `.contains()` can work on array columns or range columns. - It is very useful for finding rows where a tag array contains all the values in the filter array. - - ```js - .contains('arraycol',["a","b"]) // You can use a javascript array for an array column - .contains('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .contains('rangecol','(1,2]') // Use Postgres range syntax for range column. - .contains('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .contains('main_exports', ['oil']) -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .contains('main_exports', ['oil']) -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .contains('main_exports', ['oil']) -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .contains('main_exports', ['oil']) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/delete.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/delete.mdx deleted file mode 100644 index 41075b120ef..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/delete.mdx +++ /dev/null @@ -1,131 +0,0 @@ ---- -id: delete -title: 'Delete data: delete()' -slug: delete -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs a DELETE on the table. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .match({ id: 666 }) -``` - - - - - -## Parameters - -
    - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - returning - - - required - - - minimal | representation - -

      -
      - -If `true`, return the deleted row(s) in the response. - -
      - -
    • - -
    • -

      - - count - - - required - - - null | exact | planned | estimated - -

      -
      - -Count algorithm to use to count rows in a table. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- `delete()` should always be combined with [filters](/docs/reference/javascript/using-filters) to target the item(s) you wish to delete. -- If you use `delete()` with filters and you have - [RLS](/docs/learn/auth-deep-dive/auth-row-level-security) enabled, only - rows visible through `SELECT` policies are deleted. Note that by default - no rows are visible, so you need at least one `SELECT`/`ALL` policy that - makes the rows visible. - -## Examples - -### Delete records - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .match({ id: 666 }) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/eq.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/eq.mdx deleted file mode 100644 index 506ac14c24d..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/eq.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: eq -title: '.eq()' -slug: eq -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` exactly matches the -specified `value`. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The shire') -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The shire') -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .eq('name', 'San Francisco') -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .eq('name', 'Mordor') -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .eq('name', 'San Francisco') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/filter.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/filter.mdx deleted file mode 100644 index 88f0190da3d..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/filter.mdx +++ /dev/null @@ -1,207 +0,0 @@ ---- -id: filter -title: '.filter()' -slug: filter -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose `column` satisfies the filter. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .filter('name', 'in', '("Paris","Tokyo")') -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - operator - - - required - - - FilterOperator - -

    -
    - -The operator to filter with. - -
    - -
  • - -
  • -

    - - value - - - required - - - any - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Notes - -- `.filter()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values, so it should only be used as an escape hatch in case other filters don't work. - ```js - .filter('arraycol','cs','{"a","b"}') // Use Postgres array {} for array column and 'cs' for contains. - .filter('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .filter('id','in','(6,7)') // Use Postgres list () for in filter. - .filter('id','in',`(${arr})`) // You can insert a javascript array. - ``` - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .filter('name', 'in', '("Paris","Tokyo")') -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .filter('name', 'in', '("Paris","Tokyo")') -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .filter('name', 'in', '("Paris","Tokyo")') -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .filter('name', 'in', '("Paris","Tokyo")') -``` - - - - - -### Filter embedded resources - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, countries ( name )') - .filter('countries.name', 'in', '("France","Japan")') -``` - - - - diff --git a/web/docs/reference/cli/.gitkeep b/apps/reference/_supabase_js_versioned_docs/version-v1/generated/.gitkeep similarity index 100% rename from web/docs/reference/cli/.gitkeep rename to apps/reference/_supabase_js_versioned_docs/version-v1/generated/.gitkeep diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/generating-types.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/generating-types.mdx index dd81e860e66..033cfdb9165 100644 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/generating-types.mdx +++ b/apps/reference/_supabase_js_versioned_docs/version-v1/generating-types.mdx @@ -2,7 +2,7 @@ id: generating-types title: 'Generating Types' slug: generating-types -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml +custom_edit_url: https://github.com/supabase/supabase/edit/master/spec/supabase_js_v1.yml --- import Tabs from '@theme/Tabs' diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/getsubscriptions.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/getsubscriptions.mdx deleted file mode 100644 index beea8b5a5fc..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/getsubscriptions.mdx +++ /dev/null @@ -1,45 +0,0 @@ ---- -id: getsubscriptions -title: 'getSubscriptions()' -slug: getsubscriptions -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Returns an array of all your subscriptions. - - - - - -```js -const subscriptions = supabase.getSubscriptions() -``` - - - - - -## Examples - -### Get all subscriptions - - - - - -```js -const subscriptions = supabase.getSubscriptions() -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/gt.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/gt.mdx deleted file mode 100644 index 1a8c50984eb..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/gt.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: gt -title: '.gt()' -slug: gt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is greater than the -specified `value`. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gt('country_id', 250) -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gt('country_id', 250) -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .gt('country_id', 250) -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .gt('country_id', 250) -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .gt('country_id', 250) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/gte.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/gte.mdx deleted file mode 100644 index fd6424389d4..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/gte.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: gte -title: '.gte()' -slug: gte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is greater than or -equal to the specified `value`. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gte('country_id', 250) -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gte('country_id', 250) -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .gte('country_id', 250) -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .gte('country_id', 250) -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .gte('country_id', 250) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/ilike.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/ilike.mdx deleted file mode 100644 index 085bd2ef9ab..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/ilike.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: ilike -title: '.ilike()' -slug: ilike -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value in the stated `column` matches the supplied -`pattern` (case insensitive). - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .ilike('name', '%la%') -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - pattern - - - required - - - string - -

    -
    - -The pattern to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .ilike('name', '%la%') -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .ilike('name', '%la%') -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .ilike('name', '%la%') -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .ilike('name', '%la%') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/in.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/in.mdx deleted file mode 100644 index d5e4a468107..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/in.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: in -title: '.in()' -slug: in -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is found on the -specified `values`. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .in('name', ['Rio de Janeiro', 'San Francisco']) -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - values - - - required - - - object - -

    -
    - -The values to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .in('name', ['Rio de Janeiro', 'San Francisco']) -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .in('name', ['Rio de Janeiro', 'San Francisco']) -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .in('name', ['Rio de Janeiro', 'San Francisco']) -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .in('name', ['Rio de Janeiro', 'San Francisco']) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/index.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/index.mdx index 24b27d1c8ba..8f37f5853e8 100644 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/index.mdx +++ b/apps/reference/_supabase_js_versioned_docs/version-v1/index.mdx @@ -2,7 +2,7 @@ id: index title: 'Supabase Client' slug: supabase-client -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml +custom_edit_url: ../../spec/supabase_js_v1.yml --- import Tabs from '@theme/Tabs' diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/initializing.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/initializing.mdx index f921020d8f0..711f03f2aed 100644 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/initializing.mdx +++ b/apps/reference/_supabase_js_versioned_docs/version-v1/initializing.mdx @@ -2,7 +2,7 @@ id: initializing title: 'Initializing' slug: initializing -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml +custom_edit_url: https://github.com/supabase/supabase/edit/master/spec/supabase_js_v1.yml --- import Tabs from '@theme/Tabs' @@ -83,13 +83,6 @@ No description provided. ### createClient() - - - - ```js import { createClient } from '@supabase/supabase-js' @@ -100,19 +93,8 @@ const supabase = createClient( ) ``` - - - - ### With additional parameters - - - - ```js import { createClient } from '@supabase/supabase-js' @@ -130,19 +112,8 @@ const supabase = createClient( ) ``` - - - - ### API schemas - - - - ```js import { createClient } from '@supabase/supabase-js' @@ -161,19 +132,8 @@ Go to `Settings > API > Schema` and add the schema which you want to expose to t Note: each client connection can only access a single schema, so the code above can access the `other_schema` schema but cannot access the `public` schema. - - - - ### Custom `fetch` implementation - - - - ```js import { createClient } from '@supabase/supabase-js' @@ -189,7 +149,3 @@ const supabase = createClient( `supabase-js` uses the [`cross-fetch`](https://www.npmjs.com/package/cross-fetch) library to make HTTP requests, but an alternative `fetch` implementation can be provided as an option. This is most useful in environments where `cross-fetch` is not compatible (for instance Cloudflare Workers). - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/insert.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/insert.mdx deleted file mode 100644 index 8c41fdd2d3e..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/insert.mdx +++ /dev/null @@ -1,154 +0,0 @@ ---- -id: insert -title: 'Create data: insert()' -slug: insert -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs an INSERT into the table. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .insert([{ name: 'The Shire', country_id: 554 }]) -``` - - - - - -## Parameters - -
    - -
  • -

    - - values - - - required - - - Partial | array - -

    -
    - -The values to insert. - -
    - -
  • - -
  • -

    - - options - - - optional - - - undefined | reflection - -

    -
    - -No description provided. - -
    - -
  • - -
- -## Notes - -- By default, every time you run `insert()`, the client library will make a `select` to return the full record. - This is convenient, but it can also cause problems if your Policies are not configured to allow the `select` operation. - If you are using Row Level Security and you are encountering problems, try setting the `returning` param to `minimal`. - -## Examples - -### Create a record - - - - - -```js -const { data, error } = await supabase - .from('cities') - .insert([{ name: 'The Shire', country_id: 554 }]) -``` - - - - - -### Bulk create - -When running a bulk create, the operation is handled in a single transaction. If any of the inserts fail, all other operations are -rolled back. - - - - - -```js -const { data, error } = await supabase.from('cities').insert([ - { name: 'The Shire', country_id: 554 }, - { name: 'Rohan', country_id: 555 }, -]) -``` - - - - - -### Upsert - -For upsert, if set to true, primary key columns would need to be included -in the data parameter in order for an update to properly happen. Also, primary keys -used must be natural, not surrogate. There are however, -[workarounds](https://github.com/PostgREST/postgrest/issues/1118) -for surrogate primary keys. - - - - - -```js -const { data, error } = await supabase.from('cities').insert( - [ - { name: 'The Shire', country_id: 554 }, - { name: 'Rohan', country_id: 555 }, - { name: 'City by the Bay', country_id: 840 }, - ], - { upsert: true } -) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/installing.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/installing.mdx index 960bac4e30f..4441c7253d7 100644 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/installing.mdx +++ b/apps/reference/_supabase_js_versioned_docs/version-v1/installing.mdx @@ -2,7 +2,7 @@ id: installing title: 'Installing' slug: installing -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml +custom_edit_url: https://github.com/supabase/supabase/edit/master/spec/supabase_js_v1.yml --- import Tabs from '@theme/Tabs' @@ -31,7 +31,7 @@ Find the source code on [GitHub](https://github.com/supabase/supabase-js). Or via CDN ```js - + //or - + ``` diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/intro.md b/apps/reference/_supabase_js_versioned_docs/version-v1/intro.md index c076ac88b67..97230e84aea 100644 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/intro.md +++ b/apps/reference/_supabase_js_versioned_docs/version-v1/intro.md @@ -5,6 +5,10 @@ slug: / sidebar_label: Supabase JavaScript Library --- +:::caution +You're viewing the docs for an older version of the `supabase-js` library. +::: + This reference documents every object and method available in Supabase's isomorphic JavaScript library, `supabase-js`. You can use the `supabase-js` library to: diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/invoke.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/invoke.mdx deleted file mode 100644 index b553ac81c33..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/invoke.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: invoke -title: 'invoke()' -slug: invoke -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Invokes a Supabase Function. - -:::caution - -Edge Functions are Experimental until 1 August 2022. There will breaking changes. Do not use them in Production. - -::: - -We have released Supabase Functions to gather feedback. You're welcome to try them out and send us feedback but we strongly advise against using them for anything in production. -There will be breaking changes with no notice. - - - - - -```js -const { data: user, error } = await supabase.functions.invoke('hello', { - body: JSON.stringify({ foo: 'bar' }), -}) -``` - - - - - -## Parameters - -
    - -
  • -

    - - functionName - - - required - - - string - -

    -
    - -the name of the function to invoke - -
    - -
  • - -
  • -

    - - invokeOptions - - - optional - - - FunctionInvokeOptions - -

    -
    - -object with the following properties -`headers`: object representing the headers to send with the request -`body`: the body of the request -`responseType`: how the response should be parsed. The default is `json` - -
    - -
  • - -
- -## Notes - -- Requires an Authorization header. -- Invoke params generally match the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) spec. - -## Examples - -### Basic invocation. - - - - - -```js -const { data: user, error } = await supabase.functions.invoke('hello', { - body: JSON.stringify({ foo: 'bar' }), -}) -``` - - - - - -### Specifying response type. - -By default, `invoke()` will parse the response as JSON. You can parse the response in the following formats: `json`, `blob`, `text`, and `arrayBuffer`. - - - - - -```js -const { data: user, error } = await supabase.functions.invoke('hello', { - responseType: 'text', - body: JSON.stringify({ foo: 'bar' }), -}) -``` - - - - - -### Parsing custom headers. - -You can pass custom headers to your function. Note: supabase-js automatically passes the `Authorization` header with the signed in user's JWT. - - - - - -```js -const { data: user, error } = await supabase.functions.invoke('hello', { - headers: { - 'my-custom-header': 'my-custom-header-value', - }, - body: JSON.stringify({ foo: 'bar' }), -}) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/is.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/is.mdx deleted file mode 100644 index 289216e771d..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/is.mdx +++ /dev/null @@ -1,153 +0,0 @@ ---- -id: is -title: '.is()' -slug: is -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -A check for exact equality (null, true, false), finds all rows whose -value on the stated `column` exactly match the specified `value`. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .is('name', null) -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - boolean | null - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .is('name', null) -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .is('name', null) -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase.from('cities').delete().is('name', null) -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase.rpc('echo_all_cities').is('name', null) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/like.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/like.mdx deleted file mode 100644 index abdb43b930a..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/like.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: like -title: '.like()' -slug: like -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value in the stated `column` matches the supplied -`pattern` (case sensitive). - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .like('name', '%la%') -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - pattern - - - required - - - string - -

    -
    - -The pattern to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .like('name', '%la%') -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .like('name', '%la%') -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .like('name', '%la%') -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .like('name', '%la%') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/limit.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/limit.mdx deleted file mode 100644 index d794c6c7dbf..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/limit.mdx +++ /dev/null @@ -1,143 +0,0 @@ ---- -id: limit -title: 'limit()' -slug: limit -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Limits the result with the specified `count`. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) -``` - - - - - -## Parameters - -
    - -
  • -

    - - count - - - required - - - number - -

    -
    - -The maximum no. of rows to limit to. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - foreignTable - - - required - - - undefined | string - -

      -
      - -The foreign table to use (for foreign columns). - -
      - -
    • - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) -``` - - - - - -### With embedded resources - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .limit(1, { foreignTable: 'cities' }) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/lt.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/lt.mdx deleted file mode 100644 index f7273a5d7eb..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/lt.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: lt -title: '.lt()' -slug: lt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is less than the -specified `value`. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lt('country_id', 250) -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lt('country_id', 250) -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .lt('country_id', 250) -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .lt('country_id', 250) -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .lt('country_id', 250) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/lte.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/lte.mdx deleted file mode 100644 index 62522f0ce4f..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/lte.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: lte -title: '.lte()' -slug: lte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` is less than or equal -to the specified `value`. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lte('country_id', 250) -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lte('country_id', 250) -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .lte('country_id', 250) -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .lte('country_id', 250) -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .lte('country_id', 250) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/match.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/match.mdx deleted file mode 100644 index 357b6258445..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/match.mdx +++ /dev/null @@ -1,138 +0,0 @@ ---- -id: match -title: '.match()' -slug: match -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose columns match the specified `query` object. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .match({ name: 'Beijing', country_id: 156 }) -``` - - - - - -## Parameters - -
    - -
  • -

    - - query - - - required - - - Record - -

    -
    - -The object to filter with, with column names as keys mapped -to their filter values. - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .match({ name: 'Beijing', country_id: 156 }) -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .match({ name: 'Beijing', country_id: 156 }) -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .match({ name: 'Beijing', country_id: 156 }) -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .match({ name: 'Beijing', country_id: 156 }) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/maybesingle.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/maybesingle.mdx deleted file mode 100644 index 75b13d8d851..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/maybesingle.mdx +++ /dev/null @@ -1,55 +0,0 @@ ---- -id: maybesingle -title: 'maybeSingle()' -slug: maybesingle -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieves at most one row from the result. Result must be at most one row -(e.g. using `eq` on a UNIQUE column), otherwise this will result in an -error. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'Singapore') - .maybeSingle() -``` - - - - - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'Singapore') - .maybeSingle() -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/neq.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/neq.mdx deleted file mode 100644 index 32360b88899..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/neq.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: neq -title: '.neq()' -slug: neq -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose value on the stated `column` doesn't match the -specified `value`. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .neq('name', 'The shire') -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - value - - - required - - - object - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .neq('name', 'The shire') -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .neq('name', 'San Francisco') -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .neq('name', 'Mordor') -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .neq('name', 'Lagos') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/not.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/not.mdx deleted file mode 100644 index 7ba6d51392a..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/not.mdx +++ /dev/null @@ -1,189 +0,0 @@ ---- -id: not -title: '.not()' -slug: not -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows which doesn't satisfy the filter. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .not('name', 'eq', 'Paris') -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - operator - - - required - - - FilterOperator - -

    -
    - -The operator to filter with. - -
    - -
  • - -
  • -

    - - value - - - required - - - any - -

    -
    - -The value to filter with. - -
    - -
  • - -
- -## Notes - -- `.not()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```js - .not('name','eq','Paris') - .not('arraycol','cs','{"a","b"}') // Use Postgres array {} for array column and 'cs' for contains. - .not('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .not('id','in','(6,7)') // Use Postgres list () for in filter. - .not('id','in',`(${arr})`) // You can insert a javascript array. - ``` - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .not('name', 'eq', 'Paris') -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .not('name', 'eq', 'Paris') -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .delete() - .not('name', 'eq', 'Paris') -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_cities') - .not('name', 'eq', 'Paris') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/or.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/or.mdx deleted file mode 100644 index 32c3dc8e7c3..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/or.mdx +++ /dev/null @@ -1,172 +0,0 @@ ---- -id: or -title: '.or()' -slug: or -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows satisfying at least one of the filters. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .or('id.eq.20,id.eq.30') -``` - - - - - -## Parameters - -
    - -
  • -

    - - filters - - - required - - - string - -

    -
    - -The filters to use, separated by commas. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - foreignTable - - - required - - - undefined | string - -

      -
      - -The foreign table to use (if `column` is a foreign column). - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- `.or()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```js - .or('id.in.(6,7), arraycol.cs.{"a","b"}') // Use Postgres list () for in filter. Array {} for array column and 'cs' for contains. - .or(`id.in.(${arrList}),arraycol.cs.{${arr}}`) // You can insert a javascipt array for list or array on array column. - .or(`id.in.(${arrList}),rangecol.cs.[${arrRange})`) // You can insert a javascipt array for list or range on a range column. - ``` - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .or('id.eq.20,id.eq.30') -``` - - - - - -### Use `or` with `and` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .or('id.gt.20,and(name.eq.New Zealand,name.eq.France)') -``` - - - - - -### Use `or` on foreign tables - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('id, cities(*)') - .or('name.eq.Wellington,name.eq.Paris', { foreignTable: 'cities' }) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/order.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/order.mdx deleted file mode 100644 index fc989769807..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/order.mdx +++ /dev/null @@ -1,183 +0,0 @@ ---- -id: order -title: 'order()' -slug: order -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Orders the result with the specified `column`. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name', 'country_id') - .order('id', { ascending: false }) -``` - - - - - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to order on. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - nullsFirst - - - required - - - boolean - -

      -
      - -If `true`, `null`s appear first. - -
      - -
    • - -
    • -

      - - foreignTable - - - required - - - undefined | string - -

      -
      - -The foreign table to use (if `column` is a foreign column). - -
      - -
    • - -
    • -

      - - ascending - - - required - - - boolean - -

      -
      - -If `true`, the result will be in ascending order. - -
      - -
    • - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name', 'country_id') - .order('id', { ascending: false }) -``` - - - - - -### With embedded resources - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .order('name', { foreignTable: 'cities' }) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/overlaps.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/overlaps.mdx deleted file mode 100644 index f038122dfd7..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/overlaps.mdx +++ /dev/null @@ -1,120 +0,0 @@ ---- -id: overlaps -title: '.overlaps()' -slug: overlaps -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .overlaps('main_exports', ['computers', 'minerals']) -``` - - - - - -## Notes - -- `.overlaps()` can work on array columns or range columns. - - ```js - .overlaps('arraycol',["a","b"]) // You can use a javascript array for an array column - .overlaps('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .overlaps('rangecol','(1,2]') // Use Postgres range syntax for range column. - .overlaps('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .overlaps('main_exports', ['computers', 'minerals']) -``` - - - - - -### With `update()` - - - - - -```js -let countries = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .overlaps('main_exports', ['computers', 'minerals']) -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .overlaps('main_exports', ['computers', 'minerals']) -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .overlaps('main_exports', ['computers', 'minerals']) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/range.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/range.mdx deleted file mode 100644 index f300eb32556..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/range.mdx +++ /dev/null @@ -1,142 +0,0 @@ ---- -id: range -title: 'range()' -slug: range -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Limits the result to rows within the specified range, inclusive. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .range(0, 3) -``` - - - - - -## Parameters - -
    - -
  • -

    - - from - - - required - - - number - -

    -
    - -The starting index from which to limit the result, inclusive. - -
    - -
  • - -
  • -

    - - to - - - required - - - number - -

    -
    - -The last index to which to limit the result, inclusive. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - foreignTable - - - required - - - undefined | string - -

      -
      - -The foreign table to use (for foreign columns). - -
      - -
    • - -
    - -
  • - -
- -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .range(0, 3) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/rangeadjacent.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/rangeadjacent.mdx deleted file mode 100644 index 6f68d15687c..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/rangeadjacent.mdx +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: rangeadjacent -title: '.rangeAdjacent()' -slug: rangeadjacent -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeAdjacent('population_range_millions', '[70, 185]') -``` - - - - - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeAdjacent('population_range_millions', '[70, 185]') -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeAdjacent('population_range_millions', '[70, 185]') -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .rangeAdjacent('population_range_millions', '[70, 185]') -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeAdjacent('population_range_millions', '[70, 185]') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/rangegt.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/rangegt.mdx deleted file mode 100644 index 9bef978e44b..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/rangegt.mdx +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: rangegt -title: '.rangeGt()' -slug: rangegt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGt('population_range_millions', '[150, 250]') -``` - - - - - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGt('population_range_millions', '[150, 250]') -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeGt('population_range_millions', '[150, 250]') -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .rangeGt('population_range_millions', '[150, 250]') -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeGt('population_range_millions', '[150, 250]') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/rangegte.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/rangegte.mdx deleted file mode 100644 index 98cb11b6e64..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/rangegte.mdx +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: rangegte -title: '.rangeGte()' -slug: rangegte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGte('population_range_millions', '[150, 250]') -``` - - - - - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGte('population_range_millions', '[150, 250]') -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeGte('population_range_millions', '[150, 250]') -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .rangeGte('population_range_millions', '[150, 250]') -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeGte('population_range_millions', '[150, 250]') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/rangelt.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/rangelt.mdx deleted file mode 100644 index 1eb61061978..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/rangelt.mdx +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: rangelt -title: '.rangeLt()' -slug: rangelt -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLt('population_range_millions', '[150, 250]') -``` - - - - - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLt('population_range_millions', '[150, 250]') -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeLt('population_range_millions', '[150, 250]') -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .rangeLt('population_range_millions', '[150, 250]') -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeLt('population_range_millions', '[150, 250]') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/rangelte.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/rangelte.mdx deleted file mode 100644 index a32add366cc..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/rangelte.mdx +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: rangelte -title: '.rangeLte()' -slug: rangelte -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLte('population_range_millions', '[150, 250]') -``` - - - - - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLte('population_range_millions', '[150, 250]') -``` - - - - - -### With `update()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeLte('population_range_millions', '[150, 250]') -``` - - - - - -### With `delete()` - - - - - -```js -const { data, error } = await supabase - .from('countries') - .delete() - .rangeLte('population_range_millions', '[150, 250]') -``` - - - - - -### With `rpc()` - - - - - -```js -// Only valid if the Postgres function returns a table type. -const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeLte('population_range_millions', '[150, 250]') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/removeallsubscriptions.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/removeallsubscriptions.mdx deleted file mode 100644 index c04d28c9eef..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/removeallsubscriptions.mdx +++ /dev/null @@ -1,50 +0,0 @@ ---- -id: removeallsubscriptions -title: 'removeAllSubscriptions()' -slug: removeallsubscriptions -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Closes and removes all subscriptions and returns a list of removed -subscriptions and their errors. - - - - - -```js -supabase.removeAllSubscriptions() -``` - - - - - -## Notes - -- Removing subscriptions is a great way to maintain the performance of your project's database. Supabase will automatically handle cleanup 30 seconds after a user is disconnected, but unused subscriptions may cause degradation as more users are simultaneously subscribed. - -## Examples - -### Removes all subscriptions - - - - - -```js -supabase.removeAllSubscriptions() -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/removesubscription.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/removesubscription.mdx deleted file mode 100644 index 5fa48695e0c..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/removesubscription.mdx +++ /dev/null @@ -1,75 +0,0 @@ ---- -id: removesubscription -title: 'removeSubscription()' -slug: removesubscription -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Closes and removes a subscription and returns the number of open subscriptions. - - - - - -```js -supabase.removeSubscription(mySubscription) -``` - - - - - -## Parameters - -
    - -
  • -

    - - subscription - - - required - - - default - -

    -
    - -The subscription you want to close and remove. - -
    - -
  • - -
- -## Notes - -- Removing subscriptions is a great way to maintain the performance of your project's database. Supabase will automatically handle cleanup 30 seconds after a user is disconnected, but unused subscriptions may cause degradation as more users are simultaneously subscribed. - -## Examples - -### Remove a subscription - - - - - -```js -supabase.removeSubscription(mySubscription) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/rpc.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/rpc.mdx deleted file mode 100644 index d83c25466aa..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/rpc.mdx +++ /dev/null @@ -1,253 +0,0 @@ ---- -id: rpc -title: 'Postgres functions: rpc()' -slug: rpc -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -You can call Postgres functions as a "Remote Procedure Call". - -That's a fancy way of saying that you can put some logic into your database then call it from anywhere. -It's especially useful when the logic rarely changes - like password resets and updates. - -```sql -create or replace function hello_world() returns text as $$ - select 'Hello world'; -$$ language sql; -``` - - - - - -```js -const { data, error } = await supabase.rpc('hello_world') -``` - - - - - -## Parameters - -
    - -
  • -

    - - fn - - - required - - - string - -

    -
    - -The function name to call. - -
    - -
  • - -
  • -

    - - params - - - optional - - - undefined | object - -

    -
    - -The parameters to pass to the function call. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - head - - - required - - - boolean - -

      -
      - -When set to true, no data will be returned. - -
      - -
    • - -
    • -

      - - count - - - required - - - null | exact | planned | estimated - -

      -
      - -Count algorithm to use to count rows in a table. - -
      - -
    • - -
    - -
  • - -
- -## Examples - -### Call a Postgres function - -This is an example of invoking a Postgres function with no parameters. - - - - - -```js -const { data, error } = await supabase.rpc('hello_world') -``` - - - - - -### With Parameters - - - - - -```js -const { data, error } = await supabase.rpc('echo_city', { name: 'The Shire' }) -``` - - - - - -### Bulk processing - -You can process large payloads at once using [array parameters](https://postgrest.org/en/stable/api.html#calling-functions-with-array-parameters). - - - - - -```js -const { data, error } = await postgrest.rpc('echo_cities', { - names: ['The Shire', 'Mordor'], -}) -``` - - - - - -### With filters - -Postgres functions that return tables can also be combined with -[Modifiers](/docs/reference/javascript/using-modifiers) and -[Filters](/docs/reference/javascript/using-filters). - - - - - -```js -const { data, error } = await supabase - .rpc('echo_all_cities') - .select('name, population') - .eq('name', 'The Shire') -``` - - - - - -### With count option - -You can specify a count option to get the row count along with your data. -Allowed values for count option are `null`, `exact`, `planned` and `estimated`. - - - - - -```js -const { data, error, count } = await supabase.rpc( - 'hello_world', - {}, - { count: 'exact' } -) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/select.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/select.mdx deleted file mode 100644 index 0ca77c8161f..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/select.mdx +++ /dev/null @@ -1,354 +0,0 @@ ---- -id: select -title: 'Fetch data: select()' -slug: select -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs vertical filtering with SELECT. - - - - - -```js -const { data, error } = await supabase.from('cities').select() -``` - - - - - -## Parameters - -
    - -
  • -

    - - columns - - - required - - - string - -

    -
    - -The columns to retrieve, separated by commas. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - head - - - required - - - boolean - -

      -
      - -When set to true, select will void data. - -
      - -
    • - -
    • -

      - - count - - - required - - - null | exact | planned | estimated - -

      -
      - -Count algorithm to use to count rows in a table. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- By default, Supabase projects will return a maximum of 1,000 rows. This setting can be changed in Project API Settings. It's recommended that you keep it low to limit the payload size of accidental or malicious requests. You can use `range()` queries to paginate through your data. -- `select()` can be combined with [Modifiers](/docs/reference/javascript/using-modifiers) -- `select()` can be combined with [Filters](/docs/reference/javascript/using-filters) -- If using the Supabase hosted platform `apikey` is technically a reserved keyword, since the API gateway will pluck it out for authentication. [It should be avoided as a column name](https://github.com/supabase/supabase/issues/5465). - -## Examples - -### Getting your data - - - - - -```js -const { data, error } = await supabase.from('cities').select() -``` - - - - - -### Selecting specific columns - -You can select specific fields from your tables. - - - - - -```js -const { data, error } = await supabase.from('cities').select('name') -``` - - - - - -### Query foreign tables - -If your database has foreign key relationships, you can query related tables too. - - - - - -```js -const { data, error } = await supabase.from('countries').select(` - name, - cities ( - name - ) - `) -``` - - - - - -:::note What about join tables -If you're in a situation where your tables are **NOT** directly related, but instead are joined by a _join table_, -you can still use the `select()` method to query the related data. The PostgREST engine detects the relationship automatically. -For more details, [follow the link](https://postgrest.org/en/latest/api.html#embedding-through-join-tables). - -::: - -### Query the same foreign table multiple times - -Sometimes you will need to query the same foreign table twice. -In this case, you can use the name of the joined column to identify -which join you intend to use. For convenience, you can also give an -alias for each column. For example, if we had a shop of products, -and we wanted to get the supplier and the purchaser at the same time -(both in the users) table: - - - - - -```js -const { data, error } = await supabase.from('products').select(` - id, - supplier:supplier_id ( name ), - purchaser:purchaser_id ( name ) - `) -``` - - - - - -### Filtering with inner joins - -If you want to filter a table based on a child table's values you can use the `!inner()` function. For example, if you wanted -to select all rows in a `message` table which belong to a user with the `username` "Jane": - - - - - -```js -const { data, error } = await supabase - .from('messages') - .select('*, users!inner(*)') - .eq('users.username', 'Jane') -``` - - - - - -### Querying with count option - -You can get the number of rows by using the count option. -Allowed values for count option are `null`, [exact](https://postgrest.org/en/stable/api.html#exact-count), [planned](https://postgrest.org/en/stable/api.html#planned-count) and [estimated](https://postgrest.org/en/stable/api.html#estimated-count). - - - - - -```js -const { data, error, count } = await supabase - .from('cities') - .select('name', { count: 'exact' }) // if you don't want to return any rows, you can use { count: 'exact', head: true } -``` - - - - - -### Querying JSON data - -If you have data inside of a JSONB column, you can apply select -and query filters to the data values. Postgres offers a -[number of operators](https://www.postgresql.org/docs/current/functions-json.html) -for querying JSON data. Also see -[PostgREST docs](http://postgrest.org/en/v7.0.0/api.html#json-columns) for more details. - - - - - -```js -const { data, error } = await supabase - .from('users') - .select( - ` - id, name, - address->street - ` - ) - .eq('address->postcode', 90210) -``` - - - - - -### Return data as CSV - -By default the data is returned in JSON format, however you can also request for it to be returned as Comma Separated Values. - - - - - -```js -const { data, error } = await supabase.from('users').select().csv() -``` - - - - - -### Aborting requests in-flight - -You can use an [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) to abort requests. Note that `status` and `statusText` doesn't mean anything for aborted requests, since the request wasn't actually fulfilled. - - - - - -```js -const ac = new AbortController() -supabase - .from('very_big_table') - .select() - .abortSignal(ac.signal) - .then(console.log) -ac.abort() -// { -// error: { -// message: 'FetchError: The user aborted a request.', -// details: '', -// hint: '', -// code: '' -// }, -// data: null, -// body: null, -// count: null, -// status: 400, -// statusText: 'Bad Request' -// } -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/single.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/single.mdx deleted file mode 100644 index b28a0974dfe..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/single.mdx +++ /dev/null @@ -1,54 +0,0 @@ ---- -id: single -title: 'single()' -slug: single -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieves only one row from the result. Result must be one row (e.g. using -`limit`), otherwise this will result in an error. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) - .single() -``` - - - - - -## Examples - -### With `select()` - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) - .single() -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-createbucket.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-createbucket.mdx deleted file mode 100644 index 94677caa843..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-createbucket.mdx +++ /dev/null @@ -1,126 +0,0 @@ ---- -id: storage-createbucket -title: 'createBucket()' -slug: storage-createbucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Creates a new Storage bucket - - - - - -```js -const { data, error } = await supabase.storage.createBucket('avatars', { - public: false, -}) -``` - - - - - -## Parameters - -
    - -
  • -

    - - id - - - required - - - string - -

    -
    - -A unique identifier for the bucket you are creating. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - public - - - required - - - boolean - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: `insert` - - `objects` permissions: none - -## Examples - -### Create bucket - - - - - -```js -const { data, error } = await supabase.storage.createBucket('avatars', { - public: false, -}) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-deletebucket.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-deletebucket.mdx deleted file mode 100644 index 5c88791d7c7..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-deletebucket.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: storage-deletebucket -title: 'deleteBucket()' -slug: storage-deletebucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Deletes an existing bucket. A bucket can't be deleted with existing objects inside it. -You must first `empty()` the bucket. - - - - - -```js -const { data, error } = await supabase.storage.deleteBucket('avatars') -``` - - - - - -## Parameters - -
    - -
  • -

    - - id - - - required - - - string - -

    -
    - -The unique identifier of the bucket you would like to delete. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` and `delete` - - `objects` permissions: none - -## Examples - -### Delete bucket - - - - - -```js -const { data, error } = await supabase.storage.deleteBucket('avatars') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-emptybucket.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-emptybucket.mdx deleted file mode 100644 index f432c74f542..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-emptybucket.mdx +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: storage-emptybucket -title: 'emptyBucket()' -slug: storage-emptybucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Removes all objects inside a single bucket. - - - - - -```js -const { data, error } = await supabase.storage.emptyBucket('avatars') -``` - - - - - -## Parameters - -
    - -
  • -

    - - id - - - required - - - string - -

    -
    - -The unique identifier of the bucket you would like to empty. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: `select` and `delete` - -## Examples - -### Empty bucket - - - - - -```js -const { data, error } = await supabase.storage.emptyBucket('avatars') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-copy.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-copy.mdx deleted file mode 100644 index 3251e509584..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-copy.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: storage-from-copy -title: 'from.copy()' -slug: storage-from-copy -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Copies an existing file. - - - - - -```js -const { data, error } = await supabase.storage - .from('avatars') - .copy('public/avatar1.png', 'private/avatar2.png') -``` - - - - - -## Parameters - -
    - -
  • -

    - - fromPath - - - required - - - string - -

    -
    - -The original file path, including the current file name. For example `folder/image.png`. - -
    - -
  • - -
  • -

    - - toPath - - - required - - - string - -

    -
    - -The new file path, including the new file name. For example `folder/image-copy.png`. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - -## Examples - -### Copy file - - - - - -```js -const { data, error } = await supabase.storage - .from('avatars') - .copy('public/avatar1.png', 'private/avatar2.png') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-createsignedurl.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-createsignedurl.mdx deleted file mode 100644 index f68b4484384..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-createsignedurl.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: storage-from-createsignedurl -title: 'from.createSignedUrl()' -slug: storage-from-createsignedurl -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Create signed URL to download file without requiring permissions. This URL can be valid for a set number of seconds. - - - - - -```js -const { signedURL, error } = await supabase.storage - .from('avatars') - .createSignedUrl('folder/avatar1.png', 60) -``` - - - - - -## Parameters - -
    - -
  • -

    - - path - - - required - - - string - -

    -
    - -The file path to be downloaded, including the current file name. For example `folder/image.png`. - -
    - -
  • - -
  • -

    - - expiresIn - - - required - - - number - -

    -
    - -The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - -## Examples - -### Create Signed URL - - - - - -```js -const { signedURL, error } = await supabase.storage - .from('avatars') - .createSignedUrl('folder/avatar1.png', 60) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-createsignedurls.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-createsignedurls.mdx deleted file mode 100644 index f56fc180ace..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-createsignedurls.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: storage-from-createsignedurls -title: 'from.createSignedUrls()' -slug: storage-from-createsignedurls -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Create signed URLs to download files without requiring permissions. These URLs can be valid for a set number of seconds. - - - - - -```js -const { data, error } = await supabase.storage - .from('avatars') - .createSignedUrls(['folder/avatar1.png', 'folder/avatar2.png'], 60) -``` - - - - - -## Parameters - -
    - -
  • -

    - - paths - - - required - - - object - -

    -
    - -The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`. - -
    - -
  • - -
  • -

    - - expiresIn - - - required - - - number - -

    -
    - -The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - -## Examples - -### Create Signed URLs - - - - - -```js -const { data, error } = await supabase.storage - .from('avatars') - .createSignedUrls(['folder/avatar1.png', 'folder/avatar2.png'], 60) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-download.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-download.mdx deleted file mode 100644 index 7e95e92396f..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-download.mdx +++ /dev/null @@ -1,81 +0,0 @@ ---- -id: storage-from-download -title: 'from.download()' -slug: storage-from-download -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Downloads a file. - - - - - -```js -const { data, error } = await supabase.storage - .from('avatars') - .download('folder/avatar1.png') -``` - - - - - -## Parameters - -
    - -
  • -

    - - path - - - required - - - string - -

    -
    - -The file path to be downloaded, including the path and file name. For example `folder/image.png`. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - -## Examples - -### Download file - - - - - -```js -const { data, error } = await supabase.storage - .from('avatars') - .download('folder/avatar1.png') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-getpublicurl.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-getpublicurl.mdx deleted file mode 100644 index 85de6499b3c..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-getpublicurl.mdx +++ /dev/null @@ -1,82 +0,0 @@ ---- -id: storage-from-getpublicurl -title: 'from.getPublicUrl()' -slug: storage-from-getpublicurl -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieve URLs for assets in public buckets - - - - - -```js -const { publicURL, error } = supabase.storage - .from('public-bucket') - .getPublicUrl('folder/avatar1.png') -``` - - - - - -## Parameters - -
    - -
  • -

    - - path - - - required - - - string - -

    -
    - -The file path to be downloaded, including the path and file name. For example `folder/image.png`. - -
    - -
  • - -
- -## Notes - -- The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://app.supabase.com), clicking the overflow menu on a bucket and choosing "Make public" -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: none - -## Examples - -### Returns the URL for an asset in a public bucket - - - - - -```js -const { publicURL, error } = supabase.storage - .from('public-bucket') - .getPublicUrl('folder/avatar1.png') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-list.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-list.mdx deleted file mode 100644 index 14708feb725..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-list.mdx +++ /dev/null @@ -1,147 +0,0 @@ ---- -id: storage-from-list -title: 'from.list()' -slug: storage-from-list -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Lists all the files within a bucket. - - - - - -```js -const { data, error } = await supabase.storage.from('avatars').list('folder', { - limit: 100, - offset: 0, - sortBy: { column: 'name', order: 'asc' }, -}) -``` - - - - - -## Parameters - -
    - -
  • -

    - - path - - - optional - - - undefined | string - -

    -
    - -The folder path. - -
    - -
  • - -
  • -

    - - options - - - optional - - - SearchOptions - -

    -
    - -Search options, including `limit`, `offset`, `sortBy`, and `search`. - -
    - -
  • - -
  • -

    - - parameters - - - optional - - - FetchParameters - -

    -
    - -Fetch parameters, currently only supports `signal`, which is an AbortController's signal - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - -## Examples - -### List files in a bucket - - - - - -```js -const { data, error } = await supabase.storage.from('avatars').list('folder', { - limit: 100, - offset: 0, - sortBy: { column: 'name', order: 'asc' }, -}) -``` - - - - - -### Search files in a bucket - - - - - -```js -const { data, error } = await supabase.storage.from('avatars').list('folder', { - limit: 100, - offset: 0, - sortBy: { column: 'name', order: 'asc' }, - search: 'jon', -}) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-move.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-move.mdx deleted file mode 100644 index a1fef28d6e0..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-move.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: storage-from-move -title: 'from.move()' -slug: storage-from-move -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Moves an existing file. - - - - - -```js -const { data, error } = await supabase.storage - .from('avatars') - .move('public/avatar1.png', 'private/avatar2.png') -``` - - - - - -## Parameters - -
    - -
  • -

    - - fromPath - - - required - - - string - -

    -
    - -The original file path, including the current file name. For example `folder/image.png`. - -
    - -
  • - -
  • -

    - - toPath - - - required - - - string - -

    -
    - -The new file path, including the new file name. For example `folder/image-new.png`. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - -## Examples - -### Move file - - - - - -```js -const { data, error } = await supabase.storage - .from('avatars') - .move('public/avatar1.png', 'private/avatar2.png') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-remove.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-remove.mdx deleted file mode 100644 index 47831f0e6d1..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-remove.mdx +++ /dev/null @@ -1,81 +0,0 @@ ---- -id: storage-from-remove -title: 'from.remove()' -slug: storage-from-remove -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Deletes files within the same bucket - - - - - -```js -const { data, error } = await supabase.storage - .from('avatars') - .remove(['folder/avatar1.png']) -``` - - - - - -## Parameters - -
    - -
  • -

    - - paths - - - required - - - object - -

    -
    - -An array of files to be deleted, including the path and file name. For example [`folder/image.png`]. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `delete` and `select` - -## Examples - -### Delete file - - - - - -```js -const { data, error } = await supabase.storage - .from('avatars') - .remove(['folder/avatar1.png']) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-update.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-update.mdx deleted file mode 100644 index e05ec37c2ef..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-update.mdx +++ /dev/null @@ -1,156 +0,0 @@ ---- -id: storage-from-update -title: 'from.update()' -slug: storage-from-update -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Replaces an existing file at the specified path with a new one. - - - - - -```js -const avatarFile = event.target.files[0] -const { data, error } = await supabase.storage - .from('avatars') - .update('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false, - }) -``` - - - - - -## Parameters - -
    - -
  • -

    - - path - - - required - - - string - -

    -
    - -The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. - -
    - -
  • - -
  • -

    - - fileBody - - - required - - - ArrayBuffer | ArrayBufferView | Blob | Buffer | File | FormData | ReadableStream | ReadableStream | URLSearchParams | string - -

    -
    - -The body of the file to be stored in the bucket. - -
    - -
  • - -
  • -

    - - fileOptions - - - optional - - - FileOptions - -

    -
    - -HTTP headers. -`cacheControl`: string, the `Cache-Control: max-age=` seconds value. -`contentType`: string, the `Content-Type` header value. Should be specified if using a `fileBody` that is neither `Blob` nor `File` nor `FormData`, otherwise will default to `text/plain;charset=UTF-8`. -`upsert`: boolean, whether to perform an upsert. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` -- For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Update file using `ArrayBuffer` from base64 file data instead, see example below. - -## Examples - -### Update file - - - - - -```js -const avatarFile = event.target.files[0] -const { data, error } = await supabase.storage - .from('avatars') - .update('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false, - }) -``` - - - - - -### Update file using `ArrayBuffer` from base64 file data - - - - - -```js -import { decode } from 'base64-arraybuffer' - -const { data, error } = await supabase.storage - .from('avatars') - .update('public/avatar1.png', decode('base64FileData'), { - contentType: 'image/png', - }) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-upload.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-upload.mdx deleted file mode 100644 index ab772372270..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-from-upload.mdx +++ /dev/null @@ -1,156 +0,0 @@ ---- -id: storage-from-upload -title: 'from.upload()' -slug: storage-from-upload -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Uploads a file to an existing bucket. - - - - - -```js -const avatarFile = event.target.files[0] -const { data, error } = await supabase.storage - .from('avatars') - .upload('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false, - }) -``` - - - - - -## Parameters - -
    - -
  • -

    - - path - - - required - - - string - -

    -
    - -The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. - -
    - -
  • - -
  • -

    - - fileBody - - - required - - - ArrayBuffer | ArrayBufferView | Blob | Buffer | File | FormData | ReadableStream | ReadableStream | URLSearchParams | string - -

    -
    - -The body of the file to be stored in the bucket. - -
    - -
  • - -
  • -

    - - fileOptions - - - optional - - - FileOptions - -

    -
    - -HTTP headers. -`cacheControl`: string, the `Cache-Control: max-age=` seconds value. -`contentType`: string, the `Content-Type` header value. Should be specified if using a `fileBody` that is neither `Blob` nor `File` nor `FormData`, otherwise will default to `text/plain;charset=UTF-8`. -`upsert`: boolean, whether to perform an upsert. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `insert` -- For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Upload file using `ArrayBuffer` from base64 file data instead, see example below. - -## Examples - -### Upload file - - - - - -```js -const avatarFile = event.target.files[0] -const { data, error } = await supabase.storage - .from('avatars') - .upload('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false, - }) -``` - - - - - -### Upload file using `ArrayBuffer` from base64 file data - - - - - -```js -import { decode } from 'base64-arraybuffer' - -const { data, error } = await supabase.storage - .from('avatars') - .upload('public/avatar1.png', decode('base64FileData'), { - contentType: 'image/png', - }) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-getbucket.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-getbucket.mdx deleted file mode 100644 index cb7075fed67..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-getbucket.mdx +++ /dev/null @@ -1,77 +0,0 @@ ---- -id: storage-getbucket -title: 'getBucket()' -slug: storage-getbucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieves the details of an existing Storage bucket. - - - - - -```js -const { data, error } = await supabase.storage.getBucket('avatars') -``` - - - - - -## Parameters - -
    - -
  • -

    - - id - - - required - - - string - -

    -
    - -The unique identifier of the bucket you would like to retrieve. - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - -## Examples - -### Get bucket - - - - - -```js -const { data, error } = await supabase.storage.getBucket('avatars') -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-listbuckets.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-listbuckets.mdx deleted file mode 100644 index da973fa5d6f..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-listbuckets.mdx +++ /dev/null @@ -1,51 +0,0 @@ ---- -id: storage-listbuckets -title: 'listBuckets()' -slug: storage-listbuckets -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Retrieves the details of all Storage buckets within an existing project. - - - - - -```js -const { data, error } = await supabase.storage.listBuckets() -``` - - - - - -## Notes - -- Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - -## Examples - -### List buckets - - - - - -```js -const { data, error } = await supabase.storage.listBuckets() -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-updatebucket.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/storage-updatebucket.mdx deleted file mode 100644 index 56b617c0d41..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/storage-updatebucket.mdx +++ /dev/null @@ -1,126 +0,0 @@ ---- -id: storage-updatebucket -title: 'updateBucket()' -slug: storage-updatebucket -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Updates a new Storage bucket - - - - - -```js -const { data, error } = await supabase.storage.updateBucket('avatars', { - public: false, -}) -``` - - - - - -## Parameters - -
    - -
  • -

    - - id - - - required - - - string - -

    -
    - -A unique identifier for the bucket you are updating. - -
    - -
  • - -
  • -

    - - options - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - public - - - required - - - boolean - -

      -
      - -No description provided. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Policy permissions required: - - `buckets` permissions: `update` - - `objects` permissions: none - -## Examples - -### Update bucket - - - - - -```js -const { data, error } = await supabase.storage.updateBucket('avatars', { - public: false, -}) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/subscribe.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/subscribe.mdx deleted file mode 100644 index fea94883d1d..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/subscribe.mdx +++ /dev/null @@ -1,253 +0,0 @@ ---- -id: subscribe -title: 'on().subscribe()' -slug: subscribe -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Subscribe to realtime changes in your database. - - - - - -```js -const mySubscription = supabase - .from('*') - .on('*', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - - - - - -## Parameters - -
    - -
  • -

    - - event - - - required - - - SupabaseEventTypes - -

    -
    - -The database event which you would like to receive updates for, or you can use the special wildcard `*` to listen to all changes. - -
    - -
  • - -
  • -

    - - callback - - - required - - - object - -

    -
    - -A callback that will handle the payload that is sent whenever your database changes. - -
    - -
  • - -
- -## Notes - -- Realtime is disabled by default for new Projects for better database performance and security. You can turn it on by [managing replication](/docs/guides/api#managing-realtime). -- If you want to receive the "previous" data for updates and deletes, you will need to set `REPLICA IDENTITY` to `FULL`, like this: `ALTER TABLE your_table REPLICA IDENTITY FULL;` - -## Examples - -### Listen to all database changes - - - - - -```js -const mySubscription = supabase - .from('*') - .on('*', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - - - - - -### Listening to a specific table - - - - - -```js -const mySubscription = supabase - .from('countries') - .on('*', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - - - - - -### Listening to inserts - - - - - -```js -const mySubscription = supabase - .from('countries') - .on('INSERT', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - - - - - -### Listening to updates - -By default, Supabase will send only the updated record. If you want to receive the previous values as well you can -enable full replication for the table you are listening too: - -```sql -alter table "your_table" replica identity full; -``` - - - - - -```js -const mySubscription = supabase - .from('countries') - .on('UPDATE', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - - - - - -### Listening to deletes - -By default, Supabase does not send deleted records. If you want to receive the deleted record you can -enable full replication for the table you are listening too: - -```sql -alter table "your_table" replica identity full; -``` - - - - - -```js -const mySubscription = supabase - .from('countries') - .on('DELETE', (payload) => { - console.log('Change received!', payload) - }) - .subscribe() -``` - - - - - -### Listening to multiple events - -You can chain listeners if you want to listen to multiple events for each table. - - - - - -```js -const mySubscription = supabase - .from('countries') - .on('INSERT', handleRecordInserted) - .on('DELETE', handleRecordDeleted) - .subscribe() -``` - - - - - -### Listening to row level changes - -You can listen to individual rows using the format `{table}:{col}=eq.{val}` - where `{col}` is the column name, and `{val}` is the value which you want to match. - - - - - -```js -const mySubscription = supabase - .from('countries:id=eq.200') - .on('UPDATE', handleRecordUpdated) - .subscribe() -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/textsearch.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/textsearch.mdx deleted file mode 100644 index 71f0db4b27d..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/textsearch.mdx +++ /dev/null @@ -1,209 +0,0 @@ ---- -id: textsearch -title: '.textSearch()' -slug: textsearch -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Finds all rows whose tsvector value on the stated `column` matches -to_tsquery(`query`). - -## Parameters - -
    - -
  • -

    - - column - - - required - - - object - -

    -
    - -The column to filter on. - -
    - -
  • - -
  • -

    - - query - - - required - - - string - -

    -
    - -The Postgres tsquery string to filter with. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - config - - - required - - - undefined | string - -

      -
      - -The text search configuration to use. - -
      - -
    • - -
    - -
  • - -
- -## Examples - -### Text search - - - - - -```js -const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - config: 'english', - }) -``` - - - - - -### Basic normalization - -Uses PostgreSQL's `plainto_tsquery` function. - - - - - -```js -const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - type: 'plain', - config: 'english', - }) -``` - - - - - -### Full normalization - -Uses PostgreSQL's `phraseto_tsquery` function. - - - - - -```js -const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - type: 'phrase', - config: 'english', - }) -``` - - - - - -### Websearch - -Uses PostgreSQL's `websearch_to_tsquery` function. -This function will never raise syntax errors, which makes it possible to use raw user-supplied input for search, and can be used -with advanced operators. - -- `unquoted text`: text not inside quote marks will be converted to terms separated by & operators, as if processed by plainto_tsquery. -- `"quoted text"`: text inside quote marks will be converted to terms separated by <-> operators, as if processed by phraseto_tsquery. -- `OR`: the word “or” will be converted to the | operator. -- `-`: a dash will be converted to the ! operator. - - - - - -```js -const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat or cat'`, { - type: 'websearch', - config: 'english', - }) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/update.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/update.mdx deleted file mode 100644 index 7eddcaf76e7..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/update.mdx +++ /dev/null @@ -1,178 +0,0 @@ ---- -id: update -title: 'Modify data: update()' -slug: update -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs an UPDATE on the table. - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Middle Earth' }) - .match({ name: 'Auckland' }) -``` - - - - - -## Parameters - -
    - -
  • -

    - - values - - - required - - - Partial - -

    -
    - -The values to update. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - returning - - - required - - - minimal | representation - -

      -
      - -By default the updated record is returned. Set this to 'minimal' if you don't need this value. - -
      - -
    • - -
    • -

      - - count - - - required - - - null | exact | planned | estimated - -

      -
      - -Count algorithm to use to count rows in a table. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- `update()` should always be combined with [Filters](/docs/reference/javascript/using-filters) to target the item(s) you wish to update. - -## Examples - -### Updating your data - - - - - -```js -const { data, error } = await supabase - .from('cities') - .update({ name: 'Middle Earth' }) - .match({ name: 'Auckland' }) -``` - - - - - -### Updating JSON data - -Postgres offers a -[number of operators](https://www.postgresql.org/docs/current/functions-json.html) -for working with JSON data. Right now it is only possible to update an entire JSON document, -but we are [working on ideas](https://github.com/PostgREST/postgrest/issues/465) for updating individual keys. - - - - - -```js -const { data, error } = await supabase - .from('users') - .update( - ` - address: { - street: 'Melrose Place', - postcode: 90210 - } - ` - ) - .eq('address->postcode', 90210) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/upsert.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/upsert.mdx deleted file mode 100644 index 49e535357a1..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/upsert.mdx +++ /dev/null @@ -1,254 +0,0 @@ ---- -id: upsert -title: 'Upsert data: upsert()' -slug: upsert -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Performs an UPSERT into the table. - - - - - -```js -const { data, error } = await supabase - .from('messages') - .upsert({ id: 3, message: 'foo', username: 'supabot' }) -``` - - - - - -## Parameters - -
    - -
  • -

    - - values - - - required - - - Partial | array - -

    -
    - -The values to insert. - -
    - -
  • - -
  • -

    - - __namedParameters - - - required - - - object - -

    -
    - -No description provided. - -
    - -
      -
      Properties
      - -
    • -

      - - returning - - - required - - - minimal | representation - -

      -
      - -By default the new record is returned. Set this to 'minimal' if you don't need this value. - -
      - -
    • - -
    • -

      - - onConflict - - - required - - - undefined | string - -

      -
      - -By specifying the `on_conflict` query parameter, you can make UPSERT work on a column(s) that has a UNIQUE constraint. - -
      - -
    • - -
    • -

      - - ignoreDuplicates - - - required - - - boolean - -

      -
      - -Specifies if duplicate rows should be ignored and not inserted. - -
      - -
    • - -
    • -

      - - count - - - required - - - null | exact | planned | estimated - -

      -
      - -Count algorithm to use to count rows in a table. - -
      - -
    • - -
    - -
  • - -
- -## Notes - -- Primary keys should be included in the data payload in order for an update to work correctly. -- Primary keys must be natural, not surrogate. There are however, [workarounds](https://github.com/PostgREST/postgrest/issues/1118) for surrogate primary keys. - -## Examples - -### Upsert your data - - - - - -```js -const { data, error } = await supabase - .from('messages') - .upsert({ id: 3, message: 'foo', username: 'supabot' }) -``` - - - - - -### Bulk Upsert your data - - - - - -```js -const { data, error } = await supabase.from('messages').upsert([ - { id: 3, message: 'foo', username: 'supabot' }, - { id: 4, message: 'bar', username: 'supabot' }, -]) -``` - - - - - -### Upserting into tables with constraints - -Running the following will cause supabase to upsert data into the `users` table. -If the username 'supabot' already exists, the `onConflict` argument tells supabase to overwrite that row -based on the column passed into `onConflict`. - - - - - -```js -const { data, error } = await supabase - .from('users') - .upsert({ username: 'supabot' }, { onConflict: 'username' }) -``` - - - - - -### Return the exact number of rows - - - - - -```js -const { data, error, count } = await supabase.from('users').upsert( - { - id: 3, - message: 'foo', - username: 'supabot', - }, - { - count: 'exact', - } -) -``` - - - - diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/using-filters.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/using-filters.mdx deleted file mode 100644 index b52a0f5ae45..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/using-filters.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: using-filters -title: 'Using Filters' -slug: using-filters -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Filters can be used on `select()`, `update()`, and `delete()` queries. - -If a Postgres function returns a table response, you can also apply filters. - -### Applying Filters - -You must apply your filters to the end of your query. For example: - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The Shire') // Correct - -const { data, error } = await supabase - .from('cities') - .eq('name', 'The Shire') // Incorrect - .select('name, country_id') -``` - -### Chaining - -Filters can be chained together to produce advanced queries. For example: - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gte('population', 1000) - .lt('population', 10000) -``` - -### Conditional Chaining - -Filters can be built up one step at a time and then executed. For example: - -```js -const filterByName = null -const filterPopLow = 1000 -const filterPopHigh = 10000 - -let query = supabase.from('cities').select('name, country_id') - -if (filterByName) { - query = query.eq('name', filterByName) -} -if (filterPopLow) { - query = query.gte('population', filterPopLow) -} -if (filterPopHigh) { - query = query.lt('population', filterPopHigh) -} - -const { data, error } = await query -``` diff --git a/apps/reference/_supabase_js_versioned_docs/version-v1/using-modifiers.mdx b/apps/reference/_supabase_js_versioned_docs/version-v1/using-modifiers.mdx deleted file mode 100644 index 4848aec4cea..00000000000 --- a/apps/reference/_supabase_js_versioned_docs/version-v1/using-modifiers.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -id: using-modifiers -title: 'Using Modifiers' -slug: using-modifiers -custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supabase.yml ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Modifiers can be used on `select()` queries. - -If a Postgres function returns a table response, you can also apply modifiers to the `rpc()` function. diff --git a/apps/reference/_supabase_js_versioned_sidebars/version-v1-sidebars.json b/apps/reference/_supabase_js_versioned_sidebars/version-v1-sidebars.json index 42b51fd7950..8687644761e 100644 --- a/apps/reference/_supabase_js_versioned_sidebars/version-v1-sidebars.json +++ b/apps/reference/_supabase_js_versioned_sidebars/version-v1-sidebars.json @@ -10,16 +10,16 @@ "type": "category", "label": "Auth", "items": [ - "auth-signup", - "auth-signin", - "auth-signout", - "auth-session", - "auth-user", - "auth-update", - "auth-setauth", - "auth-onauthstatechange", - "auth-api-getuser", - "auth-api-resetpasswordforemail" + "generated/auth-signup", + "generated/auth-signin", + "generated/auth-signout", + "generated/auth-session", + "generated/auth-user", + "generated/auth-update", + "generated/auth-setauth", + "generated/auth-onauthstatechange", + "generated/auth-api-getuser", + "generated/auth-api-resetpasswordforemail" ], "collapsed": true }, @@ -27,36 +27,43 @@ "type": "category", "label": "Auth (Server Only)", "items": [ - "auth-api-listusers", - "auth-api-createuser", - "auth-api-deleteuser", - "auth-api-generatelink", - "auth-api-inviteuserbyemail", - "auth-api-sendmobileotp", - "auth-api-updateuserbyid" + "generated/auth-api-listusers", + "generated/auth-api-createuser", + "generated/auth-api-deleteuser", + "generated/auth-api-generatelink", + "generated/auth-api-inviteuserbyemail", + "generated/auth-api-sendmobileotp", + "generated/auth-api-updateuserbyid" ], "collapsed": true }, { "type": "category", "label": "Functions", - "items": ["invoke"], + "items": ["generated/invoke"], "collapsed": true }, { "type": "category", "label": "Database", - "items": ["select", "insert", "update", "upsert", "delete", "rpc"], + "items": [ + "generated/select", + "generated/insert", + "generated/update", + "generated/upsert", + "generated/delete", + "generated/rpc" + ], "collapsed": true }, { "type": "category", "label": "Realtime", "items": [ - "subscribe", - "removesubscription", - "removeallsubscriptions", - "getsubscriptions" + "generated/subscribe", + "generated/removesubscription", + "generated/removeallsubscriptions", + "generated/getsubscriptions" ], "collapsed": true }, @@ -64,22 +71,22 @@ "type": "category", "label": "Storage", "items": [ - "storage-createbucket", - "storage-getbucket", - "storage-listbuckets", - "storage-updatebucket", - "storage-deletebucket", - "storage-emptybucket", - "storage-from-upload", - "storage-from-download", - "storage-from-list", - "storage-from-update", - "storage-from-move", - "storage-from-copy", - "storage-from-remove", - "storage-from-createsignedurl", - "storage-from-createsignedurls", - "storage-from-getpublicurl" + "generated/storage-createbucket", + "generated/storage-getbucket", + "generated/storage-listbuckets", + "generated/storage-updatebucket", + "generated/storage-deletebucket", + "generated/storage-emptybucket", + "generated/storage-from-upload", + "generated/storage-from-download", + "generated/storage-from-list", + "generated/storage-from-update", + "generated/storage-from-move", + "generated/storage-from-copy", + "generated/storage-from-remove", + "generated/storage-from-createsignedurl", + "generated/storage-from-createsignedurls", + "generated/storage-from-getpublicurl" ], "collapsed": true }, @@ -87,12 +94,12 @@ "type": "category", "label": "Modifiers", "items": [ - "using-modifiers", - "limit", - "order", - "range", - "single", - "maybesingle" + "generated/using-modifiers", + "generated/limit", + "generated/order", + "generated/range", + "generated/single", + "generated/maybesingle" ], "collapsed": true }, @@ -100,30 +107,30 @@ "type": "category", "label": "Filters", "items": [ - "using-filters", - "or", - "not", - "match", - "eq", - "neq", - "gt", - "gte", - "lt", - "lte", - "like", - "ilike", - "is", - "in", - "contains", - "containedby", - "rangelt", - "rangegt", - "rangegte", - "rangelte", - "rangeadjacent", - "overlaps", - "textsearch", - "filter" + "generated/using-filters", + "generated/or", + "generated/not", + "generated/match", + "generated/eq", + "generated/neq", + "generated/gt", + "generated/gte", + "generated/lt", + "generated/lte", + "generated/like", + "generated/ilike", + "generated/is", + "generated/in", + "generated/contains", + "generated/containedby", + "generated/rangelt", + "generated/rangegt", + "generated/rangegte", + "generated/rangelte", + "generated/rangeadjacent", + "generated/overlaps", + "generated/textsearch", + "generated/filter" ], "collapsed": true } diff --git a/apps/reference/docs/about.mdx b/apps/reference/docs/about.mdx index ad07450e6d4..f254130c552 100755 --- a/apps/reference/docs/about.mdx +++ b/apps/reference/docs/about.mdx @@ -4,6 +4,7 @@ title: Introduction description: 'What is Supabase?' slug: / hide_table_of_contents: true +pagination_next: null --- import ThemedImage from '@theme/ThemedImage' @@ -32,13 +33,13 @@ const frameworks = [ { name: 'Expo', logo: ExpoLogo, - href: 'https://github.com/supabase/supabase/tree/master/examples/todo-list/expo-todo-list', + href: 'https://github.com/supabase/examples/tree/main/supabase-js-v1/todo-list/expo-todo-list', }, { name: 'Flutter', logo: DartLogo, href: '/guides/with-flutter' }, { name: 'JavaScript', logo: JavascriptLogo, - href: 'https://github.com/supabase/supabase/tree/master/examples/auth/javascript-auth', + href: 'https://github.com/supabase/examples/tree/main/supabase-js-v1/auth/javascript-auth', }, { name: 'Next.js', @@ -69,51 +70,6 @@ You can use it completely, or just the features you need.
- {/* Database */} -
- -
-

Database

-

A dedicated, scalable Postgres database.

-
-
-
- {/* API */} -
- -
-

Auto-generated APIs

-

Instantly generate APIs for your database.

-
-
-
- {/* Functions */} -
- -
-

Edge Functions

-

Server-side functions, distributed globally.

-
-
-
{/* Auth */}
-
-

Auth

-

User management with Row Level Security.

-
-
+ />
- {/* Storage */} + {/* Auto-generated APIs */} +
+ +
+ {/* Database */} +
+ +
+ {/* Edge Functions */} +
+ +
+ {/* Realtime */} +
+ +
+ {/* File Storage */}
-
-

File Storage

-

Store, organize, and serve large files.

-
-
+ />
{/* Observability */}
@@ -152,14 +138,8 @@ You can use it completely, or just the features you need. title={'Observability'} description={'Monitor and debug your infrastucture.'} style={{ height: '100%' }} - > -
-

Observability

-

Monitor and debug your infrastucture.

-
- + />
- {/* */}
@@ -178,11 +158,16 @@ Supabase is just Postgres, which makes it compatible with a large number of tool ) : ( `/feed subscribe https://status.supabase.com/history.atom` - -Make sure to review our [SLA](/docs/company/sla) for details on our commitment to Platform Stability. - ## Next steps This checklist is always growing so be sure to check back frequently, and also feel free to suggest additions and amendments by making a PR on [GitHub](https://github.com/supabase/supabase). diff --git a/apps/reference/docs/gotrue/server/about.md b/apps/reference/docs/gotrue/server/about.md index e84698de591..e2072b9a027 100644 --- a/apps/reference/docs/gotrue/server/about.md +++ b/apps/reference/docs/gotrue/server/about.md @@ -673,6 +673,23 @@ Returns: } ``` +### **POST /admin/generate_link** + +Returns the corresponding email action link based on the type specified. The response also contains the query params of the action link as separate JSON fields for convenience (along with the email OTP from which the corresponding token is generated). + +Returns: + +```js +{ + "action_link": "http://localhost:9999/verify?token=TOKEN&type=TYPE&redirect_to=REDIRECT_URL", + "email_otp": "EMAIL_OTP", + "hashed_token": "TOKEN", + "verification_type": "TYPE", + "redirect_to": "REDIRECT_URL", + ... +} +``` + ### **DELETE /admin/users/{user_id}** Deletes a user. Requires your `service_role` API key and thus should only be diff --git a/apps/reference/docs/guides/api.mdx b/apps/reference/docs/guides/api.mdx index c5f901c075f..b4e3e48bd09 100644 --- a/apps/reference/docs/guides/api.mdx +++ b/apps/reference/docs/guides/api.mdx @@ -15,7 +15,7 @@ Supabase generates three types of API directly from your database schema. - REST - interact with your database through a restful interface. - Realtime - listen to database changes. -- GraphQL - [in beta](https://supabase.com/blog/2021/12/03/pg-graphql). +- GraphQL - [in beta](https://supabase.com/blog/pg-graphql). The APIs are: @@ -53,7 +53,7 @@ GraphQL is in Beta, and may have breaking changes. It is only available on self- ::: -GraphQL in Supabase works through [pg_graphql](https://supabase.com/blog/2021/12/03/pg-graphql), an open source PostgreSQL extension for GraphQL. +GraphQL in Supabase works through [pg_graphql](https://supabase.com/blog/pg-graphql), an open source PostgreSQL extension for GraphQL. ### Realtime API {#realtime-api-overview} @@ -248,7 +248,7 @@ import { createClient, useQuery } from 'urql' // Prepare API key and Authorization header const headers = { apikey: , - authorization: `Bearer: ${ + authorization: `Bearer ${ } // Create GraphQL client @@ -392,9 +392,9 @@ alter table todos enable row level security; ### The `service_role` key -Never expose the `service_role` key in a browser or anywhere where a user can see it. This Key can is designed to bypass Row Level Security - so it should only be used on a private server. +Never expose the `service_role` key in a browser or anywhere where a user can see it. This Key is designed to bypass Row Level Security - so it should only be used on a private server. -We have [partnered with GitHub](https://supabase.com/blog/2022/03/28/community-day#supabase-is-now-a-github-secret-scanning-partner) to scan for Supabase `service_role` keys pushed to public repositories. +We have [partnered with GitHub](https://github.blog/changelog/2022-03-28-supabase-is-now-a-github-secret-scanning-partner/) to scan for Supabase `service_role` keys pushed to public repositories. If they detect any keys with service_role privileges being pushed to GitHub, they will forward the API key to us, so that we can automatically revoke the detected secrets and notify you, protecting your data against malicious actors. ### Safeguards towards accidental deletes and updates diff --git a/apps/reference/docs/guides/api/generating-types.mdx b/apps/reference/docs/guides/api/generating-types.mdx index 21ce6c15340..7c1ccdb41f8 100644 --- a/apps/reference/docs/guides/api/generating-types.mdx +++ b/apps/reference/docs/guides/api/generating-types.mdx @@ -26,7 +26,7 @@ Important notes: - Since the generator uses JSON API, there is no way to determine if a column is an Array. It will generate array types as `string`, even though Supabase handles this automatically and returns arrays. You can fix this manually in the files by changing the type, e.g. `names: string` -> `names: string[]` -- The types won't automatically stay in sync with your database, so make sure to regenerate your types after your make changes to your database. +- The types won't automatically stay in sync with your database, so make sure to regenerate your types after you make changes to your database. After you have generated your types, you can use them in your TypeScript projects: diff --git a/apps/reference/docs/guides/auth.mdx b/apps/reference/docs/guides/auth.mdx index 48a05b1db40..f292dccfa2b 100644 --- a/apps/reference/docs/guides/auth.mdx +++ b/apps/reference/docs/guides/auth.mdx @@ -9,15 +9,8 @@ import Link from '@docusaurus/Link' import Tabs from '@theme/Tabs' import TabItem from '@theme/TabItem' import providers from '@site/src/data/authProviders' - -
- -
+import ButtonCard from '@site/src/components/ButtonCard' +import useBaseUrl from '@docusaurus/useBaseUrl' ## Overview @@ -29,6 +22,17 @@ There are two parts to every Auth system: Supabase Auth is designed to work either as a standalone product, or deeply integrated with the other Supabase products. Postgres is at the heart of everything we do, and the Auth system follows this principle. We leverage Postgres' built-in Auth functionality wherever possible. +Here's a quick, 2 minute tour of the Auth features built-in to Supabase: + +
+ +
+ ## Authentication You can authenticate your users in several ways: @@ -40,14 +44,19 @@ You can authenticate your users in several ways: ### Providers -We provide a suite of Providers and login methods. +We provide a suite of Providers and login methods, as well as [Auth helpers](/docs/guides/auth/auth-helpers/).
{providers.map((x) => (
- -
+ +
- +
))}
-### Simple interface +### Configure third-party providers -You can enable third-providers with the click of a button by navigating to Authentication > Settings > External OAuth Providers and inputting your `Client ID` and `Secret` for each. +You can enable third-party providers with the click of a button by navigating to Authentication > Settings > Auth Providers and inputting your `Client ID` and `Secret` for each. ![OAuth Logins.](/img/supabase-oauth-logins.png) @@ -168,7 +177,14 @@ Supabase provides a special function in Postgres, `auth.uid()`, which extracts t ## User Management -Supabase makes it simple to manage your users. +Supabase provides multiple endpoints to authenticate and manage your users: +- [Sign up](/docs/reference/javascript/auth-signup) +- [Sign in with password](/docs/reference/javascript/auth-signinwithpassword) +- [Sign in with passwordless / one-time password (OTP)](/docs/reference/javascript/auth-signinwithotp) +- [Sign in with OAuth](/docs/reference/javascript/auth-signinwithoauth) +- [Sign out](/docs/reference/javascript/auth-signout) + +When users sign up, Supabase assigns them a unique ID. You can reference this ID anywhere in your database. For example, you might create a `profiles` table referencing `id` in the `auth.users` table using a `user_id` field. - -When users sign up, Supabase assigns them a unique ID. You can reference this ID anywhere in your database. For example, you might create a `profiles` table referencing `id` in the `auth.users` table using a `user_id` field. - -Supabase provides the routes to [sign up](/docs/reference/javascript/auth-signup), [log in](/docs/reference/javascript/auth-signin), -[log out](/docs/reference/javascript/auth-signout), and manage users in your apps and websites. - -## Next Steps - -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/apps/reference/docs/guides/auth/auth-apple.mdx b/apps/reference/docs/guides/auth/auth-apple.mdx index 653ebcd527b..524212403b3 100644 --- a/apps/reference/docs/guides/auth/auth-apple.mdx +++ b/apps/reference/docs/guides/auth/auth-apple.mdx @@ -20,16 +20,14 @@ Apple OAuth consists of six broad steps: - Add your `client id` and `client secret` keys to your [Supabase Project](https://app.supabase.com). - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js). -## Steps - -### Access your Apple Developer account +## Access your Apple Developer account - Go to [developer.apple.com](https://developer.apple.com). - Click on `Account` at the top right to log in. ![Apple Developer Portal.](/img/guides/auth-apple/apple-developer-portal.png) -### Obtain an App ID +## Obtain an App ID - Go to `Certificates, Identifiers & Profiles`. - Click on `Identifiers` at the left. @@ -43,7 +41,7 @@ Apple OAuth consists of six broad steps: - Click `Continue` at the top right. - Click `Register` at the top right. -### Obtain a Services ID +## Obtain a Services ID This will serve as the `client_id` when you make API calls to authenticate the user. @@ -58,7 +56,7 @@ This will serve as the `client_id` when you make API calls to authenticate the u - Click `Continue` at the top right. - Click `Register` at the top right. -### Find your callback URL +## Find your callback URL The next step requires a callback URL, which looks like this: @@ -79,7 +77,7 @@ The next step requires a callback URL, which looks like this: /> -### Configure your Services ID +## Configure your Services ID - Under `Identifiers`, click on your newly-created Services ID. - Check the box next to `Sign In With Apple` to enable it. @@ -91,7 +89,7 @@ The next step requires a callback URL, which looks like this: - Click `Continue` at the top right. - Click `Save` at the top right. -### Download your secret key +## Download your secret key Now you'll need to download a `secret key` file from Apple that will be used to generate your `client_secret`. @@ -109,7 +107,7 @@ Now you'll need to download a `secret key` file from Apple that will be used to - Save the downloaded file -- this contains your "secret key" that will be used to generate your `client_secret`. - Click `Done` at the top right. -### Generate a `client_secret` +## Generate a `client_secret` The `secret key` you downloaded is used to create the `client_secret` string you'll need to authenticate your users. @@ -173,7 +171,7 @@ puts token 2. From the command line, run: `ruby secret_gen.rb > client_secret.txt`. 3. Your `client_secret` is now stored in this `client_secret.txt` file. -### Add your OAuth credentials to Supabase +## Add your OAuth credentials to Supabase - Go to your [Supabase Dashboard](https://app.supabase.com). - In the left sidebar, click the `Authentication` icon (near the top). @@ -183,27 +181,19 @@ puts token - Enter your `client_id` and `client_secret` saved in the previous steps. - Click `Save`. -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented in the [Supabase OAuth Reference](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'apple', -}) -``` - -Add a function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `apple` as the `provider`: ```js async function signInWithApple() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'apple', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-azure.mdx b/apps/reference/docs/guides/auth/auth-azure.mdx index 4123c627219..93d1a6c11c6 100644 --- a/apps/reference/docs/guides/auth/auth-azure.mdx +++ b/apps/reference/docs/guides/auth/auth-azure.mdx @@ -16,16 +16,14 @@ Azure OAuth consists of four broad steps: - Create an application under Azure Active Directory. - Obtain a `Application (client) ID` with “Sign In with Azure” capabilities. This will be used as the `client id`. - Create a `Secret ID` with “Sign In with Azure” capabilities. The value of the secret will be used as the `client secret`. -- Whitelist the callback url of your application. +- Add the callback url of your application to the allowlist. -## Steps - -### Access your Azure Developer account +## Access your Azure Developer account - Go to [portal.azure.com](https://portal.azure.com/#home). - Login and select "Azure Active Directory" under the list of Azure Services. -### Register an application +## Register an application - Under Azure Active Directory, select "App registrations" in the side panel. - Select "New registration". @@ -36,7 +34,7 @@ Azure OAuth consists of four broad steps: ![Register an application.](/img/guides/auth-azure/azure-register-app.png) -### Obtain a Client ID +## Obtain a Client ID This will serve as the `client_id` when you make API calls to authenticate the user. @@ -44,7 +42,7 @@ This will serve as the `client_id` when you make API calls to authenticate the u ![Obtain the client id](/img/guides/auth-azure/azure-client-id.png) -### Obtain a Secret ID +## Obtain a Secret ID This will serve as the `client_secret` when you make API calls to authenticate the user. @@ -65,21 +63,13 @@ This will allow your users to use your custom Azure login page when logging in. ![Obtain the tenant url](/img/guides/auth-azure/azure-tenant-url.png) -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented in the [Supabase OAuth Reference](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'azure', -}) -``` - -Add a function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `azure` as the `provider`: ```js async function signInWithAzure() { - const { user, session, error } = await supabase.auth.signIn( + const { data, error } = await supabase.auth.signInWithOAuth( { provider: 'azure', }, @@ -90,7 +80,7 @@ async function signInWithAzure() { } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { @@ -100,5 +90,5 @@ async function signout() { ## Resources -- [Azure Developer Account](https://portal.azure.com). -- [GitHub Discussion](https://github.com/supabase/gotrue/pull/54#issuecomment-757043573). +- [Azure Developer Account](https://portal.azure.com) +- [GitHub Discussion](https://github.com/supabase/gotrue/pull/54#issuecomment-757043573) diff --git a/apps/reference/docs/guides/auth/auth-bitbucket.mdx b/apps/reference/docs/guides/auth/auth-bitbucket.mdx index 6b1f4e96a9a..d7e279cd3c3 100644 --- a/apps/reference/docs/guides/auth/auth-bitbucket.mdx +++ b/apps/reference/docs/guides/auth/auth-bitbucket.mdx @@ -17,16 +17,14 @@ Setting up Bitbucket logins for your application consists of 3 parts: - Add your Bitbucket OAuth Consumer keys to your [Supabase Project](https://app.supabase.com) - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) -## Steps - -### Access your Bitbucket account +## Access your Bitbucket account - Go to [bitbucket.org](https://bitbucket.org/). - Click on `Login` at the top right to log in. ![Bitbucket Developer Portal.](/img/guides/auth-bitbucket/bitbucket-portal.png) -### Find your callback URL +## Find your callback URL The next step requires a callback URL, which looks like this: @@ -47,7 +45,7 @@ The next step requires a callback URL, which looks like this: /> -### Create a Bitbucket OAuth app +## Create a Bitbucket OAuth app - Click on your profile icon at the bottom left - Click on `All Workspaces` @@ -62,7 +60,7 @@ The next step requires a callback URL, which looks like this: - Click on your app name (the name of your new OAuth Consumer) - Copy your `Key` (`client_key`) and `Secret` (`client_secret`) codes -### Add your Bitbucket credentials into your Supabase Project +## Add your Bitbucket credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com) - In the left sidebar, click the `Authentication` icon (near the top) @@ -72,27 +70,19 @@ The next step requires a callback URL, which looks like this: - Enter your `client_id` and `client_secret` saved in the previous step - Click `Save` -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'bitbucket', -}) -``` - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `bitbucket` as the `provider`: ```js async function signInWithBitbucket() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'bitbucket', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-captcha.mdx b/apps/reference/docs/guides/auth/auth-captcha.mdx new file mode 100644 index 00000000000..65837976a17 --- /dev/null +++ b/apps/reference/docs/guides/auth/auth-captcha.mdx @@ -0,0 +1,113 @@ +--- +id: auth-captcha +title: 'Enable Captcha Protection' +description: Add Captcha Protection to your Supabase project +--- + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' + +# hCaptcha guide + +Supabase provides you with the option of adding captcha to your sign-in, sign-up, and password reset forms. This keeps your website safe from bots and malicious scripts. Supabase authentication has support for [hCaptcha](https://www.hcaptcha.com/). + +### Sign up for hCaptcha + +Go to the [hCaptcha](https://www.hcaptcha.com/) website and sign up for an account. On the welcome page, copy the **Sitekey** and **Secret key**. + +If you have already signed up and didn't copy this information from the welcome page, you can get the **Secret key** from the settings page. + +![site_secret_settings.png](/img/guides/auth-captcha/site_secret_settings.png) + +The **Sitekey** can be found in the **Settings** of the active site you created. + +![sites_dashboard.png](/img/guides/auth-captcha/sites_dashboard.png) + +In the Settings page, look for the **Sitekey** section and copy the key. + +![sitekey_settings.png](/img/guides/auth-captcha/sitekey_settings.png) + +### Enable hCaptcha protection for your Supabase project + +Navigate to the **[Authentication](https://app.supabase.com/project/_/auth/settings)** page in the Supabase Dashboard and find the **Enable hCaptcha protection** toggle under the **Security and Protection** section. + +![supabase_auth_general_settings.png](/img/guides/auth-captcha/supabase_auth_general_settings.png) + +Enter your hCaptcha **Secret key** and click **Save**. + +### Add the hCaptcha frontend component + +The frontend requires some changes to provide the captcha on-screen for the user. This example uses React and the hCaptcha React component, but hCaptcha can be used with any JavaScript framework. + +Install `@hcaptcha/react-hcaptcha` in your project as a dependency. + +```bash +npm install @hcaptcha/react-hcaptcha +``` + +Now import the `HCaptcha` component from the `@hcaptcha/react-hcaptcha` library. + +```javascript +import HCaptcha from '@hcaptcha/react-hcaptcha' +``` + +Let’s create a empty state to store our `captchaToken` + +```jsx +const [captchaToken, setCaptchaToken] = useState() +``` + +Now lets add the HCaptcha component to the JSX section of our code + +```html + +``` + +We will pass it the sitekey we copied from the hCaptcha website as a property along with a onVerify property which takes a callback function. This callback function will have a token as one of its properties. Let's set the token in the state using `setCaptchaToken` + +```jsx + { setCaptchaToken(token) } +/> +``` + +Now lets use the captcha token we receive in our Supabase signUp function. + +```jsx +await supabase.auth.signUp({ + email, + password, + options: { captchaToken }, +}) +``` + +We will also need to reset the captcha challenge after we have made a call to the function above. + +Create a ref to use on our HCaptcha component. + +```jsx +const captcha = useRef() +``` + +Let's add a ref attribute on the `HCaptcha` component and assign the `captcha` constant to it. + +```jsx + { + setCaptchaToken(token) + }} +/> +``` + +Reset the `captcha` after the signUp function is called using the following code: + +```jsx +captcha.current.resetCaptcha() +``` + +In order to test that this works locally we will need to use something like [ngrok](https://ngrok.com/) or add an entry to your hosts file. You can read more about this in the [hCaptcha docs](https://docs.hcaptcha.com/#local-development). + +Run the application and you should now be provided with a captcha challenge. diff --git a/apps/reference/docs/guides/auth/auth-discord.mdx b/apps/reference/docs/guides/auth/auth-discord.mdx index 8591a232d16..11193ec9c8a 100644 --- a/apps/reference/docs/guides/auth/auth-discord.mdx +++ b/apps/reference/docs/guides/auth/auth-discord.mdx @@ -17,9 +17,7 @@ Setting up Discord logins for your application consists of 3 parts: - Add your Discord OAuth Consumer keys to your [Supabase Project](https://app.supabase.com) - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) -## Steps - -### Access your Discord account +## Access your Discord account - Go to [discord.com](https://discord.com/). - Click on `Login` at the top right to log in. @@ -30,7 +28,7 @@ Setting up Discord logins for your application consists of 3 parts: ![Discord Portal.](/img/guides/auth-discord/discord-developer-portal.png) -### Find your callback URL +## Find your callback URL In the next step you require a callback URL, which looks like this: @@ -51,7 +49,7 @@ In the next step you require a callback URL, which looks like this: /> -### Create a Discord Application +## Create a Discord Application - Click on `New Application` at the top right. - Enter the name of your application and click `Create`. @@ -61,7 +59,7 @@ In the next step you require a callback URL, which looks like this: - Click `Save Changes` at the bottom. - Copy your `Client ID` and `Client Secret` under `Client information`. -### Add your Discord credentials into your Supabase Project +## Add your Discord credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com) - In the left sidebar, click the `Authentication` icon (near the top) @@ -71,33 +69,21 @@ In the next step you require a callback URL, which looks like this: - Enter your `client_id` and `client_secret` saved in the previous step - Click `Save` -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'discord', -}) -``` - -:::note - -If you call `signIn()` when already logged in, Discord will prompt the user again for authorization. - -::: - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `discord` as the `provider`: ```js async function signInWithDiscord() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'discord', }) } ``` -To log out: +If your user is already signed in, Discord prompts the user again for authorization. + +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-email.mdx b/apps/reference/docs/guides/auth/auth-email.mdx index d776dc8e6af..27c3f83874c 100644 --- a/apps/reference/docs/guides/auth/auth-email.mdx +++ b/apps/reference/docs/guides/auth/auth-email.mdx @@ -30,12 +30,7 @@ See the [self-hosting docs](/docs/guides/hosting/overview#configuration) for det ::: -### Add login code to your client app - -Add logins using our client libraries: - -- [JavaScript](/docs/reference/javascript/auth-signin#sign-in-with-email) -- [Dart](/docs/reference/dart/auth-signin#sign-in-with-email) +## Add login code to your client app -```js -const { user, error } = await supabase.auth.signIn({ - email: 'example@email.com', - password: 'example-password', -}) -``` - - - - - -```dart -final res = await supabase.auth.signIn( - email: 'example@email.com', - password: 'example-password' -); - -final user = res.data?.user; -final error = res.error; -``` - - - - - -Add this function which you can call from a button, link, or UI element. - - - - +When your user signs in, call [signInWithPassword()](/docs/reference/javascript/auth-signinwithpassword) with their email address and password: ```js async function signInWithEmail() { - const { user, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithPassword({ email: 'example@email.com', password: 'example-password', }) @@ -93,6 +55,8 @@ async function signInWithEmail() { +When your user signs in, call [signIn()](/docs/reference/dart/auth-signin) with their email address and password: + ```dart Future signInWithEmail() async { await supabase.auth.signIn( @@ -106,8 +70,6 @@ Future signInWithEmail() async { -To log out: - +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: + ```js async function signOut() { const { error } = await supabase.auth.signOut() @@ -126,6 +90,8 @@ async function signOut() { +When your user signs out, call [signOut()](/docs/reference/dart/auth-signout) to remove them from the browser session and any objects from localStorage: + ```dart Future signOut() async { await supabase.auth.signOut(); diff --git a/apps/reference/docs/guides/auth/auth-facebook.mdx b/apps/reference/docs/guides/auth/auth-facebook.mdx index c7a76ef1902..3cb6ac68947 100644 --- a/apps/reference/docs/guides/auth/auth-facebook.mdx +++ b/apps/reference/docs/guides/auth/auth-facebook.mdx @@ -17,16 +17,14 @@ Setting up Facebook logins for your application consists of 3 parts: - Add your Facebook keys to your [Supabase Project](https://app.supabase.com) - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) -## Steps - -### Access your Facebook Developer account +## Access your Facebook Developer account - Go to [developers.facebook.com](https://developers.facebook.com). - Click on `Log In` at the top right to log in. ![Facebook Developer Portal.](/img/guides/auth-facebook/facebook-portal.png) -### Create a Facebook App +## Create a Facebook App - Click on `My Apps` at the top right. - Click `Create App` near the top right. @@ -34,7 +32,7 @@ Setting up Facebook logins for your application consists of 3 parts: - Fill in your app information, then click `Create App`. - This should bring you to the screen: `Add Products to Your App`. (Alternatively you can click on `Add Product` in the left sidebar to get to this screen.) -### Find your callback URI +## Find your callback URI The next step requires a callback URI, which looks like this: @@ -55,7 +53,7 @@ The next step requires a callback URI, which looks like this: /> -### Set up FaceBook Login for your Facebook App +## Set up FaceBook Login for your Facebook App From the `Add Products to your App` screen: @@ -72,14 +70,14 @@ From the `App Review -> Permissions and Features` screen: You can read more about access levels [here](https://developers.facebook.com/docs/graph-api/overview/access-levels/) -### Copy your Facebook App ID and Secret +## Copy your Facebook App ID and Secret - Click `Settings / Basic` in the left sidebar - Copy your App ID from the top of the `Basic Settings` page - Under `App Secret` click `Show` then copy your secret - Make sure all required fields are completed on this screen. -### Enter your Facebook App ID and Secret into your Supabase Project +## Enter your Facebook App ID and Secret into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com) - In the left sidebar, click the `Authentication` icon (near the top) @@ -89,27 +87,19 @@ You can read more about access levels [here](https://developers.facebook.com/doc - Enter your `Facebook client ID` and `Facebook secret` saved in the previous step - Click `Save` -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'facebook', -}) -``` - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `facebook` as the `provider`: ```js async function signInWithFacebook() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'facebook', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-github.mdx b/apps/reference/docs/guides/auth/auth-github.mdx index d171495bafb..471d37935b1 100644 --- a/apps/reference/docs/guides/auth/auth-github.mdx +++ b/apps/reference/docs/guides/auth/auth-github.mdx @@ -17,16 +17,14 @@ Setting up GitHub logins for your application consists of 3 parts: - Add your GitHub OAuth keys to your [Supabase Project](https://app.supabase.com) - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) -## Steps - -### Access your GitHub account +## Access your GitHub account - Go to [github.com](https://github.com). - Click on `Sign In` at the top right to log in. ![GitHub Developer Portal.](/img/guides/auth-github/github-portal.png) -### Create a GitHub Oauth App +## Create a GitHub Oauth App Go to the [GitHub Developer Settings](https://github.com/settings/developers) page: @@ -35,7 +33,7 @@ Go to the [GitHub Developer Settings](https://github.com/settings/developers) pa - In the left sidebar, click `Developer settings` (near the bottom) - In the left sidebar, click `OAuth Apps` -### Find your callback URL +## Find your callback URL The next step requires a callback URL, which looks like this: @@ -56,7 +54,7 @@ The next step requires a callback URL, which looks like this: /> -### Register a new OAuth application +## Register a new OAuth application - Click `Register a new application`. If you've created an app before, click `New OAuth App` here. - In `Application name`, type the name of your app. @@ -72,7 +70,7 @@ Copy your new OAuth credentials - Click `Generate a new client secret`. - Copy and save your `Client secret`. -### Enter your GitHub credentials into your Supabase Project +## Enter your GitHub credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com) - In the left sidebar, click the `Authentication` icon (near the top) @@ -82,27 +80,19 @@ Copy your new OAuth credentials - Enter your `GitHub Client ID` and `GitHub Client Secret` saved in the previous step - Click `Save` -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `github` as the `provider`: ```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'github', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithGithub() { - const { user, session, error } = await supabase.auth.signIn({ +async function signInWithGitHub() { + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'github', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-gitlab.mdx b/apps/reference/docs/guides/auth/auth-gitlab.mdx index adf4287ff03..9f5bfd29360 100644 --- a/apps/reference/docs/guides/auth/auth-gitlab.mdx +++ b/apps/reference/docs/guides/auth/auth-gitlab.mdx @@ -17,16 +17,14 @@ Setting up GitLab logins for your application consists of 3 parts: - Add your GitLab Application keys to your [Supabase Project](https://app.supabase.com) - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) -## Steps - -### Access your GitLab account +## Access your GitLab account - Go to [gitlab.com](https://gitlab.com). - Click on `Login` at the top right to log in. ![GitLab Developer Portal.](/img/guides/auth-gitlab/gitlab-portal.png) -### Find your callback URL +## Find your callback URL The next step requires a callback URL, which looks like this: @@ -47,7 +45,7 @@ The next step requires a callback URL, which looks like this: /> -### Create your GitLab Application +## Create your GitLab Application - Click on your `profile logo` (avatar) in the top-right corner. - Select `Edit profile`. @@ -59,7 +57,7 @@ The next step requires a callback URL, which looks like this: - Click `Save Application` at the bottom. - Copy and save your `Application ID` (`client_id`) and `Secret` (`client_secret`) which you'll need later. -### Add your GitLab credentials into your Supabase Project +## Add your GitLab credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com). - In the left sidebar, click the `Authentication` icon (near the top). @@ -69,27 +67,19 @@ The next step requires a callback URL, which looks like this: - Enter your `client_id` and `client_secret` saved in the previous step. - Click `Save`. -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'gitlab', -}) -``` - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `gitlab` as the `provider`: ```js async function signInWithGitLab() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'gitlab', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-google.mdx b/apps/reference/docs/guides/auth/auth-google.mdx index ad0eef20f80..051ce6cab03 100644 --- a/apps/reference/docs/guides/auth/auth-google.mdx +++ b/apps/reference/docs/guides/auth/auth-google.mdx @@ -17,16 +17,14 @@ Setting up Google logins for your application consists of 3 parts: - Add your Google OAuth keys to your [Supabase Project](https://app.supabase.com) - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) -## Steps - -### Access your Google Cloud Platform account +## Access your Google Cloud Platform account - Go to [cloud.google.com](https://cloud.google.com). - Click on `Sign in` at the top right to log in. ![Google Developer Portal.](/img/guides/auth-google/google-portal.png) -### Create a Google Cloud Platform Project +## Create a Google Cloud Platform Project - Click on `Select a Project` at the top left. - (Or, if a project is currently selected, click on the current project name at the top left.) @@ -35,7 +33,7 @@ Setting up Google logins for your application consists of 3 parts: - (This can take a few minutes.) - This should bring you to the dashboard for your new project. -### Create the OAuth Keys for your project +## Create the OAuth Keys for your project From your project's dashboard screen: @@ -44,12 +42,12 @@ From your project's dashboard screen: - On the `OAuth consent screen` page select `External`. - Click `Create`. -### Edit your app information +## Edit your app information - On the `Edit app registration` page fill out your app information. - Click `Save and continue` at the bottom. -### Find your callback URL +## Find your callback URL The next step requires a callback URL, which looks like this: @@ -70,9 +68,9 @@ The next step requires a callback URL, which looks like this: /> -### Create your credentials +## Create your Google credentials -- Click `Credentials` at the left to go to the `Credentials` page +- Click `Credentials` at the left to go to the `Credentials` page on the Google Cloud Platform console. - Click `Create Credentials` near the top then select `OAuth client ID` - On the `Create OAuth client ID` page, select your application type. If you're not sure, choose `Web application`. - Fill in your app name. @@ -87,7 +85,7 @@ Copy your new OAuth credentials - A box will appear called `OAuth client created`. - Copy and save the values under `Your Client ID` and `Your Client Secret`. -### Enter your Google credentials into your Supabase Project +## Enter your Google credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com) - In the left sidebar, click the `Authentication` icon (near the top) @@ -97,27 +95,19 @@ Copy your new OAuth credentials - Enter your `Google Client ID` and `Google Client Secret` saved in the previous step - Click `Save` -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'google', -}) -``` - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `google` as the `provider`: ```js async function signInWithGoogle() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'google', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-helpers/auth-ui.mdx b/apps/reference/docs/guides/auth/auth-helpers/auth-ui.mdx new file mode 100644 index 00000000000..0ee2493a61e --- /dev/null +++ b/apps/reference/docs/guides/auth/auth-helpers/auth-ui.mdx @@ -0,0 +1,297 @@ +--- +id: auth-ui +title: Auth UI +description: A prebuilt, customizable React component for authenticating users. +--- + +Auth UI is a pre-built React component for authenticating users. +It supports custom themes and extensible styles to match your brand and aesthetic. + + + +## Set up Auth UI + +Install the latest version of [supabase-js](/docs/reference/javascript) and the Auth UI package: + +```bash +npm install @supabase/supabase-js @supabase/auth-ui-react +``` + +### Import the Auth component + +Pass `supabaseClient` from `@supabase/supabase-js` as a prop to the component. + +```js title="/src/index.js" +import { createClient } from '@supabase/supabase-js' +import { Auth } from '@supabase/auth-ui-react' + +const supabase = createClient( + '', + '' +) + +const App = () => +``` + +This renders the Auth component without any styling. +We recommend using one of the predefined themes to style the UI. +Import the theme you want to use and pass it to the `appearence.theme` prop. + +```diff js title="/src/index.js" +import { + Auth, + // highlight-next-line + ThemeSupa +} from '@supabase/auth-ui-react' + +const App = () => ( + +) +``` + +## Customization + +There are several ways to customize Auth UI: + +- Use one of the [predefined themes](#predefined-themes) that comes with Auth UI +- Extend a theme by [overriding the variable tokens](#override-themes) in a theme +- [Create your own theme](#create-theme) +- [Use your own CSS classes](#custom-css-classes) +- [Use inline styles](#custom-inline-styles) +- [Use your own labels](#custom-labels) + +### Predefined themes + +Auth UI comes with several themes to customize the appearance. Each predefined theme comes with at least two variations, a `default` variation, and a `dark` variation. You can switch between these themes using the `theme` prop. Import the theme you want to use and pass it to the `appearence.theme` prop. + +```js title="/src/index.js" +import { createClient } from '@supabase/supabase-js' +//highlight-next-line +import { Auth, ThemeSupa } from '@supabase/auth-ui-react' + +const supabase = createClient( + '', + '' +) + +const App = () => ( + +) +``` + +:::info +Currently there is only one predefined theme available, but we plan to add more. +::: + +### Switch theme variations + +Auth UI comes with two theme variations: `default` and `dark`. You can switch between these themes with the `theme` prop. + +```js title="/src/index.js" +import { createClient } from '@supabase/supabase-js' +import { Auth, ThemeSupa } from '@supabase/auth-ui-react' + +const supabase = createClient( + '', + '' +) + +const App = () => ( + +) +``` + +If you don't pass a value to `theme` it uses the `"default"` theme. You can pass `"dark"` to the theme prop to switch to the `dark` theme. If your theme has other variations, use the name of the variation in this prop. + +### Override themes + +Auth UI themes can be overridden using variable tokens. See the [list of variable tokens](https://github.com/supabase-community/auth-ui/blob/main/packages/react/common/theming/Themes.tsx). + +```js title="/src/index.js" +import { createClient } from '@supabase/supabase-js' +import { Auth, ThemeSupa } from '@supabase/auth-ui-react' + +const supabase = createClient( + '', + '' +) + +const App = () => ( + +) +``` + +If you created your own theme, you may not need to override any of the them. + +### Create your own theme {#create-theme} + +You can create your own theme by following the same structure within a `appearance.theme` property. +See the list of [tokens within a theme](https://github.com/supabase-community/auth-ui/blob/main/packages/react/common/theming/Themes.tsx). + +```js title="/src/index.js" +import { createClient } from '@supabase/supabase-js' +import { Auth } from '@supabase/auth-ui-react' + +const supabase = createClient( + '', + '' +) + +const customTheme = { + default: { + colors: { + brand: 'hsl(153 60.0% 53.0%)', + brandAccent: 'hsl(154 54.8% 45.1%)', + brandButtonText: 'white', + // .. + }, + dark: { + colors: { + brandButtonText: 'white', + defaultButtonBackground: '#2e2e2e', + defaultButtonBackgroundHover: '#3e3e3e', + //.. + }, + }, + // You can also add more theme variations with different names. + evenDarker: { + colors: { + brandButtonText: 'white', + defaultButtonBackground: '#1e1e1e', + defaultButtonBackgroundHover: '#2e2e2e', + //.. + }, + }, +} + +const App = () => ( + +) +``` + +You can swich between different variations of your theme with the ["theme" prop](#switch-theme-variations). + +### Custom CSS classes {#custom-css-classes} + +You can use custom CSS classes for the following elements: +`"button"`, `"container"`, `"anchor"`, `"divider"`, `"label"`, `"input"`, `"loader"`, `"message"`. + +```js title="/src/index.js" +import { createClient } from '@supabase/supabase-js' +import { Auth } from '@supabase/auth-ui-react' + +const supabase = createClient( + '', + '' +) + +const App = () => ( + +) +``` + +### Custom inline CSS {#custom-inline-styles} + +You can use custom CSS inline styles for the following elements: +`"button"`, `"container"`, `"anchor"`, `"divider"`, `"label"`, `"input"`, `"loader"`, `"message"`. + +```js title="/src/index.js" +import { createClient } from '@supabase/supabase-js' +import { Auth } from '@supabase/auth-ui-react' + +const supabase = createClient( + '', + '' +) + +const App = () => ( + +) +``` + +### Custom labels {#custom-labels} + +You can use custom labels with `localization.variables`. See the [list of labels](https://github.com/supabase-community/auth-ui/blob/main/packages/react/common/lib/Localization/en.json) that can be overwritten. + +```js title="/src/index.js" +import { createClient } from '@supabase/supabase-js' +import { Auth } from '@supabase/auth-ui-react' + +const supabase = createClient( + '', + '' +) + +const App = () => ( + +) +``` diff --git a/apps/reference/docs/guides/auth/auth-helpers/index.mdx b/apps/reference/docs/guides/auth/auth-helpers/index.mdx new file mode 100644 index 00000000000..bcb52c6a759 --- /dev/null +++ b/apps/reference/docs/guides/auth/auth-helpers/index.mdx @@ -0,0 +1,59 @@ +--- +id: index +title: Auth Helpers +description: A collection of framework-specific Auth utilities for working with Supabase. +sidebar_label: Overview +--- + +import useBaseUrl from '@docusaurus/useBaseUrl' +import ButtonCard from '@site/src/components/ButtonCard' + +A collection of framework-specific Auth utilities for working with Supabase. + +
+
+ {/* Auth UI */} +
+ +
+ {/* Next.js */} +
+ +
+ {/* SvelteKit */} +
+ +
+
+
+ +## Status + +The Auth Helpers are in `beta`. They are usable in their current state, but it's likely that there will be breaking changes. + +## Additional Links + +- [Source code](https://github.com/supabase/auth-helpers) +- [Known bugs and issues](https://github.com/supabase/auth-helpers/issues) diff --git a/apps/reference/docs/guides/auth/auth-helpers/nextjs.mdx b/apps/reference/docs/guides/auth/auth-helpers/nextjs.mdx new file mode 100644 index 00000000000..f17a9fe926e --- /dev/null +++ b/apps/reference/docs/guides/auth/auth-helpers/nextjs.mdx @@ -0,0 +1,394 @@ +--- +id: nextjs +title: Supabase Auth with Next.js +description: Authentication helpers for Next.js API routes, middleware, and SSR. +sidebar_label: 'Next.js' +--- + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' + +This submodule provides convenience helpers for implementing user authentication in Next.js applications. + +## Install the Next.js helper library + + + + + +```sh +npm install @supabase/auth-helpers-nextjs +``` + +This library supports the following tooling versions: + +- Node.js: `^10.13.0 || >=12.0.0` +- Next.js: `>=10` + +Optionally, install **React Auth Helpers** for components and hooks that can be used across all React-based frameworks. +```sh +npm install @supabase/auth-helpers-react +``` + + + + +```sh +yarn add @supabase/auth-helpers-nextjs +``` + +This library supports the following tooling versions: + +- Node.js: `^10.13.0 || >=12.0.0` +- Next.js: `>=10` + +Optionally, install **React Auth Helpers** for components and hooks that can be used across all React-based frameworks. + +```sh +yarn add @supabase/auth-helpers-react +``` + + + + +## Set up environment variables + +Retrieve your project URL and anon key in your project's [API settings](https://app.supabase.com/project/_/settings/api) in the Dashboard to set up the following environment variables. For local development you can set them in a `.env.local` file. See an [example](https://github.com/supabase/auth-helpers/blob/main/examples/nextjs/.env.local.example). + +```bash +NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co +NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key +``` + +## Basic Setup + +Wrap your `pages/_app.js` component with the `SessionContextProvider` component: + +```jsx title="pages/_app.js" +import React from 'react' +import { useRouter } from 'next/router' +import { createBrowserSupabaseClient } from '@supabase/auth-helpers-nextjs' +import { SessionContextProvider } from '@supabase/auth-helpers-react' + +function MyApp({ Component, pageProps }: AppProps) { + const router = useRouter() + const [supabaseClient] = useState(() => createBrowserSupabaseClient()) + + return ( + + + + + + ) +} +``` + +You can now determine if a user is authenticated by checking that the `user` object returned by the `useUser()` hook is defined. + +## Usage with TypeScript + +You can pass types that were [generated with the Supabase CLI](/docs/reference/javascript/typescript-support#generating-types) to the Supabase Client to get enhanced type safety and auto completion: + +```js +// Creating a new supabase client object: +import { Database } from '../db_types'; + +const [supabaseClient] = useState(() => + createBrowserSupabaseClient() + ); +``` + +```js +// Retrieving a supabase client object from the SessionContext: +import { useSupabaseClient } from '@supabase/auth-helpers-react'; +import { Database } from '../db_types'; + +const supabaseClient = useSupabaseClient(); +``` + +## Client-side data fetching with RLS + +For [row level security](https://supabase.com/docs/learn/auth-deep-dive/auth-row-level-security) to work properly when fetching data client-side, you need to make sure to use the `supabaseClient` from the `useSessionContext` hook and only run your query once the user is defined client-side in the `useUser()` hook: + +```js +import { Auth, ThemeSupa } from '@supabase/auth-ui-react' +import { useUser, useSessionContext } from '@supabase/auth-helpers-react' +import { useEffect, useState } from 'react' + +const LoginPage = () => { + const { isLoading, session, error, supabaseClient } = useSessionContext() + const user = useUser() + const [data, setData] = useState() + + useEffect(() => { + async function loadData() { + const { data } = await supabaseClient.from('test').select('*') + setData(data) + } + // Only run query once user is logged in. + if (user) loadData() + }, [user]) + + if (!user) + return ( + <> + {error &&

{error.message}

} + + + ) + + return ( + <> + +

user:

+
{JSON.stringify(user, null, 2)}
+

client-side data fetching with RLS

+
{JSON.stringify(data, null, 2)}
+ + ) +} + +export default LoginPage +``` + +### Server-side rendering (SSR) - withPageAuth + +If you wrap your `getServerSideProps` with `withPageAuth` your props object will be augmented with the user object. + +```js title="pages/profile.js" +import { withPageAuth } from '@supabase/auth-helpers-nextjs' + +export default function Profile({ user }) { + return
Hello {user.name}
+} + +export const getServerSideProps = withPageAuth({ redirectTo: '/login' }) +``` + +If there is no authenticated user, they will be redirect to your home page, unless you specify the `redirectTo` option. + +You can pass in your own `getServerSideProps` method, the props returned from this will be merged with the +user props. You can also access the user session data by calling `getUser` inside of this method, eg: + +```js title="pages/protected-page.js" +import { withPageAuth } from '@supabase/auth-helpers-nextjs' + +export default function ProtectedPage({ user, customProp }) { + return
Protected content
+} + +export const getServerSideProps = withPageAuth({ + redirectTo: '/foo', + async getServerSideProps(ctx, supabase) { + // Access the user object + const { + data: { user }, + } = await supabase.auth.getUser() + return { props: { email: user?.email } } + }, +}) +``` + +### Server-side data fetching with RLS + +Both `withApiAuth` and `withPageAuth` return a supabase client that you can use to run [row level security](https://supabase.com/docs/learn/auth-deep-dive/auth-row-level-security) authenticated queries server-side: + +```js +import { User, withPageAuth } from '@supabase/auth-helpers-nextjs' + +export default function ProtectedPage({ + user, + data, +}: { + user: User, + data: any, +}) { + return ( + <> +
Protected content for {user.email}
+
{JSON.stringify(data, null, 2)}
+
{JSON.stringify(user, null, 2)}
+ + ) +} + +export const getServerSideProps = withPageAuth({ + redirectTo: '/', + async getServerSideProps(ctx, supabaseServerClient) { + // Run queries with RLS on the server + const { data } = await supabaseServerClient(ctx).from('test').select('*') + return { props: { data } } + }, +}) +``` + +### Server-side data fetching to OAuth APIs using `provider_token` + +When using third-party auth providers, sessions are initiated with an additional `provider_token` field which is persisted as an HTTPOnly cookie upon logging in to enabled usage on the server side. The `provider_token` can be used to make API requests to the OAuth provider's API endpoints on behalf of the logged-in user. In the following example, we fetch the user's full profile from the third-party API during SSR using their id and auth token: + +```js +import { User, withPageAuth, getUser } from '@supabase/auth-helpers-nextjs' + +interface Profile { + /* ... */ +} + +export default function ProtectedPage({ + user, + data, +}: { + user: User, + profile: Profile, +}) { + return
Protected content
+} + +export const getServerSideProps = withPageAuth({ + redirectTo: '/', + async getServerSideProps(ctx) { + // Retrieve provider_token from cookies + const provider_token = ctx.req.cookies['sb-provider-token'] + // Get logged in user's third-party id from metadata + const { user } = await getUser(ctx) + const userId = user?.user_metadata.provider_id + const profile: Profile = await ( + await fetch(`https://api.example.com/users/${userId}`, { + method: 'GET', + headers: { + Authorization: `Bearer ${provider_token}`, + }, + }) + ).json() + return { props: { profile } } + }, +}) +``` + +## Protecting API routes + +Wrap an API Route to check that the user has a valid session. If they're not logged in the handler will return a +401 Unauthorized. + +```js title="pages/api/protected-route.js" +import { withApiAuth } from '@supabase/auth-helpers-nextjs' + +export default withApiAuth(async function ProtectedRoute( + req, + res, + supabaseServerClient +) { + // Run queries with RLS on the server + const { data } = await supabaseServerClient.from('test').select('*') + res.json(data) +}) +``` + +If you visit `/api/protected-route` without a valid session cookie, you will get a 401 response. + +## Protecting routes with [Nextjs Middleware](https://nextjs.org/docs/middleware) + +As an alternative to protecting individual pages using `getServerSideProps` with `withPageAuth`, `withMiddlewareAuth` can be used from inside a `middleware` file to protect the entire directory or those that match the config object. In the following example, all requests to `/middleware-protected/*` will check whether a user is signed in, if successful the request will be forwarded to the destination route, otherwise the user will be redirected to `/login` (defaults to: `/`) with a 307 Temporary Redirect response status: + +```ts title="middleware.ts" +import { withMiddlewareAuth } from '@supabase/auth-helpers-nextjs' + +export const middleware = withMiddlewareAuth({ redirectTo: '/login' }) + +export const config = { + matcher: ['/middleware-protected/:path*'], +} +``` + +It is also possible to add finer granularity based on the user logged in. I.e. you can specify a promise to determine if a specific user has permission or not. + +```ts title="middleware.ts" +import { withMiddlewareAuth } from '@supabase/auth-helpers-nextjs' + +export const middleware = withMiddlewareAuth({ + redirectTo: '/login', + authGuard: { + isPermitted: async (user) => user.email?.endsWith('@example.com') ?? false, + redirectTo: '/insufficient-permissions', + }, +}) + +export const config = { + matcher: ['/middleware-protected/:path*'], +} +``` + +## Migrating to version `0.4.X` {#migration} + +- With `supabase-js` v2, the `auth` API routes are no longer required and you can delete the `auth` directory under the `/pages/api/` directory. +- The `/api/auth/logout` API route has been removed—use the `signout` method instead. + ```js + + ``` +- The `supabaseClient` and `supabaseServerClient` have been removed in favor of the `createBrowserSupabaseClient` and `createServerSupabaseClient` methods. This allows you to provide the CLI-generated types to the client: + ```js + // client-side + import type { Database } from 'types_db'; + const [supabaseClient] = useState(() => + createBrowserSupabaseClient() + ); + + // server-side API route + import type { NextApiRequest, NextApiResponse } from 'next' + import type { Database } from 'types_db'; + + export default async (req: NextApiRequest, res: NextApiResponse) => { + const supabaseServerClient = createServerSupabaseClient({ req, res }) + const { data:{ user } } = await supabaseServerClient.auth.getUser() + + res.status(200).json({ name: user?.name ?? '' }) + } + ``` +- The `UserProvider` has been replaced by the `SessionContextProvider`. Make sure to wrap your `pages/_app.js` componenent with the `SessionContextProvider`. Then, throughout your application you can use the `useSessionContext` hook to get the `session` and the `useSupabaseClient` hook to get an authenticated `supabaseClient`. +- The `useUser` hook now returns the `user` object or `null`. +- Usage with TypeScript: You can pass types that were [generated with the Supabase CLI](/docs/reference/javascript/typescript-support#generating-types) to the Supabase Client to get enhanced type safety and auto completion: + ```js + // Creating a new supabase client object: + import { Database } from '../db_types'; + + const [supabaseClient] = useState(() => + createBrowserSupabaseClient() + ); + ``` + + ```js + // Retrieving a supabase client object from the SessionContext: + import { useSupabaseClient } from '@supabase/auth-helpers-react'; + import { Database } from '../db_types'; + + const supabaseClient = useSupabaseClient(); + ``` diff --git a/apps/reference/docs/guides/auth/auth-helpers/sveltekit.mdx b/apps/reference/docs/guides/auth/auth-helpers/sveltekit.mdx new file mode 100644 index 00000000000..5ba0d72572a --- /dev/null +++ b/apps/reference/docs/guides/auth/auth-helpers/sveltekit.mdx @@ -0,0 +1,897 @@ +--- +id: sveltekit +title: Supabase Auth with SvelteKit +description: Convenience helpers for implementing user authentication in SvelteKit. +sidebar_label: SvelteKit +--- + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' + +This submodule provides convenience helpers for implementing user authentication in [SvelteKit](https://kit.svelte.dev/) applications. + +## Installation + +This library supports Node.js `^16.15.0`. + + + + + +```sh +npm install @supabase/auth-helpers-sveltekit +``` + + + + + +```sh +yarn add @supabase/auth-helpers-sveltekit +``` + + + + +## Getting Started + +### Configuration + +Set up the fillowing env vars. For local development you can set them in a `.env` file. See an [example](https://github.com/supabase/auth-helpers/blob/main/examples/sveltekit/.env.example). + +```bash +# Find these in your Supabase project settings > API +PUBLIC_SUPABASE_URL=https://your-project.supabase.co +PUBLIC_SUPABASE_ANON_KEY=your-anon-key +``` + +### Set up the Supabase client + +Start off by creating a `db.ts` file inside of the `src/lib` directory and instantiate the `supabaseClient`. + +```ts title="src/lib/db.ts" +import { createClient } from '@supabase/supabase-js' +import { setupSupabaseHelpers } from '@supabase/auth-helpers-sveltekit' +import { dev } from '$app/environment' +import { env } from '$env/dynamic/public' +// or use the static env +// import { PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY } from '$env/static/public'; + +export const supabaseClient = createClient( + env.PUBLIC_SUPABASE_URL, + env.PUBLIC_SUPABASE_ANON_KEY, + { + persistSession: false, + autoRefreshToken: false, + } +) + +setupSupabaseHelpers({ + supabaseClient, + cookieOptions: { + secure: !dev, + }, +}) +``` + +### Initialize the client + +Edit your `+layout.svelte` file and set up the client-side. + +```html title="src/routes/+layout.svelte" + + + +``` + +### Set up hooks + +The `hooks.server.ts` file is where the heavy lifting of this library happens: + +```ts title="src/hooks.server.ts" +// make sure the supabase instance is initialized on the server +import '$lib/db' +import { dev } from '$app/environment' +import { auth } from '@supabase/auth-helpers-sveltekit/server' + +export const handle = auth() + +// use the sequence helper if you have additional Handle methods +import { sequence } from '@sveltejs/kit/hooks' + +export const handle = sequence(auth(), yourHandler) +``` + +There are three handle methods available: + +- `callback()`: + This creates a handler for `/api/auth/callback`. The `client` forwards the session details here every time `onAuthStateChange` fires on the client-side. This is needed to set up the cookies for your application so that SSR works seamlessly. +- `session()`: + This parses the session from the cookie and populate it in locals +- `auth()`: + a shorthand for `sequence(callback(), session())` that uses both handlers + +### Send session to client + +In order to make the session available to the UI (e.g., pages and layouts), pass the session in the root layout load function: + +```ts title="src/routes/+layout.server.ts" +import type { LayoutServerLoad } from './$types' + +export const load: LayoutServerLoad = async ({ locals }) => { + return { + session: locals.session, + } +} +``` + +### Typings + +In order to get the most out of TypeScript and IntelliSense, import the types into the `app.d.ts` type definition file that comes with your SvelteKit project. + +```ts title="src/app.d.ts" +/// + +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +// and what to do when importing types +declare namespace App { + interface Locals { + session: import('@supabase/auth-helpers-sveltekit').SupabaseSession + } + interface PageData { + session: import('@supabase/auth-helpers-sveltekit').SupabaseSession + } + // interface Error {} + // interface Platform {} +} +``` + +### Signing out + +This library has provided a method to delete the session cookie. + +Create a server only page with an action to delete the cookie + +```ts title="src/routes/logout/+page.server.ts" +import { deleteSession } from '@supabase/auth-helpers-sveltekit/server' +import { redirect } from '@sveltejs/kit' +import type { Actions } from './$types' + +export const actions: Actions = { + async default({ cookies }) { + deleteSession(cookies) + throw redirect(303, '/') + }, +} +``` + +Then make a **POST** request with a form to the server only page above. + +```html + + +
+ +
+``` + +### Basic setup + +You can now determine if a user is authenticated on the client-side by checking that the `user` object in `$page.data.session` is defined. + +```html title="src/routes/+page.svelte" + + +{#if !$page.data.session.user} +

I am not logged in

+{:else} +

Welcome {$page.data.session.user.email}

+

I am logged in!

+{/if} +``` + +## Client-side data fetching with RLS + +For [row level security](https://supabase.com/docs/learn/auth-deep-dive/auth-row-level-security) to work properly when fetching data client-side, you need to make sure to import the `{ supabaseClient }` from `$lib/db` and only run your query once the user is defined client-side in `$page.data.session`: + +```html + + +{#if $page.data.session.user} +

client-side data fetching with RLS

+
{JSON.stringify(loadedData, null, 2)}
+{/if} +``` + +## Server-side data fetching with RLS + +```html title="src/routes/profile/+page.svelte" + + +
Protected content for {user.email}
+
{JSON.stringify(tableData, null, 2)}
+
{JSON.stringify(user, null, 2)}
+``` + +For [row level security](https://supabase.com/docs/learn/auth-deep-dive/auth-row-level-security) to work in a server environment, you need to use the `withAuth` helper to check if the user is authenticated. The helper extends the event with `session` and `getSupabaseClient()`: + +```ts title="src/routes/profile/+page.ts" +import type { PageLoad } from './$types'; +import { withAuth } from '@supabase/auth-helpers-sveltekit'; +import { redirect } from '@sveltejs/kit'; + +interface TestTable { + id: string; + created_at: string; +} + +export const load: PageLoad = withAuth(async ({ getSupabaseClient, session }) => { + if (!session.user) { + throw redirect(303, '/'); + } + const { data: tableData } = await getSupabaseClient() + .from('test') + .select('*'); + + return { + user: session.user, + tableData + }; +); +``` + +**Caution:** + +Always use the instance returned by `getSupabaseClient()` directly! + +```ts +// Bad +const supabaseClient = getSupabaseClient() + +await supabaseClient.from('table1').select() +await supabaseClient.from('table2').select() + +// Good +await getSupabaseClient().from('table1').select() +await getSupabaseClient().from('table2').select() +``` + +## Protecting API routes + +Wrap an API Route to check that the user has a valid session. If they're not logged in the session is `null`. + +```ts title="src/routes/api/protected-route/+server.ts" +import type { RequestHandler } from './$types'; +import { withAuth } from '@supabase/auth-helpers-sveltekit'; +import { json, redirect } from '@sveltejs/kit'; + +interface TestTable { + id: string; + created_at: string; +} + +export const GET: RequestHandler = withAuth(async ({ session, getSupabaseClient }) => { + if (!session.user) { + throw redirect(303, '/'); + } + const { data } = await getSupabaseClient() + .from('test') + .select('*'); + + return json({ data }); +); +``` + +If you visit `/api/protected-route` without a valid session cookie, you will get a 303 response. + +## Protecting Actions + +Wrap an Action to check that the user has a valid session. If they're not logged in, the session is `null`. + +```ts title="src/routes/posts/+page.server.ts" +import type { Actions } from './$types' +import { withAuth } from '@supabase/auth-helpers-sveltekit' +import { error, invalid } from '@sveltejs/kit' + +export const actions: Actions = { + createPost: withAuth(async ({ session, getSupabaseClient, request }) => { + if (!session.user) { + // the user is not signed in + throw error(403, { message: 'Unauthorized' }) + } + // we are save, let the user create the post + const formData = await request.formData() + const content = formData.get('content') + + const { error: createPostError, data: newPost } = await getSupabaseClient() + .from('posts') + .insert({ content }) + + if (createPostError) { + return invalid(500, { + supabaseErrorMessage: createPostError.message, + }) + } + return { + newPost, + } + }), +} +``` + +If you try to submit a form with the action `?/createPost` without a valid session cookie, you will get a 403 error response. + +## Saving and deleting the session + +Use `saveSession` to save the session cookies: + +```ts +import type { Actions } from './$types' +import { supabaseClient } from '$lib/db' +import { invalid, redirect } from '@sveltejs/kit' +import { saveSession } from '@supabase/auth-helpers-sveltekit/server' + +export const actions: Actions = { + async signin({ request, cookies, url }) { + const formData = await request.formData() + + const email = formData.get('email') as string + const password = formData.get('password') as string + + const { data, error } = await supabaseClient.auth.api.signInWithEmail( + email, + password, + { + redirectTo: `${url.origin}/logging-in`, + } + ) + + if (error || !data) { + if (error?.status === 400) { + return invalid(400, { + error: 'Invalid credentials', + values: { + email, + }, + }) + } + return invalid(500, { + error: 'Server error. Try again later.', + values: { + email, + }, + }) + } + + saveSession(cookies, data) + throw redirect(303, '/dashboard') + }, +} +``` + +Use `deleteSession` to delete the session cookies: + +```ts +import type { Actions } from './$types' +import { deleteSession } from '@supabase/auth-helpers-sveltekit/server' +import { redirect } from '@sveltejs/kit' + +export const actions: Actions = { + async logout({ cookies }) { + deleteSession(cookies) + throw redirect(303, '/') + }, +} +``` + +## Custom session namespace + +If you want to use something other than `locals.session` and `$page.data.session`, update the types and create three helper functions: + +```ts title="src/app.d.ts" +declare namespace App { + interface Locals { + mySupabaseSession: import('@supabase/auth-helpers-sveltekit').SupabaseSession + } + interface PageData { + mySupabaseSession: import('@supabase/auth-helpers-sveltekit').SupabaseSession + } +} +``` + +```ts title="src/hooks.server.ts" +setupSupabaseServer({ + supabaseClient, + cookieOptions: { + secure: !dev, + }, + // --- change location within locals --- + getSessionFromLocals: (locals) => locals.mySupabaseSession, + setSessionToLocals: (locals, session) => (locals.mySupabaseSession = session), +}) +``` + +```ts title="src/lib/db.ts" +setupSupabaseClient({ + supabaseClient, + // --- change location within pageData --- + getSessionFromPageData: (data) => data.mySupabaseSession, +}) +``` + +## Migrate from 0.6.11 and below to 0.7.0 {#migration} + +There are numerous breaking changes in the latest 0.7.0 version of this library. + +### Environment variable prefix + +The environment variable prefix is now `PUBLIC_` instead of `VITE_` (e.g., `VITE_SUPABASE_URL` is now `PUBLIC_SUPABASE_URL`). + +### Set up the Supabase client {#migration-set-up-supabase-client} + + + + + +```js title="src/lib/db.ts" +import { createSupabaseClient } from '@supabase/auth-helpers-sveltekit'; + +const { supabaseClient } = createSupabaseClient( + import.meta.env.VITE_SUPABASE_URL as string, + import.meta.env.VITE_SUPABASE_ANON_KEY as string +); + +export { supabaseClient }; +``` + + + + + +```js title="src/lib/db.ts" +import { createClient } from '@supabase/supabase-js' +import { setupSupabaseHelpers } from '@supabase/auth-helpers-sveltekit' +import { dev } from '$app/environment' +import { env } from '$env/dynamic/public' +// or use the static env + +// import { PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY } from '$env/static/public'; + +export const supabaseClient = createClient( + env.PUBLIC_SUPABASE_URL, + env.PUBLIC_SUPABASE_ANON_KEY, + { + persistSession: false, + autoRefreshToken: false, + } +) + +setupSupabaseHelpers({ + supabaseClient, + cookieOptions: { + secure: !dev, + }, +}) +``` + + + + +### Initialize the client {#migration-initialize-client} + + + + + +```html title="src/routes/__layout.svelte" + + + + + +``` + + + + + +The `@supabase/auth-helpers-svelte` library is no longer required as the `@supabase/auth-helpers-sveltekit` library handles all the client-side code. + +```html title="src/routes/+layout.svelte" + + + +``` + + + + +### Set up hooks {#migration-set-up-hooks} + + + + + +```ts title="src/hooks.ts" +import { handleAuth } from '@supabase/auth-helpers-sveltekit' +import type { GetSession, Handle } from '@sveltejs/kit' +import { sequence } from '@sveltejs/kit/hooks' + +export const handle: Handle = sequence(...handleAuth()) + +export const getSession: GetSession = async (event) => { + const { user, accessToken, error } = event.locals + return { + user, + accessToken, + error, + } +} +``` + + + + + +```ts title="src/hooks.server.ts" +// make sure the supabase instance is initialized on the server +import '$lib/db' +import { dev } from '$app/environment' +import { auth } from '@supabase/auth-helpers-sveltekit/server' + +export const handle = auth() +``` + +**Optional** _if using additional handle methods_ + +```ts title="src/hooks.server.ts" +// make sure the supabase instance is initialized on the server +import '$lib/db' +import { dev } from '$app/environment' +import { auth } from '@supabase/auth-helpers-sveltekit/server' +import { sequence } from '@sveltejs/kit/hooks' + +export const handle = sequence(auth(), yourHandler) +``` + + + + +### Typings {#migration-typings} + + + + + +```ts title="src/app.d.ts" +/// +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +declare namespace App { + interface UserSession { + user: import('@supabase/supabase-js').User + accessToken?: string + } + + interface Locals extends UserSession { + error: import('@supabase/supabase-js').ApiError + } + + interface Session extends UserSession {} + + // interface Platform {} + // interface Stuff {} +} +``` + + + + + +```ts title="src/app.d.ts" +/// + +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +// and what to do when importing types +declare namespace App { + interface Locals { + session: import('@supabase/auth-helpers-sveltekit').SupabaseSession + } + + interface PageData { + session: import('@supabase/auth-helpers-sveltekit').SupabaseSession + } + + // interface Error {} + // interface Platform {} +} +``` + + + + +### Check the user on the client + + + + + +```html title="src/routes/index.svelte" + + +{#if !$session.user} +

I am not logged in

+{:else} +

Welcome {$session.user.email}

+

I am logged in!

+{/if} +``` + +
+ + + +```html title="src/routes/+page.svelte" + + +{#if !$page.data.session.user} +

I am not logged in

+{:else} +

Welcome {$page.data.session.user.email}

+

I am logged in!

+{/if} +``` + +
+
+ +### withPageAuth + + + + + +```html title="src/routes/protected-route.svelte" + + + + +
Protected content for {user.email}
+

server-side fetched data with RLS:

+
{JSON.stringify(data, null, 2)}
+

user:

+
{JSON.stringify(user, null, 2)}
+``` + +
+ + + +```html title="src/routes/protected-route/+page.svelte" + + +
Protected content for {user.email}
+

server-side fetched data with RLS:

+
{JSON.stringify(tableData, null, 2)}
+

user:

+
{JSON.stringify(user, null, 2)}
+``` + +```ts title="src/routes/protected-route/+page.ts" +import { withAuth } from '@supabase/auth-helpers-sveltekit' +import { redirect } from '@sveltejs/kit' +import type { PageLoad } from './$types' + +export const load: PageLoad = withAuth( + async ({ session, getSupabaseClient }) => { + if (!session.user) { + throw redirect(303, '/') + } + + const { data: tableData } = await getSupabaseClient() + .from('test') + .select('*') + return { tableData, user: session.user } + } +) +``` + +
+
+ +### withApiAuth + + + + + +```ts title="src/routes/api/protected-route.ts" +import { + supabaseServerClient, + withApiAuth, +} from '@supabase/auth-helpers-sveltekit' +import type { RequestHandler } from './__types/protected-route' + +interface TestTable { + id: string + created_at: string +} + +interface GetOutput { + data: TestTable[] +} + +export const GET: RequestHandler = async ({ locals, request }) => + withApiAuth({ user: locals.user }, async () => { + // Run queries with RLS on the server + const { data } = await supabaseServerClient(request) + .from('test') + .select('*') + + return { + status: 200, + body: { data }, + } + }) +``` + + + + + +```ts title="src/routes/api/protected-route/+server.ts" +import type { RequestHandler } from './$types'; +import { withAuth } from '@supabase/auth-helpers-sveltekit'; +import { json, redirect } from '@sveltejs/kit'; + +interface TestTable { + id: string; + created_at: string; +} + +export const GET: RequestHandler = withAuth(async ({ session, getSupabaseClient }) => { + if (!session.user) { + throw redirect(303, '/'); + } + + const { data } = await getSupabaseClient() + .from('test') + .select('*'); + + return json({ data }); +); +``` + + + + +## Additional Links + +- [Auth Helpers Source code](https://github.com/supabase/auth-helpers) +- [SvelteKit example](https://github.com/supabase/auth-helpers/tree/main/examples/sveltekit) +- [SvelteKit Email/Password example](https://github.com/supabase/auth-helpers/tree/main/examples/sveltekit-email-password) +- [SvelteKit Magiclink example](https://github.com/supabase/auth-helpers/tree/main/examples/sveltekit-magic-link) diff --git a/apps/reference/docs/guides/auth/auth-keycloak.mdx b/apps/reference/docs/guides/auth/auth-keycloak.mdx index 39d1eb96196..76e536063c3 100644 --- a/apps/reference/docs/guides/auth/auth-keycloak.mdx +++ b/apps/reference/docs/guides/auth/auth-keycloak.mdx @@ -22,15 +22,13 @@ Keycloak OAuth consists of five broad steps: - Ensure that the new client has the "Client Protocol" set to "openid-connect" and the "Access Type" is set to "confidential". - The `Client ID` of the client created will be used as the `client id`. - Obtain the `Secret` from the credentials tab which will be used as the `client secret`. -- Whitelist the callback url of your application. +- Add the callback url of your application to your allowlist. -## Steps - -### Access your Keycloak Admin console +## Access your Keycloak Admin console - Login by visiting [`http://localhost:8080`](http://localhost:8080) and clicking on "Administration Console". -### Create a Keycloak Realm +## Create a Keycloak Realm - Once you've logged in to the Keycloak console, you can add a realm from the side panel. The default realm should be named "Master". - After you've added a new realm, you can retrieve the `issuer` from the "OpenID Endpoint Configuration" endpoint. The `issuer` will be used as the `Keycloak URL`. @@ -38,13 +36,13 @@ Keycloak OAuth consists of five broad steps: ![Add a Keycloak Realm.](/img/guides/auth-keycloak/keycloak-create-realm.png) -### Create a Keycloak Client +## Create a Keycloak Client The "Client ID" of the created client will serve as the `client_id` when you make API calls to authenticate the user. ![Add a Keycloak client](/img/guides/auth-keycloak/keycloak-add-client.png) -### Client Settings +## Client Settings After you've created the client successfully, ensure that you set the following settings: @@ -55,34 +53,26 @@ After you've created the client successfully, ensure that you set the following ![Obtain the client id, set the client protocol and access type](/img/guides/auth-keycloak/keycloak-client-id.png) ![Set redirect uri](/img/guides/auth-keycloak/keycloak-redirect-uri.png) -### Obtain the Client Secret +## Obtain the Client Secret This will serve as the `client_secret` when you make API calls to authenticate the user. Under the "Credentials" tab, the `Secret` value will be used as the `client secret`. ![Obtain the client secret](/img/guides/auth-keycloak/keycloak-client-secret.png) -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented in the [Supabase OAuth Reference](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'keycloak', -}) -``` - -Add a function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `keycloak` as the `provider`: ```js async function signInWithKeycloak() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'keycloak', - } + }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-linkedin.mdx b/apps/reference/docs/guides/auth/auth-linkedin.mdx index caf7eb602d1..207d19c0439 100644 --- a/apps/reference/docs/guides/auth/auth-linkedin.mdx +++ b/apps/reference/docs/guides/auth/auth-linkedin.mdx @@ -14,19 +14,17 @@ To enable LinkedIn Auth for your project, you need to set up a LinkedIn OAuth ap Setting up LinkedIn logins for your application consists of 3 parts: - Create and configure a LinkedIn Project and App on the [LinkedIn Developer Dashboard](https://www.linkedin.com/developers/apps). -- Add your LinkedIn `API Key` and `API Secret Key` to your [Supabase Project](https://app.supabase.com). +- Add your LinkedIn `client_id` and `client_secret` to your [Supabase Project](https://app.supabase.com). - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js). -## Steps - -### Access your LinkedIn Developer account +## Access your LinkedIn Developer account - Go to [LinkedIn Developer Dashboard](https://www.linkedin.com/developers/apps). - Log in (if necessary.) ![LinkedIn Developer Portal](/img/guides/auth-linkedin/linkedin_developers_page.png) -### Find your callback URL +## Find your callback URL The next step requires a callback URL, which looks like this: @@ -47,7 +45,7 @@ The next step requires a callback URL, which looks like this: /> -### Create a LinkedIn OAuth app +## Create a LinkedIn OAuth app - Go to [LinkedIn Developer Dashboard](https://www.linkedin.com/developers/apps). - Click on `Create App` at the top right @@ -58,37 +56,29 @@ The next step requires a callback URL, which looks like this: - Copy and save your newly-generated `Client ID` - Copy and save your newly-generated `Client Secret` -### Enter your LinkedIn credentials into your Supabase Project +## Enter your LinkedIn credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com). - In the left sidebar, click the `Authentication` icon (near the top). - Click `Settings` from the list to go to the `Authentication Settings` page. - Enter the final (hosted) URL of your app under `Site URL` (this is important). - Under `External OAuth Providers` turn `LinkedIn Enabled` to ON. -- Enter your `API Key` (`client_id`) and `API Secret Key` (`client_secret`) saved in the previous step. +- Enter your `client_id` and `client_secret` saved in the previous step. - Click `Save`. -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'LinkedIn', -}) -``` - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `linkedin` as the `provider`: ```js async function signInWithLinkedIn() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'LinkedIn', + const { data, error } = await supabase.auth.signInWithOAuth({ + provider: 'linkedin', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-magic-link.mdx b/apps/reference/docs/guides/auth/auth-magic-link.mdx index 5d320a55abe..391f1ad9365 100644 --- a/apps/reference/docs/guides/auth/auth-magic-link.mdx +++ b/apps/reference/docs/guides/auth/auth-magic-link.mdx @@ -1,13 +1,14 @@ --- id: auth-magic-link title: 'Login With Magic Link' -description: Use Supabase to Authenticate and Authorize your users using Magic Link. +description: Use Supabase to authenticate and authorize your users using magic links. --- import Tabs from '@theme/Tabs' import TabItem from '@theme/TabItem' -By default, if no password is provided, the user will be sent a "magic link" to their email address, which they can click to open your application with a valid session. By default, a given user can only request a Magic Link once every 60 seconds. +Magic links are a form of passwordless logins where users click on a link sent to their email address to log in to their accounts. +Magic links only work with email addresses. By default, a user can only request a magic link once every 60 seconds. ## Overview @@ -25,12 +26,7 @@ Setting up Magic Link logins for your Supabase application. - Under `Email Auth` turn `Enable Email Signup` to ON - Click `Save` -### Add login code to your client app - -Add logins using our client libraries: - -- [JavaScript](/docs/reference/javascript/auth-signin#sign-in-with-magic-link) -- [Dart](/docs/reference/dart/auth-signin#sign-in-with-magic-link) +## Add login code to your client app -```js -const { user, error } = await supabase.auth.signIn({ - email: 'example@email.com', -}) -``` - -
- - - -```dart -final res = await supabase.auth.signIn(email: 'example@email.com'); - -final error = res.error; -``` - - - -
- -Add this function which you can call from a button, link, or UI element. - - - - +When your user signs in, call [signInWithOtp()](/docs/reference/javascript/auth-signinwithotp) with their email address: ```js async function signInWithEmail() { - const { user, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOtp({ email: 'example@email.com', }) } @@ -82,6 +50,8 @@ async function signInWithEmail() { +When your user signs in, call [signIn()](/docs/reference/dart/auth-signin) with their email address: + ```dart Future signInWithEmail() async { await supabase.auth.signIn(email: 'example@email.com'); @@ -92,8 +62,6 @@ Future signInWithEmail() async { -To log out: - +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: + ```js async function signOut() { const { error } = await supabase.auth.signOut() @@ -112,6 +82,8 @@ async function signOut() { +When your user signs out, call [signOut()](/docs/reference/dart/auth-signout) to remove them from the browser session and any objects from localStorage: + ```dart Future signOut() async { await supabase.auth.signOut(); diff --git a/apps/reference/docs/guides/auth/auth-messagebird.mdx b/apps/reference/docs/guides/auth/auth-messagebird.mdx index b67591f0b73..9c7c2bb2756 100644 --- a/apps/reference/docs/guides/auth/auth-messagebird.mdx +++ b/apps/reference/docs/guides/auth/auth-messagebird.mdx @@ -172,7 +172,7 @@ values={[ ```js -let { user, error } = await supabase.auth.signIn({ +let { user, error } = await supabase.auth.signInWithPassword({ phone: '+13334445555', password: 'some-password', }) @@ -209,7 +209,7 @@ values={[ ```js -let { user, error } = await supabase.auth.signIn({ +let { user, error } = await supabase.auth.signInWithOtp({ phone: '+13334445555', }) ``` diff --git a/apps/reference/docs/guides/auth/auth-notion.mdx b/apps/reference/docs/guides/auth/auth-notion.mdx index 1f615f76bbd..31b5d76e778 100644 --- a/apps/reference/docs/guides/auth/auth-notion.mdx +++ b/apps/reference/docs/guides/auth/auth-notion.mdx @@ -17,9 +17,7 @@ Setting up Notion logins for your application consists of 3 parts: - Retrieve your OAuth client ID and OAuth client secret and add them to your [Supabase Project](https://app.supabase.com) - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) -## Steps - -### Create your notion integration +## Create your notion integration - Go to [developers.notion.com](https://developers.notion.com/). - Click "View my integrations" and login. @@ -33,7 +31,7 @@ Setting up Notion logins for your application consists of 3 parts: ![notion.so](/img/guides/auth-notion/notion-developer.png) -### Add the redirect uri +## Add the redirect URI - After selecting "Public integration", you should see an option to add "Redirect URIs". @@ -58,7 +56,7 @@ Your redirect uri should look like the following: `https://.supabas /> -### Add your Notion credentials into your Supabase Project +## Add your Notion credentials into your Supabase Project - Once you've created your notion integration, you should be able to retrieve the "OAuth client ID" and "OAuth client secret" from the "OAuth Domain and URIs" tab. @@ -71,27 +69,19 @@ Your redirect uri should look like the following: `https://.supabas - Enter the "OAuth client ID" and "OAuth client secret" obtained in the `client id` and `client secret` fields. - Click `Save` -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'notion', -}) -``` - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `notion` as the `provider`: ```js async function signInWithNotion() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'notion', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-slack.mdx b/apps/reference/docs/guides/auth/auth-slack.mdx index c9568eaa593..c00e377747b 100644 --- a/apps/reference/docs/guides/auth/auth-slack.mdx +++ b/apps/reference/docs/guides/auth/auth-slack.mdx @@ -17,16 +17,14 @@ Setting up Slack logins for your application consists of 3 parts: - Add your Slack `API Key` and `API Secret Key` to your [Supabase Project](https://app.supabase.com). - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js). -## Steps - -### Access your Slack Developer account +## Access your Slack Developer account - Go to [api.slack.com](https://api.slack.com/apps). - Click on `Your Apps` at the top right to log in. ![Slack Developer Portal.](/img/guides/auth-slack/slack-portal.png) -### Find your callback URL +## Find your callback URL The next step requires a callback URL, which looks like this: @@ -47,7 +45,7 @@ The next step requires a callback URL, which looks like this: /> -### Create a Slack OAuth app +## Create a Slack OAuth app - Go to [api.slack.com](https://api.slack.com/apps). - Click on `Create an App` @@ -71,7 +69,7 @@ Under `Redirect URLs`: - Paste your `Callback URL` then click `Add` - Click `Save URLs` -### Enter your Slack credentials into your Supabase Project +## Enter your Slack credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com). - In the left sidebar, click the `Authentication` icon (near the top). @@ -81,27 +79,19 @@ Under `Redirect URLs`: - Enter your `Client ID` (`client_id`) and `Client Secret` (`client_secret`) saved in the previous step. - Click `Save`. -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'slack', -}) -``` - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `slack` as the `provider`: ```js async function signInWithSlack() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'slack', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-spotify.mdx b/apps/reference/docs/guides/auth/auth-spotify.mdx index c617021e79b..cf282bea973 100644 --- a/apps/reference/docs/guides/auth/auth-spotify.mdx +++ b/apps/reference/docs/guides/auth/auth-spotify.mdx @@ -17,16 +17,14 @@ Setting up Spotify logins for your application consists of 3 parts: - Add your Spotify `API Key` and `API Secret Key` to your [Supabase Project](https://app.supabase.com). - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js). -## Steps - -### Access your Spotify Developer account +## Access your Spotify Developer account - Log into [Spotify](https://spotify.com) - Access the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard) ![Spotify Developer Portal.](/img/guides/auth-spotify/spotify-portal.png) -### Find your callback URL +## Find your callback URL The next step requires a callback URL, which looks like this: @@ -47,7 +45,7 @@ The next step requires a callback URL, which looks like this: /> -### Create a Spotify OAuth app +## Create a Spotify OAuth app - Log into [Spotify](https://spotify.com). - Go to the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard) @@ -66,7 +64,7 @@ Under `Redirect URIs`: - Click `Add` - Click `Save` at the bottom -### Enter your Spotify credentials into your Supabase Project +## Enter your Spotify credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com). - In the left sidebar, click the `Authentication` icon (near the top). @@ -76,27 +74,19 @@ Under `Redirect URIs`: - Enter your `Client ID` (`client_id`) and `Client Secret` (`client_secret`) saved in the previous step. - Click `Save`. -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'spotify', -}) -``` - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `spotify` as the `provider`: ```js async function signInWithSpotify() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'spotify', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-twilio.mdx b/apps/reference/docs/guides/auth/auth-twilio.mdx index 685f6554746..96abd4aa723 100644 --- a/apps/reference/docs/guides/auth/auth-twilio.mdx +++ b/apps/reference/docs/guides/auth/auth-twilio.mdx @@ -189,7 +189,7 @@ values={[ ```js -let { user, error } = await supabase.auth.signIn({ +let { user, error } = await supabase.auth.signInWithPassword({ phone: '+13334445555', password: 'some-password', }) @@ -226,7 +226,7 @@ values={[ ```js -let { user, error } = await supabase.auth.signIn({ +let { user, error } = await supabase.auth.signInWithOtp({ phone: '+13334445555', }) ``` diff --git a/apps/reference/docs/guides/auth/auth-twitch.mdx b/apps/reference/docs/guides/auth/auth-twitch.mdx index ef76d915913..56a67e6c82c 100644 --- a/apps/reference/docs/guides/auth/auth-twitch.mdx +++ b/apps/reference/docs/guides/auth/auth-twitch.mdx @@ -17,9 +17,7 @@ Setting up Twitch logins for your application consists of 3 parts: - Add your Twitch OAuth Consumer keys to your [Supabase Project](https://app.supabase.com) - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) -## Steps - -### Access your Twitch Developer account +## Access your Twitch Developer account - Go to [dev.twitch.tv](https://dev.twitch.tv). - Click on `Log in with Twitch` at the top right to log in. @@ -31,7 +29,7 @@ Setting up Twitch logins for your application consists of 3 parts: ![Twitch Developer Console](/img/guides/auth-twitch/twitch-console.png) -### Find your callback URL +## Find your callback URL In the next step you require a callback URL, which looks like this: @@ -52,7 +50,7 @@ In the next step you require a callback URL, which looks like this: /> -### Create a Twitch Application +## Create a Twitch Application ![Twitch Developer Console](/img/guides/auth-twitch/twitch-console.png) @@ -65,7 +63,7 @@ In the next step you require a callback URL, which looks like this: - Select a category for your app. - Check the Captcha box and click `Create`. -### Retrieve your Twitch OAuth Client ID and Client Secret +## Retrieve your Twitch OAuth Client ID and Client Secret - Click `Manage` at the right of your application entry in the list. @@ -77,7 +75,7 @@ In the next step you require a callback URL, which looks like this: ![Get Client ID and Secret](/img/guides/auth-twitch/twitch-get-keys.png) -### Add your Twitch credentials into your Supabase Project +## Add your Twitch credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com) - In the left sidebar, click the `Authentication` icon (near the top) @@ -87,27 +85,19 @@ In the next step you require a callback URL, which looks like this: - Enter your `client_id` and `client_secret` saved in the previous step - Click `Save` -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'twitch', -}) -``` - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `twitch` as the `provider`: ```js async function signInWithTwitch() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'twitch', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-twitter.mdx b/apps/reference/docs/guides/auth/auth-twitter.mdx index d5f5726d756..88448a12eeb 100644 --- a/apps/reference/docs/guides/auth/auth-twitter.mdx +++ b/apps/reference/docs/guides/auth/auth-twitter.mdx @@ -17,16 +17,14 @@ Setting up Twitter logins for your application consists of 3 parts: - Add your Twitter `API Key` and `API Secret Key` to your [Supabase Project](https://app.supabase.com). - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js). -## Steps - -### Access your Twitter Developer account +## Access your Twitter Developer account - Go to [developer.twitter.com](https://developer.twitter.com). - Click on `Sign in` at the top right to log in. ![Twitter Developer Portal.](/img/guides/auth-twitter/twitter-portal.png) -### Find your callback URL +## Find your callback URL The next step requires a callback URL, which looks like this: @@ -47,7 +45,7 @@ The next step requires a callback URL, which looks like this: /> -### Create a Twitter OAuth app +## Create a Twitter OAuth app - Click `+ Create Project`. - Enter your project name, click `Next`. @@ -67,7 +65,7 @@ The next step requires a callback URL, which looks like this: - Enter your `Privacy policy URL`. - Click `Save`. -### Enter your Twitter credentials into your Supabase Project +## Enter your Twitter credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com). - In the left sidebar, click the `Authentication` icon (near the top). @@ -77,27 +75,19 @@ The next step requires a callback URL, which looks like this: - Enter your `API Key` (`client_id`) and `API Secret Key` (`client_secret`) saved in the previous step. - Click `Save`. -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'twitter', -}) -``` - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `twitter` as the `provider`: ```js async function signInWithTwitter() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'twitter', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-vonage.mdx b/apps/reference/docs/guides/auth/auth-vonage.mdx index d1a71db6c2b..10fa9378c0c 100644 --- a/apps/reference/docs/guides/auth/auth-vonage.mdx +++ b/apps/reference/docs/guides/auth/auth-vonage.mdx @@ -163,7 +163,7 @@ values={[ ```js -let { user, error } = await supabase.auth.signIn({ +let { user, error } = await supabase.auth.signInWithPassword({ phone: '491512223334444', password: 'some-password', }) @@ -200,7 +200,7 @@ values={[ ```js -let { user, error } = await supabase.auth.signIn({ +let { user, error } = await supabase.auth.signInWithOtp({ phone: '491512223334444', }) ``` diff --git a/apps/reference/docs/guides/auth/auth-workos.mdx b/apps/reference/docs/guides/auth/auth-workos.mdx index 9e2ef7c79e7..e7e9c932b8d 100644 --- a/apps/reference/docs/guides/auth/auth-workos.mdx +++ b/apps/reference/docs/guides/auth/auth-workos.mdx @@ -21,27 +21,25 @@ The procedure consists of five broad steps: - Connect a WorkOS Supported Identity Provider - Add your WorkOS credentials into your Supabase project -## Steps - -### Create a WorkOS Organization +## Create a WorkOS Organization Log in to the dashboard and hop over to the Organizations tab to create and organization ![Create an Organization](/img/guides/auth-workos/workos-create-organization.png) -### Obtain the Client ID and configure Redirect URI +## Obtain the Client ID and configure Redirect URI Head over to the Configuration tab and configure the redirect URI.The redirect URI should look like `https://.supabase.co/auth/v1/callback` Note that this is distinct from the redirect URI referred to in the Supabase dashboard ![Fetch Client ID and configure Redirect URI](/img/guides/auth-workos/workos-clientid-redirect-uri.png) -### Obtain the WorkOS Secret +## Obtain the WorkOS Secret Head over to the API Keys page and obtain the secret key. ![WorkOS Secret Key](/img/guides/auth-workos/workos-secret-key.png) -### Connect a WorkOS Supported Identity Provider +## Connect a WorkOS Supported Identity Provider Set up the identity provider by visiting the setup link. @@ -49,7 +47,7 @@ Set up the identity provider by visiting the setup link. You can pick between any one of the many identity providers that WorkOS supports. -### Add your WorkOS credentials into your Supabase Project +## Add your WorkOS credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com) - In the left sidebar, click the `Authentication` icon (near the top) @@ -58,29 +56,13 @@ You can pick between any one of the many identity providers that WorkOS supports - Enter the `Client ID`, `Secret`, and `WorkOS URL` saved in the previous steps. The ``WorkOS URL` setting should be set to https://api.workos.com/ - Click `Save` -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented in the [Supabase OAuth Reference](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). Note that you only need to include one of the three parameters: `connection`, `organization`, and `provider`. -You can refer to the [WorkOS Documentation](https://workos.com/docs/reference/sso/authorize/) to learn more about the different methods. - -```js -const { user, session, error } = await supabase.auth.signIn( - { - provider: 'workos', - }, - { - connection: '', - organization: '', - } -) -``` - -Add a function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `workos` as the `provider`: ```js async function signInWithWorkOS() { - const { user, session, error } = await supabase.auth.signIn( + const { data, error } = await supabase.auth.signInWithOAuth( { provider: 'workos', }, @@ -93,7 +75,9 @@ async function signInWithWorkOS() { } ``` -To log out: +Refer to the [WorkOS Documentation](https://workos.com/docs/reference/sso/authorize/) to learn more about the different methods. + +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/auth-zoom.mdx b/apps/reference/docs/guides/auth/auth-zoom.mdx index cab2ad3e6f5..98763329bc8 100644 --- a/apps/reference/docs/guides/auth/auth-zoom.mdx +++ b/apps/reference/docs/guides/auth/auth-zoom.mdx @@ -17,16 +17,14 @@ Setting up Zoom logins for your application consists of 3 parts: - Add your Zoom OAuth keys to your [Supabase Project](https://app.supabase.com) - Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) -## Steps - -### Access your Zoom Developer account +## Access your Zoom Developer account - Go to [marketplace.zoom.us](https://marketplace.zoom.us/). - Click on `Sign In` at the top right to log in. ![Zoom Developer Portal.](/img/guides/auth-zoom/zoom-portal.png) -### Find your callback URL +## Find your callback URL The next step requires a callback URL, which looks like this: @@ -47,7 +45,7 @@ The next step requires a callback URL, which looks like this: /> -### Create a Zoom Oauth App +## Create a Zoom Oauth App - Go to [marketplace.zoom.us](https://marketplace.zoom.us/). - Click on `Sign In` at the top right to log in. @@ -67,7 +65,7 @@ Under `Redirect URL for OAuth` - Paste your `Callback URL` - Click `Continue` -### Enter your Zoom credentials into your Supabase Project +## Enter your Zoom credentials into your Supabase Project - Go to your [Supabase Project Dashboard](https://app.supabase.com) - In the left sidebar, click the `Authentication` icon (near the top) @@ -77,27 +75,19 @@ Under `Redirect URL for OAuth` - Enter your `Zoom Client ID` and `Zoom Client Secret` saved in the previous step - Click `Save` -### Add login code to your client app +## Add login code to your client app -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'zoom', -}) -``` - -Add this function which you can call from a button, link, or UI element. +When your user signs in, call [signInWithOAuth()](/docs/reference/javascript/auth-signinwithoauth) with `zoom` as the `provider`: ```js async function signInWithZoom() { - const { user, session, error } = await supabase.auth.signIn({ + const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'zoom', }) } ``` -To log out: +When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: ```js async function signout() { diff --git a/apps/reference/docs/guides/auth/intro.mdx b/apps/reference/docs/guides/auth/intro.mdx deleted file mode 100644 index e9d0b7ae806..00000000000 --- a/apps/reference/docs/guides/auth/intro.mdx +++ /dev/null @@ -1,103 +0,0 @@ ---- -id: intro -title: Supabase Auth -sidebar_label: Introduction -description: Use Supabase to Authenticate and Authorize your users. -# hide_table_of_contents: true ---- - -import Link from '@docusaurus/Link' -import useBaseUrl from '@docusaurus/useBaseUrl' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import providers from '@site/src/data/authProviders' - -
- -
- -## Introduction - -Supabase Auth is designed to work with Postgres. There are two parts to every Auth system: - -- **Authentication:** should this person be allowed in? If yes, who are they? -- **Authorization:** once they are in, what are they allowed to do? - -## Authentication - -You can authenticate your users in several ways: - -- Email & password. -- Magic links (one-click logins). -- Social providers. -- Phone logins. - -
-
- {providers.map((x) => ( -
- -
-
- {x.logo && {x.name}} -

{x.name}

-

- {x.official ? ( - Official - ) : ( - Unofficial - )} -

-
-
-
- Platform: - {x.platform.toString()} -
-
- Self-Hosted: - {x.selfHosted.toString()} -
-
-
- -
- ))} -
-
- -## Authorization - -When you need granular authorization rules, nothing beats PostgreSQL's Row Level Security (RLS). - -Policies are PostgreSQL's rule engine. They are incredibly powerful and flexible, allowing you to write complex SQL rules which fit your unique business needs. - -Get started with our [Row Level Security Guides](/docs/guides/auth/row-level-security). diff --git a/apps/reference/docs/guides/auth/row-level-security.mdx b/apps/reference/docs/guides/auth/row-level-security.mdx index 21c04b69e71..a103c6a676e 100644 --- a/apps/reference/docs/guides/auth/row-level-security.mdx +++ b/apps/reference/docs/guides/auth/row-level-security.mdx @@ -238,7 +238,7 @@ alter table leaderboard create policy "Only Blizzard staff can update leaderboard" on leaderboard for update using ( - right(auth.email(), 13) = '@blizzard.com' + right(auth.jwt() ->> 'email', 13) = '@blizzard.com' ); ``` diff --git a/apps/reference/docs/guides/cli.mdx b/apps/reference/docs/guides/cli.mdx new file mode 100644 index 00000000000..0d0dd99be0e --- /dev/null +++ b/apps/reference/docs/guides/cli.mdx @@ -0,0 +1,110 @@ +--- +id: cli +title: Supabase CLI +description: The Supabase CLI provides tools to develop your project locally and deploy to the Supabase Platform. +sidebar_label: Overview +toc_max_heading_level: 2 +--- + +import Tabs from '@theme/Tabs' +import TabItem from '@theme/TabItem' + +The Supabase CLI provides tools to develop your project locally and deploy to the Supabase Platform. +You can also use the CLI to manage your Supabase projects, handle database migrations and CI/CD workflows, and generate types directly from your database schema. + +## Installation + + + + +Install the CLI with [Homebrew](https://brew.sh): + +```sh +brew install supabase/tap/supabase +``` + + + + + +Install the CLI with [Scoop](https://scoop.sh): + +```powershell +scoop bucket add supabase https://github.com/supabase/scoop-bucket.git +scoop install supabase +``` + + + + + +The CLI is available through [Homebrew](https://brew.sh) and Linux packages. + +### Homebrew + +```sh +brew install supabase/tap/supabase +``` + +### Linux packages + +Linux packages are provided in [Releases](https://github.com/supabase/cli/releases). +To install, download the `.apk`/`.deb`/`.rpm` file depending on your package manager +and run one of the following: + +- `sudo apk add --allow-untrusted <...>.apk` +- `sudo dpkg -i <...>.deb` +- `sudo rpm -i <...>.rpm` + + + + +## Updates + +When a new [version](https://github.com/supabase/cli/releases) is released, you can update the CLI using the same methods. + + + + +```sh +brew upgrade supabase +``` + + + + + +```powershell +scoop update supabase +``` + + + + + +```sh +brew upgrade supabase +``` + + + + +## See also + +- [Supabase CLI Reference](/docs/reference/cli/usage) +- [Local Development](/docs/guides/cli/local-development) +- [CI/CD Workflow](/docs/guides/cli/cicd-workflow) diff --git a/apps/reference/docs/guides/cli/cicd-workflow.mdx b/apps/reference/docs/guides/cli/cicd-workflow.mdx index d8248681b13..875d240c300 100644 --- a/apps/reference/docs/guides/cli/cicd-workflow.mdx +++ b/apps/reference/docs/guides/cli/cicd-workflow.mdx @@ -18,7 +18,7 @@ The Supabase CLI also functions as a database migrations tool. In this guide, we Before you start, here are some prerequisites: -- [Install the Supabase CLI](https://supabase.com/docs/reference/cli/installing-and-updating) +- [Install the Supabase CLI](/docs/guides/cli) - Create a Supabase project - Initialise a local Git repository @@ -36,10 +36,10 @@ You should see that a new `supabase` directory is created. Then you need to link ```sql supabase login -supabase link --project-ref +supabase link --project-ref $PROJECT_ID ``` -You can get your `` from your project’s dashboard URL: +You can get your `$PROJECT_ID` from your project’s dashboard URL: ``` https://app.supabase.com/project/ @@ -292,7 +292,7 @@ When configured correctly, your repository should have CI and Release workflows ### Open a PR with new migration -Now that your repository is set up, it’s time to create a new migration. Follow our [migration guide](#creating-a-new-migration) to create a file `supabase/migrations/_new_employee.sql`. +Now that your repository is set up, it’s time to create a new migration. Follow the [migration section](#creating-a-new-migration) to create a file `supabase/migrations/_new_employee.sql`. Checkout a new branch `feat/employee` from `develop` , commit the migration file, and push to GitHub. @@ -321,7 +321,7 @@ After verifying your staging project has successfully migrated, create another P The `release` job applies all new migration scripts merged in `supabase/migrations` directory to a linked Supabase project. You can control which project the job links to via `PROJECT_ID` environment variable. -The full example code for this guide is available on our [demo repository](https://github.com/supabase/cli-example). +The full example code for this guide is available on our [demo repository](https://github.com/supabase/supabase-action-example). ## Troubleshooting @@ -380,6 +380,6 @@ mv
@@ -126,15 +126,6 @@ You can upload a file from the Dashboard, or within a browser using our JS libra 3. Click **Upload File**. 4. Select the file you want to upload. - - @@ -186,20 +177,11 @@ You can download a file from the Dashboard, or within a browser using our JS lib 3. Select the file that you want to download. 4. Click **Download**. - - ```js -// Use the JS library to create a bucket. +// Use the JS library to download a file. const { data, error } = await supabase.storage .from('avatars') @@ -245,15 +227,6 @@ To restrict access to your files you can use either the Dashboard or SQL. 5. Give your policy a unique name. 6. Write the policy using SQL. - - @@ -268,9 +241,48 @@ create policy "Public Access"
+## Public and Private Buckets + +Storage buckets are private by default. + +For private buckets, you can access objects via the [download](/docs/reference/javascript/storage-from-download) method. This corresponds to `/object/auth/` API endpoint. +Alternatively, you can create a publicly shareable URL with an expiry date using the [createSignedUrl](/docs/reference/javascript/storage-from-createsignedurl) method +which calls the `/object/sign/` API. + +For public buckets, you can access the assets directly without a token or an Authorisation header. The [getPublicUrl](/docs/reference/javascript/storage-from-getpublicurl) +helper method returns the full public URL for an asset. This calls the `/object/public/` API endpoint internally. While no authorization is required for accessing objects in a public bucket, proper [access control](#access-control) is required for other operations like uploading, deleting objects from public buckets as well. + +Public buckets also tend to have [better performance](/docs/guides/storage-cdn#public-vs-private-buckets). + +
+Advanced: reverse proxy +The URLs returned are proxied through the API Proxy. They are prefixed by /storage/v1. + +For example, on the hosted Platform they will be + +https://[project_ref].supabase.co/storage/v1/object/public/[id] + +You can access the storage API directly with the same endpoint. See the API docs for a full list of operations available. + +
+ +--- + +## Access control + +Supabase Storage is integrated with your [Postgres Database](/docs/guides/database). +This means that you can use the same [Row Level Security Policies](/docs/guides/auth#policies) +for managing access to your files. Supabase Storage stores metadata in the `objects` and `buckets` table in the storage schema. To allow read access to files, the RLS policy must allow users to `SELECT` the `objects` table and for uploading a new object, the RLS policy must grant users access to `INSERT` into the `objects` table and so on. The mapping between the different API calls and the database permissions required is documented in the [Reference docs](/docs/reference/javascript/storage-createbucket). + +:::note + +Access control for Storage is mapped to CRUD operations on the `buckets` and `objects` table via RLS policies. + +::: + ## Helpers -Supabase Storage is configured with database SQL helper functions which you can use in your database queries and +Supabase Storage provides SQL helper functions which you can use in your database queries and policies. --- @@ -320,39 +332,9 @@ For example, if your file is stored in `public/subfolder/avatar.png` it would re --- -## Accessing objects +## Policy examples -For private buckets, you can access objects via the [download](/docs/reference/javascript/storage-from-download) method. This corresponds to `/object/auth/` API endpoint. -Alternatively, you can create a publicly shareable URL with an expiry date using the [createSignedUrl](/docs/reference/javascript/storage-from-createsignedurl) method -which calls the `/object/sign/` API. - -For public buckets, you can access the assets directly without a token or an Authorisation header. The [getPublicUrl](/docs/reference/javascript/storage-from-getpublicurl) -helper method returns the full public URL for an asset. This calls the `/object/public/` API endpoint internally. - -
-Advanced: reverse proxy -The URLs returned are proxied through the API Proxy. They are prefixed by /storage/v1. - -For example, on the hosted Platform they will be - -https://[project_ref].supabase.co/storage/v1/object/public/[id] - -You can access the storage API directly with the same endpoint. See the API docs for a full list of operations available. - -
- ---- - -## Security - -Supabase Storage is integrated with your [Postgres Database](/docs/guides/database). -This means that you can use the same [Policy](/docs/guides/auth#policies) engine -for managing access to your files. - -## Policy Examples - -Here are some examples to show you the power of PostgreSQL's Row Level Security. Each policy is attached to a table, and the policy is executed -every time a table is accessed. +Here are some examples of storage policies. ### Allow public access to a bucket @@ -384,15 +366,10 @@ on storage.objects for select using ( auth.uid() = owner ); ``` -## Resources +## See also -- Find the API server on GitHub: [github.com/supabase/storage-api](https://github.com/supabase/storage-api) -- Find the Swagger API Docs online: [supabase.github.io/storage-api](https://supabase.github.io/storage-api) -- Official client libraries documentation: [JavaScript](/docs/reference/javascript/storage-createbucket) and [Dart](/docs/reference/dart/storage-createbucket). -- Community libraries: [github.com/supabase-community](https://github.com/supabase-community) - -## Next steps - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Read more about storage in our [blog post](https://supabase.com/blog/2021/03/30/supabase-storage). -- Sign in: [app.supabase.com](https://app.supabase.com) +- Read more about Supabase Storage in the [blog post](https://supabase.com/blog/supabase-storage) +- [Supabase Storage on GitHub](https://github.com/supabase/storage-api) +- [Swagger API documentation](https://supabase.github.io/storage-api) +- Official [JavaScript](/docs/reference/javascript/storage-createbucket) and [Dart](/docs/reference/dart/storage-createbucket) documentation +- [Community libraries](https://github.com/supabase-community) diff --git a/apps/reference/docs/guides/with-expo.mdx b/apps/reference/docs/guides/with-expo.mdx index 830963dd484..95c7650e9b2 100644 --- a/apps/reference/docs/guides/with-expo.mdx +++ b/apps/reference/docs/guides/with-expo.mdx @@ -138,23 +138,19 @@ Let's start building the React Native app from scratch. ### Initialize a React Native app We can use [`expo`](https://docs.expo.dev/get-started/create-a-new-app/) to initialize -an app called `supabaseReactNative`: +an app called `expo-user-management`: ```bash -#select the "Blank (TypeScript)" template when prompted -expo init supabaseReactNative +npx create-expo-app -t expo-template-blank-typescript expo-user-management -cd supabaseReactNative +cd expo-user-management ``` Then let's install the additional dependencies: [supabase-js](https://github.com/supabase/supabase-js) ```bash -yarn add @supabase/supabase-js -yarn add react-native-elements -yarn add react-native-safe-area-context -yarn add @react-native-async-storage/async-storage -yarn add react-native-url-polyfill +npm install @supabase/supabase-js +npm install react-native-elements @react-native-async-storage/async-storage react-native-url-polyfill ``` Now let's create a helper file to initialize the Supabase client. @@ -162,19 +158,21 @@ We need the API URL and the `anon` key that you copied [earlier](#get-the-api-ke These variables will be exposed on the browser, and that's completely fine since we have [Row Level Security](/docs/guides/auth#row-level-security) enabled on our Database. -```js title="lib/supabase.ts" -import AsyncStorage from '@react-native-async-storage/async-storage'; +```ts title="lib/supabase.ts" +import AsyncStorage from '@react-native-async-storage/async-storage' import { createClient } from '@supabase/supabase-js' const supabaseUrl = YOUR_REACT_NATIVE_SUPABASE_URL const supabaseAnonKey = YOUR_REACT_NATIVE_SUPABASE_ANON_KEY export const supabase = createClient(supabaseUrl, supabaseAnonKey, { - localStorage: AsyncStorage as any, - autoRefreshToken: true, - persistSession: true, - detectSessionInUrl: false, -}); + auth: { + storage: AsyncStorage as any, + autoRefreshToken: true, + persistSession: true, + detectSessionInUrl: false, + }, +}) ``` ### Set up a Login component @@ -182,7 +180,7 @@ export const supabase = createClient(supabaseUrl, supabaseAnonKey, { Let's set up a React Native component to manage logins and sign ups. Users would be able to sign in with their email and password. -```jsx title="components/Auth.tsx" +```tsx title="components/Auth.tsx" import React, { useState } from 'react' import { Alert, StyleSheet, View } from 'react-native' import { supabase } from '../lib/supabase' @@ -195,7 +193,7 @@ export default function Auth() { async function signInWithEmail() { setLoading(true) - const { user, error } = await supabase.auth.signIn({ + const { error } = await supabase.auth.signInWithPassword({ email: email, password: password, }) @@ -206,7 +204,7 @@ export default function Auth() { async function signUpWithEmail() { setLoading(true) - const { user, error } = await supabase.auth.signUp({ + const { error } = await supabase.auth.signUp({ email: email, password: password, }) @@ -278,47 +276,48 @@ After a user is signed in we can allow them to edit their profile details and ma Let's create a new component for that called `Account.tsx`. -```jsx title="components/Account.tsx" -import { useState, useEffect } from "react"; -import { supabase } from "../lib/supabase"; -import { StyleSheet, View, Alert } from "react-native"; -import { Button, Input } from "react-native-elements"; -import { ApiError, Session } from "@supabase/supabase-js"; +```tsx title="components/Account.tsx" +import { useState, useEffect } from 'react' +import { supabase } from '../lib/supabase' +import { StyleSheet, View, Alert } from 'react-native' +import { Button, Input } from 'react-native-elements' +import { Session } from '@supabase/supabase-js' export default function Account({ session }: { session: Session }) { - const [loading, setLoading] = useState(false); - const [username, setUsername] = useState(""); - const [website, setWebsite] = useState(""); - const [avatar_url, setAvatarUrl] = useState(""); + const [loading, setLoading] = useState(true) + const [username, setUsername] = useState('') + const [website, setWebsite] = useState('') + const [avatarUrl, setAvatarUrl] = useState('') useEffect(() => { - if (session) getProfile(); - }, [session]); + if (session) getProfile() + }, [session]) async function getProfile() { try { - setLoading(true); - const user = supabase.auth.user(); - if (!user) throw new Error("No user on the session!"); + setLoading(true) + if (!session?.user) throw new Error('No user on the session!') let { data, error, status } = await supabase - .from("profiles") + .from('profiles') .select(`username, website, avatar_url`) - .eq("id", user.id) - .single(); + .eq('id', session?.user.id) + .single() if (error && status !== 406) { - throw error; + throw error } if (data) { - setUsername(data.username); - setWebsite(data.website); - setAvatarUrl(data.avatar_url); + setUsername(data.username) + setWebsite(data.website) + setAvatarUrl(data.avatar_url) } } catch (error) { - Alert.alert((error as ApiError).message); + if (error instanceof Error) { + Alert.alert(error.message) + } } finally { - setLoading(false); + setLoading(false) } } @@ -327,34 +326,33 @@ export default function Account({ session }: { session: Session }) { website, avatar_url, }: { - username: string; - website: string; - avatar_url: string; + username: string + website: string + avatar_url: string }) { try { - setLoading(true); - const user = supabase.auth.user(); - if (!user) throw new Error("No user on the session!"); + setLoading(true) + if (!session?.user) throw new Error('No user on the session!') const updates = { - id: user.id, + id: session?.user.id, username, website, avatar_url, updated_at: new Date(), - }; + } - let { error } = await supabase - .from("profiles") - .upsert(updates, { returning: "minimal" }); + let { error } = await supabase.from('profiles').upsert(updates) if (error) { - throw error; + throw error } } catch (error) { - Alert.alert((error as ApiError).message); + if (error instanceof Error) { + Alert.alert(error.message) + } } finally { - setLoading(false); + setLoading(false) } } @@ -366,22 +364,24 @@ export default function Account({ session }: { session: Session }) { setUsername(text)} /> setWebsite(text)} />
diff --git a/apps/reference/docs/guides/with-redwoodjs.mdx b/apps/reference/docs/guides/with-redwoodjs.mdx index 792af09bd5b..f05dcaf1ba0 100644 --- a/apps/reference/docs/guides/with-redwoodjs.mdx +++ b/apps/reference/docs/guides/with-redwoodjs.mdx @@ -324,7 +324,7 @@ export default App ``` And one optional step is to update the CSS file `web/src/index.css` to make the app look nice. -You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/react-user-management/src/index.css). +You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/examples/main/supabase-js-v2/user-management/react-user-management/src/index.css). ### Start RedwoodJS and your first Page diff --git a/apps/reference/docs/guides/with-solidjs.mdx b/apps/reference/docs/guides/with-solidjs.mdx index 931de124084..da23c294236 100644 --- a/apps/reference/docs/guides/with-solidjs.mdx +++ b/apps/reference/docs/guides/with-solidjs.mdx @@ -163,7 +163,7 @@ Let's start building the SolidJS app from scratch. We can use [Degit](https://github.com/Rich-Harris/degit) to initialize an app called `supabase-solid`: ```bash -npx degit solidjs/templates/js supabase-solid +npx degit solidjs/templates/ts supabase-solid cd supabase-solid ``` @@ -194,13 +194,13 @@ export const supabase = createClient(supabaseUrl, supabaseAnonKey) ``` And one optional step is to update the CSS file `src/index.css` to make the app look nice. -You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/react-user-management/src/index.css). +You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/examples/main/supabase-js-v2/user-management/solid-user-management/src/index.css). ### Set up a Login component Let's set up a SolidJS component to manage logins and sign ups. We'll use Magic Links, so users can sign in with their email without using passwords. -```jsx title="/src/Auth.jsx" +```jsx title="/src/Auth.tsx" import { createSignal } from 'solid-js' import { supabase } from './supabaseClient' @@ -208,46 +208,46 @@ export default function Auth() { const [loading, setLoading] = createSignal(false) const [email, setEmail] = createSignal('') - const handleLogin = async (e) => { + const handleLogin = async (e: SubmitEvent) => { e.preventDefault() try { setLoading(true) - const { error } = await supabase.auth.signIn({ email: email() }) + const { error } = await supabase.auth.signInWithOtp({ email: email() }) if (error) throw error alert('Check your email for the login link!') } catch (error) { - alert(error.error_description || error.message) + if (error instanceof Error) { + alert(error.message) + } } finally { setLoading(false) } } return ( -
-
-

Supabase + SolidJS

-

- Sign in via magic link with your email below -

- {loading() ? ( - 'Sending magic link...' - ) : ( -
- +
+
+

Supabase + SolidJS

+

Sign in via magic link with your email below

+ +
+ setEmail(e.target.value)} + onChange={(e) => setEmail(e.currentTarget.value)} /> -
+
+ - - )} +
+
) @@ -258,27 +258,31 @@ export default function Auth() { After a user is signed in we can allow them to edit their profile details and manage their account. -Let's create a new component for that called `Account.js`. +Let's create a new component for that called `Account.tsx`. -```jsx title="src/Account.jsx" -import { createSignal, createEffect } from 'solid-js' +```jsx title="src/Account.tsx" +import { AuthSession } from '@supabase/supabase-js' +import { Component, createEffect, createSignal } from 'solid-js' import { supabase } from './supabaseClient' -const Account = (props) => { +interface Props { + session: AuthSession; +} + +const Account: Component = ({ session }) => { const [loading, setLoading] = createSignal(true) - const [username, setUsername] = createSignal(null) - const [website, setWebsite] = createSignal(null) - const [avatar_url, setAvatarUrl] = createSignal(null) + const [username, setUsername] = (createSignal < string) | (null > null) + const [website, setWebsite] = (createSignal < string) | (null > null) + const [avatarUrl, setAvatarUrl] = (createSignal < string) | (null > null) createEffect(() => { - props.session getProfile() }) const getProfile = async () => { try { setLoading(true) - const user = supabase.auth.user() + const { user } = session let { data, error, status } = await supabase .from('profiles') @@ -296,36 +300,38 @@ const Account = (props) => { setAvatarUrl(data.avatar_url) } } catch (error) { - alert(error.message) + if (error instanceof Error) { + alert(error.message) + } } finally { setLoading(false) } } - const updateProfile = async (e) => { + const updateProfile = async (e: Event) => { e.preventDefault() try { setLoading(true) - const user = supabase.auth.user() + const { user } = session const updates = { id: user.id, username: username(), website: website(), - avatar_url: avatar_url(), - updated_at: new Date(), + avatar_url: avatarUrl(), + updated_at: new Date().toISOString(), } - let { error } = await supabase.from('profiles').upsert(updates, { - returning: 'minimal', // Don't return the value after inserting - }) + let { error } = await supabase.from('profiles').upsert(updates) if (error) { throw error } } catch (error) { - alert(error.message) + if (error instanceof Error) { + alert(error.message) + } } finally { setLoading(false) } @@ -333,47 +339,43 @@ const Account = (props) => { return (
- {loading() ? ( - 'Saving ...' - ) : ( -
-
Email: {props.session.user.email}
-
- - setUsername(e.target.value)} - /> -
-
- - setWebsite(e.target.value)} - /> -
-
- -
-
- )} - +
+
Email: {session.user.email}
+
+ + setUsername(e.currentTarget.value)} + /> +
+
+ + setWebsite(e.currentTarget.value)} + /> +
+
+ +
+ +
) } @@ -383,20 +385,22 @@ export default Account ### Launch! -Now that we have all the components in place, let's update `App.js`: +Now that we have all the components in place, let's update `App.tsx`: -```jsx title="src/App.jsx" -import './index.css' -import { createSignal, createEffect } from 'solid-js' +```jsx title="src/App.tsx" +import { Component, createEffect, createSignal } from 'solid-js' import { supabase } from './supabaseClient' -import Auth from './Auth' +import { AuthSession } from '@supabase/supabase-js' import Account from './Account' +import Auth from './Auth' -export default () => { - const [session, setSession] = createSignal(null) +const App: Component = () => { + const [session, setSession] = createSignal(null) createEffect(() => { - setSession(supabase.auth.session()) + supabase.auth.getSession().then(({ data: { session } }) => { + setSession(session) + }) supabase.auth.onAuthStateChange((_event, session) => { setSession(session) @@ -404,15 +408,13 @@ export default () => { }) return ( -
- {!session() ? ( - - ) : ( - - )} +
+ {!session() ? : }
) } + +export default App ``` Once that's done, run this in a terminal window: @@ -433,49 +435,54 @@ Every Supabase project is configured with [Storage](/docs/guides/storage) for ma Let's create an avatar for the user so that they can upload a profile photo. We can start by creating a new component: -```jsx title="src/Avatar.jsx" -import { createEffect, createSignal } from 'solid-js' +```jsx title="src/Avatar.tsx" +import { Component, createEffect, createSignal, JSX } from 'solid-js' import { supabase } from './supabaseClient' -export default (props) => { - const [avatarUrl, setAvatarUrl] = createSignal(null) +interface Props { + size: number + url: string | null + onUpload: (event: Event, filePath: string) => void +} + +const Avatar: Component = (props) => { + const [avatarUrl, setAvatarUrl] = createSignal(null) const [uploading, setUploading] = createSignal(false) createEffect(() => { - if (props.url()) downloadImage(props.url()) + if (props.url) downloadImage(props.url) }) - const downloadImage = async (path) => { + const downloadImage = async (path: string) => { try { - const { data, error } = await supabase.storage - .from('avatars') - .download(path) + const { data, error } = await supabase.storage.from('avatars').download(path) if (error) { throw error } const url = URL.createObjectURL(data) setAvatarUrl(url) } catch (error) { - console.log('Error downloading image: ', error.message) + if (error instanceof Error) { + console.log('Error downloading image: ', error.message) + } } } - const uploadAvatar = async (event) => { + const uploadAvatar: JSX.EventHandler = async (event) => { try { setUploading(true) - if (!event.target.files || event.target.files.length === 0) { + const target = event.currentTarget + if (!target?.files || target.files.length === 0) { throw new Error('You must select an image to upload.') } - const file = event.target.files[0] + const file = target.files[0] const fileExt = file.name.split('.').pop() const fileName = `${Math.random()}.${fileExt}` const filePath = `${fileName}` - let { error: uploadError } = await supabase.storage - .from('avatars') - .upload(filePath, file) + let { error: uploadError } = await supabase.storage.from('avatars').upload(filePath, file) if (uploadError) { throw uploadError @@ -483,7 +490,9 @@ export default (props) => { props.onUpload(event, filePath) } catch (error) { - alert(error.message) + if (error instanceof Error) { + alert(error.message) + } } finally { setUploading(false) } @@ -491,56 +500,57 @@ export default (props) => { return (
- {avatarUrl() - {uploading() ? ( - 'Uploading...' + {avatarUrl() ? ( + {avatarUrl() ) : ( - <> - - - - - +
)} +
+ + + + +
) } + +export default Avatar ``` ### Add the new widget And then we can add the widget to the Account page: -```jsx title="src/Account.jsx" +```jsx title="src/Account.tsx" // Import the new component import Avatar from './Avatar' // ... return ( -
+
{/* Add to the body */} { + onUpload={(e: Event, url: string) => { setAvatarUrl(url) updateProfile(e) }} diff --git a/apps/reference/docs/guides/with-svelte.mdx b/apps/reference/docs/guides/with-svelte.mdx index cdba2019e3f..cae5b2d5f05 100644 --- a/apps/reference/docs/guides/with-svelte.mdx +++ b/apps/reference/docs/guides/with-svelte.mdx @@ -24,7 +24,7 @@ By the end of this guide you'll have an app which allows users to login and upda ### GitHub -Whenever you get stuck at any point, take a look at [this repo](https://github.com/yustarandomname/svelte-supabase-quickstart). +Whenever you get stuck at any point, take a look at [this repo](https://github.com/supabase/examples/tree/main/supabase-js-v2/user-management/svelte-user-management). ## Project set up @@ -143,12 +143,12 @@ Let's start building the Svelte app from scratch. ### Initialize a Svelte app -We can use the [Quickstart Svelte Template](https://svelte.dev/blog/the-easiest-way-to-get-started) to initialize -an app called `supabase-svelte`: +We can use the Vite Svelte TypeScript Template to initialize an app called `supabase-svelte`: ```bash -npx degit sveltejs/template supabase-svelte +npm create vite@latest supabase-svelte -- --template svelte-ts cd supabase-svelte +npm install ``` Then let's install the only additional dependency: [supabase-js](https://github.com/supabase/supabase-js) @@ -161,141 +161,112 @@ And finally we want to save the environment variables in a `.env`. All we need are the API URL and the `anon` key that you copied [earlier](#get-the-api-keys). ```bash title=".env" -SVELTE_APP_SUPABASE_URL=YOUR_SUPABASE_URL -SVELTE_APP_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY -``` - -Our app is almost functional, to make svelte work with supabase and .env files we first need to change the `rollup.config.js` file a bit. -Supabase imports `json` files, to convert .json files to ES6 modules we need the `@rollup/plugin-json` install it by running: - -```bash - npm install --save-dev @rollup/plugin-json -``` - -Furthermore, to use the .env with svelte we need another rollup plugin. Install: - -```bash - npm install --save-dev dotenv @rollup/plugin-replace -``` - -and add these plugins to the `rollup.config.js` file. - -```js title="rollup.config.js" -import { config } from 'dotenv' -import replace from '@rollup/plugin-replace' -import json from '@rollup/plugin-json' - -export default { - plugins: [ - replace({ - __api: JSON.stringify({ - env: { - isProd: production, - ...config().parsed, // attached the .env config - }, - }), - delimiters: ['', ''], - }), - json(), - // ... - ], - // ... -} +VITE_SUPABASE_URL=YOUR_SUPABASE_URL +VITE_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY ``` Now that we have the API credentials in place, let's create a helper file to initialize the Supabase client. These variables will be exposed on the browser, and that's completely fine since we have [Row Level Security](/docs/guides/auth#row-level-security) enabled on our Database. -```js title="src/supabaseClient.js" +```js title="src/supabaseClient.ts" import { createClient } from '@supabase/supabase-js' -const supabaseUrl = __api.env.SVELTE_APP_SUPABASE_URL -const supabaseAnonKey = __api.env.SVELTE_APP_SUPABASE_ANON_KEY +const supabaseUrl = import.meta.env.VITE_SUPABASE_URL +const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY export const supabase = createClient(supabaseUrl, supabaseAnonKey) ``` -And one optional step is to update the CSS file `public/global.css` to make the app look nice. -You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/react-user-management/src/index.css). +And one optional step is to update the CSS file `src/app.css` to make the app look nice. +You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/examples/main/supabase-js-v2/user-management/svelte-user-management/src/app.css). ### Set up a Login component Let's set up a Svelte component to manage logins and sign ups. We'll use Magic Links, so users can sign in with their email without using passwords. -```html title="/src/Auth.svelte" - - -
+
+

Supabase + Svelte

Sign in via magic link with your email below

-
- -
-
- -
+ +
+ + +
+
+ +
+
- -``` - -### User store - -To access the user information in other places, we use a writable store. Create a new file called `sessionStore.js` - -```javascript title="src/sessionStore.js" -import { writable } from 'svelte/store' - -export const user = writable(false) +
``` ### Account page After a user is signed in we can allow them to edit their profile details and manage their account. -Let's create a new component for that called `Profile.svelte`. +Let's create a new component for that called `Account.svelte`. -```html title="src/Profile.svelte" - -
-
- - -
+ +
Email: {session.user.email}
- +
- +
-
- -
- -
-
+
``` @@ -387,24 +340,31 @@ Let's create a new component for that called `Profile.svelte`. Now that we have all the components in place, let's update `App.svelte`: ```html title="src/App.svelte" - -
- {#if $user} - - {:else} +
+ {#if !session} + {:else} + {/if}
``` @@ -415,9 +375,9 @@ Once that's done, run this in a terminal window: npm run dev ``` -And then open the browser to [localhost:5000](http://localhost:5000) and you should see the completed app. +And then open the browser to [localhost:5173](http://localhost:5173) and you should see the completed app. -> ⚠️ WARNING: Svelte uses by default `port 5000`, Supabase uses `port 3000`. To change the redirection port for supabase go to: `Authentication > Settings` and change the `Site Url` to `localhost:5000` +> ⚠️ WARNING: Svelte uses Vite and the default port is `5173`, Supabase uses `port 3000`. To change the redirection port for supabase go to: `Authentication > Settings` and change the `Site Url` to `localhost:5173` ![Supabase Svelte](/img/supabase-svelte-demo.png) @@ -429,34 +389,40 @@ Every Supabase project is configured with [Storage](/docs/guides/storage) for ma Let's create an avatar for the user so that they can upload a profile photo. We can start by creating a new component: -```html title="src/Avatar.svelte" - -
- {#if path} - Avatar - {:else} -
+
+ {#if avatarUrl} {avatarUrl {:else} +
{/if} - -
+
- + + +
``` @@ -519,19 +483,15 @@ Let's create an avatar for the user so that they can upload a profile photo. We And then we can add the widget to the Account page: -```html title="src/Profile.svelte" - -
+ - + diff --git a/apps/reference/docs/guides/with-sveltekit.mdx b/apps/reference/docs/guides/with-sveltekit.mdx index 47d16fe4fda..fb3374561ae 100644 --- a/apps/reference/docs/guides/with-sveltekit.mdx +++ b/apps/reference/docs/guides/with-sveltekit.mdx @@ -147,7 +147,7 @@ We can use the [SvelteKit Skeleton Project](https://kit.svelte.dev/docs) to init an app called `supabase-sveltekit` (for this tutorial you do not need TypeScript, ESLint, Prettier, or Playwright): ```bash -npm create svelte supabase-sveltekit +npm init svelte@next supabase-sveltekit cd supabase-sveltekit npm install ``` @@ -179,7 +179,7 @@ export const supabase = createClient(supabaseUrl, supabaseAnonKey) ``` And one optional step is to update the CSS file `public/global.css` to make the app look nice. -You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/react-user-management/src/index.css). +You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/examples/main/supabase-js-v2/user-management/svelte-user-management/src/app.css). ### Set up a Login component @@ -251,28 +251,28 @@ Let's create a new component for that called `Profile.svelte`. let website = null let avatar_url = null - function getProfile(node: HTMLElement) { - try { - loading = true; - const user = supabase.auth.user(); + function getProfile(node) { + try { + loading = true + const user = supabase.auth.user() - supabase - .from("profiles") - .select(`username, website, avatar_url`) - .eq("id", user?.id) - .single() - .then(({ data, error, status }) => { - if (data) { - username = data.username; - website = data.website; - avatar_url = data.avatar_url; - } - if (error && status !== 406) throw error; - }); - } catch (error: any) { - alert(error.message); + supabase + .from('profiles') + .select(`username, website, avatar_url`) + .eq('id', user?.id) + .single() + .then(({ data, error, status }) => { + if (data) { + username = data.username + website = data.website + avatar_url = data.avatar_url + } + if (error && status !== 406) throw error + }) + } catch (error) { + alert(error.message) } finally { - loading = false; + loading = false } } @@ -311,7 +311,6 @@ Let's create a new component for that called `Profile.svelte`. } finally { loading = false } - } @@ -348,9 +347,9 @@ Let's create a new component for that called `Profile.svelte`. ### Launch! -Now that we have all the components in place, let's update `src/routes/index.svelte`: +Now that we have all the components in place, let's update `src/routes/+page.svelte`: -```html title="src/routes/index.svelte" +```html title="src/routes/+page.svelte" + //or - + ``` ## Python diff --git a/apps/temp-docs/docs/reference/javascript/installing.mdx b/apps/temp-docs/docs/reference/javascript/installing.mdx index aeb6b0fff5a..80d1b5cf909 100644 --- a/apps/temp-docs/docs/reference/javascript/installing.mdx +++ b/apps/temp-docs/docs/reference/javascript/installing.mdx @@ -28,9 +28,9 @@ Find the source code on [GitHub](https://github.com/supabase/supabase-js). Or via CDN ```js - + //or - + ``` ## Python diff --git a/apps/temp-docs/package.json b/apps/temp-docs/package.json index 3711e02d53e..33890db73b0 100644 --- a/apps/temp-docs/package.json +++ b/apps/temp-docs/package.json @@ -1,5 +1,5 @@ { - "name": "docs", + "name": "temp-docs", "version": "0.0.0", "private": true, "scripts": { @@ -9,6 +9,7 @@ "lint": "next lint" }, "dependencies": { + "config": "*", "@apollo/client": "^3.6.6", "@mdx-js/loader": "^1.6.22", "@mdx-js/react": "^1.6.22", @@ -33,12 +34,12 @@ "remark-prism": "^1.3.6" }, "devDependencies": { + "config": "*", + "tsconfig": "*", "@types/node": "^17.0.12", "@types/react": "17.0.39", - "config": "*", "eslint": "8.9.0", "next-transpile-modules": "9.0.0", - "tsconfig": "*", "typescript": "^4.5.3" } } diff --git a/apps/www/_alternatives/supabase-vs-firebase.mdx b/apps/www/_alternatives/supabase-vs-firebase.mdx index 20355efa97a..96171b30a95 100644 --- a/apps/www/_alternatives/supabase-vs-firebase.mdx +++ b/apps/www/_alternatives/supabase-vs-firebase.mdx @@ -60,10 +60,10 @@ We created a benchmarking repo where you can compare the performance of both ser ## How do I migrate from Firebase to Supabase? -Since Firebase is document based, migrating into a relational database requires you to map your data structure across into a SQL schema. Luckily we’ve built a [handy conversion tool to do it for you](https://github.com/supabase-community/firebase-to-supabase/tree/main/firestore). +Since Firebase is document based, migrating into a relational database requires you to map your data structure across into a SQL schema. Luckily we’ve built a [handy conversion tool to do it for you](https://supabase.com/docs/guides/migrations/firestore-data). -We also have a tool for [migrating Firebase Auth to Supabase Auth](https://github.com/supabase-community/firebase-to-supabase/tree/main/auth). And one for [migrating Firebase Storage files to Supabase Storage](https://github.com/supabase-community/firebase-to-supabase/tree/main/storage). +We also have guides and tools for [migrating Firebase Auth to Supabase Auth](https://supabase.com/docs/guides/migrations/firebase-auth) for [migrating Firebase Storage files to Supabase Storage](https://supabase.com/docs/guides/migrations/firebase-storage). These are by far the most complete Firebase to Postgres migration tools available anywhere on the web. -You can [try Supabase for free](https://app.supabase.io). If you require Enterprise level support with your project or migration, please get in touch using our [Enterprise contact form](https://supabase.com/contact/enterprise). +You can [try Supabase for free](https://app.supabase.com). If you require Enterprise level support with your project or migration, please get in touch using our [Enterprise contact form](https://supabase.com/contact/enterprise). diff --git a/apps/www/_alternatives/supabase-vs-heroku-postgres.mdx b/apps/www/_alternatives/supabase-vs-heroku-postgres.mdx index b1fa67553dc..c25b9e4f414 100644 --- a/apps/www/_alternatives/supabase-vs-heroku-postgres.mdx +++ b/apps/www/_alternatives/supabase-vs-heroku-postgres.mdx @@ -10,7 +10,8 @@ toc_depth: 3 ## What is Heroku Postgres? -Heroku is a cloud application platform that offers managed PostgreSQL as a service. They offer 5 levels of Postgres support from the Hobby Tier up to the Shield Tier, each with different levels of features and pricing. +Heroku is a cloud application platform that offers managed PostgreSQL as a service. They offer 5 levels of Postgres support from the Hobby Tier up to the Shield Tier, each with different levels of features and pricing. Heroku announced that starting November 28, 2022, they will [stop offering free product plans and will shut down free dynos and data services](https://blog.heroku.com/next-chapter). Since the announcement, developers started migrating their projects to Supabase. + ## What is Supabase? @@ -31,7 +32,7 @@ Heroku Postgres and Supabase both offer: - SLAs and Enterprise-grade support packages - Direct SSL connections to Postgres - Postgres Extensions (see [Supabase Extensions](https://supabase.com/docs/guides/database/extensions), [Heroku Extensions](https://devcenter.heroku.com/articles/heroku-postgres-extensions-postgis-full-text-search)) -- [Backups and PITR](https://supabase.com/blog/2020/08/02/continuous-postgresql-backup-walg) +- [Backups and PITR](https://supabase.com/blog/continuous-postgresql-backup-walg) - [Postgres logs](https://supabase.com/docs/guides/platform/logs) - Encryption-at-rest @@ -70,4 +71,4 @@ You may have strict data regulations that you must comply with, so choosing your ## How to migrate from Heroku Postgres to Supabase -Migrating is surprisingly simple. You just need to use the standard Postgres `pg_dump` and `pg_restore` tools to dump and restore from a backup. We created a handy guide for [migrating from heroku to supabase](https://github.com/supabase-community/heroku-to-supabase). +Migrating is surprisingly simple. You just need to use the standard Postgres `pg_dump` and `psql` tools to export your Heroku database and import to Supabase. We created a handy guide for [migrating from Heroku to Supabase](https://supabase.com/docs/guides/migrations/heroku). diff --git a/apps/www/_blog/2020-06-01-supabase-alpha-may-2020.mdx b/apps/www/_blog/2020-06-01-supabase-alpha-may-2020.mdx index caca26bb98a..7899965f87d 100644 --- a/apps/www/_blog/2020-06-01-supabase-alpha-may-2020.mdx +++ b/apps/www/_blog/2020-06-01-supabase-alpha-may-2020.mdx @@ -13,8 +13,6 @@ date: '06-01-2020' It has been a monster month at [Supabase](/) and we're back with a video update. It's a longer video this month because we have a couple of housekeeping items. - - - ## Open source Right now, Logflare works natively with Big Query. But as our track record has proven, we're 100% committed to open source. We're working on the future of a fully open-source version of Logflare, with support for various storage engines. @@ -125,5 +124,3 @@ Right now, Logflare works natively with Big Query. But as our track record has p If you're an existing Logflare user, we'll be migrating everything to Supabase in the coming months. We'll work closely with you to ensure that the transition is seamless, and introduce the same [pricing levels](https://logflare.app/pricing) that Logflare offers today. We've worked with Chase on a list of potential questions you might have about the transition. If you have any concerns or questions, you can reach out to support@supabase.io. - - diff --git a/apps/www/_blog/2021-12-03-supabase-holiday-hackdays-hackathon.mdx b/apps/www/_blog/2021-12-03-supabase-holiday-hackdays-hackathon.mdx index 89d4339c0f7..74f8b0e9be1 100644 --- a/apps/www/_blog/2021-12-03-supabase-holiday-hackdays-hackathon.mdx +++ b/apps/www/_blog/2021-12-03-supabase-holiday-hackdays-hackathon.mdx @@ -34,8 +34,8 @@ The Supabase team will be participating as well, for example [Jon](https://twitt ### Rules diff --git a/apps/www/_blog/2022-01-20-product-hunt-golden-kitty-awards-2021.mdx b/apps/www/_blog/2022-01-20-product-hunt-golden-kitty-awards-2021.mdx index e78eaacbbcd..efe0163a765 100644 --- a/apps/www/_blog/2022-01-20-product-hunt-golden-kitty-awards-2021.mdx +++ b/apps/www/_blog/2022-01-20-product-hunt-golden-kitty-awards-2021.mdx @@ -17,12 +17,10 @@ Last week [Supabase UI](https://ui.supabase.com/), our open-source UI component ### Python Upgrades @@ -138,7 +139,7 @@ We're having a 24/7\*365 meme-fest on [Twitter](https://twitter.com/supabase) invest in good relationships pic.twitter.com/bGiBE7FRFQ

— Supabase (@supabase) December 28, 2021 - {' '} + ### TikTok diff --git a/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx b/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx index da70c2b978c..8615f4d2e40 100644 --- a/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx +++ b/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx @@ -95,12 +95,12 @@ type AccountHolder { It’s all anyone seems to be [talking about](https://twitter.com/jkup/status/1456360115205033989). We genuinely love what [Remix](https://remix.run/) are doing, so it’s only right that we show off how Remix and Supabase work well together. -Check out the new [Remix Auth example](https://github.com/supabase/supabase/tree/master/examples/remix-auth), and let us know what you think. +Check out the new [Remix Auth example](https://github.com/supabase/examples/tree/main/supabase-js-v1/auth/remix-auth), and let us know what you think. ### Expo Todo List Our React Native example has been correctly updated to be an Expo example. -[Check it out here](https://github.com/supabase/supabase/tree/master/examples/todo-list/expo-todo-list). +[Check it out here](https://github.com/supabase/examples/tree/main/supabase-js-v1/todo-list/expo-todo-list). ## Video: API requests with Database Webhooks diff --git a/apps/www/_blog/2022-03-08-audit.mdx b/apps/www/_blog/2022-03-08-audit.mdx index f067d7f8df5..88993d48113 100644 --- a/apps/www/_blog/2022-03-08-audit.mdx +++ b/apps/www/_blog/2022-03-08-audit.mdx @@ -116,9 +116,9 @@ create table audit.record_version(
Postgres version compatibility

- The table above uses PostgreSQL's built-in{' '} - uuid functionality, which - is available from version 14. For backwards compatibility you can use the uuid-ossp extension. + The table above uses PostgreSQL's built-in + uuid functionality, which is + available from version 14. For backwards compatibility you can use the uuid-ossp extension.

create extension if not exists "uuid-ossp"; diff --git a/apps/www/_blog/2022-03-28-community-day.mdx b/apps/www/_blog/2022-03-28-community-day-lw4.mdx similarity index 100% rename from apps/www/_blog/2022-03-28-community-day.mdx rename to apps/www/_blog/2022-03-28-community-day-lw4.mdx diff --git a/apps/www/_blog/2022-03-30-supabase-enterprise.mdx b/apps/www/_blog/2022-03-30-supabase-enterprise.mdx index 19cf7d32e88..9badebddea9 100644 --- a/apps/www/_blog/2022-03-30-supabase-enterprise.mdx +++ b/apps/www/_blog/2022-03-30-supabase-enterprise.mdx @@ -200,8 +200,6 @@ With the release of our new Enterprise Tier, we're announcing a tonne of new fea ### Point-in-Time Recovery - - Disaster Recovery is a critical process for any company, even for the most fault-tolerant products. What happens when you accidentally delete that database column because of a clumsy `where` clause? Even with Supabase's daily backups, a day's worth of data can be lost if disaster strikes at the most inopportune time. @@ -219,8 +217,6 @@ If you want access to the Prometheus Endpoint, [contact the Supabase Enterprise ### SLAs & Enterprise Support - - For our enterprise customers we know that service level agreements and support response times are also critical features. We continue to treat support as an important priority for all tiers, though enterprise users require confidence that our response times meet their business needs. We now offer faster response times for Enterprise customers, alongside Priority and Priority Plus support packages for those who need more comprehensive support. You can find further details around our SLAs & support @@ -239,8 +235,7 @@ We have a lot more Enterprise features under development, available to early-acc ### SOC2 -We are actively working towards our SOC2 Type II certification by monitoring and patching alerts raised by our security monitoring platform. -SOC2 covers a wide spectrum of potential security areas and achieving SOC2 would also ease compliance with other major certifications like ISO-27001 and HIPAA. +Supabase is now SOC2 Type 1 compliant, as announced during Launch Week 5. You can read all about the process we went through to get there in this [blog post](https://supabase.com/blog/supabase-soc2). Getting the Type 1 certification is just the start, and we will be working on getting certified for SOC2 Type 2 and HIPAA next. ### Log ingestion diff --git a/apps/www/_blog/2022-03-31-supabase-edge-functions.mdx b/apps/www/_blog/2022-03-31-supabase-edge-functions.mdx index fe17cc6ef21..17965805b2a 100644 --- a/apps/www/_blog/2022-03-31-supabase-edge-functions.mdx +++ b/apps/www/_blog/2022-03-31-supabase-edge-functions.mdx @@ -98,7 +98,7 @@ Our observability pipeline has been built [using Logflare](https://supabase.com/ ![new —> deploy —> invoke —> logs](/images/blog/launch-week-4/thursday-functions/functions-new-deploy-invoke-logs.gif) new —> deploy —> invoke —> logs -To round off the end-to-end experience, `supabase-js` now works in Deno, making it easy to interact with the rest of your Supabase project from within your Edge Functions. Your project's URLs, API keys, and database connection strings are made available as environment variables within your Function to make this even easier. And if you want to interact with third-party APIs which require a secret key, such as Stripe, you can easily and securely make these available to your Function as environment variables via the Supabase CLI. To get an idea for what is possible, check out our examples page [here](https://github.com/supabase/supabase/tree/master/examples/edge-functions). +To round off the end-to-end experience, `supabase-js` now works in Deno, making it easy to interact with the rest of your Supabase project from within your Edge Functions. Your project's URLs, API keys, and database connection strings are made available as environment variables within your Function to make this even easier. And if you want to interact with third-party APIs which require a secret key, such as Stripe, you can easily and securely make these available to your Function as environment variables via the Supabase CLI. To get an idea for what is possible, check out our examples page [here](https://github.com/supabase/examples/tree/main/supabase-js-v1/edge-functions). ## Quickstart diff --git a/apps/www/_blog/2022-04-01-hackathon-bring-the-func.mdx b/apps/www/_blog/2022-04-01-hackathon-bring-the-func.mdx index 31ab4628aae..a77bde33aa4 100644 --- a/apps/www/_blog/2022-04-01-hackathon-bring-the-func.mdx +++ b/apps/www/_blog/2022-04-01-hackathon-bring-the-func.mdx @@ -38,9 +38,8 @@ Finally, we're delighted to be partnering with [the Future Forest Company](https

@@ -91,12 +90,11 @@ We'll be contacting and announcing winners [on Twitter](https://twitter.com/supa {' '} + ### Rules @@ -132,7 +130,7 @@ Here's a collection of resources that will help you get started building with Su - [Edge Functions Guide](https://supabase.com/docs/guides/functions) - [Edge Functions Quickstart video](https://youtu.be/rzglqRdZUQE) - [Supabase CLI local development guide](https://supabase.com/docs/guides/local-development) -- [Edge Functions examples](https://github.com/supabase/supabase/tree/master/examples/edge-functions) +- [Edge Functions examples](https://github.com/supabase/examples/tree/main/supabase-js-v1/edge-functions) ### Additional Info diff --git a/apps/www/_blog/2022-04-18-bring-the-func-hackathon-winners.mdx b/apps/www/_blog/2022-04-18-bring-the-func-hackathon-winners.mdx index 603cb16ea8f..249fa8b6ea1 100644 --- a/apps/www/_blog/2022-04-18-bring-the-func-hackathon-winners.mdx +++ b/apps/www/_blog/2022-04-18-bring-the-func-hackathon-winners.mdx @@ -99,6 +99,6 @@ If you're inspired to build, check out some of the latest resources: - [Edge Functions Guide](https://supabase.com/docs/guides/functions) - [Edge Functions Quickstart video](https://youtu.be/rzglqRdZUQE) - [Supabase CLI local development guide](https://supabase.com/docs/guides/local-development) -- [Edge Functions examples](https://github.com/supabase/supabase/tree/master/examples/edge-functions) +- [Edge Functions examples](https://github.com/supabase/examples/tree/main/supabase-js-v1/edge-functions) [^1]: Updated on June 14 2022 for search optimization: Removed links as account does not exist anymore on GitHub diff --git a/apps/www/_blog/2022-06-07-beta-update-may-2022.mdx b/apps/www/_blog/2022-06-07-beta-update-may-2022.mdx index c3b70e34898..8651a209a51 100644 --- a/apps/www/_blog/2022-06-07-beta-update-may-2022.mdx +++ b/apps/www/_blog/2022-06-07-beta-update-may-2022.mdx @@ -20,9 +20,9 @@ Wildcard redirects are especially useful for Jamstack platforms with preview dep ## Supabase Edge functions with Webhooks -Now you can deploy functions with optional JWT verification. This makes it easier to trigger Edge Functions with webhooks. Use the -no-verify-jwt flag when deploying your functions via the CLI to enable this mode. You can test this out with our [Edge Functions Telegram Bot example](https://github.com/supabase/supabase/tree/master/examples/edge-functions/supabase/functions/telegram-bot). +Now you can deploy functions with optional JWT verification. This makes it easier to trigger Edge Functions with webhooks. Use the -no-verify-jwt flag when deploying your functions via the CLI to enable this mode. You can test this out with our [Edge Functions Telegram Bot example](https://github.com/supabase/examples/tree/main/supabase-js-v1/edge-functions/supabase/functions/telegram-bot). -[![graphql](/images/blog/2022-may/stripe-webhook.jpg)](https://github.com/supabase/supabase/tree/master/examples/edge-functions/supabase/functions/telegram-bot) +[![graphql](/images/blog/2022-may/stripe-webhook.jpg)](https://github.com/supabase/examples/tree/main/supabase-js-v1/edge-functions/supabase/functions/telegram-bot) ## Metrics for everybody @@ -39,7 +39,7 @@ The Policy editor now includes a “Target roles” field. We now have a strong ## State of DB 2022 Basedash conducted a survey that takes the pulse of the current databases that teams, individuals, startups, enterprises and hobbyists are using. - + Supabase was listed in two categories, including the first place in satisfaction for hosting providers (84% of users would use us again 🙏). [Full results](https://stateofdb.com/). [![secret scanning](/images/blog/2022-may/databasesurvey.jpg)](https://stateofdb.com/) @@ -67,7 +67,7 @@ There is an opportunity to work inside the growth team at Supabase. It's still a ### Deepnote Deepnote is a data notebook that’s built for collaboration — Jupyter compatible, works magically in the cloud, and sharing is as easy as sending a link. - + You can connect your Supabase Postgres Database to your Deepnote notebooks to quickly analyze data and share your findings with others. [Check out the guide](https://docs.deepnote.com/integrations/supabase). [![supabrew](/images/blog/2022-may/graph.jpg)](https://docs.deepnote.com/integrations/supabase) diff --git a/apps/www/_blog/2022-06-29-visualizing-supabase-data-using-metabase.mdx b/apps/www/_blog/2022-06-29-visualizing-supabase-data-using-metabase.mdx index 62931872587..c7a6a0d2b4a 100644 --- a/apps/www/_blog/2022-06-29-visualizing-supabase-data-using-metabase.mdx +++ b/apps/www/_blog/2022-06-29-visualizing-supabase-data-using-metabase.mdx @@ -34,7 +34,7 @@ To take advantage of the open-source version of Metabase, you can use the Metaba ### Launching Metabase -To launch Metabase, simply go to "" which is the default port that the Metabase server will be listening to. +To launch Metabase, simply go to [http://localhost:3000/setup/](http://localhost:3000/setup/) which is the default port that the Metabase server will be listening to. After Metabase is launched, select your preferred language and add your contact information. In the _Add your data_ markdown, you will need to choose PostgreSQL. @@ -135,6 +135,7 @@ With our [free tier Supabase account](https://app.supabase.com/), you can start If you have any questions please reach out via [Twitter](https://twitter.com/supabase) or join our [Discord](https://discord.supabase.com). ## More Python and Supabase resources + - [supabase-py](https://github.com/supabase-community/supabase-py) -- [Slack Consolidate: a slackbot built with Python and Supabase](blog/slack-consolidate-slackbot-to-consolidate-messages) +- [Slack Consolidate: a slackbot built with Python and Supabase](slack-consolidate-slackbot-to-consolidate-messages) - [Supabase-py (Database) on Replit](https://replit.com/@Supabase/Supabase-py-Database?v=1) diff --git a/apps/www/_blog/2022-08-10-launch-week-5-hackathon.mdx b/apps/www/_blog/2022-08-10-launch-week-5-hackathon.mdx index 39306948312..818acc5081d 100644 --- a/apps/www/_blog/2022-08-10-launch-week-5-hackathon.mdx +++ b/apps/www/_blog/2022-08-10-launch-week-5-hackathon.mdx @@ -6,6 +6,7 @@ image: lw5-hackathon/thumbnail.jpg thumb: lw5-hackathon/thumbnail.jpg tags: - launch-week + - hackathon date: '2022-08-10' toc_depth: 3 --- @@ -20,7 +21,7 @@ There's a $1500 GitHub sponsorship and [gold Supabase caps](https://store.supaba [Supabase-js v2.0](https://github.com/supabase/supabase-js/releases) and [Flutter SDK v1.0](https://supabase.com/blog/supabase-flutter-sdk-1-developer-preview) will both be announced during Launch Week, they are both available already and using them in your project will gain extra credit! -You can access the supabase-js pre-release, including the new interface by running `npm install @supabase/supabase-js@next`. +You can access the supabase-js pre-release, including the new interface by running `npm install @supabase/supabase-js@rc`. + + + Watch the CLI team announcing the new features. + + +## Manage organizations, projects, Edge Functions, and more + +If you've used [Supabase Edge Functions](https://supabase.com/blog/supabase-edge-functions#quickstart), you've used the Supabase CLI. We're extending it to let you manage organizations and projects. + +```bash +supabase login +supabase orgs list +supabase projects create my-project --org-id cool-green-pqdr0qc --db-password ******** --region us-east-1 +``` + +Once your new Supabase project is created, use the CLI to link it locally to begin development. + +```bash +supabase link --project-ref +``` + +View the [Supabase CLI docs](https://supabase.com/docs/reference/cli) for the full list of available commands. + +## Schema migrations + +You asked for more database migration support, and we listened. We've made improvements to manually-written migrations and auto generated schema diffs. + +### Schema diff-ing + +Previously we supported schema diff-ing using PgAdmin. We found that the tool did not account for default privileges when generating role grants. This leads to verbose statements when diff-ing complex schema changes. + +To improve the usability of `db diff` command, we are introducing another tool, [migra](https://github.com/djrobstep/migra), via the `--use-migra` experimental flag. We found that `migra` runs faster and produces more concise DDL statements. While the generated scripts are [not perfect](https://supabase.com/blog/supabase-cli#migrations), we hope this tool helps you iterate quicker on your migration scripts. Over time (and with your feedback) we hope to improve schema-diffing to cover all edge-cases. + +```bash +$ supabase db diff --use-migra --file file_name +# Creates a DDL script: supabase/migrations/_file_name.sql +``` + +Running the above command diffs the `public` schema of your local development database against a fresh shadow database. You may specify other schema by passing in the `--schema` flag multiple times or as a comma separate list. More details in our [migration guide](https://supabase.com/docs/guides/cli/cicd-workflow#creating-a-new-migration). + +In the long-term we hope to consolidate on a single diff-ing tool which is perfect, but diff-ing is hard so we would need your help and feedback to improve tooling. + +### Manual migrations + +You can test manual migrations locally without data loss using local branching. Run the following commands to clone your local database to a new branch. + +```bash +supabase db branch new my_branch +supabase db branch switch my_branch +``` + +Now you can run any DDL statements from Studio UI's SQL Editor. To undo the changes, simply switch back and delete the new branch. + +```bash +supabase db branch switch main +supabase db branch delete my_branch +``` + +## CI / CD + +Automating migrations and tests on your CI / CD pipeline gives developers more confidence that each PR contains a working migration script. CLI v1 focuses on both local and [GitHub Actions](https://github.com/supabase/setup-cli) support for the following workflows. + +Test all migrations on a fresh local database: + +```bash +supabase init +supabase start +``` + +Release schema changes to staging and production: + +```bash +$ supabase link --project-ref $PROJECT_ID +$ supabase db push +``` + +We created an [example project](https://github.com/supabase/supabase-action-example) showing how to set up GitHub Actions to test and migrate with Supabase CLI v1. + +## Type generation + +You can now generate TypeScript types using the CLI: + +```bash +# in a project set up with the CLI: +supabase gen types typescript --local +supabase gen types typescript --db-url $SUPABASE_DB_URL +``` + +Of course, the types aren't very useful on its own, you need some way to consume it. For that, stay tuned for tomorrow! 😉 + +## Admin API + +The CLI is the first consumer of our new Admin API. Over the next few weeks, we'll be adding the endpoints needed to programmatically manage your Supabase projects and organizations. This is ideal for CI/CD workflows and spinning up test environments. + +Here's an example of deploying a new project from the command line (generate your access token from the [Supabase Dashboard](https://app.supabase.com/account/tokens)). + +```bash +curl 'https://api.supabase.com/v1/projects' \ + -H 'Authorization: Bearer <[your-access-token](https://app.supabase.com/account/tokens)>' \ + -H "Content-Type: application/json" \ + -d '{"name": "my-project", "organization_id": "cool-green-pqdr0qc", "region": "us-east-1", "plan": "free", "db_pass": "********"}' +``` + +The response JSON will match the example below: + +```json +{ + "id": "abcdefghijklmnopqrst", + "organization_id": "cool-green-pqdr0qc", + "name": "hello", + "region": "us-east-1", + "created_at": "2022-08-12T17:37:11.88819Z" +} +``` + +Check out the [API docs](https://supabase.com/docs/reference/api) to browse all the functionality added so far. + +The new API also opens the door to a whole new suite of integrations, including Zapier, Terraform, Pulumi etc. We're looking forward to seeing how the dev community interacts with these new public endpoints. Try it out and let us know which functionality you'd like to see next. + +## More Launch Week 5 + +- [Launch Week Page](https://supabase.com/launch-week) +- [Launch Week 5 Hackathon](https://supabase.com/blog/launch-week-5-hackathon) +- [Supabase Series B](https://supabase.com/blog/supabase-series-b) +- [Open Source at Supabase - Founders Fireside Chat](https://www.youtube.com/watch?v=4t_63HT3rZY) +- [Day 2 - supabase-js v2 Release Candidate](https://supabase.com/blog/supabase-js-v2) +- [Youtube Video - supabase-js v2 Release Candidate](https://www.youtube.com/watch?v=iqZlPtl_b-I) +- [Day 3 - Supabase is SOC2 compliant](https://supabase.com/blog/supabase-soc2) +- [Youtube video - Security Day](https://www.youtube.com/watch?v=6bGQotxisoY) diff --git a/apps/www/_blog/2022-08-16-supabase-js-v2.mdx b/apps/www/_blog/2022-08-16-supabase-js-v2.mdx new file mode 100644 index 00000000000..b327552f6b7 --- /dev/null +++ b/apps/www/_blog/2022-08-16-supabase-js-v2.mdx @@ -0,0 +1,336 @@ +--- +title: 'supabase-js v2 Release Candidate' +description: First peek of supabase-js v2, which focuses on quality-of-life improvements for developers. +author: inian,alaister +image: lw5-supabase-js/thumb.jpg +thumb: lw5-supabase-js/thumb.jpg +tags: + - launch-week +date: '2022-08-16' +toc_depth: 3 +--- + +Today we're publishing a release candidate for [supabase-js v2](https://github.com/supabase/supabase-js), which focuses on “quality-of-life” improvements for developers. + +Try it out by running `npm i @supabase/supabase-js@rc` + +Nearly 2 years ago we [released supabase-js v1](https://supabase.com/blog/improved-dx). +Since then it has been used in over [17K repositories](https://github.com/supabase/supabase-js/network/dependents?package_id=UGFja2FnZS04MjM3OTUyMDU%3D) and has grown +to [50K weekly downloads](https://www.npmjs.com/package/@supabase/supabase-js). Supabase users give a lot of great feedback and we've +learned some of the largest pain-points as a result. + +## Major Updates + +This release focuses on solving these pain-points. At the same time we want to make the upgrade path for supabase-js as easy as possible, +so we've been strategic about the changes we're making. We plan to follow this model going forward: incremental changes over huge rewrites. + +### Type support + +If you followed yesterday's announcement, you will have noticed that we added +[type generators](https://supabase.com/docs/reference/cli/usage#supabase-gen-types-typescript) to the CLI. + +```bash +supabase start +supabase gen types typescript --local > DatabaseDefinitions.ts +``` + +These types can now be used to enrich your development experience: + +```tsx +import type { Database } from './DatabaseDefinitions' + +const supabase = createClient(SUPABASE_URL, ANON_KEY) + +const { data } = await supabase.from('messages').select().match({ id: 1 }) +``` + +
+ +ℹ️ Differences from v1 + +v1 also supported types, but the types were generated from the API rather than the database, so it +lost a lot of detailed information. The library also required you to specify the definition in +every method call, rather than at the client level. + +``` +supabase.from('messages').select('*') +``` + +
+ +--- + +### New Auth methods + +We're removing the `signIn()` method in favor of more explicit method signatures: +`signInWithPassword()`, and `signInWithOtp()`. + +```ts +// v2 +const { data } = await supabase.auth.signInWithPassword({ + email: 'hello@example', + password: 'pass', +}) + +// v1 +const { data } = await supabase.auth.signIn({ + email: 'hello@example', + password: 'pass', +}) +``` + +This helps with type hinting. Previously it was difficult for developers to know what they were missing. +A lot of developers didn't even realize they could use passwordless magic links. + +--- + +### Data methods return minimal by default + +The `insert()`, `update()`, and `upsert()` methods now require you to explicitly append `select()` if you want the data to be returned. + +```ts +// v2 +const { data } = await supabase.from('messages').insert({ id: 1, message: 'Hello world' }).select() // select is now explicitly required + +// v1 +const { data } = await supabase.from('messages').insert({ id: 1, message: 'Hello world' }) // insert would also "select()" +``` + +This was another common question in our GitHub Discussions. While the idea of automatically returning data is great, +developers often turn on Row Level Security (which is great), and then they forget to add a `select` Policy. +It is a bit surprising that you need to add a `select` policy to do an `insert`, so we opted for the “principle of least surprise”. +If you don't append `select()`, the `data` value will be an empty object: `{}`. + +
+ +ℹ️ Differences from v1 + +Previously you could pass a `returning: 'minimal'` option to the `insert()`, `update()`, and +`upsert()` statements. We've now made this the default behaviour. + +
+ +--- + +### Auth Admin methods + +We've move all server-side Auth methods from `supabase.auth.api` to `supabase.auth.admin`: + +```ts +// v2 +const { data: user, error } = await supabase.auth.admin.listUsers() + +// v1 +const { data: user, error } = await supabase.auth.api.listUsers() +``` + +All `admin` methods expect a `SERVICE_ROLE` key. +This change makes it clear that any methods under the `admin` namespace should only be used on a trusted server-side environment. + +--- + +### Async Auth overhaul + +We've rebuilt the Auth library, making it async for almost all methods. + +```ts +// v2 +const { data } = await supabase.auth.getSession() + +// v1 +const { data } = supabase.auth.session() +``` + +This solves the “getting logged out” issue, which has been a recurring challenge in our GitHub Discussions. + +
+ +ℹ️ Improvements from v1 + +The previous implementation had a race condition when refreshing the auth token across multiple tabs. The async re-write forces the library to wait +for a valid/invalid session before taking any action. + +
+ +--- + +### Scoped constructor config + +We're being much more explicit about the modular approach that `supabase-js` uses: + +```ts +const supabase = createClient(apiURL, apiKey, { + db: { + schema: 'public', + }, + auth: { + autoRefreshToken: true, + persistSession: true, + }, + realtime: { + channels, + endpoint, + }, + // common across all libraries + global: { + fetch: customFetch, + headers: DEFAULT_HEADERS, + }, +}) +``` + +This is clearer for developers - if you're only using some parts of Supabase, you only recieve the hints for those parts. + +
+ +ℹ️ Improvements from v1 + +We noticed a lot of confusion for the variable naming between each library. +For example, Auth has a config parameter called "storageKey", which was was often confused with the `storage-js` library bundled in the `supabase-js` library. + +
+ +--- + +### Better Errors + +We've created error types for all of the sub-libraries in `supabase-js`. Here's a example for Edge Functions: + +```ts +import { FunctionsHttpError, FunctionsRelayError, FunctionsFetchError } from '@supabase/supabase-js' + +const { data: user, error } = await supabase.functions.invoke('hello') + +if (error instanceof FunctionsHttpError) { + console.log('Function returned an error', error.message) +} else if (error instanceof FunctionsRelayError) { + console.log('Relay error:', error.message) +} else if (error instanceof FunctionsFetchError) { + console.log('Fetch error:', error.message) +} +``` + +--- + +### Improvements for Edge Functions + +`supabase-js` now automatically detects the content type for the request/response bodies for all Edge Function invocations: + +```ts +// v2 +const { data: user, error } = await supabase.functions.invoke('hello', { + body: { foo: 'bar' }, +}) + +// v1 +const { data: user, error } = await supabase.functions.invoke('hello', { + headers: { 'Content-Type': 'application/json' } + body: JSON.stringify({ foo: 'bar' }), +}) +``` + +This improvement inspired by a Supabase community member. Thanks [@vejja](https://github.com/supabase/functions-js/pull/23)! + +--- + +### Multiplayer Sneak Peek + +There is a new `channel()` interface which are releasing in v2. +This is a "preparatory" release for our upcoming [multiplayer](https://supabase.com/blog/supabase-realtime-with-multiplayer-features) features. + +```ts +supabaseClient + .channel('any_string_you_want') + .on('presence', { event: 'track' }, (payload) => { + console.log(payload) + }) + .subscribe() +``` + +As part of this change, the old `from().on().subscribe()` method for listening to database changes will be changing: + +```ts +// v2 +supabaseClient + .channel('any_string_you_want') + .on( + 'postgres_changes', + { + event: 'INSERT', + schema: 'public', + table: 'movies', + }, + (payload) => { + console.log(payload) + } + ) + .subscribe() + +// v1 +supabase + .from('movies') + .on('INSERT', (payload) => { + console.log(payload) + }) + .subscribe() +``` + +You can listen to PostgreSQL database changes on any channel you want by subscribing to the `'postgres_changes'` event. +For now, we will continue to support `from().on().subscribe()`, but in the future we will deprecate this in favor of the `channel().on().subscribe()` method. + +--- + +## Community + +Version 2.0 is the result of the combined work of over 100 contributors to our libraries, and over 450 contributors to our docs and websites. +If you're one of those contributors, thank you. + +- [`functions-js`](https://github.com/supabase/functions-js/graphs/contributors) (4) +- [`gotrue-js`](https://github.com/supabase/gotrue-js/graphs/contributors) (47) +- [`postgrest-js`](https://github.com/supabase/postgrest-js/graphs/contributors) (30) +- [`realtime-js`](https://github.com/supabase/realtime-js/graphs/contributors) (16) +- [`storage-js`](https://github.com/supabase/storage-js/graphs/contributors) (17) +- [`supabase-js`](https://github.com/supabase/supabase-js/graphs/contributors) (39) + +Special shout outs to: [@vejja](https://github.com/vejja), [@pixtron](https://github.com/pixtron), [@bnjmnt4n](https://github.com/pixtron), and [@karlseguin](https://github.com/karlseguin). + +## Migrating to v2 + +Update today by running: + +```bash +npm i @supabase/supabase-js@rc +``` + +You can find a full list of updates, breaking changes, and a migration guide in our [Release Notes](https://supabase.com/docs/reference/javascript/release-notes). + +We'll continuing merging security fixes to v1, with maintenance patches for the next three months. + +## Announcement video and discussion + + + +## Links + +- [v2 Release Candidate Documentation](https://supabase.com/docs/reference/javascript) +- [Release Notes & Migration Guide](https://supabase.com/docs/reference/javascript/release-notes) + + ## More Launch Week 5 + +- [Launch Week Page](https://supabase.com/launch-week) +- [Launch Week 5 Hackathon](https://supabase.com/blog/launch-week-5-hackathon) +- [Supabase Series B](https://supabase.com/blog/supabase-series-b) +- [Open Source at Supabase - Founders Fireside Chat](https://www.youtube.com/watch?v=4t_63HT3rZY) +- [Day 1 - Supabase CLI v1 and Admin API Beta](https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta) +- [Youtube video - Supabase CLI v1 and Admin API Beta](https://www.youtube.com/watch?v=OpPOaJI_Z28&feature=emb_title) +- [Day 3 - Supabase is SOC2 compliant](https://supabase.com/blog/supabase-soc2) +- [Youtube video - Security Day](https://www.youtube.com/watch?v=6bGQotxisoY) diff --git a/apps/www/_blog/2022-08-17-supabase-soc2.mdx b/apps/www/_blog/2022-08-17-supabase-soc2.mdx new file mode 100644 index 00000000000..3553c423e8b --- /dev/null +++ b/apps/www/_blog/2022-08-17-supabase-soc2.mdx @@ -0,0 +1,112 @@ +--- +title: 'Supabase is SOC2 compliant' +description: Supabase is now SOC2 compliant. Learn how we got here and what it means for our customers. +author: inian,joel +image: lw5-soc2/thumb.jpg +thumb: lw5-soc2/thumb.jpg +tags: + - launch-week +date: '2022-08-17' +toc_depth: 3 +--- + +Supabase is now SOC2 Type 1 compliant. Let’s dig into what that means, and explain the process we went through to get there. If you’re building a SaaS product, this blog post should provide a rough guide to getting your SOC2 certification. + +## What is SOC2? + +SOC2 is a compliance standard developed by the American Institute of CPAs. Yup CPAs - a bunch of accountants came up with the generally accepted compliance security standard for SaaS companies. SOC2 evaluates companies on 5 Trust Services Criteria: security, availability, processing integrity, confidentiality, and privacy. There are two types of compliance, both requiring an external audit: + +- Type 1: checks if a company is compliant at a point in time. +- Type 2: checks if a company stays compliant during an observation window (typically 6 months to a year). + +## Why did we get SOC2 certified? + +The main reason to go through a SOC2 audit is a simple one - customers expect it. + +The Supabase team was spending a considerable amount of time filling out security questionnaires and fielding calls with potential customers - walking them through our security practices and how we protect customer data. + +We are a database company — customers trust us with their data. We started with a SOC2 audit since one of the main things covered is our handling of sensitive customer data. + +It is also much easier to become-and remain-SOC2 compliant when you institute the appropriate practices and standards as early as possible. + +## Choosing a compliance monitoring tool + +There are a few tools that plug into your cloud providers, task management system, identity, and HR providers and make it easy to monitor, collect and submit evidence to auditors. We evaluated [Vanta](https://www.vanta.com/), [Drata](https://drata.com/), [Secureframe](https://secureframe.com/), and [Tugboat Logic](https://tugboatlogic.com/). Our stack is pretty standard (AWS, GCP, GSuite, and Github). All the tools we evaluated were integrated with these systems. + +Some of them had overly broad permissions when integrating with our vendors (read/write access to Github for example) which made them a no-go. Some came with a lightweight agent that we could use for Mobile Device Management (MDM). Other than that, the products are largely the same. + +We chose Vanta, with Drata coming in a close second. Vanta supported more compliance standards (at that time) and is a fellow YC company (which sealed the deal). The gap between these tools is much closer now since all of them support the compliance standards we have our eyes on. + +## Choosing an auditor + +After setting up Vanta (nb: pestering devs to install a security agent on their laptop) and working through the checklist of tasks required for SOC2, we started looking around for auditors. Vanta was helpful here - they made introductions to a few auditors and we chose one who has previously worked with a lot of SaaS companies. Our auditors were also familiar with how Vanta worked which made the audit easier for us. + +The engagement started with a call where we reviewed the systems which are in scope for the audit. We then set a date at which the audit takes place. The Type 1 audit verifies that we are adhering to our stated policies at this point in time. + +## Off to the races + +Once the date for the audit was set, it was a mad scramble to get everything in order. + +Vanta has a lightweight, read-only agent built on top of [osquery](https://github.com/osquery/osquery) to verify if all team members have important security features enabled: hard disk encryption, screen locks, etc. It supports Mac, Windows, and Linux, although we had [some issues](https://github.com/system76/firmware-open/issues/268) with the agent running correctly in Linux. Getting hard disk encryption right is still difficult in some Linux distros. We decided to standardize on Mac and Windows to sidestep these issues. A more powerful MDM would enable us to remote wipe computers in case it is stolen, but we decided that the existing protections we had in place were sufficient to defend against this scenario. + +We came up with a few important policies. For example, Access Control Policy, Data Management Policy, Asset Management Policy, etc. Vanta has templates which we used as a starting point and adapted to our requirements. Since our auditors are familiar with the Vanta templates, there wasn’t much back and forth regarding the policy language. + +For employee background checks, we use [Certn](https://certn.co/). They integrate with Vanta, making it easy to check the status within the Vanta portal itself. Background checks aren’t _required_ for SOC2, but they are a factor in deciding whom we hire especially in certain roles like SRE and Finance where there is little room for error. + +We submitted a ton of evidence to prove that we can stay on top of all activities in our cloud. We use [Vector](https://vector.dev/) to ship logs to [Logflare](http://logflare.com/), where they are retained at least for a year. Our [monitoring stack](https://supabase.com/blog/supabase-reports-and-metrics) consists of regional Victoria Metrics clusters and metrics are then aggregated into a centralized cluster. We also read from Cloudtrail logs and get notified in Slack when certain events like the root AWS account is logged into, a bucket is made public, an IAM policy changes, etc. + +Enabling GitHub’s branch protection protects your repos from merging code without receiving a review first. This can be a challenge sometimes - at Supabase we have a few one-person teams. We had to relax our policy for some repos (POCs, internal projects) while keeping it strict for repos that handle critical systems. + +Other tasks were already handled - encrypting data at rest and in transit, enforcing MFA where possible, standardizing on a password manager, and not using long-lived SSH keys (we use [AWS Instance Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html)), etc. + +We also evaluated all our vendors who had access to confidential data and now it was our turn to send them questionnaires or ask them for their SOC2 reports 😈. + +## Making the SOC2 process work for you + +We went through a lot of effort to make sure we weren’t adding processes just because it’s a requirement for SOC2. Everything had to improve our security or risk threshold in a meaningful way. This usually involves back and forth with the auditor to show how you satisfy a particular control even though you may not be doing it in exactly the way they want you to. + +We used the SOC2 process to codify the security practices we were already doing informally at Supabase. + +There are a few more debatable “check-the-box” activities - like the security awareness training which I couldn’t find a way around as much as I tried. Our team has a pretty good security posture and we don’t think watching a video on why reusing passwords is a bad idea helps much. + +## A few surprises + +We were surprised by the amount of manual evidence that we had to collect (umm..take screenshots) even with a tool like Vanta. There are things an automated tool like Vanta can never fully automate. For example, we had to collect evidence to show that have proper on-boarding and off-boarding checklists or demonstrate how we resolve security issues reported by our penetration tests within a certain time frame. + +Since the Type 1 audit is just about providing evidence at a single point in time, there isn’t _that_ much utility in using a tool like Vanta. However, for Type 2 certification, where we need to show evidence that we have been compliant over a period of time, a monitoring tool like Vanta becomes more useful. Additionally, if you’re planning to get multiple certifications, investing in a compliance monitoring tool is valuable since there is considerable overlap between different frameworks, and you’ll only need to do the work of collecting your evidence once. + +We spent some time trying to get a perfect score in Vanta before reaching out to the auditor. That turned out to be a mistake; Vanta is fairly broad in its checks, but the ones you need to pass depend on the audit’s scope, and the auditor. For example, our auditor didn’t care about seeing our exact board meeting minutes, but Vanta wanted us to document it! + +Another revelation was that a lot of controls other companies had talked about in their SOC2 compliance journeys ended up not being a blocker for us. I am not going to list them here since it is dependent on the systems that are in scope, your larger architecture, and your auditor. Again, the takeaway here is to reach out to your auditor as early as possible to get a sense of what is relevant to your audit. + +Auditors aren’t adversarial like pentesters or bug bounty hunters. For example, if you point them to a PR and say that PR closes a security issue reported, they _trust_ that it did. They aren’t going to find a way to bypass the fix you implemented and use that to raise an exception in your audit. This is why getting SOC2 certified is just a small part of staying secure - what makes your auditor happy will likely be pretty different from what makes a penetration tester happy. + +## Security Center + +Today we are launching our [security center](https://supabase.com/security), which shows the steps we take to protect your data. You can also find our audit reports at our security portal [here](https://security.supabase.com), or reach out to growth@supabase.com + +## What’s next + +Getting the Type 1 certification is just the start, and we will be working on getting certified for SOC2 Type 2 and HIPAA next. If you are interested in discussing these, we would love to chat. We will also be rolling out a series of security improvements to all projects hosted on the Supabase Cloud offering over the coming months. Stay tuned! + +## Announcement video and discussion + + + +## More Launch Week 5 + +- [Launch Week Page](https://supabase.com/launch-week) +- [Launch Week 5 Hackathon](https://supabase.com/blog/launch-week-5-hackathon) +- [Day 1 - Supabase CLI v1 and Admin API Beta](https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta) +- [Youtube video - Supabase CLI v1 and Admin API Beta](https://www.youtube.com/watch?v=OpPOaJI_Z28&feature=emb_title) +- [Day 2 - supabase-js v2 Release Candidate](https://supabase.com/blog/supabase-js-v2) +- [Youtube Video - supabase-js v2 Release Candidate](https://www.youtube.com/watch?v=iqZlPtl_b-I) diff --git a/apps/www/_blog/2022-08-18-supabase-realtime-multiplayer-general-availability.mdx b/apps/www/_blog/2022-08-18-supabase-realtime-multiplayer-general-availability.mdx new file mode 100644 index 00000000000..31bfa1b0ff4 --- /dev/null +++ b/apps/www/_blog/2022-08-18-supabase-realtime-multiplayer-general-availability.mdx @@ -0,0 +1,244 @@ +--- +title: 'Realtime: Multiplayer Edition' +description: Announcing the general availability of Realtime's Broadcast and Presence. +author: wenbo_xie,stas +image: lw5-realtime/thumb.jpg +thumb: lw5-realtime/thumb.jpg +tags: + - launch-week +date: '2022-08-18' +toc_depth: 3 +--- + +During our last Launch Week, we teased our plans for "multiplayer" features. If you need a refresher, +take a glance at [Supabase Realtime, with Multiplayer Features](https://supabase.com/blog/supabase-realtime-with-multiplayer-features) +or go to [multiplayer.dev](https://multiplayer.dev) for an interactive demo. + +Today, we're excited to announce the general availability of Realtime's multiplayer features, Broadcast and Presence. + +## TLDR + +Here are the key takeaways: + +- We've added [Broadcast](https://supabase.com/docs/guides/realtime/broadcast) and [Presence](https://supabase.com/docs/guides/realtime/presence) to our Realtime server. You can use these features with the new [supabase-js](https://supabase.com/docs/reference/javascript/next) release. +- All active Supabase projects on the free tier have access to the these features. +- All new Supabase projects created from August 18th have access to these features. +- We will work with all other projects to migrate to the new Realtime over the next few weeks. If you want immediate access, [reach out](https://app.supabase.com/support/new). +- [Chris McCord](https://twitter.com/chris_mccord), the creator of Phoenix Framework, is now a technical advisor. + +## Background + +Before we discuss the new features, let's review what Realtime is and its significance to Supabase. Skip ahead if you just want to see the new features! + +The first iteration of Realtime server was written by [@kiwicopple](https://twitter.com/kiwicopple), our CEO. +At his previous startup, a chat application he built was facing performance issues while broadcasting database changes from Firestore to individual subscribers. + +He turned to Postgres, which has two built-in pieces of functionality for emitting database changes: + +- The first, Postgres's LISTEN/NOTIFY, seems like the obvious choice because it conveniently does what its name implies, listen for changes and notify subscribers. However, this approach has a hidden limitation - NOTIFY has a payload limit of 8,000 bytes. The workaround is to send only a unique identifier and then have the client query the database for the specific change. This would have been been too slow for the chat application. +- The second, Postgres's logical replication, doesn't face the same limitations, and Paul used this approach. This required the introduction of a server to listen to a logical replication slot. Paul chose [Elixir](https://elixir-lang.org) and the [Phoenix Framework](https://www.phoenixframework.org) for the server as it scales exceptionally well, especially when dealing with WebSockets. He named this server "[Realtime](https://github.com/supabase/realtime)," leveraging other open source projects, [cainophile](https://github.com/cainophile/cainophile) and [pgoutput_decoder](https://github.com/cainophile/pgoutput_decoder), to listen to the replication stream and decode changes. From there, the changes were serialized into JSON and sent on their merry way to clients. + +Realtime was the very first open source project of Supabase and played a pivotal role in our founding. Over time, we've improved both the performance and security. +During Launch Week 3, we announced [Realtime RLS](https://supabase.com/blog/realtime-row-level-security-in-postgresql), which allows developers to tap into Postgres's Row Level Security to authorize changes before broadcasting them to clients. This enabled developers to use the same security framework across the entire Supabase stack. + +## Realtime Channels + +We've modified the architecture of Realtime to introduce two core features: Broadcast and Presence. + +In this new version, everything is a [Channel](https://hexdocs.pm/phoenix/Phoenix.Channel.html). Channels are like “Rooms” where participants can join, and leave - very similar to Slack Channels or Discord Channels. + +Broadcast and Presence are built into every Channel, and we've retro-fitted the Database change events into Channels too. + +### Broadcast + +Broadcast follows the classic Publisher/Subscriber pattern. A client (publisher) “broadcasts” messages using a unique identifier. For example, a user could send a message to a `#random` channel. + +Other clients (subscribers) can “listen” to these messages in real-time, using the unique identifier. If they are listening to the `#random` channel, then they will receive the message. + +This functionality is [baked into the Phoenix framework](https://hexdocs.pm/phoenix/Phoenix.Channel.html) and we've already been using this to [broadcast Postgres changes](https://supabase.com/docs/reference/javascript/subscribe). +With this release we're exposing the underlying primitives which unlocks a variety of use-cases for developers. + +A common use-case is sharing a user's cursor position with other clients in an online game. Previously, developers were sending all the mouse movements through their Postgres database which added latency and degraded database performance. In contrast, Broadcasts are ephemeral - they bypass the database completely. + +### Presence + +Presence synchronizes shared state between users. Presence is very similar to Broadcast, except that the state is “persisted” in the Channel so that new joiners immediately receive the state without waiting for another user to broadcast it. In our Slack example, when you turn on Slack you can see who's online without each individual user sending an “I'm online” message to the new-joiner. + +Presence utilizes Broadcast as the transport layer, consolidating the state in an eventually-consistent and conflict-free manner. Users are free to come-and-go as they please, and as long as they are all subscribed to the same Channel then they will all have the same Presence state as each other. + +The neat thing about Presence is that if a user is suddenly disconnected (for example, they go offline), their state will be automatically removed from the shared state. +If you've ever tried to build an “I'm online” feature which handles unexpected disconnects, you'll appreciate how useful this is. + +## Client Library + +We've introduced new functionality into the [release candidate](https://supabase.com/blog/supabase-js-v2) version of `supabase-js`. + +Here's a taste of how you can start using Broadcast and Presence and continue to listen to Postgres changes. + +### Broadcast Example + +In this example we'll send and receive mouse cursor positions to anyone in `room_1`. + +```js +const channel = supabase.channel('room_1') +const MOUSE_EVENT = 'cursor' + +// Subscribe to mouse events. +// Our second parameter filters only for mouse events. +channel +.on( + 'broadcast', + { event: MOUSE_EVENT }, + (event) => { receivedCursorPosition(event) } +) +.subscribe() + +// Handle a mouse event. +const receivedCursorPosition({ event, payload }) => { + console.log(` + User: ${payload.userId} + x Position: ${payload.x} + y Position: ${payload.y} + `) +} + +// Helper function for sending our own mouse position. +const sendMousePosition(channel, userId, x, y) => { + return channel.send({ + type: 'broadcast', + event: MOUSE_EVENT, + payload: { userId, x, y } + }) +} + +``` + +### Presence Example + +Let's create a contrived example where we could display a “user is typing” indicator. +In this case, we'll send the timestamp for the last time that a user hit a key. +Other clients can use this timestamp to display a “typing…” indicator. + +```js +const userId = 'user_1234' +const slackRoomId = '#random' + +const channel = supabase.channel(slackRoomId, { + config: { + presence: { key: userId } + } +}) + +// We can subscribe to all Presence changes using the 'presence' -> 'sync' event. +channel + .on('presence', { event: 'sync' }, () => presenceChanged()) + .subscribe() + +/* + A contrived example where we bind to all keyboard + events and send them over our channel +*/ +document.addEventListener('keydown', function(event){ + channel.track({ isTyping: Date.now() }) +}) + +// Receive Presence updates +const presenceChanged = () => { + const newState = channel.presenceState() + console.log(newState) +} + +// When you no longer wish to track data +channel.untrack().then(status => console.log(status) +``` + +### Receiving Postgres Changes + +You can receive Postgres changes on any channel. For this example, we'll receive all messages on the `#random` channel. + +```js +const channelId = '#random' + +// Create a filter only for new messages +const databaseFilter = { + schema: 'public', + table: 'messages', + filter: `room_id=eq.${channelId}`, + event: 'INSERT', +} + +const channel = supabase + .channel(channelId) + .on('postgres_changes', databaseFilter, (payload) => receivedDatabaseEvent(payload)) + .subscribe() + +const receivedDatabaseEvent = (event) => { + const { payload } = event + console.log(payload) +} +``` + +## Future Plans + +This is a big change, but it's only a small step towards the final goal. We have a few exciting plans for the future. + +### Extensions + +Our `postgres_changes` listener is the first of many [Extensions](https://supabase.com/blog/supabase-realtime-with-multiplayer-features#extensions). +We've had requests add other integrations beyond Postgres: + +- **Finance:** Listen to stock market events and broadcast them to connected users +- **Web3:** Listen to blockchain events and broadcast them to connected users +- **Authoritative clocks:** A server clock which broadcasts a timer (e.g. auction sites or ticketing systems) + +### Peer to Peer + +A lot of users ask about using Realtime for peer to peer applications. We plan to use Realtime as a WebRTC signaling server which will enable developers to build collaborative software with even lower latency. A common example we've seen is collaborative code editors with a CRDT implementation, like Yjs. + +### Realtime Inspector + +We're building a Realtime inspector into the Supabase Dashboard so it'll be easier to debug the messages that are getting passed through your Channels. + +## Technical Overview + +Before this release, every Supabase project had a server running Realtime with the other Supabase services like Kong, GoTrue, and PostgREST. + +In this release we take advantage of Elixir's strengths by running a distributed cluster of servers across the world. Each server communicates directly with the other nodes in the cluster. This improves performance by balancing the load across nodes. + +Clients connect to the nearest node in the cluster, and we take advantage of the cluster's fast backbone network to improve client connection speeds, stability, and latency. This is especially useful for clients in regions with variable internet quality. + +The entire cluster runs on [Fly](https://fly.io/) - we're big fans! + +Much of the new functionality leverages the [Phoenix Framework](https://www.phoenixframework.org/). This makes it relatively straightforward to offer Broadcast ([Phoenix PubSub](https://hexdocs.pm/phoenix_pubsub/Phoenix.PubSub.html)) and Presence ([Phoenix Presence](https://hexdocs.pm/phoenix/Phoenix.Presence.html)) in a globally-distributed cluster. Presence is built on top of [Phoenix Tracker](https://hexdocs.pm/phoenix_pubsub/Phoenix.Tracker.html), a delta-based conflict-free replicated data type (CRDT) for eventually consistent and conflict-free synced state. + +In the future, we'll document the challenges we faced migrating to this new architecture as well as a few challenges we expect to face in the future. + +## One More Thing + +We have some great news! [Chris McCord](https://twitter.com/chris_mccord), the creator of the Phoenix framework, has agreed to become a Technical Advisor for Supabase. + +Chris works at Fly, and will continue to work there. His role as an advisor is mostly to express our gratitude for the work he's already done (admittedly, we'll probably need his advice for some upcoming challenges). Realtime is made possible by his open source work. + +We also want to thank [José Valim](https://twitter.com/josevalim), and everyone in the Erlang/Elixir ecosystem, for your open source contributions that have made our lives here on the Supabase Realtime team a lot easier. + +## Announcement video and discussion + + + +## More Launch Week 5 + +- [Launch Week Page](https://supabase.com/launch-week) +- [Launch Week 5 Hackathon](https://supabase.com/blog/launch-week-5-hackathon) +- [Day 1 - Supabase CLI v1 and Admin API Beta](https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta) +- [Youtube video - Supabase CLI v1 and Admin API Beta](https://www.youtube.com/watch?v=OpPOaJI_Z28&feature=emb_title) +- [Day 2 - supabase-js v2 Release Candidate](https://supabase.com/blog/supabase-js-v2) +- [Youtube Video - supabase-js v2 Release Candidate](https://www.youtube.com/watch?v=iqZlPtl_b-I) diff --git a/apps/www/_blog/2022-08-19-launch-week-5-community-day.mdx b/apps/www/_blog/2022-08-19-launch-week-5-community-day.mdx new file mode 100644 index 00000000000..2c1e609a500 --- /dev/null +++ b/apps/www/_blog/2022-08-19-launch-week-5-community-day.mdx @@ -0,0 +1,287 @@ +--- +title: 'Community Day' +description: Wrapping up Launch Week 5 with contributors, partners, and friends. +author: andrew_smith,jonmeyers_io,thor_schaeff,tyler_shukert +image: lw5-community-day/community_day_og.jpg +thumb: lw5-community-day/community_day_og.jpg +tags: + - launch-week + - community +date: '2022-08-19' +toc_depth: 2 +--- + +Supabase combines existing open-source tools with our own open-source contributions to provide a delightful experience for developers of all skill levels. Just as versatile as our platform, we're building a community of communities, bringing together developers from many different backgrounds, as well as new developers looking to get involved with open source. + +To wrap up Launch Week 5, we're showcasing some of the communities and contributors that make up the Supabase community, highlighting their awesome work, and celebrating everyone who contributes their time to the Supabase mission. 💚 + +--- + +## Launch Week 5 - a new era?! + +If you're an avid Launch Week participant, you might have been surprised this time because we usually kick-off with Community Day on Mondays. +And we previously closed Launch Week with a bunch more things on Friday, and the start of our virtual Hackathon. + +This time, we're switching things around: + +- [Monday to Thursday](/launch-week) are the big-ticket launches. +- Friday, we highlight all the additional “one more thing(s)” that we've launched, as well as shine a light on our awesome community contributions. +- As you [might have noticed](/blog/launch-week-5-hackathon), we now run our virtual Hackathon throughout Launch Week, and as always you can win some awesome limited edition swag, and for the first time ever, there's a $1500 GitHub sponsorship awarded to the best overall project! + + + + +_Our limited edition swag is approved by professional swag testers like Peanut!_ + +### Launch Week Landing Page & Golden Tickets + + + +We now have a shiny new [Launch Week page](http://supabase.com/launch-week), your one-stop shop for all things Launch Week, where you can find each day's feature as well as highlights from the past Launch Weeks. + +We've taken a page out of [Vercel's Virtual Events Starter Kit](https://vercel.com/templates/next.js/virtual-event-starter-kit), and generated over 3000 virtual tickets. Thank you all for participating, we love [seeing your tickets on Twitter](https://twitter.com/hashtag/SupaLaunchWeek?src=hashtag_click&f=live)! To make this work, we've adapted the Virtual Events Starter Kit and [added in a Supabase Database provider](https://github.com/vercel/virtual-event-starter-kit/pull/88) as an alternative to the Redis database option. + +We've added a Golden Ticket mechanic, distributing some special edition launch week swag to some lucky winners. If you're interested in how we've built this, check out the video above with a brief explanation. + +--- + +## Open Source Spotlight + +### pg_jsonschema + + + +For our Open Source Spotlight we're hearing from [Dmitry Dygalo](https://twitter.com/Stranger6667) from [schemathesis.io](https://schemathesis.io/) who works on a multitude of open-source projects. +He's the author and maintainer of [jsonschema-rs](https://github.com/Stranger6667/jsonschema-rs), +which is the foundation for our new [pg_jsonschema extension](https://github.com/supabase/pg_jsonschema), a PostgreSQL extension providing JSON Schema validation. + +[Learn about pg_jsonschema](/blog/pg-jsonschema-a-postgres-extension-for-json-validation). + +### Postgrest v10 + +![PostgREST v10](/images/blog/lw5/postgrest-v10.png) + +Today, PostgREST v10 was [released](https://github.com/PostgREST/postgrest/releases/tag/v10.0.0). +In this [blog post](/blog/postgrest-v10) we explore some of its new features: EXPLAIN and Improved Relationship Detection. + +[Read the blog post](/blog/postgrest-v10). + +--- + +## New courses & tutorials + +### Free Egghead course: Cache Supabase data at the Edge with Cloudflare Workers and KV Storage + +[![Egghead course](/images/blog/lw5-community-day/egghead_og.png)](https://egghead.io/courses/cache-supabase-data-at-the-edge-with-cloudflare-workers-and-kv-storage-883c7959) + +Caching is one of the hardest problems in Computer Science! + +Unless you pair Supabase with Cloudflare, then it is actually quite simple! + +Check out [Jon Meyer's](https://twitter.com/jonmeyers_io), entirely free egghead course — Cache Supabase data at the Edge with Cloudflare Workers and KV Storage — dropping right now! + +Learn how to: + +- Use Wrangler CLI to interface with Cloudflare +- Proxy Supabase requests through Cloudflare Workers +- Bind a KV Store to cache data +- Cache response data from Supabase +- Automatically revalidate cache when data changes +- Continue performing work after a response has been sent + +All that in only 28 mins — or 14 mins on 2x speed! + +### Realtime Trello Board with Angular by Simon Grimm + + + +[Simon Grimm](https://twitter.com/schlimmson) from [ionicacademy.com](http://ionicacademy.com/) & [devdactic.com](http://devdactic.com/) is releasing a new course for all the Angular fans out there! + +- [Subscribe](https://www.youtube.com/simongrimmdev_) to Simon's YouTube where the course will be released soon! +- Find the code on GitHub: [github.com/saimon24/supabase-trello-angular](https://github.com/saimon24/supabase-trello-angular) + +--- + +## Integrations, Expert Partners, and Developer Stories + +Since releasing our [Partners](/partners) page last Launch Week, we've had a lot of new partners reach out to join the community. + +### CodeSandbox Projects Beta + + + +The new [CodeSandbox Projects Beta](https://projects.codesandbox.io/) let's you run your projects and turn them into a link you can share with anyone. Developers visiting your link can not only see your running code, they can click “fork” and get an exact copy of that environment so they can easily contribute back to your masterpiece. CodeSandbox integrates directly with GitHub, so you get a unique development environment for every PR you and your contributors open! + +You can do all of this from a web browser, from [within VSCode](https://marketplace.visualstudio.com/items?itemName=CodeSandbox-io.codesandbox-projects), or via the [native iPad app](https://apps.apple.com/us/app/codesandbox/id1423330822)! Give it a try with the [Supabase example project](https://codesandbox.io/p/github/codesandbox/codesandbox-supabase-example/main?file=%2FREADME.md)! + +### Dashibase + + + +[Dashibase](https://dashibase.com/) is a no-code internal tools builder with a Notion-like UI. With the latest update, you can easily build CRUD dashboards on top of your Supabase projects, set read/write access on your data sources, and share your dashboards with your team. Stop building dashboards from scratch. + +### Replicache + + + +Replicache is a JavaScript framework for building high performance, collaborative, offline-first web apps. + +It's inspired by apps like [Linear](https://linear.app/) and [Superhuman](https://superhuman.com/). When the user takes an action in one of these apps, it happens instantly, with no server round-trip, and changes from other users appear in realtime. + +Replicache works with Supabase for storage, and Supabase Realtime for its [poke message feature](https://doc.replicache.dev/how-it-works#poke-optional). Read [the guide](https://doc.replicache.dev/deploy-vercel-supabase) to learn how to [deploy to Vercel and Supabase](https://doc.replicache.dev/deploy-vercel-supabase)! + +### [Zapp.run](http://Zapp.run) by Invertase + + + +Zapp is a free online sandbox environment for building Flutter applications in the browser. With Zapp, you can enjoy building Flutter apps as though in your favorite IDE, especially if you are a VSCode user; you should feel at home. + +You can install any pub packages and start developing, of course including Supabase! You can sign up for our early access program [here](https://www.notion.so/Social-media-strategy-1f06ed5695fe497ba6782a5ce007b04f)! + +### Feelantera + + + +Feelantera is a creative digital agency based in Indonesia. They craft web applications with cutting-edge technology, and are one of our new [Supabase Experts](https://supabase.com/partners/experts). They [recently open-sourced](https://twitter.com/feelantera/status/1556909234478059521) their Supabase Edge Functions powered URL shortener on [GitHub](https://github.com/feelantera/fltr-link). + +If you're building with Supabase and are looking for some support, check out their [Expert listing](https://supabase.com/partners/feelantera) and reach out to them. + +Are you also experienced in building with Supabase and interested in helping others? Apply to [become and Expert Partner](https://supabase.com/partners/experts#become-a-partner)! + +### Snappify + + + +snappify is a powerful design tool that helps you to explain and share your code snippets in many beautiful ways. + +The editor lets you operate on a free canvas where you can arrange multiple code snippets and annotate them with arrow and text elements to explain specific parts of your code. You can style everything to your own needs and give your code presentations a personal touch by adding your social media branding. + +Head over to [snappify.io](https://t.co/hdO3oY38If) and give it a try on your own - all the basic features are available for free. + +### WalletConnect Cloud: You Can Now Sign In with Ethereum + +![WalletConnect](/images/blog/lw5-community-day/walletconnect_og.png) + +[WalletConnect](https://walletconnect.com/) is an open source protocol for connecting decentralised applications to mobile wallets with QR code scanning or deep linking. This week they have launched the option for users to sign-in to their cloud platform with Ethereum. They are building this on top of GoTrue with the aim to contribute it back to our GoTrue fork to make it available to all Supabase users. If you're interested in this, you can follow the [PR here](https://github.com/supabase/gotrue/pull/282). + +To explore the infrastructure backing the project, check out the repository [here](https://github.com/walletconnect/CloudSIWE). To try it out, create an account on the WalletConnect [cloud platform](https://cloud.walletconnect.com/). To read more about the feature, head on over to the [WalletConnect blog](https://medium.com/walletconnect/walletconnect-cloud-you-can-now-sign-in-with-ethereum-7563578686c2). + +## Hackathon + + + +We hope all of these awesome projects and stories gave you plenty of inspiration and you're ready to build in a weekend and scale to millions, as our [hackathon is still running until Sunday](https://supabase.com/blog/launch-week-5-hackathon) night PT! + +--- + +## Oh - and one more thing! + +Well, actually a couple more things! As it is now tradition, we have too many things for one week, so at the end of the week we compile everything that didn't get its own spotlight day, into a nice little [box of treats](/blog/launch-week-5-one-more-thing). + +--- + +## That's a wrap + +Here we are. What a week indeed! Launch Week 5 was so much fun, thank you for participating and sharing what you're working on, and most importantly thank you for building with Supabase! 💚 + +We'll be jumping into our own hackathon projects now, and we'll see you next week for the highlight reel and the hackathon winner announcements, so make sure to subscribe on [Twitter](https://twitter.com/Supabase), and [YouTube](https://www.youtube.com/supabase) to not miss out! And do come hang out and hack together in [Discord](https://discord.supabase.com/)! See you there 👁️⚡️👁 diff --git a/apps/www/_blog/2022-08-19-launch-week-5-one-more-thing.mdx b/apps/www/_blog/2022-08-19-launch-week-5-one-more-thing.mdx new file mode 100644 index 00000000000..1bf4d3bf1cc --- /dev/null +++ b/apps/www/_blog/2022-08-19-launch-week-5-one-more-thing.mdx @@ -0,0 +1,112 @@ +--- +title: 'One more thing' +description: "Let's be honest, it's never just one more thing." +author: paul_copplestone +image: lw5-one-more/lw5-one-more-thumb.jpg +thumb: lw5-one-more/lw5-one-more-thumb.jpg +tags: + - launch-week +date: '2022-08-19' +toc_depth: 2 +--- + +Let's be honest, it's never just one more thing. +Here are six more things that you need to know this Launch Week. + +--- + +## Supabase Vault + +![Supabase Vault](/images/blog/lw5-one-more/lw5-vault.png) + +Today we're announcing [Supabase Vault](/blog/supabase-vault), a Postgres extension for managing secrets and encryption inside your database. +Vault is a thin usability-layer on top of [pgsodium](https://github.com/michelp/pgsodium). + +Vault is not available on the Supabase Platform yet. This release is intended to gather user feedback. + +[Read more](/blog/supabase-vault). + +--- + +## Auth UI + + + +Auth UI was previously released as a single `` component in the [`@supabase/ui`](http://github.com/supabase/ui) library. +We recognized it was one of the most popular aspects of the library and developers were installing the library to use the Auth component alone. + +From today, you can install it [from its own NPM package](https://github.com/supabase-community/auth-ui): + +```bash +npm install @supabase/auth-ui-react +``` + +We've decoupled this library from our own styling system and you are now able to (_deep breath..._): create your own theme, use a pre-existing Supabase theme, extend a theme using token variables, create multiple variations of themes (and then also extend them with variables), use CSS classes and also use any inline CSS styles. + +This is all done with [stitches.js](https://stitches.dev) (or more specifically, the [framework agnostic API](https://stitches.dev/docs/framework-agnostic)) to handle variants of components and the CSS properties. + +A new feature in Auth UI is custom labels. You can now override any of the text labels—very useful for multiple language support. + +Our initial release supports React, but we have prepared the repo for other frameworks. This release is a small step towards a larger feature—“_Hosted Auth Pages_”. The wide range of customization will become useful for developers to tweak their Hosted Auth pages to reflect their brand personality. + +[View the docs](/docs/guides/auth/auth-helpers/auth-ui). + +--- + +## Dashboard permissions + +![Dashboard permissions](/images/blog/lw5-one-more/lw5-permissions.png) + +We've released granular permissions for the Supabase Dashboard. Dashboard permissions allow you assign roles to your team and to restrict what they can do. + +We're starting with 3 roles—Owner, Administrator, and Developer—which you can edit in the Org settings of the Dashboard. +There's a tooltip in the header of the members table, which elaborates on the individual permissions available for each role. + +[Read more](/docs/guides/hosting/platform#manage-team-members). + +--- + +## JSON schema validation + +![JSON schema validation](/images/blog/lw5-one-more/lw5-jsonschema.png) + +We've released [`pg_jsonschema`](https://github.com/supabase/pg_jsonschema), a new Postgres extension for the Supabase Platform. + +`pg_jsonschema` adds support for [JSON Schema](https://json-schema.org/) validation for `json` and `jsonb` data types, built with Rust. +You can read the blog post, which explains some of the scenarios where this is useful. + +[Read more](/blog/pg-jsonschema-a-postgres-extension-for-json-validation). + +--- + +## pg_graphql v0.4.0 + +![graphql.png](/images/blog/lw5-one-more/lw5-graphql.png) + +We've released a new version of `pg_graphql`, our GraphQL extension for Postgres. +This release adds support for `json` / `jsonb` types, the `in` filter, and introspection for much larger schemas (10x larger than before). We've fixed a few bugs too. + +You can read the [release notes](https://github.com/supabase/pg_graphql/releases/tag/v0.4.0) and [documentation](https://supabase.github.io/pg_graphql/), and start using `pg_graphql` on Supabase today. + +[Read more](/blog/graphql-now-available). + +--- + +## Multi-Factor Authentication + +![Multi-Factor Authentication](/images/blog/lw5-one-more/lw5-mfa.png) + +We've opened early-access signups for Multi-Factor Authentication (MFA). To be clear—this is for MFA for [Supabase Auth](/auth), +which you can use to build additional layers of security in your applications (and not MFA for our Dashboard, which we will also release soon). + +If you're interested, sign up and we'll grant your projects early access to the MFA API endpoints. + +[Sign up](https://airtable.com/shrjcc9zi0RduHLIx). diff --git a/apps/www/_blog/2022-08-19-pg-jsonschema-a-postgres-extension-for-json-validation.mdx b/apps/www/_blog/2022-08-19-pg-jsonschema-a-postgres-extension-for-json-validation.mdx new file mode 100644 index 00000000000..fedddcb4bb8 --- /dev/null +++ b/apps/www/_blog/2022-08-19-pg-jsonschema-a-postgres-extension-for-json-validation.mdx @@ -0,0 +1,195 @@ +--- +title: 'pg_jsonschema: JSON Schema support for Postgres' +description: "Today we're releasing pg_jsonschema, a Postgres extension for JSON validation." +author: oli_rice +image: lw5-pg_jsonschema/jsonschema-thumb.jpg +thumb: lw5-pg_jsonschema/jsonschema-thumb.jpg +tags: + - launch-week +date: '2022-08-19' +toc_depth: 3 +--- + +Released on the Supabase platform today, [pg_jsonschema](https://github.com/supabase/pg_jsonschema) is a Postgres extension +which adds [JSON Schema](https://json-schema.org/) validation support for `json` and `jsonb` data types. + +## The use-case for JSON validation + +Despite Supabase being an SQL shop, even our most zealous relational data model advocates (begrudgingly) recognize some advantages to the document data model. +Mainly, if some complex data will always be consumed together, a document data type can be a good fit. + +**For Example**: + +If our application receives data via a webhook: + +```json +{ + "status_code": 200, + "checksum": "89b623f6332d2b9b42b4e17eaf1bcc60" + "headers": { + "Content-Type": "application/json", + "Last-Modified": "Tue, 09 Aug 2022 09:14:10 GMT" + }, + "payload": { + { + "sucess": true, + "content": { + "account_id": "d928b484-16bd-4f10-a827-3eb959b4cc14", + "event": "SUBSCRIBED", + "subscriptions": [ + {"subscription_id": 481, "exp": 1660050940}, + {"subscription_id": 121, "exp": 1660041852}, + ] + } + } + } +} +``` + +A reasonable swing at normalizing that data into tables might look like this: + +![pg_jsonschema_erd.png](/images/blog/lw5-pg_jsonschema/pg_jsonschema_erd.jpg) + +That's a lot of architecting! Moreover, the query to recover the original input requires 5 joins! + +A solution that aligns better with our intent would be to persist whatever we receive from the external service so long as it meets a minimum set of requirements. +With Postgres' `json` data type we can achieve half of that goal. + +![pg_jsonschema_erd2.png](/images/blog/lw5-pg_jsonschema/pg_jsonschema_erd2.jpg) + +Treating the webhook contents as a `json` document simplifies our data model. It is also robust to changing payloads and more efficient to query, update, and delete. + +Now what about this part? + +> so long as it meets a minimum set of requirements + +## Challenges + +The flexibility of document types also comes with some downsides. + +The schema of the json payload from the previous example is a little intense for a blog post, so let's instead say we intend for a table's `json` column to hold objects with a `string` attribute named `foo` and no additional attributes. + +Without constraints, the setup would be: + +```sql +create table some_table ( + id serial primary key, + metadata json not null +); + +insert into some_table (metadata) +values (); + +``` + +But the resulting schema is much more permissive than our intent. When inserting a mix of correct and incorrect values: + +![Check constraints](/images/blog/lw5-pg_jsonschema/table-1.png) + +Only 2 of our 8 test cases were handled appropriately by our data model. + +A core strength of SQL databases is their ability to constrain data's [types](https://www.postgresql.org/docs/current/datatype.html), nullability, +[referential integrity](https://www.postgresql.org/docs/current/tutorial-fk.html), [uniqueness](https://www.postgresql.org/docs/current/ddl-constraints.html), +and even [arbitrary developer-defined rules](https://www.postgresql.org/docs/current/sql-createtrigger.html). +Those constraints are a lot to sacrifice to gain the convenience of document types. + +Fortunately, the challenge of validating `json` documents isn't specific to SQL databases. NoSQL/Document databases, like MongoDB, +[optionally enforce data constraints](https://www.mongodb.com/docs/atlas/app-services/schemas/) so there's plenty of prior art for us to draw from. + +## JSON Schema + +[JSON Schema](https://json-schema.org/) is a specification for validating the shape and contents of `json` documents. +It can describe constraints for documents similar to those applied by relational databases. + +Translating our constraints from the previous example into a JSON Schema we get: + +```js +// objects with a string attribute +// named foo and no additional attributes +{ + "type": "object", + "properties": { + "foo": { + "type": "string" + } + }, + "required": ["foo"], + "additionalProperties": false +} +``` + +Which is a formal and human-readable description of our intent. A tutorial on the JSON Schema language is out-of-scope +for this article but you can find a full introduction in [their guide](https://json-schema.org/understanding-json-schema/index.html). + +So now we have: + +✅ flexible document data type → `json` + +✅ a language to describe constraints on `json` documents → JSON Schema + +❌ a way to enforce JSON Schema constraints on `json` documents in Postgres + +## pg_jsonschema + +[pg_jsonschema](https://github.com/supabase/pg_jsonschema) is a Postgres extension that can validate `json` and `jsonb` data types +against a [JSON Schema](https://json-schema.org/). The extension offers two functions: + +```sql +-- Validates a json *instance* against a JSON Schema *schema* +json_matches_schema(schema json, instance json) returns bool + +-- Validates a jsonb *instance* against a JSON Schema *schema* +jsonb_matches_schema(schema json, instance jsonb) returns bool +``` + +We can use those functions in combination with a [check constraint](https://www.postgresql.org/docs/current/ddl-constraints.html) to more completely describe our data model. + +```sql +create table some_table( + id serial primary key, + metadata json not null, + + check ( + json_matches_schema( + schema :='{ + "type": "object", + "properties": { + "foo": { + "type": "string" + } + }, + "required": ["foo"], + "additionalProperties": false + }', + instance := metadata + ) + ) +); + +insert into some_table(metadata) +values + (); + +``` + +With that check constraint in place, we re-run the same test cases: + +![Check constraints 2](/images/blog/lw5-pg_jsonschema/table-2.png) + +Now all 8 tests are handled correctly. In cases where records failed to insert, Postgres throws an error referencing the failing constraint. + +> ERROR: new row for relation "some_table" violates check constraint "some_table_metadata_check" +> +> DETAIL: Failing row contains (1, null). +> +> SQL state: 23514 + +With these tools you can wield the flexibility of `json`/`jsonb` data types without sacrificing the guarantees of a well specified data model! + +To get started with `pg_jsonschema`, fire up a new supabase project and enable the extension with + +```sql +create extension pg_jsonschema; +``` + +or follow the [Docker Compose instructions](https://github.com/supabase/pg_jsonschema#try-it-out) in the [repo's README](https://github.com/supabase/pg_jsonschema/blob/master/README.md). diff --git a/apps/www/_blog/2022-08-19-postgrest-v10.mdx b/apps/www/_blog/2022-08-19-postgrest-v10.mdx new file mode 100644 index 00000000000..0f5a29ebd83 --- /dev/null +++ b/apps/www/_blog/2022-08-19-postgrest-v10.mdx @@ -0,0 +1,282 @@ +--- +title: 'PostgREST v10: EXPLAIN and Improved Relationship Detection' +description: "Today, PostgREST 10 was released. Let's take a look at some of the new features that go hand in hand with supabase-js v2." +author: steve_chavez +image: lw5/postgrest-v10.png +thumb: lw5/postgrest-v10.png +tags: + - launch-week +date: '2022-08-19' +toc_depth: 3 +--- + +PostgREST turns your PostgreSQL database automatically into a RESTful API. Today, PostgREST v10 was [released](https://github.com/PostgREST/postgrest/releases/tag/v10.0.0). v10 is not available on the Supabase Platform yet, but it is available for [self-hosting](https://supabase.com/docs/guides/hosting/overview) or as a executable binary from the GitHub release page. + +Let's take a look at some of its new features that go hand in hand with [supabase-js v2](https://supabase.com/blog/supabase-js-v2). + +## EXPLAIN + +Akin to the [PostgreSQL EXPLAIN](https://www.postgresql.org/docs/current/sql-explain.html) command, you can now get the execution plan of a request through HTTP or `supabase-js`. This works transparently for reads, writes and RPC because every request to PostgREST generates a single SQL query. + +This is only suitable for development environments and is only enabled when the `db-plan-enabled` config is set to `true`. + +### Getting the execution plan through HTTP + +Using `curl`, you can obtain the execution plan by specifying a vendor media type on the `Accept` header. + +```bash +$ curl -H 'Accept: application/vnd.pgrst.plan' \ + 'https://.supabase.co/rest/v1/clients?select=*&id=eq.1' + +Aggregate (cost=8.18..8.20 rows=1 width=112) + -> Index Scan using clients_pkey on clients (cost=0.15..8.17 rows=1 width=36) + Index Cond: (id = 1) +``` + +The `text` format is used by default, which gives you the same output you’d get in other SQL clients like `psql`. You can change the format to JSON by using a media type suffix `application/vnd.pgrst.plan+json`. + +### Explaining supabase-js queries + +For `supabase-js`, you can get the execution plan using the `explain()` transform. This works for every `supabase-js` method, including `rpc()`. Here’s an example for `select()`. + +```jsx +const { data, error } = await supabase + .from('projects') + .select('*') + .eq('id', 1) + .explain() + +console.log(data) +``` + +```text hideCopy +Aggregate (cost=8.18..8.20 rows=1 width=112) + -> Index Scan using projects_pkey on projects (cost=0.15..8.17 rows=1 width=40) + Index Cond: (id = 1) +``` + +Explaining the plan output in detail is beyond the scope of this blog post but basically it’s a tree of operations that PostgreSQL will follow for executing a query. Here we see the “Aggregate” node which corresponds to the `json_agg` function used by the PostgREST generated query(more details on how to find these later) and the “Index Scan” node which means an index on “id” was used for a fast search. + +### Explaining RLS policies + +The raison d'etre of `explain()` is to provide quicker feedback on the performance of queries, especially in the presence of RLS policies. For instance, let’s say we have this basic policy: + +```sql +create policy "anon can't read" +on projects for select to anon +using ( + false +); +``` + +And we use `explain()` again, this time with the `analyze` option(executes the query, same as the EXPLAIN ANALYZE counterpart in SQL) so we can see the execution time. + +```jsx +const { data, error } = await supabase + .from('projects') + .select('*') + .eq('id', 1) + .explain({ analyze: true }) + +console.log(data) +``` + +```text hideCopy +Aggregate (cost=8.18..8.20 rows=1 width=112) (actual time=0.017..0.018 rows=1 loops=1) + -> Index Scan using projects_pkey on projects (cost=0.15..8.17 rows=1 width=40) (actual time=0.012..0.012 rows=0 loops=1) + Index Cond: (id = 1) + Filter: false + Rows Removed by Filter: 1 +Planning Time: 0.092 ms +Execution Time: 0.046 ms +``` + +Here you can see the “Filter” node, which is a simple `false` as defined by the above policy, this proves that the RLS policy is getting applied. Also the actual “Execution Time” is shown, which is a fraction of a millisecond. Note that this is only the query execution time, it doesn’t account for the latency for transferring the data from the database to the frontend. + +### Getting the Query Identifier + +`explain()` is also useful for getting the [pg_stat_statements](https://www.postgresql.org/docs/current/pgstatstatements.html) query identifier, which you can use in the Supabase logs to obtain the generated SQL queries. Here we use the json `format` and the `verbose` option to get it. + +```jsx +const { data, error } = await supabase + .from('projects') + .select('*') + .eq('id', 1) + .explain({ format: 'json', verbose: true }) + +console.log(data[0]['Query Identifier']) +// 2811722635570756600 +``` + +For getting more detailed information, you can also use the `settings`, `buffers`, `wal` options with `explain()` . + +## Improved Relationship Detection + +### One-to-one relationships + +To avoid unnecessary JSON arrays in a query result, one-to-one relationships are now automatically detected. For this you can use a: + +```sql +-- A unique constraint on a foreign key +create table country( + id serial primary key +, name text +); + +create table capital( + id serial primary key +, name text +, country_id int unique +, foreign key (country_id) references country(id) +); + +-- or a primary key on a foreign key +create table country( + id serial primary key +, name text +); + +create table capital( + id serial primary key +, name text +, foreign key (id) references country(id) +); +``` + +Both options should give you a json object when embedding one table with the other. + +```sql +const { data, error } = await supabase + .from('country') + .select('name,capital(name)') + .in('id', [1, 2]) + +console.log(data) +``` + +```json noCopy +[ + { "name": "Afghanistan", "capital": { "name": "Kabul" } }, + { "name": "Algeria", "capital": { "name": "Algiers" } } +] +``` + +### Computed relationships + +PostgREST uses foreign keys to detect relationships. This poses a problem on database objects that cannot have foreign keys, like views. Though PostgREST tries to infer relationships based on the views’ source tables foreign keys([docs](https://postgrest.org/en/latest/api.html#embedding-views)), this is not infallible - in particular, it fails when views have a complex definition (e.g. multiple UNIONs). For this you can use “computed relationships”, which are “inlinable” SQL functions similar to computed columns. + +Let’s assume we have a `players` view, a `scores` materialized view and we want to define a one-to-many relationship on them. + +```sql +create view players as +select id, name from players_a +union +select id, name from players_b; + +create materialized view scores as +select + name as lvl_name, + compute_score(stats) as total, player_id +from level_1; +union +select + name as lvl_name, + compute_score(stats) as total, + player_id +from level_2; +``` + +For this we can define a couple of computed relationships. + +```sql +-- many-to-one relationship on scores -> players +create function player(scores) +returns setof players rows 1 -- rows 1 defines a "one" end +language sql stable +as $$ + select * + from players + where id = $1.player_id; +$$; + +-- one-to-many relationship on players -> scores +create function scores(players) +returns setof scores -- there's an implicit rows 1000 here, which is assumed to be "many" +language sql stable +as $$ + select * + from scores + where player_id = $1.id; +$$; +``` + +And now we can embed both views from one end to the other. Note that the function names are arbitrary, here we named them similar to the views for convenience. + +```jsx +const { data, error } = await supabase + .from('scores') + .select('lvl_name, player(name)') + .eq('lvl_name', "Grand Prix 1") + .single() + +console.log(data) + +{ + "lvl_name": "Grand Prix 1", + "player": { "name": "Ben Richards"} +} + +const { data, error } = await supabase + .from('players') + .select('name,scores(lvl_name, total)') + .eq('id', 1) + .single() + +console.log(data) + +{ + "name":"Ben Richards", + "scores":[ + {"lvl_name": "Grand Prix 1", "total": 48761.24}, + {"lvl_name": "Grand Prix 2", "total": -40.25} + ] +} +``` + +Computed relationships follow the rules of [Inlining of SQL Functions](https://wiki.postgresql.org/wiki/Inlining_of_SQL_functions), which basically allows them to be injected into PostgREST generated queries, making them efficient to use. You can also use computed relationships to override detected relationships. + +### Breaking change on many-to-many relationships + +Detecting join tables for many-to-many relationships has been working for many releases. However on complex schemas join tables can be incorrectly detected, causing errors when used in resource embedding. For this the following BREAKING CHANGE had to be made: + +```sql +-- for "books_authors" to be detected as a join table, +-- the primary key must include the foreign key columns +-- of the many-to-many ends + +create table books( + id int primary key +, name text +); + +create table books_authors( + book_id int references books(id) +, author_id int references authors(id) +, primary key(book_id, author_id) -- this is now necessary +); + +create table authors( + id int primary key +, name text +); +``` + +If changing the PK is not feasible for a particular case, the alternative would be using computed relationships to define the many-to-many. + +One-to-many and many-to-one relationships keep working as always, no change in their detection. + +## Closing up + +Computed relationships are the first step towards PostgREST extensibility, customizing the aggregate used for the response and custom operators are planned for next releases. + +We’ll release PostgREST 10 on the Supabase platform over the next month. diff --git a/apps/www/_blog/2022-08-19-supabase-vault.mdx b/apps/www/_blog/2022-08-19-supabase-vault.mdx new file mode 100644 index 00000000000..62b386bd1b9 --- /dev/null +++ b/apps/www/_blog/2022-08-19-supabase-vault.mdx @@ -0,0 +1,181 @@ +--- +title: 'Supabase Vault' +description: "Today we're announcing Vault, a Postgres extension for managing secrets and encryption inside your database." +author: michel +image: lw5-vault/supabase-vault.jpg +thumb: lw5-vault/supabase-vault.jpg +tags: + - launch-week +date: '2022-08-19' +toc_depth: 2 +--- + +Today we're announcing [Supabase Vault](https://github.com/supabase/vault), a Postgres extension for managing secrets and encryption inside your database. +Vault is a thin usability-layer on top of [pgsodium](https://github.com/michelp/pgsodium). + +Vault is not available on the Supabase platform yet. We're finalizing usability and security testing. +This release is intended to gather user-feedback from our community and customers. + +Soon, we'll release a blog post that describes more about the technology behind Vault - [libsodium](https://doc.libsodium.org/) and +[pgsodium](https://doc.libsodium.org/). For now, we will go through a quick example of storing a secret, like a service access token, into the Vault. + +## Background + +Until now, the industry-standard for PostgreSQL encryption is a built-in extension called [`pgcrypto`](https://www.postgresql.org/docs/current/pgcrypto.html). +Like most cloud providers, Supabase offers `pgcrypto` for developers to use in their applications. `pgcrypto` has been around for a long time, +and while it supports some basic encryption and decryption abilities, it lacks features like public key signing, key derivation APIs, streaming encryption, +and other modern features required by security-first applications. + +### Problems with raw keys + +Databases often store sensitive information, and they need tools that guarantee this data is stored and backed-up in an encrypted form. +A fundamental issue with `pgcrypto` is that it lacks the ability to derive keys from outside of SQL. Instead you must have the raw encryption key for the algorithm you wish to use: + +```sql +create extension pgcrypto; + +create table users ( + id serial primary key, + email varchar not null unique +); + +insert into users + (email) +values + (pgp_sym_encrypt('alice@supabase.io', 's3kr3t_k3y')), + (pgp_sym_encrypt('bob@supabase.io', 's3kr3t_key')); +``` + +pgcrypto works with _raw_ keys. In order to encrypt the data with pgcrypto you must pass the key directly to the encryption function. +Leaking those raw keys is all too easy - logs, files, clients, tables, replication streams - you name it. +Wouldn't it be great if you could encrypt data, but instead of specifying the raw key you reference it indirectly, like with a key ID? + +## Supabase Vault + +Supabase Vault allows you to store secrets without leaking any sensitive information. + +The Vault is a good place to put things like API keys, access tokens, and other secrets from external services that you need to access within your database. +The core of the Supabase Vault is a table with some metadata and an encrypted text column where you can put your secrets and any metadata related to them. + +We take the pain out of key management by pre-generating a unique, per-database key that is used by default - a “root” key - which is stored outside of the SQL language, +accessibly only internally in the Postgres server by the libsodium library. This root key is managed by the [pgsodium](https://github.com/michelp/pgsodium) Postgres extension +when the server boots using [Server Key Management.](https://github.com/michelp/pgsodium#server-key-management) + +pgsodium provides an Encryption and Key Derivation API based on the [libsodium library](https://libsodium.gitbook.io/doc/) and can get it's root key from a +variety of sources depending on how you configure it. Supabase generates and preserves your project's root key behind the scenes, so you don't have to worry about it. +If you install pgsodium locally the default is to generate a random root key from the `/dev/urandom` device which is then saved in a file in your Postgres data directory. + +Installing the `vault` extension is the same as any other Postgres extension: + +```sql +create extension vault with schema vault; +``` + +Once enabled, you can insert secrets into the `vault.secrets` table: + +```sql +insert into vault.secrets + (secret, associated) +values + ('s3kr3t_k3y', 'This is the secret API service key.'); +``` + +Now when you look in the `vault.secrets` table, the secret is encrypted: + +```sql +select * from vault.secrets; +``` + +```text hideCopy +-[ RECORD 1 ]-------------------------------------------------------- +id | f6a2fe0a-3471-4eea-a581-75c4d2be396b +secret | /eT9bb96POTJ7L2gYrluTZ3r3pG5IMwPSQo6pQP0xdZTarpRrpWPXTWQ +key_id | caabfc28-2ab3-48f5-8978-1b3d4b659911 +associated | This is the secret API service key. +nonce | \x77c7381c523630ba72f1f137626a9f9a +created_at | 2022-08-18 19:33:15.312651+00 +``` + +Notice how the row has a `key_id` column. This is the _ID_ of the internally derived key that is used to encrypt the secret, not the key itself. +The actual raw key is not available to you in SQL, it is managed entirely outside of the SQL language in the Postgres server. + +At Supabase, we manage this key for your project automatically and generate a unique default Key ID for you in the `secrets` table. +For self-hosting, pgsodium [supports a variety of ways](https://github.com/michelp/pgsodium#server-key-management) to place the root key into Postgres. + +To see the decrypted data, there is a special view created called `vault.decrypted_secrets`: + +```sql +select * from vault.decrypted_secrets; +``` + +```text hideCopy +-[ RECORD 1 ]----+--------------------------------------------------------- +id | f6a2fe0a-3471-4eea-a581-75c4d2be396b +secret | /eT9bb96POTJ7L2gYrluTZ3r3pG5IMwPSQo6pQP0xdZTarpRrpWPXTWQ +decrypted_secret | s3kr3t_k3y +key_id | caabfc28-2ab3-48f5-8978-1b3d4b659911 +associated | This is the secret API service key. +nonce | \x77c7381c523630ba72f1f137626a9f9a +created_at | 2022-08-18 19:33:15.312651+00 +``` + +Now you can see a new `decrypted_secret` column that contains the decrypted secret we originally inserted into the table. +This `vault.decrypted_secrets` view automatically decrypts rows in the `vault.secrets` table “on-the-fly” as you query them, but the secret is stored on disk in _encrypted_ form. +If you take a backup, or pause your project, that data remains encrypted. We will keep your hidden root key safe in our backend systems for when you need to restore or un-pause your projects. + +If you wish to use your own Key ID for different secrets, instead of the default Key ID we've generated, you can create one using the `pgsodium.create_key()` function: + +```sql +select * from pgsodium.create_key('This is a comment for the new key'); +``` + +```text hideCopy +-[ RECORD 1 ]------------------------------------- +id | f9f176eb-7069-4743-9403-582c04354ffc +status | valid +created | 2022-08-18 22:31:50.331792 +expires | +key_type | aead-det +key_id | 2 +key_context | \x7067736f6469756d +comment | This is the comment for the new key +user_data | +``` + +Now you can encrypt table secrets with this new key by inserting its ID explicitly: + +```sql +insert into vault.secrets + (secret, associated, key_id) +values ( + 'apikey_XaYrurzcquqhEdBjzfTzfwAZqpd', + 'This is some different associated data.', + 'f9f176eb-7069-4743-9403-582c04354ffc' +) +returning *; +``` + +```text hideCopy +-[ RECORD 1 ]------------------------------------------------------------ +id | 9c58a0f3-aa40-4789-b683-6db48b241f9e +secret | YWxuTnWdF55MuRrZ7xneBvaz2uH59U1dJV/7CCZjSn5B5jELOoy/csq8x/s= +key_id | f9f176eb-7069-4743-9403-582c04354ffc +associated | This is some different associated data. +nonce | \xd39808b07c9ae52c8f02c33a7f87595c +created_at | 2022-08-18 22:34:07.219941+00 +``` + +The type of encryption used by the Vault is called [Authenticated Encryption with Associated Data](https://en.wikipedia.org/wiki/Authenticated_encryption). +The data you insert into the `associated` column, which is up to you, is combined with the encrypted text when libsodium creates the authentication signature for the secret. +This means that when you read the secret, you know that the associated data is also authentic. The associated data could be an account ID or some +information that ties your system to the secret. And as always, you can refer to rows in the secrets table by their primary key UUID. + +If you only want to store secrets that you know are encrypted on disk and in backups, then all you need to know is shown above. Just insert secrets into the table, +optionally creating new keys, and select them from the view when you want to use them. + +## Going Beyond the Vault + +The Vault is good for a reasonable amount of secure data, like API keys, access tokens, or environment variables. +But if you have a lot more sensitive information, like personally Identifiable Information (PII), +you may want to break them out into side-tables using pgsodium's +[Transparent Column Encryption](https://github.com/michelp/pgsodium#transparent-column-encryption) which we will describe soon in a follow-up blog post. Stay tuned! diff --git a/apps/www/_blog/2022-08-24-building-a-realtime-trello-board-with-supabase-and-angular.mdx b/apps/www/_blog/2022-08-24-building-a-realtime-trello-board-with-supabase-and-angular.mdx new file mode 100644 index 00000000000..8e608762b6e --- /dev/null +++ b/apps/www/_blog/2022-08-24-building-a-realtime-trello-board-with-supabase-and-angular.mdx @@ -0,0 +1,1384 @@ +--- +title: 'Building a Realtime Trello Board with Supabase and Angular' +description: Go beyond the hello world example with this real world project. +author: simon_grimm +image: simon-grimm-angular-realtime/angular-supabase.png +thumb: simon-grimm-angular-realtime/angular-supabase.png +tags: + - angular + - realtime + - community +date: '2022-08-24' +toc_depth: 2 +--- + +Everyone can code up a little hello world example quickly with a platform like [Supabase](https://supabase.com/) - but what about a _real world_ project of bigger scale? + +That's exactly what you will learn in this article: + +We are building a Trello board with Supabase, Angular and Tailwind! + +![Supabase Trello Example](/images/blog/simon-grimm-angular-realtime/board.png) + +Along our jurney we will: + +- write some **advanced SQL** to create our tables +- implement **magic link sign in** and user authentication with Angular +- make use of **the realtime capabilities**! + + Watch the video version of the tutorial. + +Since there are quite some code snippets we need I've put together the [full source code on Github](https://github.com/saimon24/supabase-trello-angular) so you can easily run the project yourself! + +If you are not familiar with [Trello](https://trello.com/), it's a way to manage projects with different boards, lists and cards! + +Ready for a wild adventure? Then let's begin inside our Supabase account! + +## Creating the Supabase Project + +First of all we need a new Supabase project. If you don't have a Supabase account yet, you can [get started for free](https://app.supabase.com/)! + +In your dashboard, click "New Project" and leave it to the default settings, but make sure you keep a copy o your Database password! + +The only thing we will change manually for now is disabling the email confirmation step. By doing this, users will be directly able to sign in when using the magic link, so go to the **Authentication** tab of your project, select **Settings** and scroll down to your **Auth Providers** where you can disable it. + +![Disable Email confirm](/images/blog/simon-grimm-angular-realtime/disable-email-confirm.png) + +Everything else regarding authentication[https://supabase.com/docs/guides/auth] is handled by Supabase and we don't need to worry about it at the moment! + +## Defining your Tables with SQL + +Since Supabase uses Postgres under the hood, we need to write some SQL to define our tables. + +Let's start with something easy, which is the general definition of our tables: + +- `boards`: Keep track of user created boards +- `lists`: The lists within one board +- `cards`: The cards with tasks within one list +- `ssers`: A table to keep track of all registered users +- `user_boards`: A many to many table to keep track which boards a user is part of + +We're not going into SQL details, but you should be able to paste the following snippets into the **SQL Editor** of your project. + +![SQL Editor](/images/blog/simon-grimm-angular-realtime/sql-editor.png) + +Simply navigate to the menu item and click on **+ New query**, paste in the SQL and hit **RUN** which hopefully executes without issues: + +```sql +drop table if exists user_boards; +drop table if exists cards; +drop table if exists lists; +drop table if exists boards; +drop table if exists users; + +-- Create boards table +create table boards ( + id bigint generated by default as identity primary key, + creator uuid references auth.users not null default auth.uid(), + title text default 'Untitled Board', + created_at timestamp with time zone default timezone('utc'::text, now()) not null +); + +-- Create lists table +create table lists ( + id bigint generated by default as identity primary key, + board_id bigint references boards ON DELETE CASCADE not null, + title text default '', + position int not null default 0, + created_at timestamp with time zone default timezone('utc'::text, now()) not null +); + +-- Create Cards table +create table cards ( + id bigint generated by default as identity primary key, + list_id bigint references lists ON DELETE CASCADE not null, + board_id bigint references boards ON DELETE CASCADE not null, + position int not null default 0, + title text default '', + description text check (char_length(description) > 0), + assigned_to uuid references auth.users, + done boolean default false, + created_at timestamp with time zone default timezone('utc'::text, now()) not null +); + +-- Many to many table for user <-> boards relationship +create table user_boards ( + id bigint generated by default as identity primary key, + user_id uuid references auth.users ON DELETE CASCADE not null default auth.uid(), + board_id bigint references boards ON DELETE CASCADE +); + +-- User ID lookup table +create table users ( + id uuid not null primary key, + email text +); + +-- Make sure deleted records are included in realtime +alter table cards replica identity full; +alter table lists replica identity full; + +-- Function to get all user boards +create or replace function get_boards_for_authenticated_user() +returns setof bigint +language sql +security definer +set search_path = public +stable +as $$ + select board_id + from user_boards + where user_id = auth.uid() +$$; +``` + +Besides the creation of tables we also changed the replica identity, which helps to alter retrieve records when a row is deleted. + +Finally we defined a very important **function** that we will use to make the table secure using [Row Level Security](https://supabase.com/docs/guides/auth/row-level-security). + +This function will retrieve all boards of a user from the `user_boards` table and will be used in our policies now. + +We now enabled the row level security for the different tables and define some **policies** so only users with the right access can read/update/delete rows. + +Go ahead and run another SQL query in the editor now: + +```sql +-- boards row level security +alter table boards enable row level security; + +-- Policies +create policy "Users can create boards" on boards for + insert to authenticated with CHECK (true); + +create policy "Users can view their boards" on boards for + select using ( + id in ( + select get_boards_for_authenticated_user() + ) + ); + +create policy "Users can update their boards" on boards for + update using ( + id in ( + select get_boards_for_authenticated_user() + ) + ); + +create policy "Users can delete their created boards" on boards for + delete using (auth.uid() = creator); + +-- user_boards row level security +alter table user_boards enable row level security; + +create policy "Users can add their boards" on user_boards for + insert to authenticated with check (true); + +create policy "Users can view boards" on user_boards for + select using (auth.uid() = user_id); + +create policy "Users can delete their boards" on user_boards for + delete using (auth.uid() = user_id); + +-- lists row level security +alter table lists enable row level security; + +-- Policies +create policy "Users can edit lists if they are part of the board" on lists for + all using ( + board_id in ( + select get_boards_for_authenticated_user() + ) + ); + +-- cards row level security +alter table cards enable row level security; + +-- Policies +create policy "Users can edit cards if they are part of the board" on cards for + all using ( + board_id in ( + select get_boards_for_authenticated_user() + ) + ); +``` + +Finally we need a **trigger** that reacts to changes in our database. + +In our case we want to listen to the creation of new boards, which will automatically create the board < - > user connection in the `user_boards` table. + +Additionally we will also add every new authenticated user to our `users` table since you later don't have access to the internal auth table of Supabase! + +Therefore run one last query: + +```sql +-- inserts a row into user_boards +create function public.handle_board_added() +returns trigger +language plpgsql +security definer +as $$ +begin + insert into public.user_boards (board_id, user_id) + values (new.id, auth.uid()); + return new; +end; +$$; + +-- trigger the function every time a board is created +create trigger on_board_created + after insert on boards + for each row execute procedure public.handle_board_added(); + + +create or replace function public.handle_new_user() +returns trigger as $$ +begin + insert into public.users (id, email) + values (new.id, new.email); + return new; +end; +$$ language plpgsql security definer; + +create trigger on_auth_user_created + after insert on auth.users + for each row execute procedure public.handle_new_user(); +``` + +At this point our Supabase project is configured correctly and we can move into the actual application! + +## Creating the Angular Project + +We are not bound to any framework, but in this article we are using [Angular](https://supabase.com/docs/guides/with-angular) to build a robust web application. + +Get started by using the [Angular CLI](https://angular.io/cli) to generate a new project and then add some components and services that we will need. + +Finally we can install the [Supabase JS package](https://github.com/supabase/supabase-js) and two additional helper packages for some cool functionality, so go ahead and run: + +```bash +ng new trelloBoard --routing --style=scss +cd ./trelloBoard + +# Generate components and services +ng generate component components/login +ng generate component components/inside/workspace +ng generate component components/inside/board + +ng generate service services/auth +ng generate service services/data + +# Install Supabase and additional packages +npm install @supabase/supabase-js +npm install ngx-spinner ngx-gravatar +``` + +To import the installed packages we can quickly change our **src/app/app.module.ts** to: + +```ts +import { NgModule } from '@angular/core' +import { BrowserModule } from '@angular/platform-browser' + +import { AppRoutingModule } from './app-routing.module' +import { AppComponent } from './app.component' +import { LoginComponent } from './components/login/login.component' +import { BoardComponent } from './components/inside/board/board.component' +import { WorkspaceComponent } from './components/inside/workspace/workspace.component' +import { BrowserAnimationsModule } from '@angular/platform-browser/animations' +import { NgxSpinnerModule } from 'ngx-spinner' +import { FormsModule } from '@angular/forms' +import { GravatarModule } from 'ngx-gravatar' + +@NgModule({ + declarations: [AppComponent, LoginComponent, BoardComponent, WorkspaceComponent], + imports: [ + FormsModule, + BrowserModule, + AppRoutingModule, + BrowserAnimationsModule, + NgxSpinnerModule, + GravatarModule, + ], + providers: [], + bootstrap: [AppComponent], +}) +export class AppModule {} +``` + +On top of that the [ngx-spinner](https://github.com/Napster2210/ngx-spinner) needs another entry in the **angular.json** to copy over resources so we can later easily display a loading indicator, so open it and change the `styles` array to this: + +```json +"styles": [ + "src/styles.scss", + "node_modules/ngx-spinner/animations/ball-scale-multiple.css" + ], +``` + +Since we have already generated some components, we can also change our app routing to inlcude the new pages in the **src/app/app-routing.module.ts** now: + +```ts +import { BoardComponent } from './components/inside/board/board.component' +import { WorkspaceComponent } from './components/inside/workspace/workspace.component' +import { LoginComponent } from './components/login/login.component' +import { NgModule } from '@angular/core' +import { RouterModule, Routes } from '@angular/router' + +const routes: Routes = [ + { + path: '', + component: LoginComponent, + }, + { + path: 'workspace', + component: WorkspaceComponent, + }, + { + path: 'workspace/:id', + component: BoardComponent, + }, + { + path: '**', + redirectTo: '/', + }, +] + +@NgModule({ + imports: [RouterModule.forRoot(routes, {})], + exports: [RouterModule], +}) +export class AppRoutingModule {} +``` + +Our app will start with the login screen, after which we can move to the workspace with our boards and finally dive into one specific board to show all its lists and cards. + +To correclty use the Angular router we can now update the **src/app/app.component.html** so it only holds one line: + +```html + +``` + +Finally the most important configuration step: Adding our Supabase credentials to the **src/environments/environment.ts** like this: + +```ts +export const environment = { + production: false, + supabaseUrl: 'YOUR-URL', + supabaseKey: 'YOUR-ANON-KEY', +} +``` + +You can find those values in your Supabase project by clicking on the **Settings** icon and then navigating to **API** where it shows your **Project API keys**. + +![Supabase project settings](/images/blog/simon-grimm-angular-realtime/project-settings.png) + +The `anon` key is safe to use in a frontend project since we have enabled RLS on our database anyway! + +## Adding Tailwind for Styling + +We could build an ugly project or easily make it look awesome by installing [Tailwind CSS](https://tailwindcss.com/) - we opt for the second in this article! + +There are certainly other styling libraries that you can use, so this step is completely optional but required in order to make code of this tutorial work. + +Therefore we follow the [Angular guide](https://tailwindcss.com/docs/guides/angular) and install Tailwind like this: + +```bash +npm install -D tailwindcss postcss autoprefixer @tailwindcss/forms +npx tailwindcss init +``` + +Now we also need to update our **tailwind.config.js** to this: + +```js +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: ['./src/**/*.{html,ts}'], + theme: { + extend: {}, + }, + plugins: [require('@tailwindcss/forms')], +} +``` + +Finally we include the styling in our **src/styles.scss**: + +```css +@tailwind base; +@tailwind components; +@tailwind utilities; +``` + +And with that the whole project configuration is done and we can focus 100% on the functionality of our Trello clone! + +## Building a Magic Link Sign In + +We could now add all sorts of authetnication using the auth providers that Supabase provides, but we will simply use a magic link sign in where users only need to pass their email. + +To kick this off we will implement a simple authentication service that keeps track of our current user with a **BehaviourSubject** so we can easily emit new values later when the user session changes. + +We are also loading the session once "by hand" using `getUser()` since the `onAuthStateChange` event is usually not broadcasted when the page loads, and we want to load a stored session in that case as well. + +In order to send an email to the user we only need to call `signIn()` and only pass an email - Supabase takes care of the rest for us! + +Therefore get started by changing the **src/app/services/auth.service.ts** to this now: + +```ts +import { Injectable } from '@angular/core' +import { Router } from '@angular/router' +import { createClient, SupabaseClient, User } from '@supabase/supabase-js' +import { BehaviorSubject } from 'rxjs' +import { environment } from 'src/environments/environment' + +@Injectable({ + providedIn: 'root', +}) +export class AuthService { + private supabase: SupabaseClient + private _currentUser: BehaviorSubject = new BehaviorSubject(null) + + constructor(private router: Router) { + this.supabase = createClient(environment.supabaseUrl, environment.supabaseKey) + + // Manually load user session once on page load + // Note: This becomes a promise with getUser() in the next version! + const user = this.supabase.auth.user() + if (user) { + this._currentUser.next(user) + } else { + this._currentUser.next(false) + } + + this.supabase.auth.onAuthStateChange((event, session) => { + if (event == 'SIGNED_IN') { + this._currentUser.next(session!.user) + } else { + this._currentUser.next(false) + this.router.navigateByUrl('/', { replaceUrl: true }) + } + }) + } + + signInWithEmail(email: string) { + // Note: This becomes signInWithOTP() in the next version! + return this.supabase.auth.signIn({ + email, + }) + } + + logout() { + this.supabase.auth.signOut() + } + + get currentUser() { + return this._currentUser.asObservable() + } +} +``` + +That's a solid starting point for our authetnication logic, and now we just need to use those functions on our login page. + +Additionally we will also listen to user changes here since this is the page a user will load when clicking on the magic link. We can use the `currentUser` from our service so we don't need any additional logic for that. + +Once we start the sign in we can also use our cool spinner package to show a little indicator and afterwards flip the value of `linkSuccess` so we can present a little text in our UI. + +We're keeping it fairly easy, so let's change the **src/app/components/login/login.component.ts** to: + +```ts +import { Router } from '@angular/router' +import { AuthService } from './../../services/auth.service' +import { Component, OnInit } from '@angular/core' +import { NgxSpinnerService } from 'ngx-spinner' + +@Component({ + selector: 'app-login', + templateUrl: './login.component.html', + styleUrls: ['./login.component.scss'], +}) +export class LoginComponent implements OnInit { + email = '' + linkSuccess = false + + constructor( + private auth: AuthService, + private spinner: NgxSpinnerService, + private router: Router + ) { + this.auth.currentUser.subscribe((user) => { + if (user) { + this.router.navigateByUrl('/workspace', { replaceUrl: true }) + } + }) + } + + ngOnInit(): void {} + + async signIn() { + this.spinner.show() + const result = await this.auth.signInWithEmail(this.email) + + this.spinner.hide() + if (!result.error) { + this.linkSuccess = true + } else { + alert(result.error.message) + } + } +} +``` + +Last piece is our UI now, and since we are using Tailwind the HTML snippets won't look very beautiful. + +Nonetheless, it's just some CSS and connecting our fields and buttons to the right functions, so go ahead and change the **src/app/components/login/login.component.html** to: + +```html + + +
+
+

Supabase Trello

+
+ +
+
+
+
+ +
+ +
+
+ +
+ +
+
+ + Please check your emails! +
+
+
+``` + +Once you are done you should have a stylish login page! + +![Login](/images/blog/simon-grimm-angular-realtime/login.png) + +When you enter your email and click the button, you should automatically receive an email with a link that will open up your app in the browser again - and this time it should actually forward you to the workspace area immediately. + +![Magic Link Email](/images/blog/simon-grimm-angular-realtime/magic-link-email.png) + +Now at this point we could also enter that _internal_ page manually by changing the URL without being authorized, so let's add a mechanism to prevent that. + +## Protecting your Pages with a Guard + +In Angular we protect pages with a guard, and because we already keep track of the user in our authentication service it's gonna be super easy to protect pages that only authorized users should see. + +Get started by generating a new guard: + +```bash +ng generate guard guards/auth --implements CanActivate +``` + +That guard will now check the Observable of our service, filter out the initial state and then see if a user is allowed to access a page or not. + +Bring up the new **src/app/guards/auth.guard.ts** and change it to this: + +```ts +import { AuthService } from './../services/auth.service' +import { Injectable } from '@angular/core' +import { CanActivate, Router, UrlTree } from '@angular/router' +import { Observable } from 'rxjs' +import { filter, map, take } from 'rxjs/operators' + +@Injectable({ + providedIn: 'root', +}) +export class AuthGuard implements CanActivate { + constructor(private auth: AuthService, private router: Router) {} + + canActivate(): Observable { + return this.auth.currentUser.pipe( + filter((val) => val !== null), // Filter out initial Behaviour subject value + take(1), // Otherwise the Observable doesn't complete! + map((isAuthenticated) => { + if (isAuthenticated) { + return true + } else { + return this.router.createUrlTree(['/']) + } + }) + ) + } +} +``` + +Now we can apply this guard to all routes that we want to protect, so open up our **src/app/app-routing.module.ts** and add it to the two internal pages we want to protect: + +```ts +import { AuthGuard } from './guards/auth.guard' +import { BoardComponent } from './components/inside/board/board.component' +import { WorkspaceComponent } from './components/inside/workspace/workspace.component' +import { LoginComponent } from './components/login/login.component' +import { NgModule } from '@angular/core' +import { RouterModule, Routes } from '@angular/router' + +const routes: Routes = [ + { + path: '', + component: LoginComponent, + }, + { + path: 'workspace', + component: WorkspaceComponent, + canActivate: [AuthGuard], + }, + { + path: 'workspace/:id', + component: BoardComponent, + canActivate: [AuthGuard], + }, + { + path: '**', + redirectTo: '/', + }, +] + +@NgModule({ + imports: [RouterModule.forRoot(routes, {})], + exports: [RouterModule], +}) +export class AppRoutingModule {} +``` + +Now only signed in users can access those pages, and we can move a step forward to the boards logic. + +## Creating the Workspace + +Once a user arrives at the workspace page, we want to list all boards of a user and implement the ability to add boards. + +To do so, we start off within a service again which takes care of all the interaction between our code and Supbase, so the view can focus on the data presentation. + +Our first function will simplye insert an empty object into the `boards` table, which we define as a const so we can't add any typos to our code. + +Because we defined a default value for new rows in our SQL in the beginning, we don't have to pass any other data here. + +To load all tables of a user could simply query the `user_boards` table, but we might want more information about the related board so we can also [query foreign tables](https://supabase.com/docs/reference/javascript/select#query-foreign-tables) to load the board information! + +Go ahead and begin the **src/app/services/data.service.ts** with this: + +```ts +import { Injectable } from '@angular/core' +import { SupabaseClient, createClient } from '@supabase/supabase-js' +import { environment } from 'src/environments/environment' + +export const BOARDS_TABLE = 'boards' +export const USER_BOARDS_TABLE = 'user_boards' +export const LISTS_TABLE = 'lists' +export const CARDS_TABLE = 'cards' +export const USERS_TABLE = 'users' + +@Injectable({ + providedIn: 'root', +}) +export class DataService { + private supabase: SupabaseClient + + constructor() { + this.supabase = createClient(environment.supabaseUrl, environment.supabaseKey) + } + + async startBoard() { + // Minimal return will be the default in the next version and can be removed here! + return await this.supabase.from(BOARDS_TABLE).insert({}, { returning: 'minimal' }) + } + + async getBoards() { + const boards = await this.supabase.from(USER_BOARDS_TABLE).select(` + boards:board_id ( title, id ) + `) + return boards.data || [] + } +} +``` + +In fact that's enough for our first interaction with our Supabase tables, so we can move on to our view again and load the user boards when the page loads. + +Additionally we want to add a board, and here we encounter one of those _real world problems_: + +Because we have a **database trigger** that adds an entry when a new table is added, the user is not immediately authroized to access the new board row! Only once the trigger has finished, the RLS that checks user boards can confirm that this user is part of the board. + +Therefore we add another line to load the boards again and pop the last added element so we can automatically navigate into its details page. + +Now open the **src/app/components/inside/workspace/workspace.component.ts** and change it to: + +```ts +import { AuthService } from './../../../services/auth.service' +import { Router } from '@angular/router' +import { DataService } from './../../../services/data.service' +import { Component, OnInit } from '@angular/core' + +@Component({ + selector: 'app-workspace', + templateUrl: './workspace.component.html', + styleUrls: ['./workspace.component.scss'], +}) +export class WorkspaceComponent implements OnInit { + boards: any[] = [] + user = this.auth.currentUser + + constructor( + private dataService: DataService, + private router: Router, + private auth: AuthService + ) {} + + async ngOnInit() { + this.boards = await this.dataService.getBoards() + } + + async startBoard() { + const data = await this.dataService.startBoard() + + // Load all boards because we only get back minimal data + // Trigger needs to run first + // Otherwise RLS would fail + this.boards = await this.dataService.getBoards() + + if (this.boards.length > 0) { + const newBoard = this.boards.pop() + + if (newBoard.boards) { + this.router.navigateByUrl(`/workspace/${newBoard.boards.id}`) + } + } + } + + signOut() { + this.auth.logout() + } +} +``` + +To display all of this we build up another view with Tailwind and also use the Gravatar package to display a little image of the current user based on the email. + +Besides that we simply iterate all boards, add the router link to a board based on the ID and add a button to create new boards, so bring up the **src/app/components/inside/workspace/workspace.component.html** and change it to: + +```html +
+ +
+ +
+
    +
  • + {{ board.boards.title }} +
  • + +
  • + + New board +
  • +
+
+``` + +At this point we have a functional board logic and actually already route to the following details page. + +![Workspace page](/images/blog/simon-grimm-angular-realtime/workspace.png) + +The logout functionality will also remove our session and guide us back to the login, so we have covered that flow at the same time already. + +Time for some more interaction with our Supabase tables! + +## Adding CRUD Functions for the Database + +On our board details page we now need to interact with all the tables and mostly perform CRUD functionality - Create, read, update or delete records of our database. + +Since there's no real value in discussing every line, let's quickly add the following bunch of functions to our **src/app/services/data.service.ts**: + +```ts +// CRUD Board + async getBoardInfo(boardId: string) { + return await this.supabase + .from(BOARDS_TABLE) + .select('*') + .match({ id: boardId }) + .single(); + } + + async updateBoard(board: any) { + return await this.supabase + .from(BOARDS_TABLE) + .update(board) + .match({ id: board.id }); + } + + async deleteBoard(board: any) { + return await this.supabase + .from(BOARDS_TABLE) + .delete() + .match({ id: board.id }); + } + + // CRUD Lists + async getBoardLists(boardId: string) { + const lists = await this.supabase + .from(LISTS_TABLE) + .select('*') + .eq('board_id', boardId) + .order('position'); + + return lists.data || []; + } + + async addBoardList(boardId: string, position = 0) { + return await this.supabase + .from(LISTS_TABLE) + .insert({ board_id: boardId, position, title: 'New List' }) + .select('*') + .single(); + } + + async updateBoardList(list: any) { + return await this.supabase + .from(LISTS_TABLE) + .update(list) + .match({ id: list.id }); + } + + async deleteBoardList(list: any) { + return await this.supabase + .from(LISTS_TABLE) + .delete() + .match({ id: list.id }); + } + + // CRUD Cards + async addListCard(listId: string, boardId: string, position = 0) { + return await this.supabase + .from(CARDS_TABLE) + .insert( + { board_id: boardId, list_id: listId, position } + ) + .select('*') + .single(); + } + + async getListCards(listId: string) { + const lists = await this.supabase + .from(CARDS_TABLE) + .select('*') + .eq('list_id', listId) + .order('position'); + + return lists.data || []; + } + + async updateCard(card: any) { + return await this.supabase + .from(CARDS_TABLE) + .update(card) + .match({ id: card.id }); + } + + async deleteCard(card: any) { + return await this.supabase + .from(CARDS_TABLE) + .delete() + .match({ id: card.id }); + } +``` + +Most if not all of this is basic SQL as described in the [Supabase docs for Database](https://supabase.com/docs/reference/javascript/select) + +One additional function is missing, and that's a simple invitation logic. However we gonna skip the "Ok I want to join this board" step and simply add invited users to a new board. Sometimes users need to be forced to do what's good for them. + +Therfore we will try to find the user ID of a user based on the entered email, and if it exists we will create a new entry in the `user_boards` table for that user: + +```ts + // Invite others + async addUserToBoard(boardId: string, email: string) { + const user = await this.supabase + .from(USERS_TABLE) + .select('id') + .match({ email }) + .single(); + + if (user.data?.id) { + const userId = user.data.id; + const userBoard = await this.supabase.from(USER_BOARDS_TABLE).insert({ + user_id: userId, + board_id: boardId, + }); + return userBoard; + } else { + return null; + } + } +``` + +With those functions in place I think we are more than ready to create a powerful board page. + +## Creating the Boards View + +This page is the most essential and most challenging part of our app, as it's the place where the actual work happens and users collaborate on boards. + +However, we will begin by setting up the basic stuff and introduce **realtime functionality and presence** in a separate step afterwards. + +Because it would be tedious to split the page into multiple code snippets we'll go with one big and I'll explain what's going on: + +- We first need to load some general board info like the title using `getBoardInfo()` and the passed ID of the board +- We then need to load all **lists** of a board using `getBoardLists()` +- We then need to load every **card** for every list using `getListCards()` + +To keep track of data and changes we hold all cards in the `listCards` object that stores all cards under the related list ID key. + +In terms of additional logic we might want to update or delete the board, which we can do simply with the previously created service functions. + +Same is true for lists and cards, whcih can be added, updated or removed. + +However, this will not (yet) update our local data, since we want to implement this with realtime updates later. + +For now go ahead and change the **src/app/components/inside/board/board.component.ts** to: + +```ts +import { DataService } from './../../../services/data.service' +import { Component, HostListener, OnInit } from '@angular/core' +import { ActivatedRoute, Router } from '@angular/router' + +@Component({ + selector: 'app-board', + templateUrl: './board.component.html', + styleUrls: ['./board.component.scss'], +}) +export class BoardComponent implements OnInit { + lists: any[] = [] + boardId: string | null = null + editTitle: any = {} + editCard: any = {} + boardInfo: any = null + titleChanged = false + + listCards: any = {} + addUserEmail = '' + + constructor( + private route: ActivatedRoute, + private dataService: DataService, + private router: Router + ) {} + + async ngOnInit() { + this.boardId = this.route.snapshot.paramMap.get('id') + if (this.boardId) { + // Load general board information + const board = await this.dataService.getBoardInfo(this.boardId) + this.boardInfo = board.data + + // Retrieve all lists + this.lists = await this.dataService.getBoardLists(this.boardId) + + // Retrieve cards for each list + for (let list of this.lists) { + this.listCards[list.id] = await this.dataService.getListCards(list.id) + } + + // For later... + this.handleRealtimeUpdates() + } + } + + // + // BOARD logic + // + async saveBoardTitle() { + await this.dataService.updateBoard(this.boardInfo) + this.titleChanged = false + } + + async deleteBoard() { + await this.dataService.deleteBoard(this.boardInfo) + this.router.navigateByUrl('/workspace') + } + + // + // LISTS logic + // + async addList() { + const newList = await this.dataService.addBoardList(this.boardId!, this.lists.length) + } + + editingTitle(list: any, edit = false) { + this.editTitle[list.id] = edit + } + + async updateListTitle(list: any) { + await this.dataService.updateBoardList(list) + this.editingTitle(list, false) + } + + async deleteBoardList(list: any) { + await this.dataService.deleteBoardList(list) + } + + // + // CARDS logic + // + async addCard(list: any) { + await this.dataService.addListCard(list.id, this.boardId!, this.listCards[list.id].length) + } + + editingCard(card: any, edit = false) { + this.editCard[card.id] = edit + } + + async updateCard(card: any) { + await this.dataService.updateCard(card) + this.editingCard(card, false) + } + + async deleteCard(card: any) { + await this.dataService.deleteCard(card) + } + + // Invites + async addUser() { + await this.dataService.addUserToBoard(this.boardId!, this.addUserEmail) + this.addUserEmail = '' + } + + handleRealtimeUpdates() { + // TODO + } +} +``` + +That was a massive file - make sure you take the time to go through it at least once or twice to better understand the differetn functions we added. + +Now we need to tackle the view of that page, and because it's Tailwind the snippets won't be shorter. + +We can begin with the easier part, which is the header area that displays a back button, the board information that can be updated on click and a delete button to well, you know what. + +Bring up the **src/app/components/inside/board/board.component.html** and add this first: + +```html +
+ +
+``` + +Since we will have more of these update input fields later, let's quickly add a col `HostListener` to our app so we can detect at least the ESC key event and then close all of those edit input fields in our **src/app/components/inside/board/board.component.ts** + +```ts + @HostListener('document:keydown', ['$event']) onKeydownHandler( + event: KeyboardEvent + ) { + if (event.keyCode === 27) { + // Close whatever needs to be closed! + this.titleChanged = false; + + Object.keys(this.editCard).map((item) => { + this.editCard[item] = false; + return item; + }); + + Object.keys(this.editTitle).map((item) => { + this.editTitle[item] = false; + return item; + }); + } + } +``` + +Finally we need to iterate all lists, and for every list display all cards. + +Actually a pretty simple task, but since we need more buttons to control the elements so we can delete, add and update them to whole code becomes a bit more bloated. + +Nonetheless we can continue below the previous code in our **src/app/components/inside/board/board.component.html** and add this: + +```html +
+
+ +
+
+

+ {{ list.title }} +

+ + +
+ + +
+
+

{{ card.title }}

+ +
+ + + +
+
+
+ + Add a card +
+ +
+
+ +
+ + New list +
+
+
+``` + +At this point we are able to add a list, add a new card in that list and finally update or delete all of that! + +![Board functionality](/images/blog/simon-grimm-angular-realtime/board.png) + +Most of this won't update the view since we will handle this with realtime updates in a minute, so you need to refresh your page after adding a card or list right now! + +But we can actually already add our invitation logic, which just needs another input field so we can invite another email to work with us on the board. + +Add the following in the `
` tag of our **src/app/components/inside/board/board.component.html** at the bottom: + +```html +
+ Invite + + + +
+``` + +The required function in our class and service already exists, so you can now already invite other users (who are already signed up!) and from their account see the same board as you have. + +## Handling Realtime Table Changes + +The cool thing is is how easy we are now able to implement real time functionality - the only thing required for this is to turn it on. + +We can do this right inside the table editor of Supabase, so go to your tables, click that little arrow next to edi so you can edit the table and then enable realtime for bot **cards** and **lists**! + +![Supabase Realtime](/images/blog/simon-grimm-angular-realtime/supabase-realtime.png) + +Now we are able to retrieve those updates if we listen for them, and while the API for this might slightly change with the next Supabase JS update, the general idea can still be applied: + +We create a new `Subject` and return it as an `Observable`, and then listen to changes of our tables by using `on()`. + +Whenever we get an update, we emit that change to the Subject so we have one stream of updates that we can return to our view. + +To continue, bring up the **src/app/services/data.service.ts** and add this additional function: + +```ts + getTableChanges() { + const changes = new Subject(); + + this.supabase + .from(CARDS_TABLE) + .on('*', (payload: any) => { + changes.next(payload); + }) + .subscribe(); + + this.supabase + .from(LISTS_TABLE) + .on('*', (payload: any) => { + changes.next(payload); + }) + .subscribe(); + + return changes.asObservable(); + } +``` + +Now that we can easily get all the updates to our relevant tables in realtime, we just need to handle them accordingly. + +This is just a matter of finding out which **event** occured (INSERT, UPDATE, DELETE) and then applying the changes to our local data to add, change or remove data. + +Go ahead by finally implementing our function in the **src/app/components/inside/board/board.component.ts** that we left open until now: + +```ts + handleRealtimeUpdates() { + this.dataService.getTableChanges().subscribe((update: any) => { + const record = update.new?.id ? update.new : update.old; + const event = update.eventType; + + if (!record) return; + + if (update.table == 'cards') { + if (event === 'INSERT') { + this.listCards[record.list_id].push(record); + } else if (event === 'UPDATE') { + const newArr = []; + + for (let card of this.listCards[record.list_id]) { + if (card.id == record.id) { + card = record; + } + newArr.push(card); + } + this.listCards[record.list_id] = newArr; + } else if (event === 'DELETE') { + this.listCards[record.list_id] = this.listCards[ + record.list_id + ].filter((card: any) => card.id !== record.id); + } + } else if (update.table == 'lists') { + // TODO + } + }); + } +``` + +This handles the events if the table of our event is **cards**, buzt the second part is somewhat similar. + +I simply put the code for the `else` case in a second block, to not make the first handling look that big - but it's pretty much the same logic of handling the different cases and now updating everything related to **lists**: + +```ts +else if (update.table == 'lists') { + if (event === 'INSERT') { + this.lists.push(record); + this.listCards[record.id] = []; + } else if (event === 'UPDATE') { + this.lists.filter((list: any) => list.id === record.id)[0] = record; + + const newArr = []; + + for (let list of this.lists) { + if (list.id == record.id) { + list = record; + } + newArr.push(list); + } + this.lists = newArr; + } else if (event === 'DELETE') { + this.lists = this.lists.filter((list: any) => list.id !== record.id); + } +} +``` + +With that final piece of code we are completely done with our Supabase Angular Trello clone, and you can enjoy the fruits of your hard work! + +## Conclusion + +Building projects with Supabase is awesome, and hopefully this real world clone example gave you insight into different areas that you need to think about. + +You can [find the full code of this tutorial on Github](https://github.com/saimon24/supabase-trello-angular) where you just need to insert your own Supabase instance and then create the tables with the included SQL file. + +If you enjoyed the tutorial, you can [find many more tutorials on my YouTube channel](https://www.youtube.com/simongrimmdev_) where I help web developers build awesome mobile apps. + +Until next time and happy coding with Supabase! diff --git a/apps/www/_blog/2022-08-25-launch-week-5-hackathon-winners.mdx b/apps/www/_blog/2022-08-25-launch-week-5-hackathon-winners.mdx new file mode 100644 index 00000000000..02d80cf3932 --- /dev/null +++ b/apps/www/_blog/2022-08-25-launch-week-5-hackathon-winners.mdx @@ -0,0 +1,156 @@ +--- +title: 'Launch Week 5 Hackathon Winners' +description: Announcing the winners of the Launch Week 5 Hackathon! +author: tyler_shukert +image: lw5-hackathon-winners/launch-week-5-hackathon-winners.jpeg +thumb: lw5-hackathon-winners/launch-week-5-hackathon-winners.jpeg +tags: + - hackathon + - community +date: '2022-08-25' +toc_depth: 2 +--- + +During [Launch Week 5](https://supabase.com/launch-week), we shipped a lot of features, which was exciting, but what is more exciting is reviewing all the awesome hackathon submissions you all created for [Launch Week 5 Hackathon!](https://supabase.com/blog/launch-week-5-hackathon) + +It is always tough to pick the winner, but this time around it was extra hard because of the amount of incredible projects: there were 46 submitted projects, making this our most popular hackathon yet. You will be able to view all of the submissions of this hackathon on [madewithsupabase.com](https://www.madewithsupabase.com/). + +And now, without further ado, congratulations to the winners of Supabase Launch Week 5 Hackathon! + +## Best Overall Project + +### Winner + +[Supabase Cache Helpers](https://github.com/psteinroe/supabase-cache-helpers) - by [@psteinroe](https://twitter.com/psteinroe). + +Supabase Cache Helpers is a caching utility library that works by turning your Supabase query into cache keys and provides methods for retrieving and mutating data on your Supabase database. + +![Supabase Cache Helpers](/images/blog/lw5-hackathon-winners/supabase-cache-helpers.png) + +### Runner Up + +[Super UI](https://github.com/pheralb/superui) - by [Pablo Hdez](https://twitter.com/pheralb_), [Nacho Aldama](https://twitter.com/srdrabx), [David Huertas](https://twitter.com/ikurotime) and [Juan Rojas](https://twitter.com/tmchein) + +Super UI is a React UI component library for React, but it also lets you customize and create your own components from your browser. + +![Super UI](/images/blog/lw5-hackathon-winners/super-ui.png) + +## Most Visually Pleasing + +### Winner + +[Hop - A Tinder-like job board app](https://github.com/taishikato/hop) - by [@taishikato](https://twitter.com/taishik_) + +Hop is a Tinder-like job board app that you can hit the button or arrow keys to decide to pass or add it to your favourite job posting list. + +![Hop - A Tinder-like job board app](/images/blog/lw5-hackathon-winners/hop.png) + +### Runner Up + +[Vesta](https://www.github.com/n4ze3m/vesta) - by [@n4ze3m](https://twitter.com/n4ze3m) + +Vesta is an open source Google Keep alternative that helps you to save notes and links without any hassle. + +![vesta](/images/blog/lw5-hackathon-winners/vesta.png) + +## Most Technically Impressive + +### Winner + +[Otentik Authenticator](https://github.com/riipandi/otentik-authenticator-desktop) - by [@riipandi](https://twitter.com/riipandi) + +Otentik is a security desktop app to manage your 2-step verification tokens when logging into your online services so that you can complete your login flow within your computer. + +![Otentik Authenticator](/images/blog/lw5-hackathon-winners/otentik.png) + +### Runner Up + +[Stripe Sync](https://github.com/lawrencecchen/stripe-sync) - by [@lawrencecchen](https://github.com/lawrencecchen) + +Stripe Sync allows you to automatically sync your stripe data into your Supabase database using Edge Functions. + +![Stripe Sync](/images/blog/lw5-hackathon-winners/stripe-sync.png) + +## Most Fun/Interesting + +### Winner + +[That Hot Dog Game](https://github.com/laznic/hotdogs) - by [@laznic](https://twitter.com/laznic) + +Play a classic hot dog eating contest with your friends! That Hot Dog Game uses facial recognition to detect “eating” and whoever can eat the most hot dogs in a given time wins! + +![That Hot Dog Game](/images/blog/lw5-hackathon-winners/hot-dog-game.png) + +### Runner Up + +[Quizgrad (Quiz App)](https://github.com/mehulsatardekar/Quizgrad) - by [Mehul Satardekar](https://twitter.com/MehulSatardekar) + +Quizgrad is a fun quiz app where you can compete against other players on quizzes from different categories. + +![Quizgrad (Quiz App)](/images/blog/lw5-hackathon-winners/quiz-grad.png) + +## Best Flutter Project + +### Winner + +[Quid Faciam Hodie?](https://github.com/Myzel394/quid_faciam_hodie) - by [@Myzel394](https://github.com/Myzel394) + +Quid Faciam Hodie? (in English: “What did I do today?”) is a video based journaling app that allows you to save moments of your day and later relive them again! + +![Quid Faciam Hodie?](/images/blog/lw5-hackathon-winners/quid-faciam-hodie.png) + +### Runner Up + +[Potato](https://github.com/Rohithgilla12/potato) - by [Rohith Gilla](https://github.com/Rohithgilla12) + +A productivity manager application where you can leave a note right from your desktop. Designed to sync across your devices and supports macOS! + +![Potato](/images/blog/lw5-hackathon-winners/potato.png) + +## Best Realtime Project + +### Winner + +[RepoWatch](https://github.com/vvidday/repo-watch) - by [@vvidday](https://github.com/vvidday) + +With RepoWatch, you can view any updates on across all the repositories in the Supabase GitHub org in realtime. + +![RepoWatch](/images/blog/lw5-hackathon-winners/repo-watch.png) + +### Runner Up + +[Cowofi](https://github.com/Cowofi/cowofi) - by [@itsalb3rt](https://twitter.com/alhidalgodev), [@chakrihacker](https://twitter.com/chakrihacker), [@rafieltq](https://twitter.com/rafiel_tq) and [@pcabreram1234](https://twitter.com/pcabreram1234) + +CoWoFi is an application that helps managers, executives and the general public who need to rent an ideal space for their work team. + +![Cowofi](/images/blog/lw5-hackathon-winners/cowofi.png) + +## The Prizes + +As promised in the [hackathon announcement article](https://supabase.com/blog/launch-week-5-hackathon), each members of the winners will receive a limited edition golden Supabase cap! + +![Golden Supabase Cap](/images/blog/lw5-hackathon/cap.png) + +And the runner uppers will receive the same cap but in silver. These caps are limited edition and [extremely valuable](https://store.supabase.com/products/gold-supacap), so keep them safe! Again, congratulations on all the winners! + +## Hang out with us and the winners of the Hackathon + +To celebrate the massive success of the Hackathon, we are hosting a Twitter Space with and inviting the winners and everyone who participated. Join us on Tuesday 30 August at 7:00 AM PST + +[Set a reminder](https://twitter.com/i/spaces/1LyxBoXywLjKN) + +And if you want to be part of the community and build with us, find other people using Supabase, or if you just want to chill and watch people build, come and join us in Discord! + +![Join Supabase Discord Channel](/images/blog/hackathon/community.png) + +**[Join our Discord](https://discord.supabase.com/)** + +### Get Started Guides + +If you're inspired to build, check out some of the latest resources: + +- [**supabase-js v2 Release Candidate**](https://supabase.com/blog/supabase-js-v2) +- [**Supabase Realtime Guide**](https://supabase.com/docs/guides/realtime) +- [**Flutter Quick Start Guide**](https://supabase.com/docs/guides/with-flutter) +- [**Supabase CLI local development guide**](https://supabase.com/docs/guides/local-development) +- [**Edge Functions Guide**](https://supabase.com/docs/guides/functions) diff --git a/apps/www/_blog/2022-09-07-supabase-beta-update-august-2022.mdx b/apps/www/_blog/2022-09-07-supabase-beta-update-august-2022.mdx new file mode 100644 index 00000000000..6c663ed2b44 --- /dev/null +++ b/apps/www/_blog/2022-09-07-supabase-beta-update-august-2022.mdx @@ -0,0 +1,153 @@ +--- +title: Supabase Beta August 2022 +description: Launch Week Special. See everything we shipped, plus winners of the Hackathon and the extended Community Highlights +author: ant_wilson +image: 2022-august/monthly-update-august-2022.jpg +thumb: 2022-august/monthly-update-august-2022.jpg +tags: + - release-notes +date: '2022-09-07' +toc_depth: 3 +--- + +This month the Beta Update is a Launch Week special. #SupaLaunchWeek 5 just happened and it was a big one, so we revisit everything we shipped, congratulate the winners of the Supa Hackathon, and of course we have the extended the Community Highlights. + +## Day 1 - Supabase CLI v1 and Admin API Beta + +![Day 1 - Supabase CLI v1 and Admin API Beta](/images/blog/2022-august/CLI.png) + +The Supabase CLI is now in v1.0 (including the ability to generate TypeScript types 🎉). We also released the Admin API Beta, a REST API that opens the door to a whole new suite of integrations (Zapier, Terraform, Pulumi, you name it). Full programmatic control of your projects and orgs is on the way. + +[Blog Post](https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta) + +[Video Announcement](https://www.youtube.com/watch?v=OpPOaJI_Z28) + +## Day 2 - supabase-js v2 Release Candidate + +![Day 2 - supabase-js v2 Release Candidate](/images/blog/2022-august/supabase_js.png) + +**[supabase-js v2](https://github.com/supabase/supabase-js)** focuses on "quality-of-life" improvements for developers and includes Type Support, new Auth Methods, async Auth overhaul, improvements for Edge Functions, and more. We couldn't have done this without our amazing Community, so thanks a lot to everyone who contributed. + +Try it out by running `npm i @supabase/supabase-js@rc` + +[Blog Post](https://supabase.com/blog/supabase-js-v2) + +[Video Announcement](https://youtu.be/iqZlPtl_b-I) + +## Day 3 - Supabase is SOC2 compliant + +![Day 3 - Supabase is SOC2 compliant](/images/blog/2022-august/security.png) + +Our customers can rest assured knowing their information is secure and private 🔒. The blog post explains the process we went through to get there and is very useful for anyone building a SaaS product. + +[Blog Post](https://supabase.com/blog/supabase-soc2) + +[Security at Supabase](https://supabase.com/security) + +[Video Announcement](https://youtu.be/6bGQotxisoY) + +## Day 4 - Realtime: Multiplayer Edition + +![Day 4 - Realtime: Multiplayer Edition](/images/blog/2022-august/realtime.png) + +Next level Realtime is here ⚡️. Presence and Broadcast are two key blocks developers can use to build the digital experiences users want. All projects now have access to these features. Try it out in combination with supabase-js v2. + +[Blog Post](https://supabase.com/blog/supabase-realtime-multiplayer-general-availability) + +[Video Announcement](https://youtu.be/CGZr5tybW18) + +## Day 5 - Community Day and One More Thing + +![Day 5 - Community Day and One More Thing](/images/blog/2022-august/day-5.png) + +We wrapped Launch Week 5 with contributors, partners, and friends and the traditional One More Thing... that was actually SIX more things: [Supabase Vault](https://supabase.com/blog/supabase-vault), Auth UI, Dashboard permissions, [JSON schema validation](https://supabase.com/blog/pg-jsonschema-a-postgres-extension-for-json-validation), pg_graphql v0.4.0, MFA early-access. + +[Community Day Blog Post](https://supabase.com/blog/launch-week-5-community-day) + +[Community Day Video Announcement](https://www.youtube.com/watch?v=s9UePQjLT0U) + +[One More Thing Blog Post](https://supabase.com/blog/launch-week-5-one-more-thing) + +## Launch Week 5 Hackathon + +![Launch Week 5 Hackathon](/images/blog/2022-august/hackathon.png) + +We had a huge amount of open source submissions 🤯. The selection process was not easy as it wasn't only quantity, but also quality. After a thorough review, we declared [Supabase Cache Helpers](https://github.com/psteinroe/supabase-cache-helpers) the overall winner of the $1500 GitHub sponsorship and Gold SupaCap. Congratulations to [@psteinroe](https://twitter.com/psteinroe) 👏 + +[Full list of winners](https://supabase.com/blog/launch-week-5-hackathon-winners) + +[Check all the submissions in Made with Supabase](https://www.madewithsupabase.com/launch-week-5) + +--- + +## Platform Updates + +The following changes to the Supabase Platform will take effect from September 11th at 7 pm PDT. + +- HTTP API requests to Supabase will automatically be redirected to HTTPS. +- The API Key was passed to Supabase both in the `Authorization` header and in a separate `apiKey` header. This led to confusion among new users of Supabase who used the API directly. It is no longer required to send the anon key or service key via the `apiKey` header. If you are using Supabase via our client libraries, no change is required from your side. + +## Supabase Migration Guides + +![Supabase Migration Guides](/images/blog/2022-august/migration-to-supabase-guides.jpg) + +Our guides and tools make it super easy to migrate your projects to Supabase: + +- [Firebase Auth Migration](https://supabase.com/docs/guides/migrations/firebase-auth) +- [Firestore Data Migration](https://supabase.com/docs/guides/migrations/firestore-data) +- [Firebase Storage Migration](https://supabase.com/docs/guides/migrations/firebase-storage) +- [Migrate from Heroku to Supabase](https://supabase.com/docs/guides/migrations/heroku) + +## Webinar: How Netlify and Supabase Enables “Supa” DX + +![Webinar: How Netlify and Supabase Enables “Supa” DX](/images/blog/2022-august/webinar.jpg) + +Our friends from Netlify invited Ant to their new webinar series. He and Netlify's VP of Partnerships & Ecosystems, Steven Larsen, will show you how to: + + +- Deploy Supabase’s open source backend together with Netlify +- Build User Management without handing over user data to any third parties +- Upload files and folders to the cloud without needing to tack on additional tools + +[Save your seat.](https://www.netlify.com/resources/webinars/how-netlify-supabase-enables-supa-dx/) + +## Extended Community Highlights + +![Community](/images/blog/2022-june/community.jpg) + +- Inian shared our journey with Cloudflare. [Video](https://twitter.com/Cloudflare/status/1557728943901675520) +- Supabase Tips: Introduction to Supabase Storage. [Video](https://www.youtube.com/watch?v=J9mTPY8rIXE) +- Zack DeRose playing around with Supabase and Nx. [Part 1](https://www.youtube.com/watch?v=OTh5GBBfr4E) | [Part 2](https://www.youtube.com/watch?v=_5gJi_xwpzk) +- A new guide showing how to combine Supabase and Directus. [Guide](https://supabase.com/docs/guides/integrations/directus) +- Supabase with Flutter course on raywenderlich. [Course](https://www.raywenderlich.com/33619647-supabase-with-flutter) +- Build a full-stack app with Next.js and Supabase on the LogRocket blog. [Tutorial](https://blog.logrocket.com/build-full-stack-app-next-js-supabase/) +- Supabase Crash Course by The Net Ninja. [Video Courses](https://www.youtube.com/watch?v=ydz7Dj5QHKY&list=PL4cUxeGkcC9hUb6sHthUEwG7r9VDPBMKO) +- How to build a Grocery Application with Webflow CMS using DhiWise. [Tutorial](https://dev.to/saloni137/how-to-build-a-grocery-application-with-webflow-cms-using-dhiwise-1a72) +- How To Create a Full Stack app with SolidJS, Supabase, and TailwindCSS [Video and Tutorial.](https://blog.chetanverma.com/how-to-create-a-full-stack-app-with-solidjs-supabase-and-tailwindcss) +- The WalletConnect Cloud now supports Sign in wtih Ethereum. [Announcement](https://twitter.com/TheHarryET/status/1559861021845643265). +- Building In Public: Cartta Tech Stack. [Article](https://dev.to/fvaldes33/building-in-public-cartta-tech-stack-5en0) +- Supabase + Vue 3 in 12 minutes. [Video](https://www.youtube.com/watch?v=YN32uVqAXw8&feature=emb_title) + +## We’re hiring + +Come join one of the fastest growing open source projects ever 🤗 + +- [Lead Billing Engineer](https://boards.greenhouse.io/supabase/jobs/4652333004) +- [Customer Success (US time zone)](https://boards.greenhouse.io/supabase/jobs/4594393004) +- [Support Engineers](https://boards.greenhouse.io/supabase/jobs/4191650004) +- [View all our openings](https://boards.greenhouse.io/supabase) + +--- + +## Meme Zone + +If you made it this far in the blog post you deserve a treat. [Follow us on Twitter](https://twitter.com/supabase) for more. + +![Supabase meme august 2022](/images/blog/2022-august/supabase-beta-update-august-2022-meme.png) + +## Get started + +- Start using Supabase today: **[app.supabase.com](https://app.supabase.com/)** +- Make sure to **[star us on GitHub](https://github.com/supabase/supabase)** +- Follow us **[on Twitter](https://twitter.com/supabase)** +- Subscribe to our **[YouTube channel](https://www.youtube.com/c/supabase)** diff --git a/apps/www/_blog/2022-09-08-choosing-a-postgres-primary-key.mdx b/apps/www/_blog/2022-09-08-choosing-a-postgres-primary-key.mdx new file mode 100644 index 00000000000..6fa24cafbc4 --- /dev/null +++ b/apps/www/_blog/2022-09-08-choosing-a-postgres-primary-key.mdx @@ -0,0 +1,491 @@ +--- +title: Choosing a Postgres Primary Key +description: Turns out the question of which identifier to use as a Primary Key is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out +author: victor +image: primary-keys/postgres-primary-key.jpg +thumb: primary-keys/postgres-primary-key.jpg +tags: + - postgres +date: '2022-09-08' +toc_depth: 3 +--- + +Primary keys are important. They uniquely identify rows of data in tables, and make it easy to fetch data. The job of a database is to archive and recall data and you're going to have a hard time finding data without a good primary key or a good index. + +Sometimes it makes sense to use a [“natural key”](https://en.wikipedia.org/wiki/Natural_key) (like an `email` column in a `users` table) and sometimes it’s better to use a “[surrogate key”](https://en.wikipedia.org/wiki/Surrogate_key), a value made *for the purpose* of identifying a row (and has no other meaning). + +At first glance, the question of *which* primary key to use is easy! Just throw a `integer`/`serial` on there, right? Numeric IDs are cool, but what about random value IDs or [Universally Unique IDentifiers (UUIDs)](https://en.wikipedia.org/wiki/Uuid)? + +Turns out the question of which identifier (and in this case, UUID) to use is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out: + +- What are the choices for identifiers? +- If we choose to use/add UUIDs, which ones should we choose? +- How can we get these UUIDs into postgres? +- Which UUIDs perform best? + +But first, a quick history lesson. + +## A brief history of identifiers and why we use them + +### `integer`/`biginteger` + +Let's think about identifying rows of data from first principles. What's the first way you might think of identifying things? Assigning them numbers! + +We can set up a table like this: + +```sql +-- Let's enable access to case-insensitive text +CREATE EXTENSION IF NOT EXISTS citext; + +-- Heres a basic users table +CREATE TABLE users ( + id integer PRIMARY KEY, + email citext NOT NULL CHECK (LENGTH(email) < 255), + name text NOT NULL +); + +-- Let's assume we don't want two users with the exact same email +CREATE UNIQUE INDEX users_email_uniq ON users USING BTREE (email); +``` + +This looks great, but what should `id` be on new rows? I don't know -- maybe the application can figure it out? If they store some value in memory? That doesn't seem right. + +Maybe we could figure out the next integer from what's in the table itself -- we just need to be able to "count" upwards. We *do* have all the `users` tables rows in there, so we should be able to do it: + +```sql +INSERT INTO users (id, email, name) +SELECT COUNT(*) + 1, 'new@example.com', 'new_user' FROM users; +``` + +After running that query, we can double check our results: + +```sql +SELECT * FROM users; +``` + +| id | email | name | +|----|------------------|----------| +| `1` | `new@example.com` | `new user` | +| `2` | `new2@example.com` | `new user` | + + +Using `COUNT(*)` in our query is not the most efficient (or even easiest) solution though, and hopefully it's clear why -- **counting a sequence of numbers for primary keys is a feature built in to Postgres**! + +[serial/bigserial](https://www.postgresql.org/docs/current/datatype-numeric.html#DATATYPE-SERIAL) is the right tool in our toolbox to maintain a shared, auto-incrementing sequence of numbers. Let's pretend we read the [postgres documentation](https://www.postgresql.org/docs) and use those instead. + +### `serial`/`bigserial` + +`serial` is essentially a convenient macro for using [Postgres sequences](https://www.postgresql.org/docs/current/sql-createsequence.html), a database-managed auto-incrementing stream of `integer`. + +Let's hear it from the docs: + +> The data types `smallserial`, `serial` and `bigserial` are not true types, but merely a notational convenience for creating unique identifier columns (similar to the `AUTO_INCREMENT` property supported by some other databases). +> + +Using a `serial` column to create the `users` table would look like this: + +```sql +CREATE TABLE users ( + id serial PRIMARY KEY, + email citext NOT NULL CHECK (LENGTH(email) < 255), + name text NOT NULL +); +``` + +OK, now let's try inserting into it - we shouldn't have to specify `id`: + +```sql +INSERT INTO users_serial (email, name) +VALUES ('user@example.com', 'new user'); +``` + +```sql +SELECT * FROM users; +``` + + +| id | email | name | +|----|------------------|----------| +| `1` | `user@example.com` | `new user` | + + +```sql +(1 row) +INSERT 0 1 +``` + +It works, as you might expect - now the application doesn't have to *somehow magically know* the right ID to use when inserting. + +But what does `serial` actually do? Using a serial column is operationally similar to the following SQL: + +```sql +CREATE SEQUENCE tablename_colname_seq AS integer; +CREATE TABLE tablename ( + colname integer NOT NULL DEFAULT nextval('tablename_colname_seq') +); +ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname; +``` + +Back in application land, the `INSERT` statement returns, and provides the new `id` the database assigned our new row. Multiple application instances don't need to coordinate what ID to use -- they just *don't*, and find out from the database. + +**We've taken a somewhat meandering path to get here, but this is the standard solution for most reasonable database schemas.** + +### Why not stop at `serial`? + +There are few issues with sequences: + +- When writing automation that simply iterates through id values, note that `serial` columns can have gaps, even if you never `DELETE` (e.x. if an `INSERT` was rolled back — sequences live *outside* transactions). +- When used from outside code `serial` may leak some data or give attackers an edge (e.x., if `yoursite.com/users/50` works, how about `yoursite.com/users/51`?). +- `serial` is PostgreSQL specific (i.e. not SQL standards compliant) + +Don't be too put off by these reasons -- `serial` is still the go-to for most use-cases. + +Even the last point about `serial` not being standards compliant is solved in Postgres 10+ by using... + +### `integer`/`biginteger` (again!) + +Postgres 10 [added support](https://www.postgresql.org/docs/10/release-10.html#id-1.11.6.26.5.7) for the `IDENTITY` column syntax in `CREATE TABLE` (EDB has a great writeup on the [addition](https://www.enterprisedb.com/blog/postgresql-10-identity-columns-explained)). + +This means we can happily go back to using `integer`/`biginteger`: + +```sql +CREATE TABLE ( + id integer PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, + email citext NOT NULL CHECK (LENGTH(email) < 255), + name text NOT NULL +) +``` + +So how does *this* work? Postgres does the same thing under the covers -- it generates a `sequence`. As this syntax is standards compliant, it's generally recommended practice for DBAs going forward, for the sake of the realm. + +**So `integer`s are great, but information leakage is still a problem. How do we fix that?** Well, make the numbers random, obviously. + +### Random Numeric IDs + +Let's say the application using the DB has some [Python](https://python.org) code like the following: + +```sql +import randrange from random +import User from models; +MAX_RANDOM_USER_ID = 1_000_000_000 +def create_user(): + """ + Add new user to the database + """ + user_id = randrange(1, MAX_RANDOM_USER_ID) + user = User(id=user_id, email="new@example.com", name="new user") + db.save(user) + +``` + +That *looks* good, but there's a problem -- [random](https://docs.python.org/3/library/random.html) is a *pseudorandom* generator. + +[Pseudo-random](https://en.wikipedia.org/wiki/Pseudorandomness) numbers are *not* what we want for ensuring user IDs cannot be easily guessed/collide. It's possible to get the exact same sequence of values out of a pseudo-random number generator by using the same *seed value*. + +Sometimes you *want* pseudo-random behavior (let's say for testing or fuzzing), but it's generally not desired for production systems that might run from a duplicated identical application image, since they *could* have weak pseudo-random seed initialization. + +### (Secure) Random Numeric IDs + +**At the very least** we need a properly secure random numbers -- we need Python's [secrets](https://docs.python.org/3/library/secrets.html) module: + +```python +from secrets import randbelow +# ... +def create_user(): + """ + Add new user to the database (using secure random numbers) + """ + user_id = randrange(1, MAX_RANDOM_USER_ID) + user = User(id=user_id, email="new@example.com", name="new user") + db.save(user) + +``` + +Now we have a secure random value coming in for our user IDs. But having values like `583247` and `8923916` get generated are cool and all, but there are a few problems: + +- These numbers are random *and* quite inscrutable +- The keyspace is fairly small (maybe good for comments on a popular website, but not for IDs!) +- People can still *technically* check them all (the guessing space is 1 to `MAX_RANDOM_USER_ID`!) + +We need something better. + +### (Secure) Random UUIDs + +Along comes UUIDs -- you're probably used to seeing them now, values like this UUIDv4: + +`468e8075-5815-4fe2-80d3-45a31827954b` . + +They're *very* random (almost always generated with secure random sources), and while they're even worse for remembering, they're near impossible to practically guess -- the search space is just too large! + +More importantly, UUIDs introduce methodology to the madness -- different versions of UUID are derived different ways -- combined with other sources of randomness or known values. + +There are a lot of [versions of UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Versions), but let's discuss the ones we're more likely to use/see day to day. + +### UUIDv1 + +[Version 1 UUIDs](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)) have three two components: + +- a 60 bit date-time (at nanosecond precision) +- a 48 bit [MAC address](https://en.wikipedia.org/wiki/MAC_address) + +But where's the randomness? Well v1s assume that you *won't* generate a ton of values in the same nanosecond (and there are some extra bits reserved for differentiating even when you do), but another source is the MAC address. MAC addresses uniquely (usually) identify network cards -- which is a security risk -- and those bits can be made random. + +Here's what a UUIDv1 looks like: + +``` +a9957082-0b47-11ed-8a91-3cf011fe32f1 +``` + +You can generate v1 UUIDs in Postgres natively thanks to the [uuid-ossp contrib module](https://www.postgresql.org/docs/current/uuid-ossp.html). Here's how to generate a v1 UUID with random MAC address: + +```sql +CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; +CREATE EXTENSION + +SELECT uuid_generate_v1mc(); + + uuid_generate_v1mc +-------------------------------------- + dd1bbf10-0b47-11ed-80de-db48f6faaf86 + +(1 row) +``` + +### UUIDv4 + +Version 4 UUIDs use *all* the available bits for randomness -- *122 bits worth*!. + +UUIDv4s look like this: + +``` +ce0b897d-03a0-4f54-8c97-41d29a325a23 +``` + +These don't have a time component, but they don't have in time they make up for in randomness -- it is *very* unlikely for them to collide, so they make for excellent Global Unique IDentifiers ("GUID"s). + +We can generate them in Postgres like this (with `uuid-ossp`): + +```sql +SELECT uuid_generate_v4(); + + uuid_generate_v4 +-------------------------------------- + 6ca93dde-81d4-4ea0-bfe1-92ecb4d81ee4 + +(1 row) +``` + +Since Postgres would catch a collision on a `PRIMARY KEY` or `UNIQUE INDEX` column, we're done right? If we want to generate UUIDs all we need to do is choose UUID v1 or V4, and we won't leak any schema structure information to the outside world, right? + +This is a workable solution, but as you might expect, it's not that easy. + +### The Post-UUIDv1/v4 era: A Cambrian explosion of identifiers + +![thats-alot-of-uuids.png](/images/blog/primary-keys/uuids.png) + +UUIDv1 and v4 were a start, but weren't enough for *many* companies out there. There are a couple shortcomings that plague both v1 and v2: + +- UUIDs are twice the size of `bigint`/`bigserial` +- UUIDv1s contain a time element but they're *not* lexicographically sortable (this means they `SORT` terribly, relative to `integer` or a `timestamp` column) +- UUIDv1s are less random than UUIDv4, and can collide/overlap in close enough time intervals, at large scale +- UUIDv4s index *terribly*, as they're essentially random values (obviously, they `SORT` terribly as well) + +Many of the world's biggest companies generated UUIDs at speeds that made all of these deficiencies a problem. + +A cambrian explosion of UUIDs resulted, as noticed by the IETF -- this resulted in the [new UUID formats](https://www.ietf.org/archive/id/draft-peabody-dispatch-new-uuid-format-01.html) (v6,v7,v8) being published in 2021. + +Here's a quick list (from that IETF document): + +- LexicalUUID by [Twitter](https://blog.twitter.com/engineering) +- [Snowflake](https://blog.twitter.com/engineering/en_us/a/2010/announcing-snowflake) by [Twitter](https://blog.twitter.com/engineering) +- [Flake](https://github.com/boundary/flake) by [Boundary (now BMC TrueSight Pulse)](http://www.bmc.com/) +- ShardingID by [Instagram](http://instagram-engineering.com/) +- [KSUID](https://github.com/segmentio/ksuid) by [Segment](https://segment.com/blog/engineering/) +- [Elasticflake](https://github.com/ppearcy/elasticflake) by [P. Pearcy](https://github.com/ppearcy/elasticflake) +- [FlakeID](https://github.com/s-yadav/FlakeId) by [T. Pawlak](https://github.com/T-PWK) +- [Sonyflake](https://github.com/sony/sonyflake) by [Sony](https://github.com/sony) +- [orderedUuid](https://laravel.com/docs/5.7/helpers#method-str-ordered-uuid) by [IT. Cabrera](https://darkghosthunter.medium.com/) +- COMBGUID by [R. Tallent](https://github.com/richardtallent) +- [ULID](https://github.com/ulid/spec) by [A. Feerasta](https://github.com/alizain) +- [SID](https://github.com/chilts/sid) by [A. Chilton](https://github.com/chilts) +- [pushID](https://firebase.googleblog.com/2015/02/the-2120-ways-to-ensure-unique_68.html) by [Google](https://google.com/) +- [XID](https://github.com/rs/xid) by [O. Poitrey](https://github.com/rs) +- [ObjectID](https://www.mongodb.com/docs/manual/reference/method/ObjectId/) by [MongoDB](https://www.mongodb.com/blog/channel/engineering-blog) +- [CUID](https://github.com/ericelliott/cuid) by [E. Elliott](https://github.com/ericelliott) + +That's... A lot of UUIDs. They're all slightly different, but the innovation was summed up by the IETF: + +> An inspection of these implementations details the following trends that help define this standard: +> +> - Timestamps MUST be k-sortable. That is, values within or close to the same timestamp are ordered properly by sorting algorithms. +> - Timestamps SHOULD be big-endian with the most-significant bits of the time embedded as-is without reordering. +> - Timestamps SHOULD utilize millisecond precision and Unix Epoch as timestamp source. Although, there is some variation to this among implementations depending on the application requirements. +> - The ID format SHOULD be Lexicographically sortable while in the textual representation. +> - IDs MUST ensure proper embedded sequencing to facilitate sorting when multiple UUIDs are created during a given timestamp. +> - IDs MUST NOT require unique network identifiers as part of achieving uniqueness. +> - Distributed nodes MUST be able to create collision resistant Unique IDs without a consulting a centralized resource. +> **The IETF went on to introduce three 3 new types of UUIDs** that have these properties these companies were looking for: UUIDv6, UUIDv7, and UUIDv8. + +So what's the difference you ask? + +- **UUIDv6** - 62 bits of [gregorian](https://en.wikipedia.org/wiki/Gregorian_calendar) time + 48 bits of randomness +- **UUIDv7** - 36 bits of big endian unix timestamp (seconds since epoch + leapseconds w/ optional sub-second precision) + variable randomness up to 62 bits +- **UUIDv8** - variable size timestamp (32/48/60/64 bits) + variable size clock (8/12 bits) + variable randomness (54/62 bits) + +It's not quite easy to work out what this all *means* but let's boil it down: + +- All of these UUIDs sort properly (the "high bits" of time are first, like putting the year before the month -- "2022/07") +- UUIDv6 *requires* randomness +- The data contained in the UUID can be variable (ex. UUIDv8), this means you can bytes that mean something else (ex. an encoding of the compute region you're running in) + +Alright, done hearing about UUIDs? Let's get to the fun part. + +## Benchmarking ID generation with `uuid-ossp` and `pg_idkit` + +With the history lesson behind us, let’s benchmark these ID generation mechanisms against each other! For UUIDv1 and UUIDv4 we can use [uuid-ossp](https://www.postgresql.org/docs/current/uuid-ossp.html). + +Unfortunately, `uuid-ossp` isn't *quite* so advanced as to have many of these newer UUIDs we've been discussing, so we’ll pull in [pg_idkit](https://github.com/t3hmrman/pg_idkit) here. + +[pg_idkit](https://github.com/t3hmrman/pg_idkit) is built with Rust, so it gives us access to the following ID generation crates: + +- [nanoid](https://crates.io/crates/nanoid) (a [well known package](https://www.npmjs.com/package/nanoid) from the the NodeJS ecosystem) +- [ksuid](https://crates.io/crates/ksuid) +- [ulid](https://crates.io/crates/ulid) +- [rs-snowflake](https://crates.io/crates/rs-snowflake) (Twitter's Snowflake algorithm) +- [timeflake-rs](https://crates.io/crates/timeflake-rs) (Inspired by Twitter's Snowflake, Instagram's ID and Firebase's PushID) +- [sonyflake](https://crates.io/crates/sonyflake) +- [pushid](https://crates.io/crates/pushid) +- [xid](https://crates.io/crates/xid) +- [cuid](https://crates.io/crates/cuid) +- [uuidv6](https://crates.io/crates/uuidv6) +- [uuid7](https://crates.io/crates/uuid7) + +For each type of UUID, we can test the following: + +- **Generation speed:** **How fast can I generate IDs (let's say 1,000,000 of them)? +- **Table & Index size:** How much larger do tables and associated indices get? + + + +### Generation speed + +Generation speed is pretty easy to test, we can enable `\\timing` mode on `psql` and run a simple benchmark with `generate_series`: + +```sql +\timing -- enable psql timing mode + +-- Generate IDs 1 million times with ksuid +SELECT COUNT(idkit_ksuid_generate()) FROM generate_series(1, 1000000); +``` + +Running all of the ID generation mechanisms on a *single core* of my machine (which happens to be an [Oryx Pro](https://system76.com/laptops/oryx)), the lowest of 5 runs for each ID looks like this: + +![Generation speed test](/images/blog/primary-keys/generation-speed-chart.jpg) + +To be fair, **generation speed shouldn’t be a deal breaker** as it’s unlikely to be the bottle neck for most applications. That said, it is nice to have some data on where each ID generation mechanism lands. + + + +### Table & Index size + +We can check the size of our tables & related indices with this query (after running `VACUUM`): + +```sql +SELECT + relname as table_name, + pg_size_pretty(pg_total_relation_size(relid)) As "Table Size", + pg_size_pretty(pg_indexes_size(relid)) as "Index Size", + pg_size_pretty(pg_relation_size(relid)) as "Total Size" + FROM pg_catalog.pg_statio_user_tables +ORDER BY pg_total_relation_size(relid) DESC; +``` + +Here are the sizes in tabular form: + +![Sizes in tabular form](/images/blog/primary-keys/table-and-index-size-chart.jpg) + +These numbers are *mostly* a reflection of the *length* of the default settings of `pg_idkit` but probably worth having in front of you anyway. + +With this, we probably have enough information to make a decision (and a new library to generate our UUIDs with)! + +## Which ID should you use? + +As usual, *it depends* -- you didn't think it'd be that easy, did you? + +All I can offer are some general rules of thumb that hopefully work for you: + +- `integer`s and `serial` have obvious benefits for simplicity, storage, and sortability. You *might* not want to expose them to the world though. +- If you want the ultimate in collision avoidance UUIDv4 is OK +- UUIDv1 *could* have been great, *but* it doesn't lexicographically sort. +- The best time-based ID seems to be `xid`, with good performance *and* sort friendliness +- If you want to be a little more standards-oriented, UUID v6/v7 + +As usual, the best results will come from weighing all the options and finding what's best for your use-case, and doing appropriate testing on your data. + +## Possible Improvements + +We’ve done some good exploration so far, but here are some ideas for interesting use cases for `pg_idkit` and measuring the impact of ID generation using it. + +### Usecase: Generating our `created_at` columns from our IDs + +One interesting feature would be using at least partially time-based UUIDs for `created_at` columns -- we could save space by *virtualizing* our `created_at` columns: + +```sql +-- At table creation +CREATE TABLE users ( + id text PRIMARY KEY DEFAULT idkit_ksuid_generate(), + name text, + email text, +); + +-- An example query for a specific KSUID that uses created_at +SELECT *, idkit_ksuid_extract_timestamptz(id) +FROM users +WHERE id = '0F755149A55730412B0AEC0E3B5B089C14B5B58D'; +``` + +Ideally we could use the `GENERATED ALWAYS AS ( ... )` syntax for [generated columns](https://www.postgresql.org/docs/current/ddl-generated-columns.html) while creating the table, but as the time of this post *Postgres does not yet support virtual generated columns (only stored ones)*. + +### Benchmarking: Measuring index fragmentation + +How fragmented do our indices get after use of each of these methods? + +Luckily for us Postgres has the [pgstattuple extension](https://www.postgresql.org/docs/current/pgstattuple.html) so we can find out -- thanks to [Laurenz Albe on StackOverflow](https://dba.stackexchange.com/questions/273556/how-do-we-select-fragmented-indexes-from-postgresql)). + +Integrating and including these tests in the `pg_idkit` README would greatly help people looking to make a decision. + +### Benchmarking: Measuring `SORT` friendliness + +Another great metric to measure might be performance of these indices on certain common `SORT` patterns. While this is inherently workload-specific, it would be great to pick a workload and see what we get. + +In most code bases, simple `WHERE` queries with `SORT`s abound, and one of the big benefits of UUIDv6, UUIDv7 and the other alternatives is lexicographic sorting, after all. + +Knowing *just how good* a certain ID generation method is at maintaining locality would be nice to know. + +Creating and using a function like `idkit_uuidv1_extract_timestamptz` and using it in a [“functional index” (an index on an expression)](https://www.postgresql.org/docs/14/indexes-expressional.html) could resolve the sort unfriendliness of UUIDv1 as well! + +## Wrap-up + +Identifiers have a long history and are surprisingly unsolved at present. It can be confusing but thanks to the power of Postgres we don't have to over-think it -- tables can be migrated from one ID pattern to another, and we can use DDL statements in transactions. + +Hopefully this article helps you head off some bikeshedding with your teammates when you next discuss which IDs are best to use. + +## More Postgres articles + +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/partial-postgresql-data-dumps-with-rls) +- [Postgres Views](https://supabase.com/blog/postgresql-views) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/audit) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/cracking-postgres-interview) +- [What are PostgreSQL Templates?](https://supabase.com/blog/postgresql-templates) +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/realtime-row-level-security-in-postgresql) +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/seen-by-in-postgresql) + diff --git a/apps/www/_blog/2022-10-03-postgres-wasm.mdx b/apps/www/_blog/2022-10-03-postgres-wasm.mdx new file mode 100644 index 00000000000..d3108c92b04 --- /dev/null +++ b/apps/www/_blog/2022-10-03-postgres-wasm.mdx @@ -0,0 +1,243 @@ +--- +title: Postgres WASM by Snaplet and Supabase +description: We're open sourcing postgres-wasm, a PostgresQL server that runs inside a browser, with our friends at Snaplet. +author: burggraf +image: postgres-wasm/postgres-wasm.jpg +thumb: postgres-wasm/postgres-wasm.jpg +tags: + - postgres +date: '2022-10-03' +toc_depth: 3 +--- + +Today we're open sourcing [`postgres-wasm`](https://github.com/snaplet/postgres-wasm) with our friends at [Snaplet](https://www.snaplet.dev/). + +postgres-wasm is a PostgreSQL server that runs inside a browser. It provides a full suite of features, including persisting state to browser, +restoring from pg_dump, and logical replication from a remote database. + +We're not the first to run Postgres in the browser - that title belongs to the team at [Crunchy Data](https://www.crunchydata.com/) who shared their +version of this [on HN](https://news.ycombinator.com/item?id=32498435) a month ago. It's awesome, and we wanted +an [open source version](https://staltz.com/time-till-open-source-alternative.html), so we teamed up with Snaplet build it. +Let's explore how it's built, and some extra features we've added. + +
+ +🐈 Who's Snaplet? +
+Snaplet gives developers production-accurate data and preview databases that they can code against, so they can focus on shipping. +
+Checkout out how you can use Snaplet to clone Supabase environments. + +
+ +## Demo + +Before we get into the technical details, try it out yourself (warning: it will download ~30MB): + +[wasm.supabase.com](https://wasm.supabase.com) + +![Postgres inside a browser](/images/blog/postgres-wasm/postgres-wasm-browser.png) + +To run it locally: + +```bash +# From Snaplet Repo +git clone git@github.com:snaplet/postgres-wasm.git +cd postgres-browser/packages/pg-browser +npx serve + +# From Supabase Fork +git clone git@github.com:supabase-community/postgres-wasm.git +cd postgres-wasm +git checkout web +cd packages/supabrowser +npx serve +``` + +And open a browser at [localhost:3000](http://localhost:3000). + +## Features + +Our demo version has a few neat features! + +- Postgres 14.5, psql, pg_dump, etc. +- Save & restore state to/from a file. +- Save & restore Postgres state to/from the browser storage (IndexedDB). +- Quick start from a state file or fully reboot the emulator. +- Memory configuration options from 128MB to 1024MB. +- Adjust the font size for the terminal. +- Upload files to the emulator (including database dumps and CSVs). +- Download files from the emulator. +- Outgoing network connectivity from the emulator to the internet. +- Incoming network tunnel to postgres port 5432 inside the emulator. + +## Why? + +That's a good question. `postgres-wasm` is currently about 30mb. So at this stage, running Postgres in the browser isn't great for general use-cases. +It has a lot of potential though. Some ideas we'll be playing with over the next few months: + +- **Documentation:** for tutorials and demos. +- **Offline data:** running it in the browser for an offline cache, similar to [sql.js](https://sql.js.org/#/) or [absurd-sql](https://github.com/jlongster/absurd-sql). +- **Offline data analysis:** using it in a dashboard for offline data analysis and charts. +- **Testing:** testing PostgresSQL functions, triggers, data modeling, logical replication, etc. +- **Dev environments:** use it as a development environment — pull data from production or push new data, functions, triggers, views up to production. +- **Snapshots:** create a test version of your database with sample data, then take a snapshot to send to other developers. +- **Support:** send snapshots of your database to support personnel to demonstrate an issue you're having. + +## Repository Overview + +We've divided in our repository into three folders: a virtual machine, a web application, and a network proxy. + +### Virtual Machine (VM) + +We create an embeddable Virtual Machine (VM) using [Buildroot](https://en.wikipedia.org/wiki/Buildroot). +Our VM is a stripped-down Linux build with Postgres installed. + +See [source code](https://github.com/snaplet/postgres-browser/tree/main/packages/buildroot). + +### Web application + +Next, we need to run the the VM inside our browser. How? [WASM](https://en.wikipedia.org/wiki/WebAssembly). +We use [v86](https://github.com/copy/v86) to run our VM inside the browser. Our demo application is very simple - plain HTML and some basic styling. + +See [source code](https://github.com/snaplet/postgres-browser/tree/main/packages/pg-browser). + +### Network proxy + +Running Postgres in a browser is great, but connecting to it with PgAdmin is even better. Unfortunately browsers block TCP network access to the VM. +To circumvent this, we proxy the traffic through websockets. We run a fork of [Websockproxy](https://github.com/benjamincburns/websockproxy) +which allows the emulator to talk to the internet by converting data sent over a websocket port into TCP packets. +Our fork of Websockproxy adds the ability to tunnel into the Postgres server. + +See [source code](https://github.com/snaplet/postgres-browser/tree/main/packages/websockproxy). + +## Technical deep-dive + +There were a lot of hurdles that we discovered throughout the development of postgres-wasm. + +### WASM + +The first thing to point out is that our implementation isn't _pure_ WASM. We attempted to compile Postgres for WASM directly from source, +but it was more complicated that we anticipated. + +Crunchy's HN post provided some hints about the approach they took, which was to virtualize a machine in the browser. We pursued this strategy too, settling on v86 +which emulates an x86-compatible CPU and hardware in the browser. + +### PostgreSQL 14 segfault errors + +We quickly had PostgreSQL 13.3 running using an outdated version of Buildroot. But version PG14+ wouldn't start, giving a segfault during initialization. We tried: + +- manually copying build files for PG14 into the older version(s) of Buildroot +- building with (many) newer copies of Buildroot +- adjusting kernel parameters and environment settings such as the amount of memory allocated to the emulator, etc. + +Eventually, Fabian, the creator of v86 suggested we turn off JIT compilation for v86 and that solved the issue. +He narrowed it down to a bug in v86 and is pushing an update that will fix it. +Switching Postgres from posix to sysv memory management also solved the issue for the current release of V86. + +### Optimizing startup time and image size + +With PG14 running in the emulator, we shifted our focus to performance. The image size for the emulator was too big for a browser-based tool. +Even with our best efforts, a compressed snapshot was over 30mb - a fairly large payload to download before you can see any interaction. + +We solved this by booting only a minimal Linux image and then dynamically loading the rest of the VM over HTTPS after initialization. + +We achieve this by mounting a compressed [9P filesystem]() in the VM. +9P provides a [Python script](https://github.com/supabase-community/postgres-wasm/tree/main/packages/buildroot/tools) which takes a filesystem folder, +renames every file an 8-character name and produces a `filesystem.json` file representing a nested structure with files, original file names, sizes, etc. +We then [copy this compressed output](https://github.com/supabase-community/postgres-wasm/blob/main/packages/buildroot/config/board/pg-browser/post-image.sh) to the VM. +We modified the kernel command line and v86 boot parameters to boot directly from the 9P filesystem, and even put our kernel file into the p9 filesystem. +All non-essential files are loaded asyncrhonously over HTTPS in the browser as needed. + +The initial state was smaller, but still 15-20mb in size. We discussed this with Fabian who pointed us towards the `page_poison=on` kernel parameter. +This parameter allowed us to clear caches before creating the snapshots, by forcing Linux to write arbitrary bytes on freed memory instead of random bytes, +so unused memory is compressed much more efficiently. + +The end result of all these changes? The compressed initial state file is about 12mb - including a _running network state and Postgres 14.4 running with psql loaded._ + +We experimented without Postgres started too - this produced an even smaller initial state but the time to initialize +Postgres was usually longer than the time to download a few extra megabytes. We opted for a faster startup time. + +Additionally, without a running state you'd hit a performance penalty every time you refreshed the page, +since Postgres would need to be initialized each time. In our current version, after the initial state is +downloaded and cached by the browser the VM feels almost instant on refresh. + +### Networking + +Networking was particularly difficult to solve. For security reasons, browsers only support access to a nominal set of ports. +In short, browsers speak “80/443” and Postgres speaks “5432” so there was no way for our Postgres to communicate with the outside world. + +WASM isn't much help here - a WebAssembly module running in the browser is generally not able to do anything outside itself, +except for calling functions exposed from JavaScript. + +Browsers provide another connection option for us however: Websockets. The nice thing about websocket connections is that they are _persistent_, +so all we needed was to figure out how to proxy the virtual machine traffic through a websocket connection. + +The VM includes an emulated network card (`ne2k-pci`) and a `proxy_url` startup parameter which points to an external server +running a websocket proxy (i.e. on the internet). The websocket proxy establishes connections via a websocket port, then accepts raw ethernet packets. +It turns those raw packets into TCP/IP packets and routes them between the Internet and the VM. + +![Postgres WASM to the proxy](/images/blog/postgres-wasm/pg-wasm-diagram1.jpg) + +With our tunnel established, we could now send network traffic to the outside world. For example, try “starting” the network on the VM, +"exiting" out of psql (`cmd`+`D`), and then run `ping 1.1.1.1`. + +![Postgres WASM to the internet](/images/blog/postgres-wasm/pg-wasm-diagram2.jpg) + +Most v86 VM's use an open proxy at `wss://relay.widgetry.org/` based on [websockproxy](https://github.com/benjamincburns/websockproxy). +This proxy allows the VM to communicate with the outside world. It can handle all the basic use-cases like loading +data from other PostgreSQL databases using `pg_dump` and `psql`, or operating as read-only replica of another database. + +However, this proxy doesn't allow incoming traffic to be routed into a VM running locally on a laptop. +For instance, you can't connect a local `PgAdmin4` to the PostgreSQL instance running inside your browser. +So we [forked](https://github.com/snaplet/postgres-wasm/tree/main/packages/websockproxy) the [proxy](https://github.com/benjamincburns/websockproxy) and +added nginx to provide a reverse proxy. + +![Postgres WASM with psql](/images/blog/postgres-wasm/pg-wasm-diagram3.jpg) + +The reverse proxy listens on a range of ports, mapping each port to the VM at a specific private address you want to reach. +The simple solution was to take the last 2 segments of the private IP and map it to a port number. So if your private IP is 10.5.6.123, +you connect to the proxy on port 6123 and that points you to PostgreSQL (running on port 5432) on private IP 10.5.6.123. Shortened addresses are padded, +so 10.5.6.2 maps to port 6002 and 10.5.6.44 to port 6044. + +![Postgres WASM with remote logins](/images/blog/postgres-wasm/pg-wasm-diagram4.jpg) + +### Sending commands to the emulator from the browser UI + +Once the emulator is running, in the words of Fabian, “it runs as a black box process”, and the only way to communicate between the +UI and the operating system running in the emulator is through `serial0_send` to send keystrokes over the emulated serial port, +or through the `create_file` function which uploads a file to the running emulator. + +To restart the network after restoring a state file, we need to run a short script to unbind and re-bind the emulated network card +(so it gets a new mac address and thus a unique private IP address at the proxy), and then a standard network restart command. +We could run this script by sending keystrokes to the emulator, but that's clumsy. What if the user is at a `psql` prompt? Then we'd send `\! script_command`. +But if they're at an OS prompt, that won't work. + +We solved the issue by creating a folder called `\inbox` and added a listener to the folder. When files arrive there, if the file ends in `.sh` (a shell script), +we `chmod +x` that file, execute it, then delete it. That allows us to run commands “in the background” without upsetting the UI. + +## Just for fun + +If you want to do something very cool, you can connect to another user's Postgres instance that they are running in their browser. +Here are the steps: + +1. Find a friend (sometimes the first step is the hardest) +2. Tell them to go to [wasm.supabase.com](https://wasm.supabase.com/) +3. Tell them to “Start Network” and get their Network URL +4. Have them set a password on their database `ALTER ROLE postgres WITH PASSWORD 'my_password';` +5. On your own machine, open a terminal and run + `psql postgres://postgres:my_password@proxy.wasm.supabase.com:` +6. And you're in! You're now connecting to a remote Postgres instance, inside a VM, inside a browser, from a terminal on your own computer. + +**Database Replication** + +Even more mind-blowing - it's possible to replicate data from an online PostgreSQL database (for example, a Supabase project) to PostgreSQL running inside your browser, +and vice-versa using Postgres's logical replication. The steps are no different than any other Postgres database - just use the proxy URL as the target. + +## What's next? + +For now, this is very experimental - but it has a lot of potential. If you want to get involved, please reach out to us or +the team at [Snaplet](https://www.snaplet.dev/). The work they're doing over at Snaplet is incredible, and we've had a blast collaborating with them. + +- Snaplet repo: [https://github.com/snaplet/postgres-wasm](https://github.com/snaplet/postgres-wasm) +- Supabase fork: [https://github.com/supabase-community/postgres-wasm](https://github.com/supabase-community/postgres-wasm) diff --git a/apps/www/_blog/2022-10-05-supabase-beta-update-september-2022.mdx b/apps/www/_blog/2022-10-05-supabase-beta-update-september-2022.mdx new file mode 100644 index 00000000000..0c86354bfd1 --- /dev/null +++ b/apps/www/_blog/2022-10-05-supabase-beta-update-september-2022.mdx @@ -0,0 +1,102 @@ +--- +title: Supabase Beta September 2022 +description: We were too focused on clearing out the backlog so we didn't ship anything new last month... or did we?! +author: ant_wilson +image: 2022-september/monthly-update-september-2022.jpg +thumb: 2022-september/monthly-update-september-2022.jpg +tags: + - release-notes +date: '2022-10-05' +toc_depth: 3 +--- +For September we made a huge effort to focus on crushing our backlog and outstanding tickets amongst other things, here's the full list of updates for the month... + +## Kaizen Week + +Post Launch Week we did three subsequent weeks of [Kaizen](https://en.wikipedia.org/wiki/Kaizen), a term we use internally to deliver constant and incremental improvement. Each week had a different focus: + +- Week 1: QA and testing +- Week 2: Documentation +- Week 3: Issue Backlog and Automation + +It's pretty rare for a company to stop feature development altogether, but luckily we're just a bunch of developers so we all know the pain of technical debt. After 5 Launch Weeks, working on testing and backlogs feels like a bit of a relief. + +We saw a lot of progress across our Open Issues - closing over 250 issues and 50 Pull Requests. + +![Kaizen Week - Github Chart](/images/blog/2022-september/kaizen.jpg) + +and we shipped a few things: + +## Auth UI on Product Hunt + +![Auth UI on Product Hunt](/images/blog/2022-september/auth-ui-product-hunt.png) + +We launched the new Auth UI on Product Hunt! Auth UI is a pre-built React component for authenticating users with Supabase Auth. It supports custom themes and extensible styles to match your brand and aesthetic. + +[Check out the launch.](https://www.producthunt.com/posts/auth-ui-login-ui-for-your-web-app) + +## Postgres WASM + +![Postgres WASM with Snaplet and Supabase](/images/blog/2022-september/postgres-wasm.jpg) + +If you've ever wondered, "can I run Postgres inside a browser, using an embeddable Linux Virtual Machine?", wonder no longer. With our friends at [Snaplet](https://www.snaplet.dev/?utm_campaign=Beta%20update%20emails&utm_source=hs_email&utm_medium=email&_hsenc=p2ANqtz-8u0x9grbiydYqh56hC_8Dta4ZiTdWbW0eXWkVCnUEUGWWoVDFXCpWzJWImkLfM-lG-o2JX), we've released an open source Postgres WASM. + +[Read the blog post](https://supabase.com/blog/postgres-wasm)
+[Comment on Hacker News](https://news.ycombinator.com/item?id=33067962)
+Visit the repo: [Snaplet](https://github.com/snaplet/postgres-wasm) | [Supabase](https://github.com/supabase-community/postgres-wasm) + +## Security updates + +We're making some changes to the way the Dashboard interacts with your database. These changes simplify the database permissions so that it's easier for you to migrate in and out of Supabase, and they reduce the security surface area considerably. The change will be applied automatically in November, or you can run it today via the Dashboard. + +[Review the Security Notice](https://github.com/supabase/supabase/discussions/9314). + +## Quick product updates + +- Edge functions free plan script size is bumped to 2 MB +- [functions-go](https://github.com/supabase-community/functions-go) was just contributed to supabase-community by [Zain Khan](https://twitter.com/Za1n_K) +- A new [guide](https://supabase.com/docs/guides/auth/auth-captcha) to add captcha to your sign-in, sign-up, and password reset forms +- New Postgres Extension for monitoring your PostgreSQL database network traffic: [pg_netstat](https://github.com/supabase/pg_netstat) +- Added [docs](https://supabase.com/docs/guides/storage-cdn) for how caching works in Supabase + +## Migrate from Heroku to Supabase + +![Migrate from Heroku to Supabase](/images/blog/2022-september/migrate-from-heroku-to-supabase.jpg) + +In case you missed it, Heroku is shutting down their free tier. We're big fans of Heroku and take a lot of inspiration from what they've built. Supabase is compatible with Heroku's PostgreSQL product (because we're just Postgres too), and if you have a free project running on Heroku we've created a [tool to help migrate](http://migrate.supabase.com/) to our free tier. + +## Made with Supabase + +![Made with Supabase - Supabase Schema](/images/blog/2022-september/madewithsupabase.jpg) + +[Supabase Schema](https://supabase-schema.vercel.app/): An open source, free, login-less and secured Supabase Schema Visualizer. Simply plug in your URL and anon key and see a visual representation of your database schema! Built by the amazing [Zernonia](https://twitter.com/zernonia) using Vue 3, Viti, and WindiCSS. + +## Extended Community Highlights + +![Community](/images/blog/2022-june/community.jpg) + +- Building a viral application to visualize train routes. [Blog](https://vercel.com/blog/building-a-viral-application-to-visualize-train-routes) +- OTP Authentication with Supabase and Twilio in React. [Tutorial](https://refine.dev/blog/supabase-twilio-otp-authentication-in-react/) +- Join Vercel and us for [Next.js Conf](https://nextjs.org/conf). +- Building $1K - $10K MRR Micro SaaS around Supabase. [Blog](https://microsaasidea.substack.com/p/micro-saas-products-around-supabase) +- Watch How Netlify and Supabase Enables "Supa" DX. [Webinar](https://www.netlify.com/resources/webinars/how-netlify-supabase-enables-supa-dx/) +- Postgres database functions are your next favorite feature! [Blog](https://mirror.xyz/0x7D15080A13c8128dBAf90a2c2326058b5c1D5eac/MaiOq5m1xSa9QfMuiLYq4bJdA0owWoTpOZNlQv76_so) +- Create a blog with Vue, Tailwindcss & Supabase. [Part 1](https://youtube.com/watch?v=0NB9lgFcOT4) and [Part 2](https://youtube.com/watch?v=UP2mHUpcv6g) +- Flutter Supabase Authentication. [Tutorial](https://www.sandromaglione.com/techblog/flutter-supabase-authentication-complete-tutorial) +- Vue 3 + Pinia + Supabase Auth (Email). [Tutorial](https://towardsdev.com/vue-3-pinia-supabase-auth-email-1228f5f8502e) +- Power up your ClickUp skills with Supabase, Figma, and DhiWise in a day. [Tutorial](https://dev.to/saloni137/power-up-your-clickup-skills-with-supabase-figma-and-dhiwise-in-a-day-3pak) +- Creating an Email Authentication using Supabase in React. [Tutorial](https://dev.to/surajondev/creating-an-email-authentication-using-supabase-in-react-5883) + + +## Meme Zone + +If you made it this far in the blog post you deserve a treat. [Follow us on Twitter](https://twitter.com/supabase) for more. + +![Supabase meme September 2022](/images/blog/2022-september/beta-update-september-meme.jpeg) + +## Get started + +- Start using Supabase today: **[app.supabase.com](https://app.supabase.com/)** +- Make sure to **[star us on GitHub](https://github.com/supabase/supabase)** +- Follow us **[on Twitter](https://twitter.com/supabase)** +- Subscribe to our **[YouTube channel](https://www.youtube.com/c/supabase)** diff --git a/apps/www/components/AuthWidget/AuthComponentExample.tsx b/apps/www/components/AuthWidget/AuthComponentExample.tsx deleted file mode 100644 index b345a1d3208..00000000000 --- a/apps/www/components/AuthWidget/AuthComponentExample.tsx +++ /dev/null @@ -1,251 +0,0 @@ -import { useEffect, useState } from 'react' -import { createClient } from '@supabase/supabase-js' -import { - Badge, - Button, - Card, - // Auth, - Space, - Tabs, - IconCode, - IconSearch, -} from '@supabase/ui' -import CodeBlock from '../CodeBlock/CodeBlock' -// Import Swiper React components -import { Swiper, SwiperSlide } from 'swiper/react' -import Link from 'next/link' -import { useRouter } from 'next/router' - -import { useTheme } from '../Providers' - -const supabase = createClient( - 'https://rsnibhkhsbfnncjmwnkj.supabase.co', - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlhdCI6MTYxNTIxNDE1MywiZXhwIjoxOTMwNzkwMTUzfQ.OQEbAaTfgDdLCCht251P2JRD3QDnui6nsU8N-tZA_Mc' -) - -function AuthComponentExample() { - const { isDarkMode } = useTheme() - const { basePath } = useRouter() - - // // store API swiper instance - // const [imageSwiper, setImageSwiper] = useState(undefined) - // const [imageSwiperActiveIndex, setImageSwiperActiveIndex] = useState(0) - - // function handleNavChange(e: number) { - // console.log(e) - // setImageSwiperActiveIndex(e) - // // @ts-ignore - // imageSwiper.slideTo(e) - // } - - // const AuthContainer = (props: any) => { - // const { user } = Auth.useUser() - // if (user) { - // return ( - // <> - //

Signed in: {user.email}

- // - // - // ) - // } - // return props.children - // } - - return ( -
- {/* handleNavChange(Number(id))} - > - }> - - - } id="1"> - - - */} -
- - -
- - -
- - Logo -

{'Acme Company'}

-
- Demo -
-

Sign in with

-
- - - - - - - - - - - - - - - - - - - -
-
-
-

or continue with

-
-
- {/* - - - - */} - - -
- - - -
- -

Signed in: {user.email}

- -
- ) - } - return props.children; - }; - - return ( - - - - - - ); -} -`} - lang="js" - /> -
- - -
-
- ) -} - -export default AuthComponentExample diff --git a/apps/www/components/AuthWidget/AuthWidget.tsx b/apps/www/components/AuthWidget/AuthWidget.tsx deleted file mode 100644 index c5715623260..00000000000 --- a/apps/www/components/AuthWidget/AuthWidget.tsx +++ /dev/null @@ -1,239 +0,0 @@ -import { useState } from 'react' -import { createClient, Provider } from '@supabase/supabase-js' - -import DefaultLayout from '~/components/Layouts/Default' -import CodeBlock from '~/components/CodeBlock/CodeBlock' -import { - Button, - // Auth, - Card, - Checkbox, - Divider, - Radio, - Select, - Space, - Tabs, - Input, - Toggle, - IconCode, - IconZoomIn, - IconCopy, - IconColumns, -} from '@supabase/ui' - -import AuthStyles from './Auth.module.css' - -function AuthPage() { - const supabase = createClient( - 'https://rsnibhkhsbfnncjmwnkj.supabase.co', - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlhdCI6MTYxNTIxNDE1MywiZXhwIjoxOTMwNzkwMTUzfQ.OQEbAaTfgDdLCCht251P2JRD3QDnui6nsU8N-tZA_Mc' - ) - - type SizeProps = 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' - type LayoutProps = 'horizontal' | 'vertical' - - const [companyName, setCompanyName] = useState('Acme Company') - const [widgetSize, setWidgetSize] = useState('tiny') - const [socialLogins, setSocialLogins] = useState(true) - const [socialLoginLayout, setSocialLoginLayout] = useState('horizontal') - const [socialColors, setSocialColors] = useState(false) - - const socials: Provider[] = ['facebook', 'google', 'bitbucket', 'github', 'gitlab'] - - const formSize = 'small' - const formLayout = 'vertical' - - return ( - -
-
-
-

ReactJS Auth Widget

-

- An API built from the groud up just for Storage.With powerful library clients coming - soon that allow for asset optimasation and image transformation -

-
-
-
-
- - - - , - ]} - > - }> -
- - -
- - supabase logo -

{companyName}

-
-
- {/* */} -
-
-
-
- } id="panel-2"> -
- - - - - - ) - } - `} - lang="js" - /> -
-
-
-
-
-
- -
-
-
- -
-

Customise your login form

-

Our ReactJS Auth form will help you get going even quicker

-
- - setCompanyName(e.target.value)} - /> - {/* @ts-ignore */} - - - - setSocialLogins(!socialLogins)} - /> - {socialLogins && ( - <> - - {/* @ts-ignore */} - ) => - // @ts-ignore - setSocialLoginLayout(e.target.value) - } - > - - - - setSocialColors(!socialColors)} - /> - - )} - - - - setWidgetSize(e.target.value)} - > - - - - - - -
-
-
-
-
-
-
- ) -} - -export default AuthPage diff --git a/apps/www/components/AuthWidget/AuthWidgetSection.tsx b/apps/www/components/AuthWidget/AuthWidgetSection.tsx new file mode 100644 index 00000000000..2824c606244 --- /dev/null +++ b/apps/www/components/AuthWidget/AuthWidgetSection.tsx @@ -0,0 +1,290 @@ +import { createClient } from '@supabase/supabase-js' +import { Button } from '@supabase/ui' +import { useState } from 'react' +// Import Swiper React components +import { useRouter } from 'next/router' + +import { ColorSwatchIcon, MenuIcon } from '@heroicons/react/outline' +import { Auth, ThemeSupa } from '@supabase/auth-ui-react' +import { useTheme } from '../Providers' + +const supabase = createClient( + 'https://rsnibhkhsbfnncjmwnkj.supabase.co', + 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlhdCI6MTYxNTIxNDE1MywiZXhwIjoxOTMwNzkwMTUzfQ.OQEbAaTfgDdLCCht251P2JRD3QDnui6nsU8N-tZA_Mc' +) + +function AuthWidgetSection() { + const { isDarkMode } = useTheme() + const { basePath } = useRouter() + const [radius, setRadius] = useState('4px') + const [brandColor, setBrandColor] = useState({ + brand: 'var(--colors-brand9)', + brandAccent: 'var(--colors-brand11)', + brandAccent2: 'var(--colors-brand3)', + }) + const [layout, setLayout] = useState('horizontal') + + // // store API swiper instance + const [imageSwiper, setImageSwiper] = useState(undefined) + const [imageSwiperActiveIndex, setImageSwiperActiveIndex] = useState(0) + + function handleNavChange(e: number) { + console.log(e) + setImageSwiperActiveIndex(e) + // @ts-ignore + imageSwiper.slideTo(e) + } + + const AuthContainer = (props: any) => { + const { user } = Auth.useUser() + if (user) { + return ( + <> +

Signed in: {user.email}

+ + + ) + } + return props.children + } + + // rounded-xl rounded-3xl rounded-full // for purging + + return ( +
+
+
+
+
+
+ +
+
+
+
+ +
+

Acme Industries

+
+

+ Sign in today for Supa stuff +

+
+ + + + + +
+
+
+
+
+

Auth UI

+

Pre-built auth widgets to get started in minutes.

+

+ Customizable authentication UI component with custom themes and extensible styles to + match your brand and aesthetic +

+
+ + React only. Other frameworks coming soon. +
+
+ +
+
+ +
+ + + + +
+
+ +
+ +
+ + + +
+
+ +
+ +
+ {' '} + +
+
+
+
+
+
+
+ ) +} + +export default AuthWidgetSection diff --git a/apps/www/components/Blog/BlogListItem.tsx b/apps/www/components/Blog/BlogListItem.tsx index 0107a32578b..bc77f543bf7 100644 --- a/apps/www/components/Blog/BlogListItem.tsx +++ b/apps/www/components/Blog/BlogListItem.tsx @@ -51,9 +51,9 @@ const BlogListItem = ({ post }: Props) => {

{post.description}

- {author.map((author: any) => { + {author.map((author: any, i: number) => { return ( -
+
{author.author_image_url && ( { +
- -
- -
-
- )} + ) + }} {formSubmitted && ( diff --git a/apps/www/components/Hero.tsx b/apps/www/components/Hero.tsx index 9f269b8e6c7..b30e96f9d0b 100644 --- a/apps/www/components/Hero.tsx +++ b/apps/www/components/Hero.tsx @@ -33,8 +33,8 @@ const Hero = () => {

Supabase is an open source Firebase alternative. Start your project with a - Postgres Database, Authentication, instant APIs, Realtime subscriptions - and Storage. + Postgres database, Authentication, instant APIs, Edge Functions, Realtime + subscriptions, and Storage.

diff --git a/apps/www/components/LaunchWeek/HackathonSection.tsx b/apps/www/components/LaunchWeek/HackathonSection.tsx index 33d6dbf6b70..b2f0a87f8d6 100644 --- a/apps/www/components/LaunchWeek/HackathonSection.tsx +++ b/apps/www/components/LaunchWeek/HackathonSection.tsx @@ -11,7 +11,7 @@ export default function LaunchHero() {

Launch Week Hackathon

- In progress + Closed

Submissions close Sunday 21st Aug 23:59 (PT). @@ -19,9 +19,9 @@ export default function LaunchHero() {

- + diff --git a/apps/www/components/LaunchWeek/LaunchHero.tsx b/apps/www/components/LaunchWeek/LaunchHero.tsx index 268da6f5557..5ac0c07ea94 100644 --- a/apps/www/components/LaunchWeek/LaunchHero.tsx +++ b/apps/www/components/LaunchWeek/LaunchHero.tsx @@ -4,19 +4,19 @@ import Controller from './launch-controller.json' export default function LaunchHero() { return ( -
-
-

+
+
+

{Controller.hero_header}

- Launch time is Monday 08:00 PT | 11:00 ET + Stay tuned all week for daily announcements

- + diff --git a/apps/www/components/LaunchWeek/LaunchSection/ArticleButtonListItem.tsx b/apps/www/components/LaunchWeek/LaunchSection/ArticleButtonListItem.tsx index 717dba0b7e4..be927a23cd2 100644 --- a/apps/www/components/LaunchWeek/LaunchSection/ArticleButtonListItem.tsx +++ b/apps/www/components/LaunchWeek/LaunchSection/ArticleButtonListItem.tsx @@ -1,26 +1,23 @@ import { NewspaperIcon } from '@heroicons/react/outline' +import Link from 'next/link' import { Article } from '../types' const ArticleButtonListItem = (props: Article) => { return ( - + + ) } diff --git a/apps/www/components/LaunchWeek/LaunchSection/ProductButtonListItem.tsx b/apps/www/components/LaunchWeek/LaunchSection/ProductButtonListItem.tsx index dc09ff233e9..bb8edfb1af4 100644 --- a/apps/www/components/LaunchWeek/LaunchSection/ProductButtonListItem.tsx +++ b/apps/www/components/LaunchWeek/LaunchSection/ProductButtonListItem.tsx @@ -1,26 +1,29 @@ import { SparklesIcon } from '@heroicons/react/outline' +import Link from 'next/link' import { Article } from '../types' export const ProductButtonListItem = (props: Article) => { return ( -
- -
+ > +
+ +
+
+ {props.title} +

{props.description}

+
+ +
+ ) } diff --git a/apps/www/components/LaunchWeek/LaunchSection/index.tsx b/apps/www/components/LaunchWeek/LaunchSection/index.tsx index 4c621100e2d..72b54ee9957 100644 --- a/apps/www/components/LaunchWeek/LaunchSection/index.tsx +++ b/apps/www/components/LaunchWeek/LaunchSection/index.tsx @@ -1,11 +1,11 @@ +import Image from 'next/image' +import { useState } from 'react' import { PlayIcon, TruckIcon, XIcon } from '@heroicons/react/outline' import { Badge, Modal } from '@supabase/ui' -import { useState } from 'react' import { Article, Product, WeekDayProps } from '../types' import _days from './../days.json' import ArticleButtonListItem from './ArticleButtonListItem' -import ProductButton from './ProductButton' import ProductButtonListItem from './ProductButtonListItem' const days = _days as WeekDayProps[] @@ -48,13 +48,6 @@ export const LaunchSection = (props: WeekDayProps) => { {props.shipped ? props.title : props.dd + ' 08:00 PT | 11:00 ET'}

- {/* {props.shipped && props.announcements && ( -
- {props.announcements.map((announcement: Announcement) => ( - - ))} -
- )} */} {props.shipped &&

{props.description}

}
) @@ -98,27 +91,20 @@ export const LaunchSection = (props: WeekDayProps) => { ) : ( <>
- Supabase
setVideoVisible(true)} - className=" - absolute - top-0 - left-0 - flex - h-full - w-full - items-center - justify-center - " + className="absolute top-0 left-0 flex h-full w-full items-center justify-center" >
@@ -176,8 +162,9 @@ export const LaunchSection = (props: WeekDayProps) => { {props.shipped && (
{props.articles && - props.articles.map((article: Article) => ( + props.articles.map((article: Article, index) => (
{
- {/* border */} -
+ {article.products && ( + <> + {/* border */} +
-
-

New releases

- {article.products && - article.products.map((product: Product) => ( - - ))} -
+
+

New releases

+ {article.products && + article.products.map((product: Product, index) => ( + + ))} +
+ + )}
))}
)} -
- {props.products && - props.products.map((product: Product) => )} -
) diff --git a/apps/www/components/LaunchWeek/days.json b/apps/www/components/LaunchWeek/days.json index 731af55d237..bdc0150c0a2 100644 --- a/apps/www/components/LaunchWeek/days.json +++ b/apps/www/components/LaunchWeek/days.json @@ -1,32 +1,207 @@ [ { - "shipped": false, + "title": "CLI and Admin API", + "shipped": true, "date": "15th Aug 2022", + "description": "We are moving Supabase CLI v1 out of beta, and releasing Admin API beta.", "d": 1, - "dd": "Monday" + "dd": "Monday", + "youtube_id": "OpPOaJI_Z28", + "articles": [ + { + "title": "Supabase CLI v1 and Admin API Beta", + "url": "/blog/supabase-cli-v1-and-admin-api-beta", + "description": "Read our blog post outlining the new CLI and Admin API.", + "products": [ + { + "title": "CLI Docs", + "url": "/docs/reference/cli", + "description": "Learn how to install the CLI" + }, + { + "title": "Admin API Docs", + "url": "/docs/reference/api", + "description": "Learn how to use the new Admin API" + } + ] + } + ] }, { - "shipped": false, + "title": "supabase-js v2", + "shipped": true, "date": "16th Aug 2022", + "description": "Today we're releasing supabase-js v2, which focuses on “quality-of-life” improvements for developers.", "d": 2, - "dd": "Tuesday" + "dd": "Tuesday", + "youtube_id": "iqZlPtl_b-I", + "articles": [ + { + "title": "supabase-js v2 Release Candidate", + "url": "/blog/supabase-js-v2", + "description": "First peek of supabase-js v2, which focuses on quality-of-life improvements for developers.", + "products": [ + { + "title": "Supabase.js v2 Docs", + "url": "/docs/reference/javascript/installing", + "description": "Updated documentation for supabase-js" + }, + { + "title": "Typescript support", + "url": "/docs/reference/javascript/typescript-support", + "description": "Using types generated directly from your database." + } + ] + } + ] }, { - "shipped": false, + "title": "Security", + "shipped": true, "date": "17th Aug 2022", + "description": "An update on the ongoing security improvements of Supabase.", "d": 3, - "dd": "Wednesday" + "dd": "Wednesday", + "youtube_id": "6bGQotxisoY", + "announcements": [ + { + "title": "Supabase is now SOC2 compliant", + "url": "Something", + "description": "Outline of the community changes", + "type": "soc2" + } + ], + "articles": [ + { + "title": "Supabase is SOC2 compliant", + "url": "/blog/supabase-soc2", + "description": "Supabase is now SOC2 Type 1 compliant. Let’s dig into what that means, and explain the process we went through to get there. If you’re building a SaaS product, this blog post should provide a rough guide to getting your SOC2 certification.", + "products": [ + { + "title": "Security portal", + "url": "https://security.supabase.com/", + "description": "Monitor security at Supabase." + }, + { + "title": "SOC 2 Document", + "url": "https://security.supabase.com/", + "description": "Request the SOC 2 Type I document through the Security Portal." + }, + { + "title": "DPA Document", + "url": "https://security.supabase.com/", + "description": "Request Data Processing Agreement document through the Security Portal." + } + ] + } + ] }, { - "shipped": false, + "title": "Realtime: Multiplayer Edition", + "shipped": true, "date": "18th Aug 2022", + "description": "Announcing the general availability of Realtime's Broadcast and Presence.", "d": 4, - "dd": "Thursday" + "dd": "Thursday", + "youtube_id": "CGZr5tybW18", + "articles": [ + { + "title": "Realtime: Multiplayer Edition", + "url": "/blog/supabase-realtime-multiplayer-general-availability", + "description": "Origin story of Realtime, Broadcast and Presence features with examples, and one more thing.", + "products": [ + { + "title": "Realtime Overview", + "url": "/docs/guides/realtime", + "description": "Realtime Overview" + }, + { + "title": "Broadcast Guide", + "url": "/docs/guides/realtime/broadcast", + "description": "Guide on how to use Broadcast feature" + }, + { + "title": "Presence Guide", + "url": "/docs/guides/realtime/presence", + "description": "Guide on how to use Presence feature" + }, + { + "title": "Postgres Changes Guide", + "url": "/docs/guides/realtime/postgres-changes", + "description": "Guide on how to use Postgres Changes feature" + } + ] + } + ] }, { - "shipped": false, + "title": "Community and One more thing...", + "shipped": true, "date": "19th Aug 2022", + "description": "We finish Launch Week 5 with an update on the community and some more product updates.", "d": 5, - "dd": "Friday" + "dd": "Friday", + "youtube_id": "s9UePQjLT0U", + "articles": [ + { + "title": "Community Day", + "url": "/blog/launch-week-5-community-day", + "description": "Outline of the community changes", + "products": [ + { + "title": "pg_jsonschema: 0.1.0", + "url": "/blog/launch-week-5-community-day#pg_jsonschema", + "description": "For our Open Source Spotlight we're hearing from Dmitry Dygalo. " + }, + { + "title": "Postgrest v10: Native Types", + "url": "/blog/launch-week-5-community-day#postgrest-v10-native-types", + "description": "EXPLAIN, Query Planners, Improved Relationship Detection, and Computed relationships." + }, + { + "title": "Egghead course", + "url": "/blog/launch-week-5-community-day#free-egghead-course-cache-supabase-data-at-the-edge-with-cloudflare-workers-and-kv-storage", + "description": "Cache Supabase data at the Edge with Cloudflare Workers and KV Storage." + } + ] + }, + { + "title": "One more thing", + "url": "/blog/launch-week-5-one-more-thing", + "description": "It's never just one more thing...", + "products": [ + { + "title": "Supabase Vault", + "url": "/blog/supabase-vault", + "description": "Postgres extension for managing secrets and encryption inside your database." + }, + { + "title": "Auth UI", + "url": "/blog/launch-week-5-one-more-thing#auth-ui", + "description": "Customizable React UI component for Supabase Auth." + }, + { + "title": "Dashboard permissions", + "url": "/blog/launch-week-5-one-more-thing#dashboard-permissions", + "description": "We've released granular permissions on our Supabase dashboard." + }, + { + "title": "JSON schema validation", + "url": "/blog/launch-week-5-one-more-thing#json-schema-validation", + "description": "We've released a new Postgres extension on the Supabase platform today, pg_jsonschema." + }, + { + "title": "pg_graphql v0.4.0", + "url": "/blog/launch-week-5-one-more-thing#pg_graphql-v040", + "description": "We've released a new version of pg_graphql, our GraphQL extension for Postgres." + }, + { + "title": "Auth | Multi Factor Authentication", + "url": "/blog/launch-week-5-one-more-thing#multi-factor-authentication", + "description": "We've opened early-access signups for Multi-Factor Authentication (MFA)." + } + ] + } + ] } ] diff --git a/apps/www/components/LaunchWeek/launch-controller.json b/apps/www/components/LaunchWeek/launch-controller.json index 0af6999eb9b..efa75efdf84 100644 --- a/apps/www/components/LaunchWeek/launch-controller.json +++ b/apps/www/components/LaunchWeek/launch-controller.json @@ -2,5 +2,5 @@ "friday_preview": true, "hackathon_preview": true, "ticket_callout": true, - "hero_header": "Ready for launch" + "hero_header": "Day 5 shipped" } diff --git a/apps/www/components/MadeForDevelopers/CodeExamples.tsx b/apps/www/components/MadeForDevelopers/CodeExamples.tsx index 198539e744a..cb974de41a7 100644 --- a/apps/www/components/MadeForDevelopers/CodeExamples.tsx +++ b/apps/www/components/MadeForDevelopers/CodeExamples.tsx @@ -117,9 +117,9 @@ const CodeExamples = () => { activeId={example} type="underlined" > - {Object.values(exampleList).map((x) => { + {Object.values(exampleList).map((x, i) => { return ( - + ) diff --git a/apps/www/components/MfaContactForm.tsx b/apps/www/components/MfaContactForm.tsx new file mode 100644 index 00000000000..03cd038901c --- /dev/null +++ b/apps/www/components/MfaContactForm.tsx @@ -0,0 +1,179 @@ +import { Button, Form, Input, Select } from '@supabase/ui' +import { useState } from 'react' +import countries from '~/data/Countries.json' +import supabase from '~/lib/supabase' + +const INITIAL_VALUES = { + companyName: '', + contactFirstName: '', + contactLastName: '', + contactEmail: '', + contactPhone: '', + companySize: '', + details: '', + country: 'US', +} + +const validate = (values: any) => { + const errors: any = {} + + if (!values.companyName) { + errors.companyName = 'Required' + } + + if (!values.contactFirstName) { + errors.contactFirstName = 'Required' + } + + if (!values.contactLastName) { + errors.contactLastName = 'Required' + } + + if (!values.contactEmail) { + errors.contactEmail = 'Required' + } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(values.contactEmail)) { + errors.contactEmail = 'Invalid email address' + } + + return errors +} + +const MfaContactForm = () => { + const [formSubmitted, setFormSubmitted] = useState(false) + + const handleFormSubmit = async (values: typeof INITIAL_VALUES, { resetForm }: any) => { + const { error } = await supabase.from('mfa_early_access_contacts').insert([ + { + company_name: values.companyName, + contact_name: `${values.contactFirstName} ${values.contactLastName}`, + contact_first_name: values.contactFirstName, + contact_last_name: values.contactLastName, + contact_email: values.contactEmail, + contact_phone: values.contactPhone, + company_size: values.companySize, + details: values.details, + country: values.country, + }, + ]) + + // TODO: handle error + console.log('error:', error) + if (!error) { + resetForm() + + setFormSubmitted(true) + } + } + + return ( +
+
+ {({ isSubmitting }: any) => ( +
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ )} +
+ + {formSubmitted && ( +

Thanks, we'll reach out to you shortly.

+ )} +
+ ) +} + +export default MfaContactForm diff --git a/apps/www/components/Nav/Announcement.tsx b/apps/www/components/Nav/Announcement.tsx index 252a09750ff..c5e5ed8cc96 100644 --- a/apps/www/components/Nav/Announcement.tsx +++ b/apps/www/components/Nav/Announcement.tsx @@ -1,9 +1,19 @@ import React, { useEffect, useState } from 'react' -import announcement from '~/data/Announcement.json' +import _announcement from '~/data/Announcement.json' import { IconChevronRight, IconX } from '@supabase/ui' import { useRouter } from 'next/router' +interface AnnouncementProps { + show: boolean + text: string + cta: string + link: string + badge?: string +} + +const announcement = _announcement as AnnouncementProps + const Announcement = () => { const [hidden, setHidden] = useState(true) @@ -58,7 +68,14 @@ const Announcement = () => { lg:px-16 xl:px-20 " > - {announcement.text} + + {announcement.badge && ( +
+ {announcement.badge} +
+ )} + {announcement.text} +
{announcement.cta} diff --git a/apps/www/components/Partners/BecomeAPartners.tsx b/apps/www/components/Partners/BecomeAPartners.tsx index e3a5b102e1e..4d599281ae9 100644 --- a/apps/www/components/Partners/BecomeAPartners.tsx +++ b/apps/www/components/Partners/BecomeAPartners.tsx @@ -1,8 +1,7 @@ -import { SupabaseClient } from '@supabase/supabase-js' import { Button, Form, Input, InputNumber, Select } from '@supabase/ui' import { useState } from 'react' import countries from '~/data/Countries.json' -import { PartnerContact } from '~/types/partners' +import { SupabaseClient } from '~/lib/supabase' const INITIAL_VALUES = { type: 'expert', @@ -41,24 +40,21 @@ export default function BecomeAPartner({ supabase }: { supabase: SupabaseClient const [formSubmitted, setFormSubmitted] = useState(false) const handleFormSubmit = async (values: any) => { - const { error } = await supabase.from('partner_contacts').insert( - [ - { - type: values.type, - first: values.first, - last: values.last, - company: values.company, - size: Number(values.size), - title: values.title, - email: values.email, - website: values.email.split('@')[1], - phone: values.phone, - country: values.country, - details: values.details, - }, - ], - { returning: 'minimal' } - ) + const { error } = await supabase.from('partner_contacts').insert([ + { + type: values.type, + first: values.first, + last: values.last, + company: values.company, + size: Number(values.size), + title: values.title, + email: values.email, + website: values.email.split('@')[1], + phone: values.phone, + country: values.country, + details: values.details, + }, + ]) // TODO: handle error console.log('error:', error) @@ -172,8 +168,10 @@ export default function BecomeAPartner({ supabase }: { supabase: SupabaseClient name="country" layout="vertical" > - {countries.map(({ code, name }) => ( - {name} + {countries.map(({ code, name }: any, i: number) => ( + + {name} + ))}
diff --git a/apps/www/components/PricingTableRow.tsx b/apps/www/components/PricingTableRow.tsx index 91ca9bae8dd..b9c26efe71d 100644 --- a/apps/www/components/PricingTableRow.tsx +++ b/apps/www/components/PricingTableRow.tsx @@ -67,9 +67,9 @@ export const PricingTableRowDesktop = (props: any) => { - {category.features.map((feat: any) => { + {category.features.map((feat: any, i: number) => { return ( - + { + const errors: any = {} + + if (!values.companyName) { + errors.companyName = 'Required' + } + + if (!values.contactFirstName) { + errors.contactFirstName = 'Required' + } + + if (!values.contactLastName) { + errors.contactLastName = 'Required' + } + + if (!values.contactEmail) { + errors.contactEmail = 'Required' + } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(values.contactEmail)) { + errors.contactEmail = 'Invalid email address' + } + + return errors +} + +const SOC2RequestForm = () => { + const [error, setError] = useState() + const [formSubmitted, setFormSubmitted] = useState(false) + + const handleFormSubmit = async (values: typeof INITIAL_VALUES, { resetForm }: any) => { + const { error } = await supabase.from('soc2_requests').insert([ + { + company_name: values.companyName, + contact_name: `${values.contactFirstName} ${values.contactLastName}`, + contact_first_name: values.contactFirstName, + contact_last_name: values.contactLastName, + contact_email: values.contactEmail, + contact_phone: values.contactPhone, + company_size: values.companySize, + details: values.details, + country: values.country, + }, + ]) + + if (!error) { + resetForm() + setFormSubmitted(true) + } else { + setError(error.message) + } + } + + return ( +
+ {formSubmitted ? ( +

+ Thank you for your submission! A member from the Supabase team will reach out to you + shortly! +

+ ) : ( + <> +
+ {({ values, isSubmitting }: any) => { + const selectedCountry = countries.find( + (country) => country.code === values['country'] + ) + const phonePlaceholder = + selectedCountry !== undefined ? `+${selectedCountry.phone_code}` : '' + + return ( +
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ ) + }} +
+ {error &&

Error: {error}

} + + )} +
+ ) +} + +export default SOC2RequestForm diff --git a/apps/www/components/Sections/GithubExamples.tsx b/apps/www/components/Sections/GithubExamples.tsx index bbf0686b155..c1ced5548e4 100644 --- a/apps/www/components/Sections/GithubExamples.tsx +++ b/apps/www/components/Sections/GithubExamples.tsx @@ -42,8 +42,8 @@ function GithubExamples() { - - - -
-
- } - title="Social login support" - text="Support for social logins are built in and the component " - /> -
-
- } - title="User context hooks" - text="Access the auth status from any component." - /> -
-
-
-
- */} diff --git a/apps/www/pages/blog.tsx b/apps/www/pages/blog.tsx index 41184b1791d..4c224dc864d 100644 --- a/apps/www/pages/blog.tsx +++ b/apps/www/pages/blog.tsx @@ -167,9 +167,9 @@ function FeaturedThumb(blog: PostTypes) {
- {author.map((author: any) => { + {author.map((author: any, i: number) => { return ( -
+
{author.author_image_url && (
{ - if (props.className !== ignoreClass) { - return - } else { - return - } - }, - ImageGrid, - img: (props: any) => { - if (props.className !== ignoreClass) { - return ( -
- -
- ) - } - return - }, -} - -// plugins for next-mdx-remote -const gfm = require('remark-gfm') -const slug = require('rehype-slug') - // table of contents extractor const toc = require('markdown-toc') @@ -72,14 +30,7 @@ export async function getStaticProps({ params }: any) { const postContent = await getPostdata(filePath, '_blog') const { data, content } = matter(postContent) - const mdxSource: any = await renderToString(content, { - components, - scope: data, - mdxOptions: { - remarkPlugins: [gfm], - rehypePlugins: [slug], - }, - }) + const mdxSource: any = await mdxSerialize(content) const relatedPosts = getSortedPosts('_blog', 5, mdxSource.scope.tags) @@ -102,6 +53,7 @@ export async function getStaticProps({ params }: any) { blog: { slug: `${params.slug}`, content: mdxSource, + source: content, ...data, toc: toc(content, { maxdepth: data.toc_depth ? data.toc_depth : 2 }), }, @@ -110,8 +62,7 @@ export async function getStaticProps({ params }: any) { } function BlogPostPage(props: any) { - // @ts-ignore - const content = hydrate(props.blog.content, { components }) + const content = props.blog.content const authorArray = props.blog.author.split(',') const author = [] @@ -163,10 +114,10 @@ function BlogPostPage(props: any) {
-

On this page

-
- {props.blog.toc.content} +

On this page

+
+ {props.blog.toc.content}
@@ -235,12 +186,12 @@ function BlogPostPage(props: any) {

{props.blog.date}

•

-

{generateReadingTime(props.blog.content.renderedOutput)}

+

{generateReadingTime(props.blog.source)}

-
- {author.map((author: any) => { +
+ {author.map((author: any, i: number) => { return ( -
+
@@ -276,7 +227,7 @@ function BlogPostPage(props: any) { {/* Content */}
{props.blog.thumb && ( -
+
)} -
{content}
+
+ +
Share this article @@ -348,8 +301,8 @@ function BlogPostPage(props: any) {

Related articles

- {props.relatedPosts.map((post: any) => ( - + {props.relatedPosts.map((post: any, i: number) => ( +

@@ -381,78 +334,10 @@ function BlogPostPage(props: any) {
- {/*
-
-
-
- {props.blog.thumb && ( - - )} -
{toc}
-
- {content} -
-
-
- -
{toc}
-
-
- Related articles -
- - {props.relatedPosts.map((post: any) => ( - -
-

- - - - {post.title} - - -

- -
- - ))} - -
-

- - View all posts - -

-
- -
-
-
-
-
-
-
{props.prevPost && }
-
- {props.nextPost && ( - - )} -
-
-
-
*/} - ) } -// function BlogPostPage() { -// return

blog post

-// } - export default BlogPostPage diff --git a/apps/www/pages/blog/tags/[tag].tsx b/apps/www/pages/blog/tags/[tag].tsx index 0978b1dfa80..b6063851ef9 100644 --- a/apps/www/pages/blog/tags/[tag].tsx +++ b/apps/www/pages/blog/tags/[tag].tsx @@ -45,8 +45,11 @@ function TagBlogsPage(props: Props) {
    {blogs.map((blog: PostTypes, idx: number) => ( -
    - +
    +
    ))}
diff --git a/apps/www/pages/changelog.tsx b/apps/www/pages/changelog.tsx new file mode 100644 index 00000000000..3f551f389a1 --- /dev/null +++ b/apps/www/pages/changelog.tsx @@ -0,0 +1,123 @@ +import { IconGitCommit } from '@supabase/ui' +import dayjs from 'dayjs' +import { MDXRemote, MDXRemoteSerializeResult } from 'next-mdx-remote' +import { NextSeo } from 'next-seo' +import CTABanner from '~/components/CTABanner' +import DefaultLayout from '~/components/Layouts/Default' +import mdxComponents from '~/lib/mdx/mdxComponents' +import { mdxSerialize } from '~/lib/mdx/mdxSerialize' + +export async function getStaticProps() { + const response = await fetch('https://api.github.com/repos/supabase/supabase/releases') + const data = await response.json() + + if (!data) { + return { + props: { + notFound: true, + }, + } + } + + const changelogRenderToString = await Promise.all( + data.map(async (item: any): Promise => { + const mdxSource: MDXRemoteSerializeResult = await mdxSerialize(item.body) + return { + ...item, + source: mdxSource, + } + }) + ) + + return { + props: { + changelog: changelogRenderToString, + }, + } +} + +function ChangelogPage(props: any) { + return ( + <> + + +
+ {/* Title and description */} +
+

Changelog

+

New updates and product improvements

+
+ + {/* Content */} +
+ {props.changelog.map((changelog: any, i: number) => { + const date = changelog.published_at.split('T') + return ( +
+
+
+
+ +
+
+ {changelog.name && ( +

{changelog.name}

+ )} +

+ {dayjs(date[0]).format('MMM D, YYYY')} +

+
+
+
+
+
+ +
+
+
+ ) + })} +
+
+ + +
+ + ) +} + +export default ChangelogPage diff --git a/apps/www/pages/contact/mfa.tsx b/apps/www/pages/contact/mfa.tsx new file mode 100644 index 00000000000..6ea62b717b2 --- /dev/null +++ b/apps/www/pages/contact/mfa.tsx @@ -0,0 +1,38 @@ +import { NextSeo } from 'next-seo' +import { useRouter } from 'next/router' +import DefaultLayout from '~/components/Layouts/Default' +import MfaContactForm from '~/components/MfaContactForm' + +const meta_title = 'MFA early access | Supabase' +const meta_description = '' + +const EnterpriseContactPage = () => { + const router = useRouter() + + return ( + + + +
+

MFA Early access

+ + +
+
+ ) +} + +export default EnterpriseContactPage diff --git a/apps/www/pages/edge-functions/edge-functions.tsx b/apps/www/pages/edge-functions/edge-functions.tsx index c8662532059..ff2e319eca4 100644 --- a/apps/www/pages/edge-functions/edge-functions.tsx +++ b/apps/www/pages/edge-functions/edge-functions.tsx @@ -33,7 +33,7 @@ const featureBlocks = [ icon: , }, { - title: 'Async triggers', + title: 'Database webhooks', description: 'Invoke Edge Functions based on any event in your database', highlightLines: '28', icon: , @@ -139,9 +139,12 @@ function Database() {
- {featureBlocks.map((item) => { + {featureBlocks.map((item, i) => { return ( -
+
{item.icon ? item.icon : }
diff --git a/apps/www/pages/launch-week/index.tsx b/apps/www/pages/launch-week/index.tsx index 94eaceffca4..6be78f3fd67 100644 --- a/apps/www/pages/launch-week/index.tsx +++ b/apps/www/pages/launch-week/index.tsx @@ -33,7 +33,7 @@ export default function launchweek() { />
- + { return ( { + const [email, setEmail] = useState('') + const [error, setError] = useState() + const [formSubmitted, setFormSubmitted] = useState(false) + + const INITIAL_VALUES = { email: '' } + + const FormSchema = Yup.object().shape({ + email: Yup.string().email('Invalid email').required('Required'), + }) + + const handleFormSubmit = async (values: typeof INITIAL_VALUES, { resetForm }: any) => { + try { + setError(undefined) + const { error } = await supabase + .from('dpa_downloads') + .insert([{ contact_email: values.email, document: 'dpa' }]) + + if (error) throw error + + resetForm() + setFormSubmitted(true) + window.open('https://supabase.com/downloads/docs/Supabase+DPA.pdf', '_blank') + } catch (error: any) { + setError(error.message) + } + } + return ( + <> + + +
+
+
+

DPA

+

+ We have a long-standing commitment to customer privacy and data protection, and as + part of that commitment we have prepared a pre-signed Data Processing Addendum + ("DPA"). +

+ +

+ You can download the latest DPA document through our{' '} + security portal, or by + submitting your email here. +

+ + {formSubmitted ? ( +

+ Thank you for your submission! A new tab should have opened with the DPA + document +

+ ) : ( +
+ {({ isSubmitting }: any) => ( + <> + setEmail(e.target.value)} + type="email" + name="email" + id="email" + required + descriptionText="We only keep a record of your email so we can update you when the document has been updated." + placeholder="Your email address" + error={error} + actions={ + + } + /> + {error &&

{error}

} + + )} +
+ )} +
+
+
+
+ +
+ + ) +} +export default DPA diff --git a/apps/www/pages/legal/soc2.tsx b/apps/www/pages/legal/soc2.tsx new file mode 100644 index 00000000000..c58ebe4dfef --- /dev/null +++ b/apps/www/pages/legal/soc2.tsx @@ -0,0 +1,36 @@ +import Link from 'next/link' +import CTABanner from 'components/CTABanner/index' +import Layout from '~/components/Layouts/Default' +import SectionContainer from '~/components/Layouts/SectionContainer' +import SOC2RequestForm from '~/components/SOC2RequestForm' + +const SOC2 = () => { + return ( + + +
+
+
+

SOC2

+

+ As a database company, being SOC2 compliant is important when handling sensitive + customer data. Supabase is currently SOC2 Type 1 compliant and we're also working on + getting certified for SOC2 Type 2 and HIPAA next. +

+ +

+ You can request for our latest SOC 2 document either through our{' '} + security portal, or by submitting + your request here. +

+ + +
+
+
+
+ +
+ ) +} +export default SOC2 diff --git a/apps/www/pages/partners/[slug].tsx b/apps/www/pages/partners/[slug].tsx index c1f0e6bdbfe..3cea05b2960 100644 --- a/apps/www/pages/partners/[slug].tsx +++ b/apps/www/pages/partners/[slug].tsx @@ -201,7 +201,7 @@ function Partner({ partner }: { partner: Partner }) { // This function gets called at build time export const getStaticPaths: GetStaticPaths = async () => { - const { data: slugs } = await supabase.from('partners').select('slug') + const { data: slugs } = await supabase.from('partners').select('slug') const paths: { params: { slug: string } @@ -222,7 +222,7 @@ export const getStaticPaths: GetStaticPaths = async () => { // This also gets called at build time export const getStaticProps: GetStaticProps = async ({ params }) => { let { data: partner } = await supabase - .from('partners') + .from('partners') .select('*') .eq('slug', params!.slug as string) .single() diff --git a/apps/www/pages/partners/experts/index.tsx b/apps/www/pages/partners/experts/index.tsx index baf2d634241..7c3f1c15844 100644 --- a/apps/www/pages/partners/experts/index.tsx +++ b/apps/www/pages/partners/experts/index.tsx @@ -10,7 +10,7 @@ import TileGrid from '../../../components/Partners/TileGrid' export async function getStaticProps() { const { data: partners } = await supabase - .from('partners') + .from('partners') .select('*') .eq('approved', true) .eq('type', 'expert') diff --git a/apps/www/pages/partners/integrations/index.tsx b/apps/www/pages/partners/integrations/index.tsx index bffed18862c..85c32ee35ca 100644 --- a/apps/www/pages/partners/integrations/index.tsx +++ b/apps/www/pages/partners/integrations/index.tsx @@ -13,7 +13,7 @@ import TileGrid from '../../../components/Partners/TileGrid' export async function getStaticProps() { const { data: partners } = await supabase - .from('partners') + .from('partners') .select('*') .eq('approved', true) .eq('type', 'technology') @@ -57,19 +57,17 @@ function IntegrationPartnersPage(props: Props) { setIsSearching(true) let query = supabase - .from('partners') + .from('partners') .select('*') .eq('approved', true) .order('category') .order('title') if (search.trim()) { - query = query - // @ts-ignore - .textSearch('tsv', `${search.trim()}`, { - type: 'websearch', - config: 'english', - }) + query = query.textSearch('tsv', `${search.trim()}`, { + type: 'websearch', + config: 'english', + }) } const { data: partners } = await query diff --git a/apps/www/pages/pricing/index.tsx b/apps/www/pages/pricing/index.tsx index 2cdf0735761..bdd62e6518a 100644 --- a/apps/www/pages/pricing/index.tsx +++ b/apps/www/pages/pricing/index.tsx @@ -653,9 +653,8 @@ export default function IndexPage() { > {pricingFaq.map((faq, i) => { return ( -
+
{faq.question}} id={`faq--${i.toString()}`} > diff --git a/apps/www/pages/security.mdx b/apps/www/pages/security.mdx new file mode 100644 index 00000000000..43867d08290 --- /dev/null +++ b/apps/www/pages/security.mdx @@ -0,0 +1,140 @@ +import { + KeyIcon, + LinkIcon, + UserGroupIcon, + ShieldCheckIcon, + RewindIcon, + CreditCardIcon, + ClipboardCheckIcon, +} from '@heroicons/react/outline' +import { Button, IconGitHub } from '@supabase/ui' +import Layout from '../layouts/Layout' +import Link from 'next/link' + +export const meta = { + type: 'lp', + title: 'Security at Supabase', + description: + 'Supabase is trusted by thousands of developers for building and deploying secure applications.', +} + +export const Section = ({ children, icon, img }) => ( +
+ {icon && ( +
+
{icon}
+
+ )} + {img &&
{img}
} + {children} +
+) + +
+
+

Security at Supabase

+

+ Supabase is trusted by thousands of developers for building and deploying secure applications. +

+
+
+ +![Supabase security](/images/security/security-hero.png) + +
+
+ +
+ +
+ +
}> + +### SOC 2 + +Supabase is SOC2 Type 1 compliant. Enterprise customers can request a copy of our SOC2 through our [Security Portal](https://security.supabase.com). + +
+ +
+ +
+
}> + +### Data Encryption + +All customer data is encrypted at REST with AES-256 and in transit via TLS. + +Sensitive information like access tokens and keys are encrypted at the application level before they are stored in the database. + +
+ +
}> + +### Github security integration + +We have [partnered with GitHub](https://github.blog/changelog/2022-03-28-supabase-is-now-a-github-secret-scanning-partner/) to scan for Supabase service role API keys. If any Supabase API keys are pushed to GitHub, they are automatically revoked. + +
+ +
}> + +### Role-based access control + +Members of organizations in Supabase can be granted access to specific resources. + +
+ +
}> + +### Backups + +All customer databases are backed up every day. + +Enterprise customers have access to Point in Time Recovery which enables restoring the database to any point in time. + +
+ +
}> + +### Payment processing + +Supabase uses [Stripe](https://stripe.com) to process payments and does not store personal credit card information for any of our customers. + +Stripe is a certified PCI Service Provider Level 1, which is the highest level of certification in the payments industry. + +
+ +
}> + +### Vulnerability Management + +Supabase works with industry experts to conduct regular penetration tests. + +In addition to internal security reviews, we use various tools to scan our code for vulnerabilities including [GitHub](https://github.com), [Vanta](https://www.vanta.com/), and [Snyk](https://snyk.io/). + +
+ +
+ +
+ +--- + +
+
+ +

Security Portal

+ +Access Supabase’s security and compliance documents on our Security Portal, such as +penetration testing and audit reports. + + + + +
+
+ +export default (context) => diff --git a/apps/www/pages/storage/Storage.tsx b/apps/www/pages/storage/Storage.tsx index 686d543921a..d3c1fe1925b 100644 --- a/apps/www/pages/storage/Storage.tsx +++ b/apps/www/pages/storage/Storage.tsx @@ -155,7 +155,7 @@ function StoragePage() { author_img={'https://avatars.githubusercontent.com/u/54469796'} repo_name={'nextjs-ts-user-management'} repo_url={ - 'https://github.com/supabase/supabase/tree/master/examples/user-management/nextjs-ts-user-management' + 'https://github.com/supabase/examples/tree/main/supabase-js-v1/user-management/nextjs-ts-user-management' } vercel_deploy_url={ 'https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Fsupabase%2Fsupabase%2Ftree%2Fmaster%2Fexamples%2Fuser-mangement%2Fnextjs-ts-user-management&project-name=supabase-user-management&repository-name=supabase-user-management&demo-title=Supabase%20User%20Management&demo-description=An%20example%20web%20app%20using%20Supabase%20and%20Next.js&demo-url=https%3A%2F%2Fsupabase-nextjs-ts-user-management.vercel.app&demo-image=https%3A%2F%2Fi.imgur.com%2FZ3HkQqe.png&integration-ids=oac_jUduyjQgOyzev1fjrW83NYOv&external-id=nextjs-user-management' diff --git a/apps/www/pages/support.tsx b/apps/www/pages/support.tsx index 4864f609756..dbf4d9996f0 100644 --- a/apps/www/pages/support.tsx +++ b/apps/www/pages/support.tsx @@ -122,11 +122,11 @@ const Index = ({}: Props) => {
{ > diff --git a/apps/www/public/downloads/docs/Supabase+DPA+220503.pdf b/apps/www/public/downloads/docs/Supabase+DPA+220503.pdf new file mode 100644 index 00000000000..5f2492f04a1 Binary files /dev/null and b/apps/www/public/downloads/docs/Supabase+DPA+220503.pdf differ diff --git a/apps/www/public/images/auth-ui/large--dark.svg b/apps/www/public/images/auth-ui/large--dark.svg new file mode 100644 index 00000000000..4ea3660ef7e --- /dev/null +++ b/apps/www/public/images/auth-ui/large--dark.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/apps/www/public/images/auth-ui/large--light.svg b/apps/www/public/images/auth-ui/large--light.svg new file mode 100644 index 00000000000..198b1d656ab --- /dev/null +++ b/apps/www/public/images/auth-ui/large--light.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/apps/www/public/images/auth-ui/medium--dark.svg b/apps/www/public/images/auth-ui/medium--dark.svg new file mode 100644 index 00000000000..e62003f94ef --- /dev/null +++ b/apps/www/public/images/auth-ui/medium--dark.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/apps/www/public/images/auth-ui/medium--light.svg b/apps/www/public/images/auth-ui/medium--light.svg new file mode 100644 index 00000000000..21edb670345 --- /dev/null +++ b/apps/www/public/images/auth-ui/medium--light.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/apps/www/public/images/auth-ui/small--dark.svg b/apps/www/public/images/auth-ui/small--dark.svg new file mode 100644 index 00000000000..5e24ebb3bdd --- /dev/null +++ b/apps/www/public/images/auth-ui/small--dark.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/apps/www/public/images/auth-ui/small--light.svg b/apps/www/public/images/auth-ui/small--light.svg new file mode 100644 index 00000000000..43789a05186 --- /dev/null +++ b/apps/www/public/images/auth-ui/small--light.svg @@ -0,0 +1,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/apps/www/public/images/blog/2022-august/CLI.png b/apps/www/public/images/blog/2022-august/CLI.png new file mode 100644 index 00000000000..f5b7fd635e8 Binary files /dev/null and b/apps/www/public/images/blog/2022-august/CLI.png differ diff --git a/apps/www/public/images/blog/2022-august/day-5.png b/apps/www/public/images/blog/2022-august/day-5.png new file mode 100644 index 00000000000..d29450b9c3b Binary files /dev/null and b/apps/www/public/images/blog/2022-august/day-5.png differ diff --git a/apps/www/public/images/blog/2022-august/hackathon.png b/apps/www/public/images/blog/2022-august/hackathon.png new file mode 100644 index 00000000000..75e9388b906 Binary files /dev/null and b/apps/www/public/images/blog/2022-august/hackathon.png differ diff --git a/apps/www/public/images/blog/2022-august/migration-to-supabase-guides.jpg b/apps/www/public/images/blog/2022-august/migration-to-supabase-guides.jpg new file mode 100644 index 00000000000..b7270944b2b Binary files /dev/null and b/apps/www/public/images/blog/2022-august/migration-to-supabase-guides.jpg differ diff --git a/apps/www/public/images/blog/2022-august/monthly-update-august-2022.jpg b/apps/www/public/images/blog/2022-august/monthly-update-august-2022.jpg new file mode 100644 index 00000000000..ef06d454f95 Binary files /dev/null and b/apps/www/public/images/blog/2022-august/monthly-update-august-2022.jpg differ diff --git a/apps/www/public/images/blog/2022-august/realtime.png b/apps/www/public/images/blog/2022-august/realtime.png new file mode 100644 index 00000000000..8d1cc6ff6de Binary files /dev/null and b/apps/www/public/images/blog/2022-august/realtime.png differ diff --git a/apps/www/public/images/blog/2022-august/security.png b/apps/www/public/images/blog/2022-august/security.png new file mode 100644 index 00000000000..6dc18e069ce Binary files /dev/null and b/apps/www/public/images/blog/2022-august/security.png differ diff --git a/apps/www/public/images/blog/2022-august/supabase-beta-update-august-2022-meme.png b/apps/www/public/images/blog/2022-august/supabase-beta-update-august-2022-meme.png new file mode 100644 index 00000000000..6130f7dffa4 Binary files /dev/null and b/apps/www/public/images/blog/2022-august/supabase-beta-update-august-2022-meme.png differ diff --git a/apps/www/public/images/blog/2022-august/supabase_js.png b/apps/www/public/images/blog/2022-august/supabase_js.png new file mode 100644 index 00000000000..44425a19759 Binary files /dev/null and b/apps/www/public/images/blog/2022-august/supabase_js.png differ diff --git a/apps/www/public/images/blog/2022-august/webinar.jpg b/apps/www/public/images/blog/2022-august/webinar.jpg new file mode 100644 index 00000000000..8316c296e87 Binary files /dev/null and b/apps/www/public/images/blog/2022-august/webinar.jpg differ diff --git a/apps/www/public/images/blog/2022-september/auth-ui-product-hunt.png b/apps/www/public/images/blog/2022-september/auth-ui-product-hunt.png new file mode 100644 index 00000000000..fabe7dcfb29 Binary files /dev/null and b/apps/www/public/images/blog/2022-september/auth-ui-product-hunt.png differ diff --git a/apps/www/public/images/blog/2022-september/beta-update-september-meme.jpeg b/apps/www/public/images/blog/2022-september/beta-update-september-meme.jpeg new file mode 100644 index 00000000000..5f3723fcdd8 Binary files /dev/null and b/apps/www/public/images/blog/2022-september/beta-update-september-meme.jpeg differ diff --git a/apps/www/public/images/blog/2022-september/kaizen.jpg b/apps/www/public/images/blog/2022-september/kaizen.jpg new file mode 100644 index 00000000000..279cd750245 Binary files /dev/null and b/apps/www/public/images/blog/2022-september/kaizen.jpg differ diff --git a/apps/www/public/images/blog/2022-september/madewithsupabase.jpg b/apps/www/public/images/blog/2022-september/madewithsupabase.jpg new file mode 100644 index 00000000000..202f3cf0bbf Binary files /dev/null and b/apps/www/public/images/blog/2022-september/madewithsupabase.jpg differ diff --git a/apps/www/public/images/blog/2022-september/migrate-from-heroku-to-supabase.jpg b/apps/www/public/images/blog/2022-september/migrate-from-heroku-to-supabase.jpg new file mode 100644 index 00000000000..92ca5a5d28d Binary files /dev/null and b/apps/www/public/images/blog/2022-september/migrate-from-heroku-to-supabase.jpg differ diff --git a/apps/www/public/images/blog/2022-september/monthly-update-september-2022.jpg b/apps/www/public/images/blog/2022-september/monthly-update-september-2022.jpg new file mode 100644 index 00000000000..9534c14ccf4 Binary files /dev/null and b/apps/www/public/images/blog/2022-september/monthly-update-september-2022.jpg differ diff --git a/apps/www/public/images/blog/2022-september/postgres-wasm.jpg b/apps/www/public/images/blog/2022-september/postgres-wasm.jpg new file mode 100644 index 00000000000..17cf49f7568 Binary files /dev/null and b/apps/www/public/images/blog/2022-september/postgres-wasm.jpg differ diff --git a/apps/www/public/images/blog/lw5-cli/thumbnail.jpg b/apps/www/public/images/blog/lw5-cli/thumbnail.jpg new file mode 100644 index 00000000000..2b9145cd239 Binary files /dev/null and b/apps/www/public/images/blog/lw5-cli/thumbnail.jpg differ diff --git a/apps/www/public/images/blog/lw5-community-day/community_day_og.jpg b/apps/www/public/images/blog/lw5-community-day/community_day_og.jpg new file mode 100644 index 00000000000..abe588b5f79 Binary files /dev/null and b/apps/www/public/images/blog/lw5-community-day/community_day_og.jpg differ diff --git a/apps/www/public/images/blog/lw5-community-day/egghead_og.png b/apps/www/public/images/blog/lw5-community-day/egghead_og.png new file mode 100644 index 00000000000..e138f804659 Binary files /dev/null and b/apps/www/public/images/blog/lw5-community-day/egghead_og.png differ diff --git a/apps/www/public/images/blog/lw5-community-day/walletconnect_og.png b/apps/www/public/images/blog/lw5-community-day/walletconnect_og.png new file mode 100644 index 00000000000..9fee310f160 Binary files /dev/null and b/apps/www/public/images/blog/lw5-community-day/walletconnect_og.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/cowofi.png b/apps/www/public/images/blog/lw5-hackathon-winners/cowofi.png new file mode 100644 index 00000000000..fc58e76a6b2 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/cowofi.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/hop.png b/apps/www/public/images/blog/lw5-hackathon-winners/hop.png new file mode 100644 index 00000000000..f0cbb4fe577 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/hop.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/hot-dog-game.png b/apps/www/public/images/blog/lw5-hackathon-winners/hot-dog-game.png new file mode 100644 index 00000000000..5232c40c961 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/hot-dog-game.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/launch-week-5-hackathon-winners.jpeg b/apps/www/public/images/blog/lw5-hackathon-winners/launch-week-5-hackathon-winners.jpeg new file mode 100644 index 00000000000..c4e32ca54f3 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/launch-week-5-hackathon-winners.jpeg differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/otentik.png b/apps/www/public/images/blog/lw5-hackathon-winners/otentik.png new file mode 100644 index 00000000000..770a9740ad9 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/otentik.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/potato.png b/apps/www/public/images/blog/lw5-hackathon-winners/potato.png new file mode 100644 index 00000000000..5aa00bfcdea Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/potato.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/quid-faciam-hodie.png b/apps/www/public/images/blog/lw5-hackathon-winners/quid-faciam-hodie.png new file mode 100644 index 00000000000..1066b0fca88 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/quid-faciam-hodie.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/quiz-grad.png b/apps/www/public/images/blog/lw5-hackathon-winners/quiz-grad.png new file mode 100644 index 00000000000..cd9aaa9d736 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/quiz-grad.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/repo-watch.png b/apps/www/public/images/blog/lw5-hackathon-winners/repo-watch.png new file mode 100644 index 00000000000..531b19e7004 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/repo-watch.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/stripe-sync.png b/apps/www/public/images/blog/lw5-hackathon-winners/stripe-sync.png new file mode 100644 index 00000000000..df86bc20286 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/stripe-sync.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/supabase-cache-helpers.png b/apps/www/public/images/blog/lw5-hackathon-winners/supabase-cache-helpers.png new file mode 100644 index 00000000000..91687866015 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/supabase-cache-helpers.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/super-ui.png b/apps/www/public/images/blog/lw5-hackathon-winners/super-ui.png new file mode 100644 index 00000000000..7a7e34685a4 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/super-ui.png differ diff --git a/apps/www/public/images/blog/lw5-hackathon-winners/vesta.png b/apps/www/public/images/blog/lw5-hackathon-winners/vesta.png new file mode 100644 index 00000000000..dff229b56c7 Binary files /dev/null and b/apps/www/public/images/blog/lw5-hackathon-winners/vesta.png differ diff --git a/apps/www/public/images/blog/lw5-one-more/auth-ui-demo.mp4 b/apps/www/public/images/blog/lw5-one-more/auth-ui-demo.mp4 new file mode 100644 index 00000000000..10e801f356e Binary files /dev/null and b/apps/www/public/images/blog/lw5-one-more/auth-ui-demo.mp4 differ diff --git a/apps/www/public/images/blog/lw5-one-more/lw5-auth-ui.png b/apps/www/public/images/blog/lw5-one-more/lw5-auth-ui.png new file mode 100644 index 00000000000..385557ac5e1 Binary files /dev/null and b/apps/www/public/images/blog/lw5-one-more/lw5-auth-ui.png differ diff --git a/apps/www/public/images/blog/lw5-one-more/lw5-graphql.png b/apps/www/public/images/blog/lw5-one-more/lw5-graphql.png new file mode 100644 index 00000000000..2d842f4fd28 Binary files /dev/null and b/apps/www/public/images/blog/lw5-one-more/lw5-graphql.png differ diff --git a/apps/www/public/images/blog/lw5-one-more/lw5-jsonschema.png b/apps/www/public/images/blog/lw5-one-more/lw5-jsonschema.png new file mode 100644 index 00000000000..0551b6a1097 Binary files /dev/null and b/apps/www/public/images/blog/lw5-one-more/lw5-jsonschema.png differ diff --git a/apps/www/public/images/blog/lw5-one-more/lw5-mfa.png b/apps/www/public/images/blog/lw5-one-more/lw5-mfa.png new file mode 100644 index 00000000000..7ab2951b09b Binary files /dev/null and b/apps/www/public/images/blog/lw5-one-more/lw5-mfa.png differ diff --git a/apps/www/public/images/blog/lw5-one-more/lw5-one-more-thumb.jpg b/apps/www/public/images/blog/lw5-one-more/lw5-one-more-thumb.jpg new file mode 100644 index 00000000000..6fb858e7785 Binary files /dev/null and b/apps/www/public/images/blog/lw5-one-more/lw5-one-more-thumb.jpg differ diff --git a/apps/www/public/images/blog/lw5-one-more/lw5-permissions.png b/apps/www/public/images/blog/lw5-one-more/lw5-permissions.png new file mode 100644 index 00000000000..82e9065d3b0 Binary files /dev/null and b/apps/www/public/images/blog/lw5-one-more/lw5-permissions.png differ diff --git a/apps/www/public/images/blog/lw5-one-more/lw5-vault.png b/apps/www/public/images/blog/lw5-one-more/lw5-vault.png new file mode 100644 index 00000000000..830b85b3df8 Binary files /dev/null and b/apps/www/public/images/blog/lw5-one-more/lw5-vault.png differ diff --git a/apps/www/public/images/blog/lw5-pg_jsonschema/jsonschema-thumb.jpg b/apps/www/public/images/blog/lw5-pg_jsonschema/jsonschema-thumb.jpg new file mode 100644 index 00000000000..5cf3c87b978 Binary files /dev/null and b/apps/www/public/images/blog/lw5-pg_jsonschema/jsonschema-thumb.jpg differ diff --git a/apps/www/public/images/blog/lw5-pg_jsonschema/pg_jsonschema_erd.jpg b/apps/www/public/images/blog/lw5-pg_jsonschema/pg_jsonschema_erd.jpg new file mode 100644 index 00000000000..5f9457d23f6 Binary files /dev/null and b/apps/www/public/images/blog/lw5-pg_jsonschema/pg_jsonschema_erd.jpg differ diff --git a/apps/www/public/images/blog/lw5-pg_jsonschema/pg_jsonschema_erd2.jpg b/apps/www/public/images/blog/lw5-pg_jsonschema/pg_jsonschema_erd2.jpg new file mode 100644 index 00000000000..2a6d8a9b832 Binary files /dev/null and b/apps/www/public/images/blog/lw5-pg_jsonschema/pg_jsonschema_erd2.jpg differ diff --git a/apps/www/public/images/blog/lw5-pg_jsonschema/table-1.png b/apps/www/public/images/blog/lw5-pg_jsonschema/table-1.png new file mode 100644 index 00000000000..6daa7e6ce1d Binary files /dev/null and b/apps/www/public/images/blog/lw5-pg_jsonschema/table-1.png differ diff --git a/apps/www/public/images/blog/lw5-pg_jsonschema/table-2.png b/apps/www/public/images/blog/lw5-pg_jsonschema/table-2.png new file mode 100644 index 00000000000..ae3c0425838 Binary files /dev/null and b/apps/www/public/images/blog/lw5-pg_jsonschema/table-2.png differ diff --git a/apps/www/public/images/blog/lw5-realtime/thumb.jpg b/apps/www/public/images/blog/lw5-realtime/thumb.jpg new file mode 100644 index 00000000000..4fbafc5d1dc Binary files /dev/null and b/apps/www/public/images/blog/lw5-realtime/thumb.jpg differ diff --git a/apps/www/public/images/blog/lw5-soc2/thumb.jpg b/apps/www/public/images/blog/lw5-soc2/thumb.jpg new file mode 100644 index 00000000000..9fe98a7d90e Binary files /dev/null and b/apps/www/public/images/blog/lw5-soc2/thumb.jpg differ diff --git a/apps/www/public/images/blog/lw5-supabase-js/thumb.jpg b/apps/www/public/images/blog/lw5-supabase-js/thumb.jpg new file mode 100644 index 00000000000..fb6b788688e Binary files /dev/null and b/apps/www/public/images/blog/lw5-supabase-js/thumb.jpg differ diff --git a/apps/www/public/images/blog/lw5-vault/lw5-vault.jpg b/apps/www/public/images/blog/lw5-vault/lw5-vault.jpg new file mode 100644 index 00000000000..ad7b49bbc60 Binary files /dev/null and b/apps/www/public/images/blog/lw5-vault/lw5-vault.jpg differ diff --git a/apps/www/public/images/blog/lw5-vault/lw5-vault.png b/apps/www/public/images/blog/lw5-vault/lw5-vault.png new file mode 100644 index 00000000000..830b85b3df8 Binary files /dev/null and b/apps/www/public/images/blog/lw5-vault/lw5-vault.png differ diff --git a/apps/www/public/images/blog/lw5-vault/supabase-vault.jpg b/apps/www/public/images/blog/lw5-vault/supabase-vault.jpg new file mode 100644 index 00000000000..da4d20af662 Binary files /dev/null and b/apps/www/public/images/blog/lw5-vault/supabase-vault.jpg differ diff --git a/apps/www/public/images/blog/lw5/postgrest-v10.png b/apps/www/public/images/blog/lw5/postgrest-v10.png new file mode 100644 index 00000000000..12ff1692cb6 Binary files /dev/null and b/apps/www/public/images/blog/lw5/postgrest-v10.png differ diff --git a/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram1.jpg b/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram1.jpg new file mode 100644 index 00000000000..14f86a8297b Binary files /dev/null and b/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram1.jpg differ diff --git a/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram2.jpg b/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram2.jpg new file mode 100644 index 00000000000..9d1c12dbc85 Binary files /dev/null and b/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram2.jpg differ diff --git a/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram3.jpg b/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram3.jpg new file mode 100644 index 00000000000..79ec87aad92 Binary files /dev/null and b/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram3.jpg differ diff --git a/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram4.jpg b/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram4.jpg new file mode 100644 index 00000000000..f936b13d80c Binary files /dev/null and b/apps/www/public/images/blog/postgres-wasm/pg-wasm-diagram4.jpg differ diff --git a/apps/www/public/images/blog/postgres-wasm/postgres-wasm-browser.png b/apps/www/public/images/blog/postgres-wasm/postgres-wasm-browser.png new file mode 100644 index 00000000000..94ff2d44901 Binary files /dev/null and b/apps/www/public/images/blog/postgres-wasm/postgres-wasm-browser.png differ diff --git a/apps/www/public/images/blog/postgres-wasm/postgres-wasm.jpg b/apps/www/public/images/blog/postgres-wasm/postgres-wasm.jpg new file mode 100644 index 00000000000..13b3a1497b3 Binary files /dev/null and b/apps/www/public/images/blog/postgres-wasm/postgres-wasm.jpg differ diff --git a/apps/www/public/images/blog/primary-keys/choosing-a-postgres-primary-key-og.jpg b/apps/www/public/images/blog/primary-keys/choosing-a-postgres-primary-key-og.jpg new file mode 100644 index 00000000000..12c46b4357b Binary files /dev/null and b/apps/www/public/images/blog/primary-keys/choosing-a-postgres-primary-key-og.jpg differ diff --git a/apps/www/public/images/blog/primary-keys/generation-speed-chart.jpg b/apps/www/public/images/blog/primary-keys/generation-speed-chart.jpg new file mode 100644 index 00000000000..955b150a43f Binary files /dev/null and b/apps/www/public/images/blog/primary-keys/generation-speed-chart.jpg differ diff --git a/apps/www/public/images/blog/primary-keys/postgres-primary-key.jpg b/apps/www/public/images/blog/primary-keys/postgres-primary-key.jpg new file mode 100644 index 00000000000..f6d21099f66 Binary files /dev/null and b/apps/www/public/images/blog/primary-keys/postgres-primary-key.jpg differ diff --git a/apps/www/public/images/blog/primary-keys/query-and-result.jpg b/apps/www/public/images/blog/primary-keys/query-and-result.jpg new file mode 100644 index 00000000000..6805957e5c2 Binary files /dev/null and b/apps/www/public/images/blog/primary-keys/query-and-result.jpg differ diff --git a/apps/www/public/images/blog/primary-keys/results-from-a-query.jpg b/apps/www/public/images/blog/primary-keys/results-from-a-query.jpg new file mode 100644 index 00000000000..56e60ab6a6e Binary files /dev/null and b/apps/www/public/images/blog/primary-keys/results-from-a-query.jpg differ diff --git a/apps/www/public/images/blog/primary-keys/table-and-index-size-chart.jpg b/apps/www/public/images/blog/primary-keys/table-and-index-size-chart.jpg new file mode 100644 index 00000000000..0dc45f0c330 Binary files /dev/null and b/apps/www/public/images/blog/primary-keys/table-and-index-size-chart.jpg differ diff --git a/apps/www/public/images/blog/primary-keys/uuids.png b/apps/www/public/images/blog/primary-keys/uuids.png new file mode 100644 index 00000000000..ee98f3677c7 Binary files /dev/null and b/apps/www/public/images/blog/primary-keys/uuids.png differ diff --git a/apps/www/public/images/blog/simon-grimm-angular-realtime/angular-supabase.png b/apps/www/public/images/blog/simon-grimm-angular-realtime/angular-supabase.png new file mode 100644 index 00000000000..4578b76690e Binary files /dev/null and b/apps/www/public/images/blog/simon-grimm-angular-realtime/angular-supabase.png differ diff --git a/apps/www/public/images/blog/simon-grimm-angular-realtime/board.png b/apps/www/public/images/blog/simon-grimm-angular-realtime/board.png new file mode 100644 index 00000000000..c3f1ee675ba Binary files /dev/null and b/apps/www/public/images/blog/simon-grimm-angular-realtime/board.png differ diff --git a/apps/www/public/images/blog/simon-grimm-angular-realtime/disable-email-confirm.png b/apps/www/public/images/blog/simon-grimm-angular-realtime/disable-email-confirm.png new file mode 100644 index 00000000000..2a0c0623871 Binary files /dev/null and b/apps/www/public/images/blog/simon-grimm-angular-realtime/disable-email-confirm.png differ diff --git a/apps/www/public/images/blog/simon-grimm-angular-realtime/login.png b/apps/www/public/images/blog/simon-grimm-angular-realtime/login.png new file mode 100644 index 00000000000..091c8332ad8 Binary files /dev/null and b/apps/www/public/images/blog/simon-grimm-angular-realtime/login.png differ diff --git a/apps/www/public/images/blog/simon-grimm-angular-realtime/magic-link-email.png b/apps/www/public/images/blog/simon-grimm-angular-realtime/magic-link-email.png new file mode 100644 index 00000000000..a27b43c5bb2 Binary files /dev/null and b/apps/www/public/images/blog/simon-grimm-angular-realtime/magic-link-email.png differ diff --git a/apps/www/public/images/blog/simon-grimm-angular-realtime/project-settings.png b/apps/www/public/images/blog/simon-grimm-angular-realtime/project-settings.png new file mode 100644 index 00000000000..7738c6cb92e Binary files /dev/null and b/apps/www/public/images/blog/simon-grimm-angular-realtime/project-settings.png differ diff --git a/apps/www/public/images/blog/simon-grimm-angular-realtime/sql-editor.png b/apps/www/public/images/blog/simon-grimm-angular-realtime/sql-editor.png new file mode 100644 index 00000000000..e5fb3fbb47a Binary files /dev/null and b/apps/www/public/images/blog/simon-grimm-angular-realtime/sql-editor.png differ diff --git a/apps/www/public/images/blog/simon-grimm-angular-realtime/supabase-realtime.png b/apps/www/public/images/blog/simon-grimm-angular-realtime/supabase-realtime.png new file mode 100644 index 00000000000..d5e0da41486 Binary files /dev/null and b/apps/www/public/images/blog/simon-grimm-angular-realtime/supabase-realtime.png differ diff --git a/apps/www/public/images/blog/simon-grimm-angular-realtime/workspace.png b/apps/www/public/images/blog/simon-grimm-angular-realtime/workspace.png new file mode 100644 index 00000000000..4022a029e40 Binary files /dev/null and b/apps/www/public/images/blog/simon-grimm-angular-realtime/workspace.png differ diff --git a/apps/www/public/images/launchweek/day1/thumb.jpg b/apps/www/public/images/launchweek/day1/thumb.jpg new file mode 100644 index 00000000000..783f8bde69f Binary files /dev/null and b/apps/www/public/images/launchweek/day1/thumb.jpg differ diff --git a/apps/www/public/images/launchweek/day2/thumb.jpg b/apps/www/public/images/launchweek/day2/thumb.jpg new file mode 100644 index 00000000000..fb6b788688e Binary files /dev/null and b/apps/www/public/images/launchweek/day2/thumb.jpg differ diff --git a/apps/www/public/images/launchweek/day3/thumb.jpg b/apps/www/public/images/launchweek/day3/thumb.jpg new file mode 100644 index 00000000000..9fe98a7d90e Binary files /dev/null and b/apps/www/public/images/launchweek/day3/thumb.jpg differ diff --git a/apps/www/public/images/launchweek/day4/thumb.jpg b/apps/www/public/images/launchweek/day4/thumb.jpg new file mode 100644 index 00000000000..4fbafc5d1dc Binary files /dev/null and b/apps/www/public/images/launchweek/day4/thumb.jpg differ diff --git a/apps/www/public/images/launchweek/day5/thumb-old.jpg b/apps/www/public/images/launchweek/day5/thumb-old.jpg new file mode 100644 index 00000000000..79c944bc84f Binary files /dev/null and b/apps/www/public/images/launchweek/day5/thumb-old.jpg differ diff --git a/apps/www/public/images/launchweek/day5/thumb.jpg b/apps/www/public/images/launchweek/day5/thumb.jpg new file mode 100644 index 00000000000..ed7fe17f52a Binary files /dev/null and b/apps/www/public/images/launchweek/day5/thumb.jpg differ diff --git a/apps/www/public/images/security/21972-312_SOC_NonCPA.png b/apps/www/public/images/security/21972-312_SOC_NonCPA.png new file mode 100644 index 00000000000..3cb083ecda2 Binary files /dev/null and b/apps/www/public/images/security/21972-312_SOC_NonCPA.png differ diff --git a/apps/www/public/images/security/security-hero.png b/apps/www/public/images/security/security-hero.png new file mode 100644 index 00000000000..635b14beaee Binary files /dev/null and b/apps/www/public/images/security/security-hero.png differ diff --git a/apps/www/public/rss.xml b/apps/www/public/rss.xml index a89c9dc6d98..f0910002bdd 100644 --- a/apps/www/public/rss.xml +++ b/apps/www/public/rss.xml @@ -5,770 +5,868 @@ https://supabase.com Latest news from Supabase en - Thu, 11 Aug 2022 03:03:00 - + Sun, 02 Oct 2022 16:04:00 +0000 + + https://supabase.com/blog/postgres-wasm + Postgres WASM by Snaplet and Supabase + https://supabase.com/blog/postgres-wasm + We're open sourcing postgres-wasm, a PostgresQL server that runs inside a browser, with our friends at Snaplet. + Sun, 02 Oct 2022 16:04:00 +0000 + + + https://supabase.com/blog/choosing-a-postgres-primary-key + Choosing a Postgres Primary Key + https://supabase.com/blog/choosing-a-postgres-primary-key + Turns out the question of which identifier to use as a Primary Key is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out + Wed, 07 Sep 2022 16:04:00 +0000 + + + https://supabase.com/blog/supabase-beta-update-august-2022 + Supabase Beta August 2022 + https://supabase.com/blog/supabase-beta-update-august-2022 + Launch Week Special. See everything we shipped, plus winners of the Hackathon and the extended Community Highlights + Tue, 06 Sep 2022 16:04:00 +0000 + + + https://supabase.com/blog/launch-week-5-hackathon-winners + Launch Week 5 Hackathon Winners + https://supabase.com/blog/launch-week-5-hackathon-winners + Announcing the winners of the Launch Week 5 Hackathon! + Wed, 24 Aug 2022 16:04:00 +0000 + + + https://supabase.com/blog/building-a-realtime-trello-board-with-supabase-and-angular + Building a Realtime Trello Board with Supabase and Angular + https://supabase.com/blog/building-a-realtime-trello-board-with-supabase-and-angular + Go beyond the hello world example with this real world project. + Tue, 23 Aug 2022 16:04:00 +0000 + + + https://supabase.com/blog/supabase-vault + Supabase Vault + https://supabase.com/blog/supabase-vault + Today we're announcing Vault, a Postgres extension for managing secrets and encryption inside your database. + Thu, 18 Aug 2022 16:04:00 +0000 + + + https://supabase.com/blog/postgrest-v10 + PostgREST v10: EXPLAIN and Improved Relationship Detection + https://supabase.com/blog/postgrest-v10 + Today, PostgREST 10 was released. Let's take a look at some of the new features that go hand in hand with supabase-js v2. + Thu, 18 Aug 2022 16:04:00 +0000 + + + https://supabase.com/blog/pg-jsonschema-a-postgres-extension-for-json-validation + pg_jsonschema: JSON Schema support for Postgres + https://supabase.com/blog/pg-jsonschema-a-postgres-extension-for-json-validation + Today we're releasing pg_jsonschema, a Postgres extension for JSON validation. + Thu, 18 Aug 2022 16:04:00 +0000 + + + https://supabase.com/blog/launch-week-5-one-more-thing + One more thing + https://supabase.com/blog/launch-week-5-one-more-thing + Let's be honest, it's never just one more thing. + Thu, 18 Aug 2022 16:04:00 +0000 + + + https://supabase.com/blog/launch-week-5-community-day + Community Day + https://supabase.com/blog/launch-week-5-community-day + Wrapping up Launch Week 5 with contributors, partners, and friends. + Thu, 18 Aug 2022 16:04:00 +0000 + + + https://supabase.com/blog/supabase-realtime-multiplayer-general-availability + Realtime: Multiplayer Edition + https://supabase.com/blog/supabase-realtime-multiplayer-general-availability + Announcing the general availability of Realtime's Broadcast and Presence. + Wed, 17 Aug 2022 16:04:00 +0000 + + + https://supabase.com/blog/supabase-soc2 + Supabase is SOC2 compliant + https://supabase.com/blog/supabase-soc2 + Supabase is now SOC2 compliant. Learn how we got here and what it means for our customers. + Tue, 16 Aug 2022 16:04:00 +0000 + + + https://supabase.com/blog/supabase-js-v2 + supabase-js v2 Release Candidate + https://supabase.com/blog/supabase-js-v2 + First peek of supabase-js v2, which focuses on quality-of-life improvements for developers. + Mon, 15 Aug 2022 16:04:00 +0000 + + + https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta + Supabase CLI v1 and Admin API Beta + https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta + We are moving Supabase CLI v1 out of beta, and releasing Admin API beta. + Sun, 14 Aug 2022 16:04:00 +0000 + + https://supabase.com/blog/supabase-series-b Supabase Series B https://supabase.com/blog/supabase-series-b Supabase raised $80M in May, bringing our total funding to $116M. - Thu, 11 Aug 2022 03:03:00 + Thu, 11 Aug 2022 16:04:00 +0000 https://supabase.com/blog/launch-week-5-hackathon Launch Week 5 Hackathon https://supabase.com/blog/launch-week-5-hackathon Build to win $1500 - Friday 12th to Monday 21st August 2022 - Tue, 09 Aug 2022 03:03:00 + Tue, 09 Aug 2022 16:04:00 +0000 https://supabase.com/blog/slack-consolidate-slackbot-to-consolidate-messages Slack Consolidate: a slackbot built with Python and Supabase https://supabase.com/blog/slack-consolidate-slackbot-to-consolidate-messages A slackbot to consolidate messages from different channels using Supabase, Slack SDK and Python - Mon, 08 Aug 2022 03:03:00 + Mon, 08 Aug 2022 16:04:00 +0000 https://supabase.com/blog/supabase-beta-update-july-2022 Supabase Beta July 2022 https://supabase.com/blog/supabase-beta-update-july-2022 Launch Week Golden Tickets, Flutter SDK 1.0 Developer Preview and more... - Tue, 02 Aug 2022 03:03:00 + Tue, 02 Aug 2022 16:04:00 +0000 https://supabase.com/blog/supabase-flutter-sdk-1-developer-preview Supabase Flutter SDK 1.0 Developer Preview https://supabase.com/blog/supabase-flutter-sdk-1-developer-preview Supabase Flutter SDK is getting a major update and we need your help making it better. - Mon, 01 Aug 2022 03:03:00 + Mon, 01 Aug 2022 16:04:00 +0000 https://supabase.com/blog/seen-by-in-postgresql Implementing "seen by" functionality with Postgres https://supabase.com/blog/seen-by-in-postgresql Different approaches for tracking visitor counts with PostgreSQL. - Sun, 17 Jul 2022 03:03:00 + Sun, 17 Jul 2022 16:04:00 +0000 https://supabase.com/blog/supabase-auth-helpers-with-sveltekit-support Revamped Auth Helpers for Supabase (with SvelteKit support) https://supabase.com/blog/supabase-auth-helpers-with-sveltekit-support Supabase Auth Helpers now have improved developer experience, Sveltekit support, and more. - Tue, 12 Jul 2022 03:03:00 + Tue, 12 Jul 2022 16:04:00 +0000 https://supabase.com/blog/beta-update-june-2022 Supabase Beta June 2022 https://supabase.com/blog/beta-update-june-2022 Auth Helpers, Unlimited Free Projects, CLI and more... - Tue, 05 Jul 2022 03:03:00 + Tue, 05 Jul 2022 16:04:00 +0000 https://supabase.com/blog/flutter-tutorial-building-a-chat-app Flutter Tutorial: building a Flutter chat app https://supabase.com/blog/flutter-tutorial-building-a-chat-app How to create a real time chat app using Flutter. - Wed, 29 Jun 2022 03:03:00 + Wed, 29 Jun 2022 16:04:00 +0000 https://supabase.com/blog/visualizing-supabase-data-using-metabase Visualizing Supabase Data using Metabase https://supabase.com/blog/visualizing-supabase-data-using-metabase How to create different kinds of charts out of data stored in Supabase using Metabase. - Tue, 28 Jun 2022 03:03:00 + Tue, 28 Jun 2022 16:04:00 +0000 https://supabase.com/blog/partial-postgresql-data-dumps-with-rls Partial data dumps using Postgres Row Level Security https://supabase.com/blog/partial-postgresql-data-dumps-with-rls Using RLS to create seed files for local PostgreSQL testing. - Mon, 27 Jun 2022 03:03:00 + Mon, 27 Jun 2022 16:04:00 +0000 https://supabase.com/blog/loading-data-supabase-python Python data loading with Supabase https://supabase.com/blog/loading-data-supabase-python An example of how to load data into Supabase using supabase-py - Thu, 16 Jun 2022 03:03:00 + Thu, 16 Jun 2022 16:04:00 +0000 https://supabase.com/blog/beta-update-may-2022 Supabase Beta May 2022 https://supabase.com/blog/beta-update-may-2022 Product and community updates including wildcard auth redirects, edge functions with webhooks, and Prometheus endpoints for everybody. - Tue, 31 May 2022 03:03:00 + Tue, 31 May 2022 16:04:00 +0000 https://supabase.com/blog/how-supabase-accelerates-development-of-all-pull-together How Mike Lyndon is using Supabase to accelerate development of AllPullTogether https://supabase.com/blog/how-supabase-accelerates-development-of-all-pull-together Mike Lyndon is learning web development as he builds AllPullTogether, and Supabase is helping him accelerate what he can accomplish. - Wed, 25 May 2022 03:03:00 + Wed, 25 May 2022 16:04:00 +0000 https://supabase.com/blog/partner-gallery-works-with-supabase Works With Supabase - announcing our Partner Gallery https://supabase.com/blog/partner-gallery-works-with-supabase Introducing our Partner Gallery - open source and made with Supabase. - Tue, 19 Apr 2022 03:03:00 + Tue, 19 Apr 2022 16:04:00 +0000 https://supabase.com/blog/bring-the-func-hackathon-winners Bring the Func Hackathon Winners 2022 https://supabase.com/blog/bring-the-func-hackathon-winners Celebrating many amazing OSS Hackathon projects using GraphQL and Edge Functions. - Sun, 17 Apr 2022 03:03:00 + Sun, 17 Apr 2022 16:04:00 +0000 https://supabase.com/blog/beta-update-march-2022 Supabase Beta March 2022 https://supabase.com/blog/beta-update-march-2022 Functions, GraphQL, and much more. - Thu, 14 Apr 2022 03:03:00 + Thu, 14 Apr 2022 16:04:00 +0000 https://supabase.com/blog/supabrew Supabrew - Never Code Thirsty https://supabase.com/blog/supabrew A light and refreshing non-alcoholic beer for devs. - Fri, 01 Apr 2022 03:03:00 + Thu, 31 Mar 2022 16:04:00 +0000 https://supabase.com/blog/supabase-realtime-with-multiplayer-features Supabase Realtime, with Multiplayer Features https://supabase.com/blog/supabase-realtime-with-multiplayer-features Today we're announced Realtime, with multiplayer features. Realtime enables broadcast, presence, and listening to database changes delivered over WebSockets. - Fri, 01 Apr 2022 03:03:00 + Thu, 31 Mar 2022 16:04:00 +0000 https://supabase.com/blog/hackathon-bring-the-func Hackathon: Bring the Func(🕺) https://supabase.com/blog/hackathon-bring-the-func Build open-source projects with our latest features, win limited edition swag and plant a tree! - Fri, 01 Apr 2022 03:03:00 + Thu, 31 Mar 2022 16:04:00 +0000 https://supabase.com/blog/supabase-edge-functions Edge Functions are now available in Supabase https://supabase.com/blog/supabase-edge-functions Today we're launching Edge Functions. Edge Functions let you execute Typescript code close to your users, no matter where they're located. - Wed, 30 Mar 2022 03:03:00 + Wed, 30 Mar 2022 16:04:00 +0000 https://supabase.com/blog/supabase-enterprise Introducing Supabase Enterprise https://supabase.com/blog/supabase-enterprise Today we are releasing Supabase Enterprise, a suite of features to scale your project. - Tue, 29 Mar 2022 03:03:00 + Tue, 29 Mar 2022 16:04:00 +0000 https://supabase.com/blog/graphql-now-available GraphQL is now available in Supabase https://supabase.com/blog/graphql-now-available GraphQL support is now in general availability on the Supabase platform via our open source PostgreSQL extension, pg_graphql (beta). - Mon, 28 Mar 2022 03:03:00 + Mon, 28 Mar 2022 16:04:00 +0000 - https://supabase.com/blog/community-day + https://supabase.com/blog/community-day-lw4 Community Day - https://supabase.com/blog/community-day + https://supabase.com/blog/community-day-lw4 Kicking off Launch Week 4 with contributors, partners, and friends. - Sun, 27 Mar 2022 03:03:00 + Sun, 27 Mar 2022 16:04:00 +0000 https://supabase.com/blog/supabase-launch-week-four Supabase Launch Week 4 https://supabase.com/blog/supabase-launch-week-four Launch Week 4: One new feature every day for an entire week. Starting Monday 28th March. - Thu, 24 Mar 2022 03:03:00 + Thu, 24 Mar 2022 16:04:00 +0000 https://supabase.com/blog/should-i-open-source-my-company Should I Open Source my Company? https://supabase.com/blog/should-i-open-source-my-company The unexpected upsides of building in public - Thu, 24 Mar 2022 03:03:00 + Thu, 24 Mar 2022 16:04:00 +0000 https://supabase.com/blog/audit Postgres Auditing in 150 lines of SQL https://supabase.com/blog/audit PostgreSQL has a robust set of features which we can leverage to create a generic auditing solution in 150 lines of SQL. - Mon, 07 Mar 2022 03:03:00 + Mon, 07 Mar 2022 16:04:00 +0000 https://supabase.com/blog/supabase-beta-january-2022 Supabase Beta January 2022 https://supabase.com/blog/supabase-beta-january-2022 New auth providers, SMS providers, and new videos. - Mon, 21 Feb 2022 03:03:00 + Mon, 21 Feb 2022 16:04:00 +0000 https://supabase.com/blog/supabase-beta-december-2021 Supabase Beta December 2021 https://supabase.com/blog/supabase-beta-december-2021 New crypto extension, Postgres videos, and a bunch of cool integrations. - Wed, 19 Jan 2022 03:03:00 + Wed, 19 Jan 2022 16:04:00 +0000 https://supabase.com/blog/product-hunt-golden-kitty-awards-2021 Golden Kitty Awards Ceremony Watch Party with Supabase https://supabase.com/blog/product-hunt-golden-kitty-awards-2021 Hang out with us while watching the Product Hunt Golden Kitty Awards Ceremony - Wed, 19 Jan 2022 03:03:00 + Wed, 19 Jan 2022 16:04:00 +0000 https://supabase.com/blog/holiday-hackdays-winners-2021 Holiday Hackdays Winners 2021 https://supabase.com/blog/holiday-hackdays-winners-2021 Celebrating many amazing projects submitted to our Holiday Hackdays Hackathon. - Thu, 16 Dec 2021 03:03:00 + Thu, 16 Dec 2021 16:04:00 +0000 https://supabase.com/blog/beta-november-2021-launch-week-recap Supabase Beta November 2021: Launch Week Recap https://supabase.com/blog/beta-november-2021-launch-week-recap We wrapped up November with Supabase's third Launch Week. Here's all the awesome stuff that got shipped ... - Tue, 14 Dec 2021 03:03:00 + Tue, 14 Dec 2021 16:04:00 +0000 https://supabase.com/blog/supabase-holiday-hackdays-hackathon Kicking off the Holiday Hackdays https://supabase.com/blog/supabase-holiday-hackdays-hackathon Build cool stuff and celebrate open-source software with us during the Holiday Hackdays! - Thu, 02 Dec 2021 03:03:00 + Thu, 02 Dec 2021 16:04:00 +0000 https://supabase.com/blog/pg-graphql pg_graphql: A GraphQL extension for PostgreSQL https://supabase.com/blog/pg-graphql GraphQL support is in development for PostgreSQL + Supabase. - Thu, 02 Dec 2021 03:03:00 + Thu, 02 Dec 2021 16:04:00 +0000 https://supabase.com/blog/launch-week-three-friday-five-more-things Five more things https://supabase.com/blog/launch-week-three-friday-five-more-things It's never just one more thing! - Thu, 02 Dec 2021 03:03:00 + Thu, 02 Dec 2021 16:04:00 +0000 https://supabase.com/blog/supabase-acquires-logflare Supabase acquires Logflare https://supabase.com/blog/supabase-acquires-logflare Today, we're ecstatic to announce that Logflare is joining Supabase. - Wed, 01 Dec 2021 03:03:00 + Wed, 01 Dec 2021 16:04:00 +0000 https://supabase.com/blog/realtime-row-level-security-in-postgresql Realtime Postgres RLS now available on Supabase https://supabase.com/blog/realtime-row-level-security-in-postgresql Realtime database changes are now broadcast to authenticated users, respecting the same PostgreSQL policies that you use for Row Level Security. - Tue, 30 Nov 2021 03:03:00 + Tue, 30 Nov 2021 16:04:00 +0000 https://supabase.com/blog/supabase-studio Supabase Studio https://supabase.com/blog/supabase-studio The same Dashboard that you're using on our Platform is now available for local development and Self-Hosting. - Mon, 29 Nov 2021 03:03:00 + Mon, 29 Nov 2021 16:04:00 +0000 - https://supabase.com/blog/community-day + https://supabase.com/blog/community-day-lw3 Community Day - https://supabase.com/blog/community-day + https://supabase.com/blog/community-day-lw3 Kicking off launch week by highlighting the communities around Supabase. - Sun, 28 Nov 2021 03:03:00 + Sun, 28 Nov 2021 16:04:00 +0000 https://supabase.com/blog/whats-new-in-postgres-14 New in PostgreSQL 14: What every developer should know https://supabase.com/blog/whats-new-in-postgres-14 A quick look at some new features and functionality in PostgreSQL 14. - Sat, 27 Nov 2021 03:03:00 + Sat, 27 Nov 2021 16:04:00 +0000 https://supabase.com/blog/postgrest-9 PostgREST 9 https://supabase.com/blog/postgrest-9 New features and updates in PostgREST version 9. - Fri, 26 Nov 2021 03:03:00 + Fri, 26 Nov 2021 16:04:00 +0000 https://supabase.com/blog/supabase-launch-week-the-trilogy Supabase Launch Week III: Holiday Special https://supabase.com/blog/supabase-launch-week-the-trilogy Tis the season to be shipping. - Thu, 25 Nov 2021 03:03:00 + Thu, 25 Nov 2021 16:04:00 +0000 https://supabase.com/blog/supabase-how-we-launch How we launch at Supabase https://supabase.com/blog/supabase-how-we-launch The history and methodology of Supabase Launch Week. - Thu, 25 Nov 2021 03:03:00 + Thu, 25 Nov 2021 16:04:00 +0000 https://supabase.com/blog/supabase-beta-october-2021 Supabase Beta October 2021 https://supabase.com/blog/supabase-beta-october-2021 Three new Auth providers, multi-schema support, and we're gearing up for another Launch Week. - Sat, 06 Nov 2021 03:03:00 + Sat, 06 Nov 2021 16:04:00 +0000 https://supabase.com/blog/supabase-series-a Supabase $30m Series A https://supabase.com/blog/supabase-series-a Supabase just raised $30M, bringing our total funding to $36M. - Wed, 27 Oct 2021 03:03:00 + Wed, 27 Oct 2021 16:04:00 +0000 https://supabase.com/blog/replenysh-time-to-value-in-less-than-24-hours Replenysh uses Supabase to implement OTP in less than 24-hours https://supabase.com/blog/replenysh-time-to-value-in-less-than-24-hours Learn how Replenysh uses Supabase to power the circular economy, redefining how brands interact with their customers and products. - Mon, 18 Oct 2021 03:03:00 + Mon, 18 Oct 2021 16:04:00 +0000 https://supabase.com/blog/hacktoberfest-hackathon-winners-2021 Hacktoberfest Hackathon Winners 2021 https://supabase.com/blog/hacktoberfest-hackathon-winners-2021 Celebrating many amazing projects submitted to our Hacktoberfest Hackathon. - Wed, 13 Oct 2021 03:03:00 + Wed, 13 Oct 2021 16:04:00 +0000 https://supabase.com/blog/supabase-beta-sept-2021 Supabase Beta Sept 2021 https://supabase.com/blog/supabase-beta-sept-2021 Hackathon, Aborting request, UI updates, and now Hiring. - Sun, 03 Oct 2021 03:03:00 + Sun, 03 Oct 2021 16:04:00 +0000 https://supabase.com/blog/supabase-hacktoberfest-hackathon-2021 Supabase Hacktoberfest Hackathon 2021 https://supabase.com/blog/supabase-hacktoberfest-hackathon-2021 We're running another Supabase Hackathon during Hacktoberfest! - Mon, 27 Sep 2021 03:03:00 + Mon, 27 Sep 2021 16:04:00 +0000 https://supabase.com/blog/supabase-beta-august-2021 Supabase Beta August 2021 https://supabase.com/blog/supabase-beta-august-2021 Fundraising, Realtime Security, custom SMS templates, and deployments in South Korea. - Thu, 09 Sep 2021 03:03:00 + Thu, 09 Sep 2021 16:04:00 +0000 https://supabase.com/blog/supabase-beta-july-2021 Supabase Beta July 2021 https://supabase.com/blog/supabase-beta-july-2021 Discord Logins, Vercel Integration, Full text search, and OAuth guides. - Wed, 11 Aug 2021 03:03:00 + Wed, 11 Aug 2021 16:04:00 +0000 https://supabase.com/blog/hackathon-winners Open Source Hackathon Winners https://supabase.com/blog/hackathon-winners Let the medal ceremony begin for the best projects submitted during the Supabase Hackathon. - Sun, 08 Aug 2021 03:03:00 + Sun, 08 Aug 2021 16:04:00 +0000 https://supabase.com/blog/supabase-swag-store Supabase Swag Store https://supabase.com/blog/supabase-swag-store Today we are officially launching the Supabase Swag Store. - Thu, 29 Jul 2021 03:03:00 + Thu, 29 Jul 2021 16:04:00 +0000 https://supabase.com/blog/supabase-functions-updates Updates for Supabase Functions https://supabase.com/blog/supabase-functions-updates The question on everyone's mind - are we launching Supabase Functions? Well, it's complicated. - Thu, 29 Jul 2021 03:03:00 + Thu, 29 Jul 2021 16:04:00 +0000 https://supabase.com/blog/1-the-supabase-hackathon The Supabase Hackathon https://supabase.com/blog/1-the-supabase-hackathon A whole week of Hacking for Fun and Prizes. - Thu, 29 Jul 2021 03:03:00 + Thu, 29 Jul 2021 16:04:00 +0000 https://supabase.com/blog/supabase-reports-and-metrics Supabase Reports and Metrics https://supabase.com/blog/supabase-reports-and-metrics We're exposing a full set of metrics in your projects, so that you can build better (and faster) products for your users. - Wed, 28 Jul 2021 03:03:00 + Wed, 28 Jul 2021 16:04:00 +0000 https://supabase.com/blog/supabase-auth-passwordless-sms-login Supabase Auth v2: Phone Auth now available https://supabase.com/blog/supabase-auth-passwordless-sms-login Phone Auth is available today on all new and existing Supabase projects. - Tue, 27 Jul 2021 03:03:00 + Tue, 27 Jul 2021 16:04:00 +0000 https://supabase.com/blog/mobbin-supabase-200000-users Mobbin uses Supabase to authenticate 200,000 users https://supabase.com/blog/mobbin-supabase-200000-users Learn how Mobbin migrated 200,000 users from Firebase for a better authentication experience. - Tue, 27 Jul 2021 03:03:00 + Tue, 27 Jul 2021 16:04:00 +0000 https://supabase.com/blog/storage-beta Supabase Storage now in Beta https://supabase.com/blog/storage-beta Supabase Storage moves into Beta. - Mon, 26 Jul 2021 03:03:00 + Mon, 26 Jul 2021 16:04:00 +0000 https://supabase.com/blog/spot-flutter-with-postgres Spot: a video sharing app built with Flutter https://supabase.com/blog/spot-flutter-with-postgres Spot is a geolocation-based video-sharing app with some social networking features. - Mon, 26 Jul 2021 03:03:00 + Mon, 26 Jul 2021 16:04:00 +0000 https://supabase.com/blog/supabase-postgres-13 Supabase is now on Postgres 13.3 https://supabase.com/blog/supabase-postgres-13 From today, new Supabase projects will be on a version of Supabase Postgres that runs on Postgres 13.3. - Sun, 25 Jul 2021 03:03:00 + Sun, 25 Jul 2021 16:04:00 +0000 https://supabase.com/blog/supabase-community-day Supabase Community Day https://supabase.com/blog/supabase-community-day Community Day - Sun, 25 Jul 2021 03:03:00 + Sun, 25 Jul 2021 16:04:00 +0000 https://supabase.com/blog/epsilon3-self-hosting Epsilon3 Self-Host Supabase To Revolutionize Space Operations https://supabase.com/blog/epsilon3-self-hosting Learn how the team at Epsilon3 use Supabase to help teams execute secure and reliable operations in an industry that project spend runs into the billions. - Sun, 25 Jul 2021 03:03:00 + Sun, 25 Jul 2021 16:04:00 +0000 https://supabase.com/blog/supabase-launch-week-sql Supabase Launch Week II: The SQL https://supabase.com/blog/supabase-launch-week-sql Five days of Supabase. Again. - Wed, 21 Jul 2021 03:03:00 + Wed, 21 Jul 2021 16:04:00 +0000 https://supabase.com/blog/roles-postgres-hooks Protecting reserved roles with PostgreSQL Hooks https://supabase.com/blog/roles-postgres-hooks Using Postgres Hooks to protect functionality in your Postgres database. - Thu, 01 Jul 2021 03:03:00 + Thu, 01 Jul 2021 16:04:00 +0000 https://supabase.com/blog/supabase-beta-june-2021 Supabase Beta June 2021 https://supabase.com/blog/supabase-beta-june-2021 Discord Logins, Vercel Integration, Full text search, and OAuth guides. - Tue, 01 Jun 2021 03:03:00 + Tue, 01 Jun 2021 16:04:00 +0000 https://supabase.com/blog/supabase-beta-may-2021 Supabase Beta May 2021 https://supabase.com/blog/supabase-beta-may-2021 Apple & Twitter Logins, Supabase Grid, Go & Swift Libraries. - Tue, 01 Jun 2021 03:03:00 + Tue, 01 Jun 2021 16:04:00 +0000 https://supabase.com/blog/supabase-beta-april-2021 Supabase Beta April 2021 https://supabase.com/blog/supabase-beta-april-2021 Supabase "gardening" - stability, security, and community support. - Tue, 04 May 2021 03:03:00 + Tue, 04 May 2021 16:04:00 +0000 https://supabase.com/blog/supabase-beta-march-2021 Supabase Beta March 2021 https://supabase.com/blog/supabase-beta-march-2021 Launch week, Storage, Supabase CLI, Connection Pooling, Supabase UI, and Pricing. - Mon, 05 Apr 2021 03:03:00 + Mon, 05 Apr 2021 16:04:00 +0000 https://supabase.com/blog/supabase-workflows Workflows are coming to Supabase https://supabase.com/blog/supabase-workflows Functions are great, but you know what's better? - Thu, 01 Apr 2021 03:03:00 + Thu, 01 Apr 2021 16:04:00 +0000 https://supabase.com/blog/supabase-pgbouncer PgBouncer is now available in Supabase https://supabase.com/blog/supabase-pgbouncer Better support for Serverless and Postgres. - Thu, 01 Apr 2021 03:03:00 + Thu, 01 Apr 2021 16:04:00 +0000 https://supabase.com/blog/supabase-dot-com Supabase Dot Com https://supabase.com/blog/supabase-dot-com The Supabase Domain name is changing. - Thu, 01 Apr 2021 03:03:00 + Thu, 01 Apr 2021 16:04:00 +0000 https://supabase.com/blog/supabase-nft-marketplace Supabase Launches NFT Marketplace https://supabase.com/blog/supabase-nft-marketplace A fully encrypted NFT platform to protect and transact your digital assets - Thu, 01 Apr 2021 03:03:00 + Wed, 31 Mar 2021 16:04:00 +0000 https://supabase.com/blog/supabase-cli Supabase CLI https://supabase.com/blog/supabase-cli Local development, database migrations, and self-hosting. - Wed, 31 Mar 2021 03:03:00 + Tue, 30 Mar 2021 16:04:00 +0000 https://supabase.com/blog/supabase-storage Storage is now available in Supabase https://supabase.com/blog/supabase-storage Launching Supabase Storage and how you can use it in your apps - Tue, 30 Mar 2021 03:03:00 + Mon, 29 Mar 2021 16:04:00 +0000 https://supabase.com/blog/pricing Supabase Beta Pricing https://supabase.com/blog/pricing Supabase launches Beta pricing structure - Mon, 29 Mar 2021 03:03:00 + Sun, 28 Mar 2021 16:04:00 +0000 https://supabase.com/blog/launch-week Launch week https://supabase.com/blog/launch-week Five days of Supabase. - Wed, 24 Mar 2021 03:03:00 + Wed, 24 Mar 2021 16:04:00 +0000 https://supabase.com/blog/angels-of-supabase Angels of Supabase https://supabase.com/blog/angels-of-supabase Meet the investors of Supabase. - Wed, 24 Mar 2021 03:03:00 + Wed, 24 Mar 2021 16:04:00 +0000 https://supabase.com/blog/In-The-Loop Developers stay up to date with intheloop.dev https://supabase.com/blog/In-The-Loop Learn why Kevin is building intheloop.dev with Supabase - Mon, 22 Mar 2021 03:03:00 + Sun, 21 Mar 2021 16:04:00 +0000 https://supabase.com/blog/using-supabase-replit Using Supabase in Replit https://supabase.com/blog/using-supabase-replit Free hosted relational database from within your node.js repl - Thu, 11 Mar 2021 03:03:00 + Wed, 10 Mar 2021 16:04:00 +0000 https://supabase.com/blog/toad-a-link-shortener-with-simple-apis-for-low-coders Toad, a link shortener with simple APIs for low-coders https://supabase.com/blog/toad-a-link-shortener-with-simple-apis-for-low-coders An easy-to-use link shortening tool with simple APIs - Mon, 08 Mar 2021 03:03:00 + Sun, 07 Mar 2021 16:04:00 +0000 https://supabase.com/blog/postgres-as-a-cron-server Postgres as a CRON Server https://supabase.com/blog/postgres-as-a-cron-server Running repetitive tasks with your Postgres database. - Fri, 05 Mar 2021 03:03:00 + Thu, 04 Mar 2021 16:04:00 +0000 https://supabase.com/blog/supabase-beta-february-2021 Supabase Beta February 2021 https://supabase.com/blog/supabase-beta-february-2021 One year of building. - Tue, 02 Mar 2021 03:03:00 + Mon, 01 Mar 2021 16:04:00 +0000 https://supabase.com/blog/cracking-postgres-interview Cracking PostgreSQL Interview Questions https://supabase.com/blog/cracking-postgres-interview Understand the top PostgreSQL Interview Questions - Sat, 27 Feb 2021 03:03:00 + Fri, 26 Feb 2021 16:04:00 +0000 https://supabase.com/blog/case-study-roboflow Roboflow.com choose Supabase to power Paint.wtf leaderboard https://supabase.com/blog/case-study-roboflow Learn how Roboflow.com used Supabase to build their Paint.wtf leaderboard - Tue, 09 Feb 2021 03:03:00 + Mon, 08 Feb 2021 16:04:00 +0000 https://supabase.com/blog/supabase-beta-january-2021 Supabase Beta January 2021 https://supabase.com/blog/supabase-beta-january-2021 Eleven months of building. - Tue, 02 Feb 2021 03:03:00 + Mon, 01 Feb 2021 16:04:00 +0000 https://supabase.com/blog/supabase-beta-december-2020 Supabase Beta December 2020 https://supabase.com/blog/supabase-beta-december-2020 Ten months of building. - Sat, 02 Jan 2021 03:03:00 + Fri, 01 Jan 2021 16:04:00 +0000 https://supabase.com/blog/supabase-dashboard-performance Making the Supabase Dashboard Supa-fast https://supabase.com/blog/supabase-dashboard-performance Improving the performance of the Supabase dashboard - Sun, 13 Dec 2020 03:03:00 + Sat, 12 Dec 2020 16:04:00 +0000 https://supabase.com/blog/supabase-striveschool Supabase Partners With Strive School To Help Teach Open Source https://supabase.com/blog/supabase-striveschool Supabase Partners With Strive School To Help Teach Open Source To The Next Generation Of Developers - Wed, 02 Dec 2020 03:03:00 + Tue, 01 Dec 2020 16:04:00 +0000 https://supabase.com/blog/case-study-xendit Xendit Built a Counter-Fraud Watchlist for the Fintech Industry https://supabase.com/blog/case-study-xendit See how Xendit use Supabase to build a full-text search engine. - Wed, 02 Dec 2020 03:03:00 + Tue, 01 Dec 2020 16:04:00 +0000 https://supabase.com/blog/case-study-tayfa TAYFA Built a No-Code Website Builder in Seven Days https://supabase.com/blog/case-study-tayfa See how Tayfa went from idea to paying customer in less than 30 days. - Wed, 02 Dec 2020 03:03:00 + Tue, 01 Dec 2020 16:04:00 +0000 https://supabase.com/blog/case-study-monitoro Monitoro Built a Web Crawler Handling Millions of API Requests https://supabase.com/blog/case-study-monitoro See how Monitoro built an automated scraping platform using Supabase. - Wed, 02 Dec 2020 03:03:00 + Tue, 01 Dec 2020 16:04:00 +0000 https://supabase.com/blog/supabase-alpha-november-2020 Supabase Alpha November 2020 https://supabase.com/blog/supabase-alpha-november-2020 Nine months of building. - Tue, 01 Dec 2020 03:03:00 + Mon, 30 Nov 2020 16:04:00 +0000 https://supabase.com/blog/postgresql-views Postgres Views https://supabase.com/blog/postgresql-views Creating and using a view in PostgreSQL. - Wed, 18 Nov 2020 03:03:00 + Tue, 17 Nov 2020 16:04:00 +0000 https://supabase.com/blog/supabase-alpha-october-2020 Supabase Alpha October 2020 https://supabase.com/blog/supabase-alpha-october-2020 Eight months of building. - Mon, 02 Nov 2020 03:03:00 + Sun, 01 Nov 2020 16:04:00 +0000 https://supabase.com/blog/improved-dx Supabase.js 1.0 https://supabase.com/blog/improved-dx We're releasing a new version of our Supabase client with some awesome new improvements. - Fri, 30 Oct 2020 03:03:00 + Thu, 29 Oct 2020 16:04:00 +0000 https://supabase.com/blog/supabase-alpha-september-2020 Supabase Alpha September 2020 https://supabase.com/blog/supabase-alpha-september-2020 Seven months of building. - Sat, 03 Oct 2020 03:03:00 + Fri, 02 Oct 2020 16:04:00 +0000 https://supabase.com/blog/supabase-hacktoberfest-2020 Supabase Hacktoberfest 2020 https://supabase.com/blog/supabase-hacktoberfest-2020 Join us for a celebration of open source software and learn how to contribute to Supabase. - Fri, 11 Sep 2020 03:03:00 + Thu, 10 Sep 2020 16:04:00 +0000 https://supabase.com/blog/supabase-alpha-august-2020 Supabase Alpha August 2020 https://supabase.com/blog/supabase-alpha-august-2020 Six months of building - Thu, 03 Sep 2020 03:03:00 + Wed, 02 Sep 2020 16:04:00 +0000 https://supabase.com/blog/supabase-auth Supabase Auth https://supabase.com/blog/supabase-auth Authenticate and authorize your users with Supabase Auth - Wed, 05 Aug 2020 03:03:00 + Tue, 04 Aug 2020 16:04:00 +0000 https://supabase.com/blog/supabase-alpha-july-2020 Supabase Alpha July 2020 https://supabase.com/blog/supabase-alpha-july-2020 Five months of building - Sun, 02 Aug 2020 03:03:00 + Sat, 01 Aug 2020 16:04:00 +0000 https://supabase.com/blog/continuous-postgresql-backup-walg Continuous PostgreSQL Backups using WAL-G https://supabase.com/blog/continuous-postgresql-backup-walg Have you ever wanted to restore your database's state to a particular moment in time? This post explains how, using WAL-G. - Sun, 02 Aug 2020 03:03:00 + Sat, 01 Aug 2020 16:04:00 +0000 https://supabase.com/blog/alpha-launch-postmortem Alpha Launch Postmortem https://supabase.com/blog/alpha-launch-postmortem Everything that went wrong with Supabase's launch - Fri, 10 Jul 2020 03:03:00 + Thu, 09 Jul 2020 16:04:00 +0000 https://supabase.com/blog/postgresql-templates What are PostgreSQL Templates? https://supabase.com/blog/postgresql-templates What are PostgreSQL templates and what are they used for? - Thu, 09 Jul 2020 03:03:00 + Wed, 08 Jul 2020 16:04:00 +0000 https://supabase.com/blog/postgresql-physical-logical-backups Physical vs Logical Backups in PostgreSQL https://supabase.com/blog/postgresql-physical-logical-backups What are physical and logical backups in Postgres? - Tue, 07 Jul 2020 03:03:00 + Mon, 06 Jul 2020 16:04:00 +0000 https://supabase.com/blog/supabase-alpha-june-2020 Supabase Alpha June 2020 https://supabase.com/blog/supabase-alpha-june-2020 Four months of building - Wed, 01 Jul 2020 03:03:00 + Tue, 30 Jun 2020 16:04:00 +0000 https://supabase.com/blog/supabase-steve-chavez Steve Chavez has joined Supabase https://supabase.com/blog/supabase-steve-chavez Steve joins Supabase to help build Auth. - Mon, 15 Jun 2020 03:03:00 + Sun, 14 Jun 2020 16:04:00 +0000 https://supabase.com/blog/supabase-alpha-may-2020 Supabase Alpha May 2020 https://supabase.com/blog/supabase-alpha-may-2020 Three months of building - Mon, 01 Jun 2020 03:03:00 + Sun, 31 May 2020 16:04:00 +0000 https://supabase.com/blog/supabase-alpha-april-2020 Supabase Alpha April 2020 https://supabase.com/blog/supabase-alpha-april-2020 Two months of building - Mon, 01 Jun 2020 03:03:00 + Sun, 31 May 2020 16:04:00 +0000 diff --git a/apps/www/public/sitemap_www.xml b/apps/www/public/sitemap_www.xml index 34f9cd5d7e4..ea0a6a2d4e0 100644 --- a/apps/www/public/sitemap_www.xml +++ b/apps/www/public/sitemap_www.xml @@ -30,6 +30,12 @@ 0.5 + + https://supabase.com/changelog + weekly + 0.5 + + https://supabase.com/company weekly @@ -49,13 +55,13 @@ - https://supabase.com/blog/ + https://supabase.com/contact/enterprise weekly 0.5 - https://supabase.com/contact/enterprise + https://supabase.com/contact/mfa weekly 0.5 @@ -72,12 +78,24 @@ 0.5 + + https://supabase.com/legal/dpa + weekly + 0.5 + + https://supabase.com/nextjs/Nextjs weekly 0.5 + + https://supabase.com/blog/ + weekly + 0.5 + + https://supabase.com/storage weekly @@ -505,7 +523,7 @@ - https://supabase.com/blog/community-day + https://supabase.com/blog/community-day-lw3 weekly 0.5 @@ -595,7 +613,7 @@ - https://supabase.com/blog/community-day + https://supabase.com/blog/community-day-lw4 weekly 0.5 @@ -738,6 +756,84 @@ 0.5 + + https://supabase.com/blog/supabase-cli-v1-and-admin-api-beta + weekly + 0.5 + + + + https://supabase.com/blog/supabase-js-v2 + weekly + 0.5 + + + + https://supabase.com/blog/supabase-soc2 + weekly + 0.5 + + + + https://supabase.com/blog/supabase-realtime-multiplayer-general-availability + weekly + 0.5 + + + + https://supabase.com/blog/launch-week-5-community-day + weekly + 0.5 + + + + https://supabase.com/blog/launch-week-5-one-more-thing + weekly + 0.5 + + + + https://supabase.com/blog/pg-jsonschema-a-postgres-extension-for-json-validation + weekly + 0.5 + + + + https://supabase.com/blog/postgrest-v10 + weekly + 0.5 + + + + https://supabase.com/blog/supabase-vault + weekly + 0.5 + + + + https://supabase.com/blog/building-a-realtime-trello-board-with-supabase-and-angular + weekly + 0.5 + + + + https://supabase.com/blog/launch-week-5-hackathon-winners + weekly + 0.5 + + + + https://supabase.com/blog/supabase-beta-update-august-2022 + weekly + 0.5 + + + + https://supabase.com/blog/choosing-a-postgres-primary-key + weekly + 0.5 + + https://supabase.com/alternatives/supabase-vs-firebase weekly diff --git a/apps/www/styles/index.css b/apps/www/styles/index.css index 9d6f84a282c..d9057e07a0d 100644 --- a/apps/www/styles/index.css +++ b/apps/www/styles/index.css @@ -189,7 +189,7 @@ h6 { */ width: 420px; } */ -.auth-container { +/* .auth-container { @apply rounded; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%23edebf0' fill-opacity='0.4'%3E%3Cpath opacity='.5' d='M96 95h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9z'/%3E%3Cpath d='M6 5V0H5v5H0v1h5v94h1V6h94V5H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); } @@ -197,7 +197,7 @@ h6 { */ .dark .auth-container { background-color: #181818; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%23313131' fill-opacity='0.4'%3E%3Cpath opacity='.5' d='M96 95h4v1h-4v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4h-9v4h-1v-4H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15v-9H0v-1h15V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h9V0h1v15h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9h4v1h-4v9zm-1 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm9-10v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-10 0v-9h-9v9h9zm-9-10h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9zm10 0h9v-9h-9v9z'/%3E%3Cpath d='M6 5V0H5v5H0v1h5v94h1V6h94V5H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); -} +} */ .dark .header--light { display: none; @@ -308,6 +308,7 @@ launch week } .video-container { + @apply overflow-hidden rounded-xl border; position: relative; width: 100%; padding-bottom: 56.25%; @@ -321,3 +322,101 @@ launch week height: 100%; border: 0; } + +.all-unset { + all: unset; +} + +.auth-container { + background: linear-gradient(270deg, #71fb8e, #acecbc); + background-size: 400% 400%; + + -webkit-animation: AnimationName 14s ease infinite; + -moz-animation: AnimationName 14s ease infinite; + animation: AnimationName 14s ease infinite; +} + +@-webkit-keyframes AnimationName { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} +@-moz-keyframes AnimationName { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} +@keyframes AnimationName { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} + +@property --rotate { + syntax: ''; + initial-value: 132deg; + inherits: false; +} + +:root { + --auth-ui-card-height: 50vh; +} + +.glow-area { + width: 100%; + height: 100%; + position: absolute; + background-color: transparent; + z-index: -1; + cursor: pointer; +} + +.glow-area::after { + position: absolute; + content: ''; + top: calc(var(--auth-ui-card-height) / 8); + left: 0; + right: 0; + z-index: -1; + height: 100%; + width: 100%; + margin: 0 auto; + transform: scale(0.75); + filter: blur(calc(var(--auth-ui-card-height) / 6)); + background-image: linear-gradient( + var(--rotate), + var(--colors-brand), + #3c67e3 43%, + var(--colors-brand) + ); + opacity: 1; + transition: opacity 0.5s; + animation: spin 8s linear infinite; +} + +@keyframes spin { + 0% { + --rotate: 0deg; + } + 100% { + --rotate: 360deg; + } +} diff --git a/apps/www/supabase/functions/hubspot-notification/index.ts b/apps/www/supabase/functions/hubspot-notification/index.ts index 00fd315ed26..7cb06314695 100644 --- a/apps/www/supabase/functions/hubspot-notification/index.ts +++ b/apps/www/supabase/functions/hubspot-notification/index.ts @@ -4,6 +4,8 @@ const FUNCTION_SECRET = Deno.env.get('FUNCTION_SECRET') const HUBSPOT_PORTAL = Deno.env.get('HUBSPOT_PORTAL') const PARTNER_FORM_ID = Deno.env.get('PARTNER_FORM_ID') const ENTERPRISE_FORM_ID = Deno.env.get('ENTERPRISE_FORM_ID') +const DPA_FORM_ID = Deno.env.get('DPA_FORM_ID') +const SOC2_FORM_ID = Deno.env.get('SOC2_FORM_ID') serve(async (req) => { const requestSecret = req.headers.get('x-function-secret') @@ -27,25 +29,32 @@ serve(async (req) => { const website = input.record.website const partner_gallery_type = input.record.type - let formData: object = { - supabase_table_id, - country, - form_note, - company, - company_size, - email, - phone, - lastName, - firstName, - } + let formData: object = { email } - if (input.table === 'partner_contacts') { - formData = { - ...formData, - jobtitle, - website, - partner_gallery_type, - } + switch (input.table) { + case 'partner_contacts': + formData = { ...formData, jobtitle, website, partner_gallery_type } + break + case 'soc2_requests': + case 'enterprise_contacts': + formData = { + ...formData, + supabase_table_id, + country, + form_note, + company, + company_size, + email, + phone, + lastName, + firstName, + } + break + case 'dpa_downloads': + formData = { ...formData } + break + default: + break } const fields: { objectTypeId: '0-1'; name: string; value: string }[] = [] @@ -53,7 +62,14 @@ serve(async (req) => { fields.push({ objectTypeId: '0-1', name: key, value: value || 'NOT_PROVIDED' }) } - const formId = input.table === 'partner_contacts' ? PARTNER_FORM_ID : ENTERPRISE_FORM_ID + const formId = + input.table === 'partner_contacts' + ? PARTNER_FORM_ID + : input.table === 'dpa_downloads' + ? DPA_FORM_ID + : input.table === 'soc2_requests' + ? SOC2_FORM_ID + : ENTERPRISE_FORM_ID // Using HubSpot's submit data to a form API // https://legacydocs.hubspot.com/docs/methods/forms/submit_form diff --git a/apps/www/types/partners.ts b/apps/www/types/partners.ts index 871735ac166..4dba09c82e2 100644 --- a/apps/www/types/partners.ts +++ b/apps/www/types/partners.ts @@ -1,30 +1,3 @@ -export interface Partner { - id: number - slug: string - type: 'technology' | 'expert' - category: string - developer: string - title: string - description: string - logo: string - images: string[] - video: string - overview: string - website: string - docs: string - approved: boolean -} +import { Database } from '../lib/database.types' -export interface PartnerContact { - type: 'technology' | 'expert' - company: string - country: string - details?: string - email: string - first: string - last: string - phone?: string - size?: number - title?: string - website: string -} +export type Partner = Database['public']['Tables']['partners']['Row'] diff --git a/docker/.dockerignore b/docker/.dockerignore new file mode 100644 index 00000000000..b5924c32836 --- /dev/null +++ b/docker/.dockerignore @@ -0,0 +1,7 @@ +node_modules/ +.vercel +.next +.env.local +.env.production +.env.dev +.env.* \ No newline at end of file diff --git a/docker/.env.example b/docker/.env.example index b6aa9a0fd95..8e476f74c31 100644 --- a/docker/.env.example +++ b/docker/.env.example @@ -70,5 +70,8 @@ ENABLE_PHONE_AUTOCONFIRM=true # Studio - Configuration for the Dashboard ############ +STUDIO_ORGANIZATION_NAME=Default Organization +STUDIO_PROJECT_NAME=Default Project + STUDIO_PORT=3000 PUBLIC_REST_URL=http://localhost:8000/rest/v1/ # replace if you intend to use Studio outside of localhost diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index d2f89a20357..af69fb28459 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -17,6 +17,9 @@ services: STUDIO_PG_META_URL: http://meta:8080 POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + DEFAULT_ORGANIZATION: ${STUDIO_DEFAULT_ORGANIZATION} + DEFAULT_PROJECT: ${STUDIO_DEFAULT_PROJECT} + SUPABASE_URL: http://kong:8000 SUPABASE_REST_URL: ${PUBLIC_REST_URL} SUPABASE_ANON_KEY: ${ANON_KEY} @@ -80,7 +83,7 @@ services: rest: container_name: supabase-rest - image: postgrest/postgrest:v9.0.0 + image: postgrest/postgrest:v9.0.1 depends_on: - db # Disable this if you are using an external Postgres database restart: unless-stopped diff --git a/examples/auth/javascript-auth/index.html b/examples/auth/javascript-auth/index.html index 8cd11003fed..8ccb00f93f6 100644 --- a/examples/auth/javascript-auth/index.html +++ b/examples/auth/javascript-auth/index.html @@ -2,7 +2,7 @@ - + diff --git a/examples/edge-functions/.github/workflows/deploy.yaml b/examples/edge-functions/.github/workflows/deploy.yaml new file mode 100644 index 00000000000..1bb40de48ef --- /dev/null +++ b/examples/edge-functions/.github/workflows/deploy.yaml @@ -0,0 +1,24 @@ +name: Deploy Function + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + + env: + SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }} + PROJECT_ID: zdtdtxajzydjqzuktnqx + + steps: + - uses: actions/checkout@v3 + + - uses: supabase/setup-cli@v1 + with: + version: 1.0.0 + + - run: supabase functions deploy github-action-deploy --project-ref $PROJECT_ID diff --git a/examples/edge-functions/README.md b/examples/edge-functions/README.md index b6db1863365..efa08780dd0 100644 --- a/examples/edge-functions/README.md +++ b/examples/edge-functions/README.md @@ -59,6 +59,39 @@ This example includes a create-react-app in the [`./app/`](./app/) directory whi - `npm install` - `npm start` +### Deploy via GitHub Actions + +This example includes a [deploy GitHub Action](./.github/workflows/deploy.yaml) that automatically deploys your Supabase Edge Functions when pushing to or merging into the main branch. + +You can use the [`setup-cli` GitHub Action](https://github.com/marketplace/actions/supabase-cli-action) to run Supabase CLI commands in your GitHub Actions, for example to deploy a Supabase Edge Function: + +```yaml +name: Deploy Function + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + + env: + SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }} + PROJECT_ID: zdtdtxajzydjqzuktnqx + + steps: + - uses: actions/checkout@v3 + + - uses: supabase/setup-cli@v1 + with: + version: 1.0.0 + + - run: supabase functions deploy your-function-name --project-ref $PROJECT_ID +``` + ## 👁⚡️👁 \o/ That's it, you can now invoke your Supabase Function via the [`supabase-js`](https://supabase.com/docs/reference/javascript/invoke) and [`supabase-dart`](https://supabase.com/docs/reference/dart/invoke) client libraries. (More client libraries coming soon. Check the [supabase-community](https://github.com/supabase-community#client-libraries) org for details). diff --git a/examples/edge-functions/app/package.json b/examples/edge-functions/app/package.json index 810ef0f15e6..d942f3411bd 100644 --- a/examples/edge-functions/app/package.json +++ b/examples/edge-functions/app/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "dependencies": { - "@supabase/supabase-js": "^1.33.3", - "@supabase/ui": "^0.36.4", + "@supabase/auth-ui-react": "^0.2.1", + "@supabase/supabase-js": "^2.0.0-rc.12", "@testing-library/jest-dom": "^5.16.3", "@testing-library/react": "^12.1.4", "@testing-library/user-event": "^13.5.0", diff --git a/examples/edge-functions/app/src/App.js b/examples/edge-functions/app/src/App.js index f08f60348e8..89f57cfe09d 100644 --- a/examples/edge-functions/app/src/App.js +++ b/examples/edge-functions/app/src/App.js @@ -1,11 +1,10 @@ import React, { useState } from 'react' -import { Auth, Button, Typography, Select } from '@supabase/ui' +import { Auth, ThemeSupa } from '@supabase/auth-ui-react' import JSONInput from 'react-json-editor-ajrm' import locale from 'react-json-editor-ajrm/locale/en' import { supabase } from './utils/supabaseClient' import { functionsList } from './functionsList' -const { Title, Text } = Typography const sampleObject = { name: 'world' } function App() { @@ -25,29 +24,40 @@ function App() { return (
- - Supabase Egde Functions Test Client - +

Supabase Egde Functions Test Client

- - Request - - Function - setSupaFunction(e.target.value)} + > {functionsList.map((func) => ( - + + ))} - - + +

Note: when using locally, this selection doesn't have any effect and the function that's currently being served via the CLI is called instead. - - - Body - +

+

Body

setRequestJson(jsObject)} placeholder={sampleObject} @@ -55,27 +65,31 @@ function App() { height="100" width="100%" /> - +
- - Response - -
{JSON.stringify(responseJson, null, 2)}
+

Response

+
{JSON.stringify(responseJson, null, 2)}
- - Log in to see RLS in action - +

Log in to see RLS in action

{user ? (
- {`Logged in as ${user.email}`} - +

{`Logged in as ${user.email}`}

+
) : ( - + )}
diff --git a/examples/edge-functions/app/src/index.js b/examples/edge-functions/app/src/index.js index 3a641dd416d..36515be3349 100644 --- a/examples/edge-functions/app/src/index.js +++ b/examples/edge-functions/app/src/index.js @@ -2,7 +2,7 @@ import React from 'react' import ReactDOM from 'react-dom' import './index.css' import App from './App' -import { Auth } from '@supabase/ui' +import { Auth } from '@supabase/auth-ui-react' import { supabase } from './utils/supabaseClient' ReactDOM.render( diff --git a/examples/edge-functions/supabase/functions/_shared/supabaseClient.ts b/examples/edge-functions/supabase/functions/_shared/supabaseClient.ts deleted file mode 100644 index 2205294d529..00000000000 --- a/examples/edge-functions/supabase/functions/_shared/supabaseClient.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { createClient } from 'https://esm.sh/@supabase/supabase-js@^1.33.2' - -export const supabaseClient = createClient( - // Supabase API URL - env var exported by default when deployed. - Deno.env.get('SUPABASE_URL') ?? '', - // Supabase API ANON KEY - env var exported by default when deployed. - Deno.env.get('SUPABASE_ANON_KEY') ?? '' -) diff --git a/examples/edge-functions/supabase/functions/get-tshirt-competition/README.md b/examples/edge-functions/supabase/functions/get-tshirt-competition/README.md new file mode 100644 index 00000000000..8d0bcb0dd72 --- /dev/null +++ b/examples/edge-functions/supabase/functions/get-tshirt-competition/README.md @@ -0,0 +1,25 @@ +# GET T-Shirt competition + +To celebrate the support of GET requests in Supabase Edge Functions we're giving away some limited edition Functions Shirts! + +To win a Supabase Edge Functions T-Shirt, make a GET request to https://obuldanrptloktxcffvn.functions.supabase.co/get-tshirt-competition with your email address, your Twitter handle (optional), your t-shirt size (S-2XL) and the correct answer, e.g. + +```text +https://obuldanrptloktxcffvn.functions.supabase.co/get-tshirt-competition?email=testr@test.de&twitter=thorwebdev&size=2XL&answer=20 +``` + +You can read the functions source code to figure out the answer ;) + +Good luck trying to GET a T-Shirt! + +### Serve this function locally + +```bash +supabase functions serve --no-verify-jwt get-tshirt-competition +``` + +### Deploy this function + +```bash +supabase functions deploy --no-verify-jwt get-tshirt-competition +``` diff --git a/examples/edge-functions/supabase/functions/get-tshirt-competition/index.ts b/examples/edge-functions/supabase/functions/get-tshirt-competition/index.ts new file mode 100644 index 00000000000..392da9f29f0 --- /dev/null +++ b/examples/edge-functions/supabase/functions/get-tshirt-competition/index.ts @@ -0,0 +1,81 @@ +// Follow this setup guide to integrate the Deno language server with your editor: +// https://deno.land/manual/getting_started/setup_your_environment +// This enables autocomplete, go to definition, etc. + +import { serve } from 'https://deno.land/std@0.131.0/http/server.ts' +import { createClient } from 'https://esm.sh/@supabase/supabase-js@2.0.0-rc.12' +import { corsHeaders } from '../_shared/cors.ts' + +console.log(`Function "get-tshirt-competition" up and running!`) + +function positionInAlphabet(myChar: string): number { + const DIFFERENCE_CHARCODE_AND_LETTERS = 96 + // Convert the character into lowercase + const myCharLowercase = myChar.toLowerCase() + // Find the position of the char in the alphabet + const position = myCharLowercase.charCodeAt(0) - DIFFERENCE_CHARCODE_AND_LETTERS + return position +} + +serve(async (req) => { + // This is needed if you're planning to invoke your function from a browser. + if (req.method === 'OPTIONS') { + return new Response('ok', { headers: corsHeaders }) + } + + try { + const url = new URL(req.url) + const email = url.searchParams.get('email') + const twitter = url.searchParams.get('twitter') + const size = url.searchParams.get('size') + const answer = url.searchParams.get('answer') + + if ( + !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email ?? '') || + !answer || + !twitter || + !size + ) + throw new Error( + `Please provide valid 'email', 'twitter', 'size', and 'answer' params. HINT: https://github.com/supabase/supabase/blob/master/examples/edge-functions/supabase/functions/get-tshirt-competition/index.ts` + ) + + if (Number(answer) !== positionInAlphabet(email!)) + throw new Error( + `Sorry, that's wrong, please try again! HINT: https://github.com/supabase/supabase/blob/master/examples/edge-functions/supabase/functions/get-tshirt-competition/index.ts` + ) + + const supabaseAdminClient = createClient( + // Supabase API URL - env var exported by default when deployed. + Deno.env.get('SUPABASE_URL') ?? '', + // Supabase API SERVICE ROLE KEY - env var exported by default when deployed. + Deno.env.get('SUPABASE_SERVICE_ROLE_KEY') ?? '' + ) + // Submit email to draw + const { error } = await supabaseAdminClient.from('get-tshirt-competition').upsert( + { + email, + twitter, + size, + }, + { onConflict: 'email' } + ) + if (error) { + console.log(error) + throw new Error(error.details) + } + + return new Response(`Thanks for playing! ${email} has been added to the draw \\o/`, { + headers: { ...corsHeaders, 'Content-Type': 'text/plain' }, + status: 200, + }) + } catch (error) { + return new Response(JSON.stringify({ error: error.message }), { + headers: { ...corsHeaders, 'Content-Type': 'application/json' }, + status: 400, + }) + } +}) + +// To invoke: +// curl -i --location --request GET 'http://localhost:54321/functions/v1/get-tshirt-competition?email=testr@test.de&twitter=thorwebdev&size=2XL&answer=20' diff --git a/examples/edge-functions/supabase/functions/github-action-deploy/README.md b/examples/edge-functions/supabase/functions/github-action-deploy/README.md new file mode 100644 index 00000000000..01a7fd0d7d1 --- /dev/null +++ b/examples/edge-functions/supabase/functions/github-action-deploy/README.md @@ -0,0 +1,32 @@ +# GitHub Actions Deploy + +This example includes a [deploy GitHub Action](./../../../.github/workflows/deploy.yaml) that automatically deploys your Supabase Edge Functions when pushing to or merging into the main branch. + +You can use the [`setup-cli` GitHub Action](https://github.com/marketplace/actions/supabase-cli-action) to run Supabase CLI commands in your GitHub Actions, for example to deploy a Supabase Edge Function: + +```yaml +name: Deploy Function + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + + env: + SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }} + PROJECT_ID: zdtdtxajzydjqzuktnqx + + steps: + - uses: actions/checkout@v3 + + - uses: supabase/setup-cli@v1 + with: + version: 1.0.0 + + - run: supabase functions deploy github-action-deploy --project-ref $PROJECT_ID +``` diff --git a/examples/edge-functions/supabase/functions/github-action-deploy/index.ts b/examples/edge-functions/supabase/functions/github-action-deploy/index.ts new file mode 100644 index 00000000000..2dc629d0cf8 --- /dev/null +++ b/examples/edge-functions/supabase/functions/github-action-deploy/index.ts @@ -0,0 +1,24 @@ +// Follow this setup guide to integrate the Deno language server with your editor: +// https://deno.land/manual/getting_started/setup_your_environment +// This enables autocomplete, go to definition, etc. + +import { serve } from "https://deno.land/std@0.131.0/http/server.ts"; + +console.log("Hello from Functions!"); + +serve(async (req) => { + const { name } = await req.json(); + const data = { + message: `I was deployed via GitHub Actions!`, + }; + + return new Response(JSON.stringify(data), { + headers: { "Content-Type": "application/json" }, + }); +}); + +// To invoke: +// curl -i --location --request POST 'http://localhost:54321/functions/v1/' \ +// --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24ifQ.625_WdcF3KHqz5amU0x2X5WWHP-OEs_4qj0ssLNHzTs' \ +// --header 'Content-Type: application/json' \ +// --data '{"name":"Functions"}' diff --git a/examples/edge-functions/supabase/functions/select-from-table-with-auth-rls/index.ts b/examples/edge-functions/supabase/functions/select-from-table-with-auth-rls/index.ts index a1103cc5489..d5a54885801 100644 --- a/examples/edge-functions/supabase/functions/select-from-table-with-auth-rls/index.ts +++ b/examples/edge-functions/supabase/functions/select-from-table-with-auth-rls/index.ts @@ -3,7 +3,7 @@ // This enables autocomplete, go to definition, etc. import { serve } from 'https://deno.land/std@0.131.0/http/server.ts' -import { supabaseClient } from '../_shared/supabaseClient.ts' +import { createClient } from 'https://esm.sh/@supabase/supabase-js@2.0.0-rc.12' import { corsHeaders } from '../_shared/cors.ts' console.log(`Function "select-from-table-with-auth-rls" up and running!`) @@ -15,14 +15,26 @@ serve(async (req: Request) => { } try { - // Set the Auth context of the user that called the function. - // This way your row-level-security (RLS) policies are applied. - supabaseClient.auth.setAuth(req.headers.get('Authorization')!.replace('Bearer ', '')) + // Create a Supabase client with the Auth context of the logged in user. + const supabaseClient = createClient( + // Supabase API URL - env var exported by default. + Deno.env.get('SUPABASE_URL') ?? '', + // Supabase API ANON KEY - env var exported by default. + Deno.env.get('SUPABASE_ANON_KEY') ?? '', + // Create client with Auth context of the user that called the function. + // This way your row-level-security (RLS) policies are applied. + { global: { headers: { Authorization: req.headers.get('Authorization')! } } } + ) + // Now we can get the session or user object + const { + data: { user }, + } = await supabaseClient.auth.getUser() + // And we can run queries in the context of our authenticated user const { data, error } = await supabaseClient.from('users').select('*') - console.log({ data, error }) + if (error) throw error - return new Response(JSON.stringify({ data, error }), { + return new Response(JSON.stringify({ user, data }), { headers: { ...corsHeaders, 'Content-Type': 'application/json' }, status: 200, }) diff --git a/i18n/README.ar.md b/i18n/README.ar.md index 5f874955c33..302f4b97b91 100644 --- a/i18n/README.ar.md +++ b/i18n/README.ar.md @@ -41,7 +41,7 @@ نحن حاليًا في طور البيتا العام. شاهد "إصدارات" هذا المستودع لتلقي إخطارات بالتحديثات الرئيسية. -Watch this repo +Watch this repo ## كيف يعمل (Supabase)؟ @@ -51,7 +51,7 @@ Supabase عبارة عن مجموعة من الأدوات مفتوحة المص (supabase) هي [منصة مستضافة](https://app.supabase.com), يمكنك التسجيل والبدأ باستخدامها دون الحاجة لتثبيت أي شئ. يمكنك أيضا [استضافتها ذاتيا](https://supabase.com/docs/guides/hosting/overview) و [تطويرها داخليا](https://supabase.com/docs/guides/local-development). -![Architecture](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architecture](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) هي قاعدة بيانات قائمة على العلاقات الشيئية مع ٣٠ سنة من التطوير النشط التي اكسبتها سمعة وموثقية قوية وتمتاز بالمتانة والأداء. - [Realtime](https://github.com/supabase/realtime) هو خادم بلغة (Elixir) يمكنك من الاستماع لقاعدة البيانات لأي تغيرات سواء أنشاء أو تعديل أو مسح باستخدام ال(websocket). diff --git a/i18n/README.bg.md b/i18n/README.bg.md new file mode 100644 index 00000000000..855b3dbfff5 --- /dev/null +++ b/i18n/README.bg.md @@ -0,0 +1,195 @@ +

+ + +

+ +--- + +# Supabase + +[Supabase](https://supabase.com) е проект с отворен код, който предлага алтернатива на Firebase. Ние изграждаме функциите на Firebase като използваме инструменти базирани на отворен код за корпоративния клас. + +- [x] Хоствана Postgres база данни. [Docs](https://supabase.com/docs/guides/database) +- [x] Автентикация и оторизация [Docs](https://supabase.com/docs/guides/auth) +- [x] Автоматично генерирани APIs (Приложно-програмен интерфейс). + - [x] REST. [Docs](https://supabase.com/docs/guides/api#rest-api) + - [x] Абониране в реално време. [Docs](https://supabase.com/docs/guides/api#realtime-api) + - [x] GraphQL (Beta). [Docs](https://supabase.com/docs/guides/api#graphql-api) +- [x] Функции. + - [x] Функции за база данни. [Docs](https://supabase.com/docs/guides/database/functions) + - [x] Edge Functions [Docs](https://supabase.com/docs/guides/functions) +- [x] Съхранение на файлове. [Docs](https://supabase.com/docs/guides/storage) +- [x] Интерфейсно табло + +![Supabase Dashboard](https://raw.githubusercontent.com/supabase/supabase/master/apps/www/public/images/github/supabase-dashboard.png) + +## Документация + +За пълната документация посетете [supabase.com/docs](https://supabase.com/docs) + +За да видите как да допринасяте, посетете [Getting Started](./DEVELOPERS.md) + +## Общност & поддръжка + +- [Community Forum](https://github.com/supabase/supabase/discussions). Най-добър за: помощ при изграждането, дискусии за най-добри практики за бази данни, и прочие въпроси. +- [GitHub Issues](https://github.com/supabase/supabase/issues). Най-добър за: бъгове и грешки, които срещате при използване на Supabase. +- [Email Support](https://supabase.com/docs/support#business-support). Най-добър за: проблеми с базата ви данни или инфраструктурата. +- [Discord](https://discord.supabase.com). Най-добър за: споделяне на вашите приложения и общуване с общността. + +## Статус + +- [x] Затворена Alpha версия: Тестваме Supabase с избран набор от клиенти. +- [x] Публична Alpha версия: Всеки може да се регистрира на [app.supabase.com](https://app.supabase.com). Но молим по-леко, тъй като все още съществуват някои проблеми. +- [x] Публична Beta версия: Достатъчно стабилна за повечето некорпоративни случаи на употреба (non-enterprise). +- [ ] Публична версия: Готова версия за публично използване. + +В момента сме в публична Beta версия. Вижте "releases" на това "repository", за да бъдете уведомени за всички нови версии. + +Watch this repo + +--- + +## Как работи + +Supabase е комбинация на инструменти с отворен код. Ние изграждаме функционалността на Firebase, като използваме продукти от корпоративен клас с отворен код. Ако инструментите и общността съществуват с лиценз на MIT, Apache 2 или подобен отворен лиценз (open license), ще го използваме и поддържаме. Ако инструментът не съществува, ние ще го създадем и публикуваме с отворен код. Supabase не е еквивалентен едно-към-едно с Firebase. Нашата цел е да предоставим на програмистите съвместимост с Firebase, използвайки инструменти с отворен код. + +**Архитектурата** + +Supabase е [хоствана платформа](https://app.supabase.com). Можете да се регистрирате и да използвате Supabase без да инсталирате нищо. +Можете също да използвате [самостоятелен хостинг](https://supabase.com/docs/guides/hosting/overview) и да го [използвате локално](https://supabase.com/docs/guides/local-development). + +![Архитектура](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) + +- [PostgreSQL](https://www.postgresql.org/) е обектно-релативна база данни с повече от 30 години активно развитие, което е създало висока репутация за съвместимост, функционалност и производителност. +- [Realtime](https://github.com/supabase/realtime) е сървър на Elixir, който позволява да проследявате всички въвеждания, актуализации и изтривания на данни в PostgreSQL чрез уеб-сокети (websockets). Realtime проверява въвеждането на данни на PostgreSQL и конвертира в JSON записи, като после ги праща по уеб-сокети на оторизирани клиенти. +- [PostgREST](http://postgrest.org/) е уеб сървър, който превръща вашата PostgreSQL база данни директно в RESTful API. +- [Storage](https://github.com/supabase/storage-api) предлага RESTful интерфейс за управление на файловете, съхранени в S3, като използва Postgres за управление на правата. +- [postgres-meta](https://github.com/supabase/postgres-meta) е RESTful API за управление на Postgres, което ви позволява да извлечете таблици, да добавите роли, да изпълните запитвания, и други. +- [GoTrue](https://github.com/netlify/gotrue) е SWT базиран API за управление на потребители и издаване на SWT токени. +- [Kong](https://github.com/Kong/kong) e нативен за облака API Gateway. + +#### Клиентски библиотеки + +Нашият подход към клиентските библиотеки е модуларен. Всяка подбиблиотека е отделен проект за единична външна система. Това е един от нашите начини за поддръжка на съществуващите инструменти. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ЕзициКлиентиФункционални клиенти (включени в Supabase клиента)
SupabasePostgRESTGoTrueRealtimeStorage
⚡️ Официални ⚡️
JavaScript (TypeScript)supabase-jspostgrest-jsgotrue-jsrealtime-jsstorage-js
💚 Изградени от общността 💚
C#supabase-csharppostgrest-csharpgotrue-csharprealtime-csharpstorage-csharp
Dart (Flutter)supabase-dartpostgrest-dartgotrue-dartrealtime-dartstorage-dart
Go-postgrest-go---
Java--gotrue-java--
Kotlin-postgrest-ktgotrue-kt--
Pythonsupabase-pypostgrest-pygotrue-pyrealtime-py-
Rubysupabase-rbpostgrest-rb---
Rust-postgrest-rs---
Swiftsupabase-swiftpostgrest-swiftgotrue-swiftrealtime-swiftstorage-swift
+ + + + +## Преводи + +- [Списък с преводи](/i18n/languages.md) + +--- + +## Спонсори + +[![New Sponsor](https://user-images.githubusercontent.com/10214025/90518111-e74bbb00-e198-11ea-8f88-c9e3c1aa4b5b.png)](https://github.com/sponsors/supabase) diff --git a/i18n/README.bn.md b/i18n/README.bn.md index eeb3cf39a25..8410b7b8f77 100644 --- a/i18n/README.bn.md +++ b/i18n/README.bn.md @@ -41,7 +41,7 @@ আমরা বর্তমানে পাবলিক বিটাতে আছি। বড় আপডেটের বিজ্ঞপ্তি পেতে এই রেপোর "রিলিজ" দেখুন। -এই রেপো দেখুন +এই রেপো দেখুন --- @@ -54,7 +54,7 @@ সুপাবেস হল একটি [হোস্ট করা প্ল্যাটফর্ম](https://app.supabase.com)। আপনি সাইন আপ করতে পারেন এবং কিছু ইনস্টল না করে সুপাবেস ব্যবহার শুরু করতে পারেন। এছাড়াও আপনি [স্ব-হোস্ট](https://supabase.com/docs/guides/hosting/overview) এবং [স্থানীয়ভাবে বিকাশ](https://supabase.com/docs/guides/local-development) করতে পারেন। -![আর্কিটেকচার](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![আর্কিটেকচার](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) হল একটি অবজেক্ট-রিলেশনাল ডাটাবেস সিস্টেম যার 30 বছরের বেশি সক্রিয় বিকাশ রয়েছে যা এটিকে নির্ভরযোগ্যতা, বৈশিষ্ট্যের দৃঢ়তা এবং কর্মক্ষমতার জন্য একটি শক্তিশালী খ্যাতি অর্জন করেছে। - [রিয়েলটাইম](https://github.com/supabase/realtime) হল একটি Elixir সার্ভার যা আপনাকে ওয়েবসকেট ব্যবহার করে PostgreSQL সন্নিবেশ, আপডেট এবং মুছে ফেলা শুনতে দেয়। ডাটাবেস পরিবর্তনের জন্য রিয়েলটাইম পোল পোস্টগ্রেসের অন্তর্নির্মিত প্রতিলিপি কার্যকারিতা, পরিবর্তনগুলিকে JSON-এ রূপান্তরিত করে, তারপর অনুমোদিত ক্লায়েন্টদের কাছে ওয়েবসকেটের মাধ্যমে JSON সম্প্রচার করে। diff --git a/i18n/README.ca.md b/i18n/README.ca.md index ccc1ffea335..87923c98b4b 100644 --- a/i18n/README.ca.md +++ b/i18n/README.ca.md @@ -39,7 +39,7 @@ Per a veure la documentació completa, visita [supabase.com/docs](https://supaba Actualment estem en la fase de beta pública. Pots subscriure’t a les _releases_ d’aquest repositori per a mantenir-te notificat d’actualitzacions majors. -Segueix aquest repositori +Segueix aquest repositori --- @@ -51,7 +51,7 @@ Supabase és una combinació d’eines de codi obert. Estem construint les funci Supabase és una [plataforma allotjada](https://app.supabase.com). Et pots registrar i començar a utilitzar Supabase sense instal·lar res. També podeu tenir una [_host_ pròpia](https://supabase.com/docs/guides/hosting/overview) i [desenvolupar localment](https://supabase.com/docs/guides/local-development). -![Arquitectura](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Arquitectura](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) és un sistema de base de dades objecte–relacional amb més de 30 anys de desenvolupament actiu que s’ha guanyat la seva forta reputació per ser de confiança, robust i d’alt rendiment. - [Temps real](https://github.com/supabase/realtime) és un server construït en Elixir que permet escoltar els _inserts_, _updates_ i _deletes_ de PostgreSQL utilitzant WebSockets. Supabase escolta a la funcionalitat de replicació integrada de PostgreSQL, converteix el byte de replicació en un JSON i després transmet el JSON a través de WebSockets. diff --git a/i18n/README.da.md b/i18n/README.da.md index 36fb8fa2b40..37d6fa87471 100644 --- a/i18n/README.da.md +++ b/i18n/README.da.md @@ -38,7 +38,7 @@ For fuld dokumentation, besøg [supabase.com/docs](https://supabase.com/docs) Vi er i øjeblikket i Offentlig beta. Hold øje med udgivelser på denne side for notifkationer om større opdateringer. -Hold øje med dette repo +Hold øje med dette repo --- @@ -50,7 +50,7 @@ Supabase er en kombination af open source værktøjer. Vi bygger Firebase fuktio Supabase er en [hosted platform](https://app.supabase.com). Du kan skrive dig op og starte med at anvende Supabase uden nogen form for installation. Vi er stadig i gang med at forbedre den lokale udvikleroplevelse - dette er pt vores hovedfokus sammen med platformens generelle stabilitet. -![Arkitektur](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Arkitektur](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) er en objektorienteret relationel database med mere end 30 års aktiv udvikling der har givet et stærkt omdømme for pålidelighed, funktionel robusthed og ydeevne. - [Realtime](https://github.com/supabase/realtime) er en Elixir server der giver mulighed for at lytte efter PostgreSQL oprettelser, opdateringer og sletninger ved hjælp af websockets. Supabase lytter efter Postgres' indbyggede replikeringsmekanisme, konverterer replika byte-strømmen til JSON og udsender derefter JSON gennem websockets. diff --git a/i18n/README.de.md b/i18n/README.de.md index 88f59883d78..b77416bef34 100644 --- a/i18n/README.de.md +++ b/i18n/README.de.md @@ -39,7 +39,7 @@ Um die gesamte Dokumentation einzusehen, schaue auf [supabase.com/docs](https:// Aktuell befinden wir uns in der öffentlichen Beta. Beobachte "Releases" in diesem Repository um über größere Neuigkeiten benachrichtigt zu werden. -Watche dieses Repo +Watche dieses Repo --- @@ -53,7 +53,7 @@ Supabase ist eine [gehostete Plattform](https://app.supabase.com). Du kannst dich bei Supabase anmelden und sofort loslegen, ohne etwas zu installieren. Du kannst Supabase auch selbst hosten und lokal entwickeln. -![Architektur](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architektur](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) ist ein objektrelationales Datenbanksystem, das seit über 30 Jahren aktiv entwickelt wird und für Zuverlässigkeit, Robustheit der Funktionen und Leistung geschätzt wird. - [Realtime](https://github.com/supabase/realtime) ist ein Elixir-Server, mit dem du auf PostgreSQL-Inserts, -Updates und -Deletes über Websockets hören kannst. Supabase hört auf die eingebaute Replikationsfunktionalität von Postgres, konvertiert den Replikations-Byte-Stream in JSON und sendet das JSON dann über Websockets. diff --git a/i18n/README.es.md b/i18n/README.es.md index 846aa758fbf..aec002391b8 100644 --- a/i18n/README.es.md +++ b/i18n/README.es.md @@ -45,7 +45,7 @@ Para ver como contribuir, visita los [Primeros Pasos](../DEVELOPERS.md) Actualmente estamos en la fase de beta pública. Puedes suscribirte a las _releases_ de este repositorio para mantenerte notificado de actualizaciones mayores. -Seguir este repositorio +Seguir este repositorio --- @@ -57,7 +57,7 @@ Supabase es una combinación de herramientas de código abierto. Estamos constru Supabase es una [plataforma alojada](https://app.supabase.com). Te puedes registrar y comenzar a utilizar Supabase sin instalar nada. También puedes tener un [_host_ propio](https://supabase.com/docs/guides/hosting/overview) y [desarrollar en local](https://supabase.com/docs/guides/local-development). -![Arquitectura](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Arquitectura](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) es un sistema de base de datos objeto-relacional con más de 30 años de desarrollo activo que se ha ganado su fuerte reputación por ser confiable, robusto y de alto rendimiento. - [Tiempo Real](https://github.com/supabase/realtime) es un server construido en Elixir que permite escuchar a los _inserts_, _updates_ y _deletes_ de PostgreSQL utilizando WebSockets. Supabase escucha a la funcionalidad de replicación integrada de PostgreSQL, convierte el byte de replicación en un JSON y después transmite el JSON a través de WebSockets. diff --git a/i18n/README.fa.md b/i18n/README.fa.md index 7647de052e4..9488b3068f3 100644 --- a/i18n/README.fa.md +++ b/i18n/README.fa.md @@ -38,7 +38,7 @@ در حال حاظر در مرحله بتای عمومی هستیم‫. "releases" این مخزن را دنبال کنید تا در جریان به‌روزسانی‌ها قرار بگیرید. -این مخزن را دنبال کنید. +این مخزن را دنبال کنید. --- @@ -50,7 +50,7 @@ ‫Supabase یک [پلتفرم میزبانی‌شده](https://app.supabase.com) است. شما می‌توانید بدون نصب چیزی، ثبت‌نام و شروع به استفاده از Supabase کنید. ما هنوز در حال ساختن تجربه‌ی توسعه local هستیم - این تمرکز اصلی فعلی ما علاوه بر اتکاپذیری است. -![معماری](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![معماری](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - ‫[PostgreSQL](https://www.postgresql.org/) یک سیستم دیتابیس object-relational با بیش از ۳۰سال سابقه توسعه می‌باشد که اعتبار زیادی بابت اتکاپذیری، امکانات قوی و سرعت کسب کرده است. - ‫[Realtime](https://github.com/supabase/realtime) یک سرور Elixir است که اجازه می‌دهد به اضافه کردن، به‌روز کردن و حذف کردن‌های PostgreSQL با استفاده از websockets گوش دهید. Supabase به عملکرد داخلی PostgreSQL برای replication گوش می‌دهد، replication byte stream را به JSON تبدیل می‌کند و JSON را از طریق websock به خارج broadcast می‌کند. diff --git a/i18n/README.fi.md b/i18n/README.fi.md new file mode 100644 index 00000000000..cbbb8959dfc --- /dev/null +++ b/i18n/README.fi.md @@ -0,0 +1,242 @@ +

+ + +

+ +--- + +# Supabase + +[Supabase](https://supabase.com) on avoimen lähdekoodin Firebase-vaihtoehto. Rakennamme Firebasen ominaisuuksia yritystason avoimen lähdekoodin työkaluilla. + +- [x] Isännöity Postgres-tietokanta [Docs](https://supabase.com/docs/guides/database) +- [x] Autentikointi ja valtuutus [Docs](https://supabase.com/docs/guides/auth) +- [x] Automaattisesti luodut rajapinnat + - [x] REST [Docs](https://supabase.com/docs/guides/api#rest-api) + - [x] Reaaliaikaiset tilaukset [Docs](https://supabase.com/docs/guides/api#realtime-api) + - [x] GraphQL (Beta) [Docs](https://supabase.com/docs/guides/api#graphql-api) +- [x] Funktiot + - [x] Tietokantatoiminnot [Docs](https://supabase.com/docs/guides/database/functions) + - [x] Reunatoiminnot [Docs](https://supabase.com/docs/guides/functions) +- [x] Tiedostojen säilytys [Docs](https://supabase.com/docs/guides/storage) +- [x] Dashboard + +![Supabase hallintapaneeli](https://raw.githubusercontent.com/supabase/supabase/master/apps/www/public/images/github/supabase-dashboard.png) + +## Dokumentaatio + +Katso täydelliset dokumentaatiot osoitteesta [supabase.com/docs](https://supabase.com/docs) + +Katso ohjeet osallistumiseen vierailemalla [Aloitus](./DEVELOPERS.md) + +## Yhteisö ja tuki + +- [Yhteisön keskustelufoorumi](https://github.com/supabase/supabase/discussions): Apua rakentamisessa, keskustelu tietokannan parhaista käytännöistä. +- [GitHub ongelmat](https://github.com/supabase/supabase/issues): Bugit ja virheet, joita kohtaat Supabasea käytettäessä. +- [Email Support](https://supabase.com/docs/support#business-support): Tietokantaan tai infrastruktuuriin liittyvät ongelmat. +- [Discord](https://discord.supabase.com): Jaa sovelluksiasi ja vietä aikaa yhteisön kanssa. + +## Status + +- [x] Alpha: Testaamme Supabasea suljetun asiakasjoukon kanssa +- [x] Julkinen alfa: Kuka tahansa voi rekisteröityä osoitteessa [app.supabase.com](https://app.supabase.com). Mutta rauhassa, siinä on muutamia mutkia +- [x] Julkinen beta: Riittävän vakaa useimpiin ei-yrityskäyttötapauksiin +- [ ] Julkinen: Valmistettu tuotantoon + +Olemme tällä hetkellä julkisessa betaversiossa. Katso tämän repon "julkaisut", niin saat ilmoituksen tärkeimmistä päivityksistä. + +Katso tämä repo + +--- + +## Kuinka se toimii + +Supabase on yhdistelmä avoimen lähdekoodin työkaluja. Rakennamme Firebasen ominaisuuksia käyttämällä yritystason avoimen lähdekoodin tuotteita. Jos työkalut ja yhteisöt ovat olemassa, ja niillä on MIT, Apache 2 tai vastaava avoin lisenssi, käytämme ja tuemme kyseistä työkalua. Jos työkalua ei ole olemassa, rakennamme ja avaamme sen itse. Supabase ei ole Firebasen 1-1-kartoitus. Tavoitteemme on tarjota kehittäjille Firebasen kaltainen kehittäjäkokemus käyttämällä avoimen lähdekoodin työkaluja. + +**Arkkitehtuuri** + +Supabase on [isännöity alusta](https://app.supabase.com). Voit rekisteröityä ja aloittaa Supabasen käytön asentamatta mitään. +Voit myös [isännöidä itse](https://supabase.com/docs/guides/hosting/overview) ja [kehittää paikallisesti](https://supabase.com/docs/guides/local-development). + +![Arkkitehtuuri](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) + +- [PostgreSQL](https://www.postgresql.org/) on oliorelaatiotietokantajärjestelmä, jota on kehitetty aktiivisesti yli 30 vuoden ajan ja joka on ansainnut sille vahvan maineen luotettavuudestaan, ominaisuuksien kestävyydestään ja suorituskyvystään. +- [Realtime](https://github.com/supabase/realtime) on Elixir-palvelin, jonka avulla voit kuunnella PostgreSQL-lisäyksiä, päivityksiä ja poistoja websockettien avulla. Reaaliaikaiset kyselyt Postgresin sisäänrakennetuista replikointitoiminnoista tietokannan muutoksille, muuntaa muutokset JSON-muotoon ja lähettää sitten JSONin verkkoliitäntöjen kautta valtuutetuille asiakkaille. +- [PostgREST](http://postgrest.org/) on verkkopalvelin, joka muuttaa PostgreSQL-tietokantaasi suoraan RESTful API:ksi +- [Storage](https://github.com/supabase/storage-api) tarjoaa RESTful-käyttöliittymän S3:een tallennettujen tiedostojen hallintaan käyttämällä Postgresia käyttöoikeuksien hallintaan. +- [postgres-meta](https://github.com/supabase/postgres-meta) on RESTful-sovellusliittymä Postgresin hallintaan. Sen avulla voit noutaa taulukoita, lisätä rooleja ja suorittaa kyselyitä jne. +- [GoTrue](https://github.com/netlify/gotrue) on SWT-pohjainen sovellusliittymä käyttäjien hallintaan ja SWT-tunnuksien myöntämiseen. +- [Kong](https://github.com/Kong/kong) on ​​pilvipohjainen API-yhdyskäytävä. + +#### Asiakaskirjastot + +Lähestymistapamme asiakaskirjastoissa on modulaarinen. Jokainen alikirjasto on erillinen toteutus yhdelle ulkoiselle järjestelmälle. Tämä on yksi tavoista tukea olemassa olevia työkaluja. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KieliClientFeature-Clients (yhdistettynä Supabase-asiakkaaseen)
SupabasePostgRESTGoTrueRealtimeStorageFunctions
⚡️ Virallinen ⚡️
JavaScript (TypeScript)supabase-jspostgrest-jsgotrue-jsrealtime-jsstorage-jsfunctions-js
💚 Yhteisö 💚
C#supabase-csharppostgrest-csharpgotrue-csharprealtime-csharpstorage-csharpfunctions-csharp
Dart (Flutter)supabase-dartpostgrest-dartgotrue-dartrealtime-dartstorage-dartfunctions-dart
Go-postgrest-go--storage-go-
Java--gotrue-java---
Kotlin-postgrest-ktgotrue-kt---
Pythonsupabase-pypostgrest-pygotrue-pyrealtime-pystorage-pyfunctions-py
Rubysupabase-rbpostgrest-rb----
Rust-postgrest-rs----
Swiftsupabase-swiftpostgrest-swiftgotrue-swiftrealtime-swiftstorage-swift-
+ + + + +## Käännökset + +- [Arabic | العربية](/i18n/README.ar.md) +- [Albanian / Shqip](/i18n/README.sq.md) +- [Bangla / বাংলা](/i18n/README.bn.md) +- [Catalan / Català](/i18n/README.ca.md) +- [Danish / Dansk](/i18n/README.da.md) +- [Dutch / Nederlands](/i18n/README.nl.md) +- [English](https://github.com/supabase/supabase) +- [Finnish / Suomi](/i18n/README.fi.md) +- [French / Français](/i18n/README.fr.md) +- [German / Deutsch](/i18n/README.de.md) +- [Greek / Ελληνικά](/i18n/README.gr.md) +- [Hebrew / עברית](/i18n/README.he.md) +- [Hindi / हिंदी](/i18n/README.hi.md) +- [Hungarian / Magyar](/i18n/README.hu.md) +- [Nepali / नेपाली](/i18n/README.ne.md) +- [Indonesian / Bahasa Indonesia](/i18n/README.id.md) +- [Italian / Italiano](/i18n/README.it.md) +- [Japanese / 日本語](/i18n/README.jp.md) +- [Korean / 한국어](/i18n/README.ko.md) +- [Malay / Bahasa Malaysia](/i18n/README.ms.md) +- [Norwegian (Bokmål) / Norsk (Bokmål)](/i18n/README.nb-no.md) +- [Persian / فارسی](/i18n/README.fa.md) +- [Polish / Polski](/i18n/README.pl.md) +- [Portuguese / Portuguese](/i18n/README.pt.md) +- [Portuguese (Brazilian) / Português Brasileiro](/i18n/README.pt-br.md) +- [Romanian / Română](/i18n/README.ro.md) +- [Russian / Pусский](/i18n/README.ru.md) +- [Sinhala / සිංහල](/i18n/README.si.md) +- [Spanish / Español](/i18n/README.es.md) +- [Simplified Chinese / 简体中文](/i18n/README.zh-cn.md) +- [Swedish / Svenska](/i18n/README.sv.md) +- [Thai / ไทย](/i18n/README.th.md) +- [Traditional Chinese / 繁体中文](/i18n/README.zh-tw.md) +- [Turkish / Türkçe](/i18n/README.tr.md) +- [Ukrainian / Українська](/i18n/README.uk.md) +- [Vietnamese / Tiếng Việt](/i18n/README.vi-vn.md) +- [List of translations](/i18n/languages.md) + +--- + +## Sponsorit + +[![Uudet sponsorit](https://user-images.githubusercontent.com/10214025/90518111-e74bbb00-e198-11ea-8f88-c9e3c1aa4b5b.png)](https://github.com/sponsors/supabase) diff --git a/i18n/README.fr.md b/i18n/README.fr.md index 6f6ad80cbe1..c1a06000e22 100644 --- a/i18n/README.fr.md +++ b/i18n/README.fr.md @@ -41,7 +41,7 @@ Pour voir comment Contribuer, visitez [Getting Started](./DEVELOPERS.md) Nous sommes actuellement en version bêta publique. Surveillez les "releases" de ce repo pour être informé des mises à jour majeures. -Watch this repo +Watch this repo --- @@ -54,7 +54,7 @@ Supabase est une combinaison d'outils open source. Nous développons les fonctio Supabase est une [plateforme hébergée](https://app.supabase.com). Vous pouvez vous inscrire et commencer à utiliser Supabase sans rien installer. Vous pouvez aussi [auto-héberger](https://supabase.com/docs/guides/hosting/overview) et [développer localement](https://supabase.com/docs/guides/local-development). -![Architecture](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architecture](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) est un système de base de données relationnel-objet dont le développement actif depuis plus de 30 ans lui a valu une solide réputation de fiabilité, de robustesse des fonctionnalités et de performance. - [Realtime](https://github.com/supabase/realtime) est un serveur Elixir qui vous permet d'écouter les insertions, mises à jour et suppressions PostgreSQL à l'aide de websockets. Supabase écoute la fonctionnalité de réplication intégrée de Postgres, convertit le flux d'octets de réplication en JSON, puis diffuse le JSON sur des websockets. diff --git a/i18n/README.gr.md b/i18n/README.gr.md index 73b22d75b43..1da76378ca1 100644 --- a/i18n/README.gr.md +++ b/i18n/README.gr.md @@ -38,7 +38,7 @@ To [Supabase](https://supabase.com) είναι μια εναλλακτική λ Αυτήν τη στιγμή είμαστε σε Public Beta. Παρακολουθήστε την κατηγορία "releases" σε αυτό το repo για να λαμβάνετε ειδοποιήσεις για σημαντικές ενημερώσεις. -Watch this repo +Watch this repo --- @@ -50,7 +50,7 @@ To [Supabase](https://supabase.com) είναι μια εναλλακτική λ Το Supabase είναι ένα [hosted platform](https://app.supabase.com) (φιλοξενούμενη πλατφόρμα). Μπορείτε να εγγραφείτε και να αρχίσετε να χρησιμοποιείτε το Supabase χωρίς να εγκαταστήσετε τίποτα. Εξακολουθούμε να αναπτύσουμε την εμπειρία της τοπικής ανάπτυξης (Local Development) - αυτή είναι τώρα η βασική μας εστίαση, μαζί με τη σταθερότητα της πλατφόρμας. -![Architecture](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architecture](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) is an object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance. - [Realtime](https://github.com/supabase/realtime) is an Elixir server that allows you to listen to PostgreSQL inserts, updates, and deletes using websockets. Supabase listens to Postgres' built-in replication functionality, converts the replication byte stream into JSON, then broadcasts the JSON over websockets. diff --git a/i18n/README.gu.md b/i18n/README.gu.md index bfbbfafd008..32c13e33b22 100644 --- a/i18n/README.gu.md +++ b/i18n/README.gu.md @@ -39,7 +39,7 @@ અમે હાલમાં જાહેર બીટામાં છીએ. અગત્યના સુધારાઓ વિશે સૂચિત થવા માટે આ રીપોના "રિલિઝિસ" જુઓ. -આ રીપો જુઓ +આ રીપો જુઓ --- @@ -51,7 +51,7 @@ સુપાબેઝ એક [હોસ્ટેડ પ્લેટફોર્મ](https://app.supabase.com) છે. તમે સાઇન અપ કરી શકો છો અને કંઈપણ ઇન્સ્ટોલ કર્યા વગર સુપાબેઝનો ઉપયોગ શરૂ કરી શકો છો. અમે હજી પણ સ્થાનિક ડેવલપમેન્ટ અનુભવ બનાવી રહ્યા છીએ - પ્લેટફોર્મ સ્થિરતાની સાથે હવે આ અમારું મુખ્ય લક્ષ્ય છે. -![સ્થાપત્ય](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![સ્થાપત્ય](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) એક ઓબ્જેક્ટ-રિલેશનલ ડેટાબેઝ સિસ્ટમ છે જેમાં 30 વર્ષથી વધુ સક્રિય વિકાસ છે જેણે તેને વિશ્વસનીયતા, લક્ષણ મજબુતાઇ અને પ્રદર્શન માટે મજબૂત પ્રતિષ્ઠા પ્રાપ્ત કરી છે - [Realtime](https://github.com/supabase/realtime) એલિક્સિર સર્વર છે જે તમને વેબસોકેટનો ઉપયોગ કરીને PostgreSQL દાખલ, અપડેટ્સ અને ડીલીટ માટે પરવાનગી આપે છે. સુપાબેઝ Postgresની બિલ્ટ-ઇન પ્રતિકૃતિ વિધેયને સાંભળે છે, પ્રતિકૃતિ બાઇટ પ્રવાહને JSON માં ફેરવે છે, પછી વેબસોકેટ્સ પર JSON પ્રસારિત કરે છે. diff --git a/i18n/README.he.md b/i18n/README.he.md index a1ed2012310..bb564612523 100644 --- a/i18n/README.he.md +++ b/i18n/README.he.md @@ -40,7 +40,7 @@ אנחנו כרגע בשלב "בטא פומבית". עקבו אחר השחוררים שלנו בGithub בכדי לקבל התראות על שחרורים נוספים. -Watch this repo +Watch this repo --- @@ -53,7 +53,7 @@ Supabase הוא שילוב של כלי קוד פתוח. אנו בונים את Supabase היא [תשתית ענן](https://app.supabase.com) . את\ה יכול\ה להירשם ולהתחיל להשתמש ב- Supabase מבלי להתקין שום דבר. אנו עדיין עובדים על לייצר את חוויית הפיתוח המקומית - בזה אנחנו מתמקדים, יחד עם יציבות המערכת. -![Architecture](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architecture](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [פוסטגרס (PostgreSQL)](https://www.postgresql.org/) זהו מסד נתונים רלציוני עם למעלה מ -30 שנות פיתוח פעיל שזכתה למוניטין של אמינות, עמידות וביצועים. - [Realtime](https://github.com/supabase/realtime) הוא שרת Elixir המאפשר להאזין לתוספות, עדכונים ומחיקות ב-PostgreSQL באמצעות websockets. Supabase מאזין לפונקציונליות ההעתק המובנית של Postgres, ממיר את המידע ל- JSON ואז משדר את ה- JSON מעל websockets. diff --git a/i18n/README.hi.md b/i18n/README.hi.md index b3b140349c5..ea6c3f7ebf8 100644 --- a/i18n/README.hi.md +++ b/i18n/README.hi.md @@ -7,27 +7,34 @@ # Supabase -[सुपबेस](https://supabase.com) एक खुला स्रोत फायरबेस विकल्प है। हम एंटरप्राइज़-ग्रेड ओपन सोर्स टूल का उपयोग करके फायरबेस की सुविधाओं का निर्माण कर रहे हैं। +[सुपाबेस](https://supabase.com) एक ओपन सोर्स फ़ाायरबेस विकल्प है। हम एंटरप्राइज़-गुणवत्ता ओपन सोर्स सॉफ़्टवेयर उपकरण का उपयोग करके फ़ाायरबेस की सुविधाओं का निर्माण कर रहे हैं। -- [x] होस्टेड पोस्टग्रेज डेटाबेस -- [x] रीयलटाइम सदस्यता -- [x] सत्यापन और प्राधिकरण -- [x] स्वतः जनरेट किए गए API -- [x] डैशबोर्ड -- [x] भंडारण -- [x] कार्यों +- [x] होस्टेड पोस्टग्रेज डेटाबेस। [प्रलेखन](https://supabase.com/docs/guides/database) +- [x] प्रमाणीकरण और प्राधिकरण। [प्रलेखन](https://supabase.com/docs/guides/auth) +- [x] उत्पन्न एपीआईस। + - [x] रेस्ट। [प्रलेखन](https://supabase.com/docs/guides/api#rest-api) + - [x] रीयलटाइम सदस्यता। [प्रलेखन](https://supabase.com/docs/guides/api#realtime-api) + - [x] ग्राफ़क्यूएल (प्रयोगात्मक)। [प्रलेखन](https://supabase.com/docs/guides/api#graphql-api) +- [x] फ़ंक्शंस। + - [x] डेटाबेस फ़ंक्शंस। [प्रलेखन](https://supabase.com/docs/guides/database/functions) + - [x] एज फ़ंक्शंस। [प्रलेखन](https://supabase.com/docs/guides/functions) +- [x] भंडारण। [प्रलेखन](https://supabase.com/docs/guides/storage) +- [x] डैशबोर्ड। -![Supabase Dashboard](https://raw.githubusercontent.com/supabase/supabase/master/apps/www/public/images/github/supabase-dashboard.png) +![सुपाबेस का डैशबोर्ड।](https://raw.githubusercontent.com/supabase/supabase/master/apps/www/public/images/github/supabase-dashboard.png) ## प्रलेखन पूर्ण प्रलेखन के लिए, [supabase.com/docs](https://supabase.com/docs) पर जाएँ +योगदान करने के लिए, [गेट्टिंग स्टार्टेड](https://github.com/supabase/supabase/blob/master/DEVELOPERS.md) पेज पर जाएँ + ## सामुदायिक तथा सहयोग -- [सामुदायिक मंच](https://github.com/supabase/supabase/discussions). सर्वोत्कृष्ट: निर्माण करने में मदद, डेटाबेस सर्वोत्तम प्रथाओं के बारे में चर्चा। -- [गिटहब मुद्दे](https://github.com/supabase/supabase/issues). सर्वोत्कृष्ट: दोष और त्रुटियां जो आप का सामना कर रहे हैं Supabase। -- [ई-मेल समर्थन](https://supabase.com/docs/support#business-support). सर्वोत्कृष्ट: आपके डेटाबेस या आधारिक संरचना के साथ समस्याएं। +- [सामुदायिक मंच](https://github.com/supabase/supabase/discussions)। निर्माण में मदद और डेटाबेस की सर्वोत्तम प्रथाओं के बारे में चर्चा के लिए उचित है। +- [गिटहब इश्यूस](https://github.com/supabase/supabase/issues)। सुपाबेस का उपयोग करते समय बगस और त्रुटियां के लिए उचित है। +- [ई-मेल समर्थन](https://supabase.com/docs/support#business-support)। आपके डेटाबेस और इंफ़्रास्ट्रक्चर के साथ समस्याएं के लिए उचित है। +- [डिस्कॉर्ड](https://discord.supabase.com/)। अपने प्रोजेक्ट्स शेयर करने के लिए और हमारी सुपाबेस समुदाय के साथ बातचीत करने के लिए उचित है। ## स्थिति @@ -38,19 +45,19 @@ हम इस समय सार्वजनिक बीटा में हैं। प्रमुख अद्यतन की सूचना पाने के लिए इस रेपो का "रिलीज़" देखें। -इस रेपो को देखें +इस रेपो को देखें --- ## यह किस प्रकार काम करता है -सुपबेस ओपन सोर्स टूल्स का एक संयोजन है। हम एंटरप्राइज़-ग्रेड, ओपन सोर्स उत्पादों का उपयोग करके फायरबेस की सुविधाओं का निर्माण कर रहे हैं। यदि उपकरण और समुदाय मौजूद हैं, तो MIT, Apache 2 या समकक्ष ओपन लाइसेंस के साथ, हम उस टूल का उपयोग और समर्थन करेंगे। यदि उपकरण मौजूद नहीं है, तो हम इसे स्वयं बनाते हैं और स्रोत खोलते हैं। सुपबेस फायरबेस की 1 से 1 मैपिंग नहीं है। हमारा उद्देश्य डेवलपर्स को ओपन सोर्स टूल्स का उपयोग करके फायरबेस जैसा डेवलपर अनुभव देना है। +सुपाबेस ओपन सोर्स टूल्स का एक संयोजन है। हम एंटरप्राइज़-ग्रेड, ओपन सोर्स उत्पादों का उपयोग करके फायरबेस की सुविधाओं का निर्माण कर रहे हैं। यदि उपकरण और समुदाय मौजूद हैं, तो MIT, Apache 2 या समकक्ष ओपन लाइसेंस के साथ, हम उस टूल का उपयोग और समर्थन करेंगे। यदि उपकरण मौजूद नहीं है, तो हम इसे स्वयं बनाते हैं और स्रोत खोलते हैं। सुपाबसे फ़ायरबेस की १ से १ मैपिंग नहीं है। हमारा उद्देश्य डेवलपर्स को ओपन सोर्स टूल्स का उपयोग करके फायरबेस जैसा डेवलपर अनुभव देना है। **वर्तमान वास्तुकला** -सुपबेस [होस्टेड प्लेटफार्म](https://app.supabase.com). आप साइन अप कर सकते हैं और कुछ भी स्थापित किए बिना सुपबेस का उपयोग करना शुरू कर सकते हैं। हम अभी भी स्थानीय विकास का अनुभव पैदा कर रहे हैं - यह अब मंच स्थिरता के साथ-साथ हमारा मुख्य फोकस है। +सुपाबसे [होस्टेड प्लेटफार्म](https://app.supabase.com). आप साइन अप कर सकते हैं और कुछ भी स्थापित किए बिना सुपाबसे का उपयोग करना शुरू कर सकते हैं। हम अभी भी स्थानीय विकास का अनुभव पैदा कर रहे हैं - यह अब मंच स्थिरता के साथ-साथ हमारा मुख्य फोकस है। -![आर्किटेक्चर](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![आर्किटेक्चर](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) 30 से अधिक वर्षों के सक्रिय विकास के साथ एक वस्तु-संबंधपरक डेटाबेस प्रणाली है जिसने इसे विश्वसनीयता, सुविधा मजबूती और प्रदर्शन के लिए एक मजबूत प्रतिष्ठा अर्जित की है। - [Realtime](https://github.com/supabase/realtime) एक एलिक्जिर सर्वर है जो आपको पोस्टग्रॉसीक्यूएल आवेषण, अपडेट्स को सुनने की अनुमति देता है और वेबसोकेट का उपयोग करके हटाता है। सुपबेस पोस्टग्रेज की अंतर्निहित प्रतिकृति कार्यक्षमता को सुनता है, प्रतिकृति बाइट स्ट्रीम को JSON में परिवर्तित करता है, फिर JSON को वेबस्कॉक पर प्रसारित करता है। @@ -60,31 +67,125 @@ - [GoTrue](https://github.com/netlify/gotrue) उपयोगकर्ताओं को प्रबंधित करने और SWT टोकन जारी करने के लिए एक SWT आधारित एपीआई है। - [Kong](https://github.com/Kong/kong) एक क्लाउड-नेटिव एपीआई गेटवे है। -#### ग्राहक पुस्तकालय +#### मुवक्किल लाइब्रेरीज़ -हमारे ग्राहक पुस्तकालय मॉड्यूलर है। प्रत्येक उप-पुस्तकालय एकल बाह्य प्रणाली के लिए एक स्टैंडअलोन कार्यान्वयन है। यह उन तरीकों में से एक है जो हम मौजूदा उपकरणों का समर्थन करते हैं। +हमारी सारी क्लाइंट लिब्ररियाँ मॉड्यूलर है। प्रत्येक उप-पुस्तकालय एक बाहरी प्रणाली के लिए एक स्टैंडअलोन कार्यान्वयन है। यह उन तरीकों में से एक है जिससे हम मौजूदा सॉफ़्टवेयर उपकारों का समर्थन करते हैं। -- **`supabase-{lang}`**: पुस्तकालयों को जोड़ता है और संवर्धन को जोड़ता है। - - `postgrest-{lang}`: ग्राहक पुस्तकालय के साथ काम करने के लिए [PostgREST](https://github.com/postgrest/postgrest) - - `realtime-{lang}`: ग्राहक पुस्तकालय के साथ काम करने के लिए [Realtime](https://github.com/supabase/realtime) - - `gotrue-{lang}`: ग्राहक पुस्तकालय के साथ काम करने के लिए [GoTrue](https://github.com/netlify/gotrue) - -| Repo | आधिकारिक | समुदाय | -| --------------------- | ------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **`supabase-{lang}`** | [`JS`](https://github.com/supabase/supabase-js) | [`C#`](https://github.com/supabase/supabase-csharp) \| [`Dart`](https://github.com/supabase/supabase-dart) \| [`Python`](https://github.com/supabase/supabase-py) \| `Rust` | -| `postgrest-{lang}` | [`JS`](https://github.com/supabase/postgrest-js) | [`C#`](https://github.com/supabase/postgrest-csharp) \| [`Dart`](https://github.com/supabase/postgrest-dart) \| [`Python`](https://github.com/supabase/postgrest-py) \| [`Rust`](https://github.com/supabase/postgrest-rs) | -| `realtime-{lang}` | [`JS`](https://github.com/supabase/realtime-js) | [`C#`](https://github.com/supabase/realtime-csharp) \| [`Dart`](https://github.com/supabase/realtime-dart) \| [`Python`](https://github.com/supabase/realtime-py) \| `Rust` | -| `gotrue-{lang}` | [`JS`](https://github.com/supabase/gotrue-js) | [`C#`](https://github.com/supabase/gotrue-csharp) \| [`Dart`](https://github.com/supabase/gotrue-dart) \| [`Python`](https://github.com/supabase/gotrue-py) \| `Rust` | - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
प्रोग्रामिंग भाषाक्लाइंटफ़ीचर क्लाइंट (सुपाबसे क्लाइंट में बंडल)
सुपाबसेPostgRESTGoTrueRealtimeStorage
⚡️ ऑफ़िशियल ⚡️
जावास्क्रिप्ट (टाइप्स्क्रिप्ट)supabase-jspostgrest-jsgotrue-jsrealtime-jsstorage-js
💚 समुदाय 💚
सीशार्पsupabase-csharppostgrest-csharpgotrue-csharprealtime-csharpstorage-csharp
डार्ट (फ़्लटर)supabase-dartpostgrest-dartgotrue-dartrealtime-dartstorage-dart
गो-postgrest-go---
जावा--gotrue-java--
कोटलिन-postgrest-ktgotrue-kt--
पाइथनsupabase-pypostgrest-pygotrue-pyrealtime-py-
रूबीsupabase-rbpostgrest-rb---
रस्ट-postgrest-rs---
स्विफ़्टsupabase-swiftpostgrest-swiftgotrue-swiftrealtime-swiftstorage-swift
## अनुवाद -- [अनुवाद की सूची](/i18n/languages.md) +- [अनुवादों की सूची](/i18n/languages.md) --- -## प्रायोजकों +## हमारे प्रायोजक -[![नया प्रायोजक](https://user-images.githubusercontent.com/10214025/90518111-e74bbb00-e198-11ea-8f88-c9e3c1aa4b5b.png)](https://github.com/sponsors/supabase) +[![New Sponsor](https://user-images.githubusercontent.com/10214025/90518111-e74bbb00-e198-11ea-8f88-c9e3c1aa4b5b.png)](https://github.com/sponsors/supabase) diff --git a/i18n/README.hu.md b/i18n/README.hu.md index 0d9916319f4..80ca3ecf691 100644 --- a/i18n/README.hu.md +++ b/i18n/README.hu.md @@ -39,7 +39,7 @@ A teljes dokumentációért látogasson el a [supabase.com/docs](https://supabas Jelenleg a Publikus Béta állapotban vagyunk. Nézze a repo "releases" fülét hogy értesüljön a nagy frissítésekről. -Watch this repo +Watch this repo --- @@ -52,7 +52,7 @@ A Supabase nyílt forráskódú eszközök kombinációja.A Firebase funkcióit Supabase egy [hosztolt platform](https://app.supabase.com). Regisztrálással letöltés nélkül is elkezdheted használni. De [hosztolhatod magadnak](https://supabase.com/docs/guides/hosting/overview) és akár [fejlesztheted helyileg](https://supabase.com/docs/guides/local-development). -![Architektúra](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architektúra](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) egy objektum-kapcsolati adatbázis rendszer több mint 30 évnyi aktív fejlesztéssel ezalatt hírnevvet szerzett megbízhatóságáról, robosztus felépítéséről, és teljesítményéről. - [Valós idő](https://github.com/supabase/realtime) egy Elixir szerver ami lehetővé teszi hogy figyeld a PostgreSQL beillesztéseket, frissítéseket, és törléseket websocket-ek felhasználásával. Supabase figyeli a Postgres belső replikációs funkcióját, átalakítja a replikációs bájtokat egy JSON-be, majd a JSON-t elküldi a websocket kapcsolaton. diff --git a/i18n/README.id.md b/i18n/README.id.md index 9cecbed7c2f..5500fd2eb4d 100644 --- a/i18n/README.id.md +++ b/i18n/README.id.md @@ -38,7 +38,7 @@ Untuk dokumentasi lengkap, kunjungi [supabase.com/docs](https://supabase.com/doc Kami saat ini dalam Public Beta. Amati "releases" dari repositori ini untuk pemberitahuan mengenai pembaruan-pembaruan besar. -Amati repo ini +Amati repo ini --- @@ -50,7 +50,7 @@ Supabase adalah kombinasi dari alat-alat sumber terbuka. Kami membangun fitur-fi Supabase adalah sebuah [platform yang dihosting](https://app.supabase.com). Anda dapat mendaftar dan mulai menggunakan Supabase tanpa memasang apa pun. Kami masih membangun pengalaman pengembangan lokal yang merupakan fokus utama kami saat ini, bersama dengan stabilitas platform. -![Arsitektur](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Arsitektur](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) adalah sebuah sistem database objek-relasional dengan pengembangan aktif lebih dari 30 tahun sehingga memiliki reputasi yang kuat dalam keandalan, ketahanan fitur, dan kinerja. - [Realtime](https://github.com/supabase/realtime) adalah sebuah server Elixir yang memungkinkan anda mendengarkan penyisipan, perubahan, dan penghapusan dari PostgreSQL menggunakan WebSocket. Supabase mendengarkan fungsionalitas replikasi bawaan Postgres, mengubah stream byte ke JSON, kemudian JSON tersebut disiarkan melalui WebSocket. diff --git a/i18n/README.it.md b/i18n/README.it.md index af91db34766..93c7096e3a7 100644 --- a/i18n/README.it.md +++ b/i18n/README.it.md @@ -38,7 +38,7 @@ Per ottenere la documentazione completa, visitare il sito [supabase.com/docs](ht Attualmente siamo in Beta Pubblica. Tenete d'occhio (cliccando sul bottone "Watch") le "release" di questa repository per essere notificati sui nostri aggiornamenti piú importanti. -Watch this repo +Watch this repo --- @@ -50,7 +50,7 @@ Supabase è un insieme di strumenti con sorgente aperto. Stiamo sviluppando le f Supabase è una [piattaforma ospitata](https://app.supabase.com). Ci si può iscrivere ed iniziare ad utilizzare Supabase senza la necessità di installare qualcosa. Ci impegnamo nel creare un'esperienza di sviluppo interamente in locale - attualmente é il nostro obiettivo primario, così come lo è la stabilità della piattaforma stessa. -![Architettura](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architettura](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) è un sistema di database relazionali ad oggetti, con oltre 30 anni di sviluppo all'attivo che gli hanno permesso di ottenere una ottima reputazione in termini di affidabilità, robustezza delle funzionalità e prestazioni. - [Realtime](https://github.com/supabase/realtime) è un server Elixir che consente di ascoltare eventi PostreSQL quali inserimento, aggiornamenti e rimozioni utilizzando i websocket. Supabase rimane in ascolto della funzionalità incorporata di replicazione di Postgres, convertendo il flusso di byte replicato in JSON, dopodichè diffondendo il JSON attraverso i websocket. diff --git a/i18n/README.jp.md b/i18n/README.jp.md index 6b86abef28d..e49da8f323c 100644 --- a/i18n/README.jp.md +++ b/i18n/README.jp.md @@ -9,13 +9,17 @@ [Supabase](https://supabase.com)は、オープンソースの Firebase 代替製品です。エンタープライズグレードのオープンソースツールを使って、Firebase の機能を構築しています。 -- [x] ホスティングされた Postgres データベース -- [x] リアルタイムサブスクリプション -- [x] 認証・認可 +- [x] ホスティングされた Postgres データベース [Docs](https://supabase.com/docs/guides/database) +- [x] 認証・認可 [Docs](https://supabase.com/docs/guides/auth) - [x] API を自動生成 -- [x] ダッシュボード -- [x] ストレージ + - [x] REST [Docs](https://supabase.com/docs/guides/api#rest-api) + - [x] リアルタイムサブスクリプション [Docs](https://supabase.com/docs/guides/api#realtime-api) + - [x] GraphQL (Beta) [Docs](https://supabase.com/docs/guides/api#graphql-api) - [x] 関数 + - [x] データベース関数 [Docs](https://supabase.com/docs/guides/database/functions) + - [x] Edge Functions [Docs](https://supabase.com/docs/guides/functions) +- [x] ストレージ +- [x] ダッシュボード ![Supabase Dashboard](https://raw.githubusercontent.com/supabase/supabase/master/apps/www/public/images/github/supabase-dashboard.png) @@ -23,11 +27,14 @@ 詳しいドキュメントは[supabase.com/docs](https://supabase.com/docs)をご覧ください。 +コントリビュート方法は[Getting Started](./DEVELOPERS.md)をご覧ください。 + ## コミュニティとサポート - [コミュニティフォーラム](https://github.com/supabase/supabase/discussions) どんな時に使うか:構築の手助け、データベースのベストプラクティスに関する議論など - [GitHub Issue](https://github.com/supabase/supabase/issues) どんな時に使うか: Supabase で起こったバグやエラーについて - [Email サポート](https://supabase.com/docs/support#business-support) どんな時に使うか: ユーザー自身のデータベースやインフラに何か問題が発生した場合 +- [Discord](https://discord.supabase.com) どんな時に使うか: アプリケーションの共有やコミュニティとの交流 ## ステータス @@ -36,9 +43,9 @@ - [x] Public Beta: 企業以外のほとんどのユースケースに耐えうる十分な安定性を確保。 - [ ] Public: 実用的な用途に対応 -現在、Public Beta を実施しています。このリポジトリの"release"にてメジャーアップデートに関する情報を発信しています。 +現在、Public Beta を実施しています。このリポジトリの"releases"にてメジャーアップデートに関する情報を発信しています。 -Watch this repo +Watch this repo --- @@ -49,9 +56,9 @@ Supabase は、オープンソースのツールを組み合わせてできて **現在のアーキテクチャ** Supabase は[ホスティングされたプラットフォーム](https://app.supabase.com)です。登録するだけで、何もインストールせずに使い始めることができます。 -更に現在ローカルでの開発環境を整えており、これはプラットフォームの安定性と並んで今最優先で進めているプロジェクトになります。 +さらに、 [セルフホスティング](https://supabase.com/docs/guides/hosting/overview) や [ローカル開発](https://supabase.com/docs/guides/local-development)も可能です。 -![アーキテクチャー](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![アーキテクチャー](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/)は、30 年以上にわたって開発・改善されてきたオブジェクトリレーショナルデータベースシステムで、信頼性、機能の堅牢性、パフォーマンスの面で高い評価を得ています。 - [Realtime](https://github.com/supabase/realtime)は、PostgreSQL の insert、update、delete の情報を WebSocket で受信できる Elixir サーバです。Supabase は Postgres に組み込まれたレプリケーション機能をリッスンし、レプリケーションのバイトストリームを JSON に変換し、その JSON を WebSocket でブロードキャストします。 @@ -65,17 +72,125 @@ Supabase は[ホスティングされたプラットフォーム](https://app.su Supabase クライアントライブラリはモジュール化されています。それぞれのサブライブラリが、一つの外部システムのための独立した実装となっています。こうすることで、既存のツールをサポートしています。 -- **`supabase-{lang}`**: 下記全てのライブラリを内包したクライアントライブラリ - - `postgrest-{lang}`: [PostgREST](https://github.com/postgrest/postgrest)用のクライアントライブラリ - - `realtime-{lang}`: [Realtime](https://github.com/supabase/realtime)用のクライアントライブラリ - - `gotrue-{lang}`: [GoTrue](https://github.com/netlify/gotrue)用のクライアントライブラリ - -| レポジトリ | 公式 | コミュニティ | -| --------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| **`supabase-{lang}`** | [`JS`](https://github.com/supabase/supabase-js) | [`C#`](https://github.com/supabase/supabase-csharp) \| [`Dart`](https://github.com/supabase/supabase-dart) \| [`Python`](https://github.com/supabase/supabase-py) \| `Rust` \| [`Ruby`](https://github.com/supabase/supabase-rb) \| `Go` | -| `postgrest-{lang}` | [`JS`](https://github.com/supabase/postgrest-js) | [`C#`](https://github.com/supabase/postgrest-csharp) \| [`Dart`](https://github.com/supabase/postgrest-dart) \| [`Python`](https://github.com/supabase/postgrest-py) \| [`Rust`](https://github.com/supabase/postgrest-rs) \| [`Ruby`](https://github.com/supabase/postgrest-rb) \| [`Go`](https://github.com/supabase/postgrest-go) | -| `realtime-{lang}` | [`JS`](https://github.com/supabase/realtime-js) | [`C#`](https://github.com/supabase/realtime-csharp) \| [`Dart`](https://github.com/supabase/realtime-dart) \| [`Python`](https://github.com/supabase/realtime-py) \| `Rust` \| `Ruby` \| `Go` | -| `gotrue-{lang}` | [`JS`](https://github.com/supabase/gotrue-js) | [`C#`](https://github.com/supabase/gotrue-csharp) \| [`Dart`](https://github.com/supabase/gotrue-dart) \| [`Python`](https://github.com/supabase/gotrue-py) \| `Rust` \| `Ruby` \| `Go` | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
言語クライアント機能別クライアント (Supabaseクライアントに同梱)
SupabasePostgRESTGoTrueRealtimeStorageFunctions
⚡️ 公式 ⚡️
JavaScript (TypeScript)supabase-jspostgrest-jsgotrue-jsrealtime-jsstorage-jsfunctions-js
💚 コミュニティ 💚
C#supabase-csharppostgrest-csharpgotrue-csharprealtime-csharpstorage-csharpfunctions-csharp
Dart (Flutter)supabase-dartpostgrest-dartgotrue-dartrealtime-dartstorage-dartfunctions-dart
Go-postgrest-go--storage-go-
Java--gotrue-java---
Kotlin-postgrest-ktgotrue-kt---
Pythonsupabase-pypostgrest-pygotrue-pyrealtime-pystorage-pyfunctions-py
Rubysupabase-rbpostgrest-rb----
Rust-postgrest-rs----
Swiftsupabase-swiftpostgrest-swiftgotrue-swiftrealtime-swiftstorage-swift-
diff --git a/i18n/README.ko.md b/i18n/README.ko.md index 028aea2d564..de128abb31e 100644 --- a/i18n/README.ko.md +++ b/i18n/README.ko.md @@ -9,13 +9,17 @@ [Supabase](https://supabase.com)는 오픈 소스 Firebase 대체 제품입니다. 엔터프라이즈 급 오픈 소스 도구를 사용하여 Firebase 기능을 구축하고 있습니다. -- [x] 호스팅 된 Postgres 데이터베이스 -- [x] 실시간 구독 -- [x] 인증・승인 -- [x] 자동 생성 API -- [x] 대시 보드 -- [x] 스토리지 -- [x] 함수 +- [x] 호스팅 된 Postgres 데이터베이스. [Docs](https://supabase.com/docs/guides/database) +- [x] 사용자 인증 및 권한 부여. [Docs](https://supabase.com/docs/guides/auth) +- [x] 자동생성 API. + - [x] REST. [Docs](https://supabase.com/docs/guides/api#rest-api) + - [x] 실시간 구독. [Docs](https://supabase.com/docs/guides/api#realtime-api) + - [x] GraphQL (Beta). [Docs](https://supabase.com/docs/guides/api#graphql-api) +- [x] 함수. + - [x] 데이터베이스 함수. [Docs](https://supabase.com/docs/guides/database/functions) + - [x] 엣지 함수 [Docs](https://supabase.com/docs/guides/functions) +- [x] 파일 스토리지. [Docs](https://supabase.com/docs/guides/storage) +- [x] 대시보드 ![Supabase Dashboard](https://raw.githubusercontent.com/supabase/supabase/master/apps/www/public/images/github/supabase-dashboard.png) @@ -25,9 +29,10 @@ ## 커뮤니티 및 지원 -- [커뮤니티 포럼](https://github.com/supabase/supabase/discussions) 어떤 때 사용하는지:데이터베이스의 모범 사례를 구축하고 토론하는데 도움이 됩니다. -- [GitHub Issue](https://github.com/supabase/supabase/issues) 어떤 때 사용하는지: Supabase에서 사용하면서 발생한 버그와 오류가 발생할 때. -- [Email 지원](https://supabase.com/docs/support#business-support) 어떤 때 사용하는지: 데이터베이스 또는 인프라 문제 +- [커뮤니티 포럼](https://github.com/supabase/supabase/discussions). 데이터베이스의 모범 사례를 구축하고 토론할 때 가장 적합합니다. +- [깃허브 이슈](https://github.com/supabase/supabase/issues). Supabase 사용 시 발생하는 버그 및 오류를 만났을 때 가장 적합합니다. +- [이메일 지원](https://supabase.com/docs/support#business-support). 여러분의 데이터베이스나 개발 인프라에 문제가 생겼을 때 가장 적합합니다. +- [디스코드](https://discord.supabase.com). 여러분들의 어플리케이션을 공유하거나, 커뮤니티와 함께 어울리고 싶을때 가장 적합합니다. ## 상태 @@ -38,7 +43,7 @@ 현재 Public Beta를 실시하고 있습니다. 주요 업데이트에 대한 알림을 받으려면 이 저장소의 "releases"를 Watch 해주세요. -Watch this repo +Watch this repo --- @@ -51,7 +56,7 @@ Supabase는 오픈 소스 툴들을 조합한 것입니다. 엔터프라이즈 Supabase는 [호스팅 플랫폼](https://app.supabase.com)입니다. 아무것도 설치하지 않고 가입하고 Supabase 사용을 시작할 수 있습니다. 또한 현재 로컬 개발 환경을 갖추고 있으며, 이는 플랫폼의 안정성과 함께 지금 최우선으로 진행하고 있는 프로젝트입니다. -![아키텍쳐](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![아키텍쳐](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/)PostgreSQL 은 30 년 이상 개발 · 개선되어왔다 객체 관계형 데이터베이스 시스템에서의 안정성, 기능의 안정성, 성능면에서 높은 평가를 얻고 있습니다. - [Realtime](https://github.com/supabase/realtime) 은 웹 소켓을 사용하여 PostgreSQL 삽입, 업데이트 및 삭제를 수신 할 수있는 Elixir 서버입니다. Supabase는 Postgres의 내장 복제 기능을 수신하고 복제 바이트 스트림을 JSON으로 변환 한 다음 웹 소켓을 통해 JSON을 브로드 캐스트합니다. diff --git a/i18n/README.ms.md b/i18n/README.ms.md index 4f80f0cddd7..c8a53214750 100644 --- a/i18n/README.ms.md +++ b/i18n/README.ms.md @@ -38,7 +38,7 @@ Untuk dokumentasi lengkap, layari [supabase.com/docs](https://supabase.com/docs) Kami kini berada di Public Beta. Tonton "siaran" repo ini untuk diberitahu mengenai kemas kini utama. -Tonton repo ini +Tonton repo ini --- @@ -51,7 +51,7 @@ Supabase adalah gabungan alat sumber terbuka. Kami membina ciri Firebase menggun Supabase ialah [platform yang dihoskan](https://app.supabase.com). Anda boleh mendaftar dan mula menggunakan Supabase tanpa memasang apa-apa. Anda juga boleh [host sendiri](https://supabase.com/docs/guides/hosting/overview) dan [lokal](https://supabase.com/docs/guides/local-development). -![Seni bina](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Seni bina](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) adalah sistem pangkalan data objek-relasional dengan pengembangan aktif lebih dari 30 tahun yang menjadikannya reputasi yang kuat untuk kebolehpercayaan, ketahanan ciri, dan prestasi. - [Realtime](https://github.com/supabase/realtime) adalah pelayan Elixir yang membolehkan anda mendengar sisipan, kemas kini dan pemadaman PostgreSQL menggunakan soket web. Supabase mendengar fungsi replikasi terbina dalam Postgres, menukar aliran bait(byte) replikasi menjadi JSON, kemudian menyiarkan JSON melalui soket web. diff --git a/i18n/README.nb-no.md b/i18n/README.nb-no.md index 2721ac8f9da..c33708c74ef 100644 --- a/i18n/README.nb-no.md +++ b/i18n/README.nb-no.md @@ -38,7 +38,7 @@ Besøk [supabase.com/docs](https://supabase.com/docs) for full dokumentasjon. Vi er for øyeblikket i Offentlig Beta. Følg med på "releases" til dette repoet for å bli varslet om større oppdateringer. -Watch this repo +Watch this repo --- @@ -50,7 +50,7 @@ Supabase er en samling av open source-verktøy. Vi bygger funksjonaliteten til F Supabase er en [hostet plattform](https://app.supabase.com). Du kan registrere deg og begynne å bruke Supabase uten å installere noe. Vi holder fortsatt på å bygge verktøy for lokalt bruk – dette er nå vårt kjernefokus, i tillegg til plattformstabilitet. -![Arkitektur](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Arkitektur](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) er et objektrelasjonelt databasesystem med over 30 år med aktiv utvikling, som har gitt det et godt rykte for pålitelighet, robusthet og ytelse. - [Realtime](https://github.com/supabase/realtime) er en Elixir-server som lar deg lytte til PostgreSQL-innsettinger, -oppdateringer og -slettinger ved hjelp av websockets. Supabase lytter til Postgres sin innebygde replikasjonsfunksjonalitet, konverterer replikasjonsbyte-strømmen til JSON, og sender deretter JSON over websockets. diff --git a/i18n/README.ne.md b/i18n/README.ne.md index 02ffbb381ba..058de8a0045 100644 --- a/i18n/README.ne.md +++ b/i18n/README.ne.md @@ -38,7 +38,7 @@ हामी हाल सार्वजनिक बिटामा छौं। प्रमुख अद्यावधिकहरूको सूचना प्राप्त गर्न यस रेपोको "रिलिजहरू"मा हेर्नुहोस्। -यो रिपोलाई हेरौ +यो रिपोलाई हेरौ --- @@ -50,7 +50,7 @@ सुपबेस एक [होस्ट गरिएको प्लेटफर्म](https://app.supabase.com) हो। तपाई आफै साइन अप गर्न सक्नुहुन्छ र कुनै स्थापना बिना सुपबेस प्रयोग गर्न सक्नुहुन्छ। हामी अझै स्थानीय विकासको अनुभव सिर्जना गर्दैछौं। यो प्लेटफर्म स्थिरताको साथ हाम्रो मूल फोकस हो। -![आर्किटेक्चर](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![आर्किटेक्चर](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) एक वस्तु-रिलेशनल डाटाबेस प्रणाली हो जसले ३० बर्ष भन्दा बढी सक्रिय विकासको साथ विश्वसनीयता, सुविधा मजबूती र प्रदर्शनको बलियो प्रतिष्ठा कमाएको छ। - [Realtime](https://github.com/supabase/realtime) एक Elixer सर्भर हो जसले तपाइँलाई वेबसकेटहरू प्रयोग गरेर PostgreSQL इन्सर्टहरू, अपडेटहरु, र डिलीटहरु सुन्न अनुमति दिन्छ। सुपबेसले पोष्टग्रेसको भित्र निर्मित प्रतिकृति कार्यक्षमता सुन्दछ, प्रतिकृति बाइट स्ट्रिमलाई JSON मा रूपान्तरण गर्दछ, र त्यसपछि JSON लाई वेबसकेटमा प्रसारण गर्दछ।। diff --git a/i18n/README.nl.md b/i18n/README.nl.md index 414afe00d83..7a9c1969086 100644 --- a/i18n/README.nl.md +++ b/i18n/README.nl.md @@ -38,7 +38,7 @@ Kijk voor de volledige documentatie op [supabase.com/docs](https://supabase.com/ Momenteel bevinden we ons in een publieke bèta. Bezoek de "releases" van deze repo om op de hoogte te blijven van de laatste updates. -Volg deze repo +Volg deze repo --- @@ -50,7 +50,7 @@ Supabase is een combinatie van open-source software. Wij bouwen de functionalite Supabase is een [aangeboden platform](https://app.supabase.com). Je kan een account openen en er meteen gebruik van maken. Je hoeft niets extra's te installeren. Momenteel werken we ook aan een manier om Supabase lokaal te kunnen draaien. Onze focus ligt dus op deze mogelijkheid en ook op het verbeteren van de stabliteit van het platform. -![Architectuur](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architectuur](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) is een object-relation database-systeem dat al meer dan 30 jaar ervaring achter zich heeft. Dankzij deze ervaring heeft het een sterke reputatie die bekend staat om betrouwbaarheid, robuustheid en snelheid. - [Realtime](https://github.com/supabase/realtime) is een Elixir-server die ervoor zorgt dat je kunt luisteren naar PostgreSQL _inserts_, _updates_ en _deletes_ met websockets. Supabase luistert naar de ingebouwde _replication_-mogelijkheden van Postgres, en zet de _replication byte_ stroom om in JSON. Daarna sturen we de JSON met een _broadcast_ over de websockets. diff --git a/i18n/README.pl.md b/i18n/README.pl.md index d0193904514..ed7243afe42 100644 --- a/i18n/README.pl.md +++ b/i18n/README.pl.md @@ -38,7 +38,7 @@ Po pełną dokumentację, odwiedź [supabase.com/docs](https://supabase.com/docs Jesteśmy aktualnie w fazie Publicznej Bety. Subskrybuj powiadomienia "releases" tego repozytorium aby dostawać powiadomienia o kluczowych aktualizacjach. -Watch this repo +Watch this repo --- @@ -50,7 +50,7 @@ Supabase jest połączeniem narzędzi open source. Budujemy funkcjonalności Fir Supabase jest [hostowaną platformą](https://app.supabase.com). Możesz się zarejestrować i zacząć używać Supabase bez potrzeby instalacji dodatkowych narzędzi. Cały czas tworzymy lokalne środowisko deweloperskie - jest to teraz nasz priorytet, razem ze stabilnością platformy. -![Architektura](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architektura](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) jest obiektowo-relacyjnym system baz danych z ponad 30 letnim aktywnym rozwojem dzięki któremu zyskał dobrą reputacje dzięki niezawodności, solidności funkcji i wydajności. - [Realtime](https://github.com/supabase/realtime) jest serwerem Elixir który umożliwia nasłuchiwanie na wsady PostgreSQL, aktualizacje, i usunięcia używając websocketów. Supabase nasłuchuje na budowane w Postgres' funkcje replikacji, konwertuje replikacje transmisji bitów do struktury JSON przez websockety. diff --git a/i18n/README.pt-br.md b/i18n/README.pt-br.md index 8b9d2e5e722..60ade35e05b 100644 --- a/i18n/README.pt-br.md +++ b/i18n/README.pt-br.md @@ -42,7 +42,7 @@ Para documentação completa, visite [supabase.com/docs](https://supabase.com/do Estamos atualmente na fase Beta Público. Siga as "entregas" (_releases_) deste repositório para receber uma notificação quando houver uma grande atualização (_major releases_). -Seguir este repositório +Seguir este repositório --- @@ -54,7 +54,7 @@ Supabase é uma combinação de ferramentas de código aberto. Nós estamos cons Supabase é uma [plataforma hospedada](https://app.supabase.com). Você pode se cadastrar e começar a usar Supabase sem instalar nada. Nós ainda estamos criando a experiência de trabalho local - esse é o nosso foco principal, junto com a estabilidade da plataforma. -![Arquitetura](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Arquitetura](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) é um banco objeto-relational com mais de 30 anos de desenvolvimento ativo que conquistou uma forte reputação por ser confiável, robusto e de ótimo desempenho. - [Tempo real](https://github.com/supabase/realtime) é um servidor Elixir que permite ouvir as inserções, atualizações e remoções (_inserts_, _updates_ e _deletes_) do PostgreSQL usando _websockets_. Supabase ouve as funcionalidades de replicação nativas do Postgres, converte os bytes de replicação em JSON, e propaga o JSON usando websockets. diff --git a/i18n/README.pt.md b/i18n/README.pt.md index e53c6214a40..eaa8daa63dc 100644 --- a/i18n/README.pt.md +++ b/i18n/README.pt.md @@ -38,7 +38,7 @@ Para ver a documentação completa, visite [supabase.com/docs](https://supabase. Estamos atualmente em Beta Público. Assista aos lançamentos deste repositório para ser notificado sobre as principais atualizações. -Watch this repo +Watch this repo --- @@ -50,7 +50,7 @@ Supabase é uma combinação de ferramentas de código aberto. Estamos a constru Supabase é uma [plataforma hospedada](https://app.supabase.com). Podes-te inscrever e começar a usar o Supabase sem instalar nada. Ainda estamos a criar a experiência de desenvolvimento local - esse é nosso foco atual, juntamente com a estabilidade da plataforma. -![Arquitetura](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Arquitetura](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) é um sistema de base de dados objeto-relacional com mais de 30 anos de desenvolvimento ativo que lhe rendeu uma forte reputação de confiabilidade, robustez de recursos e desempenho. - [Realtime](https://github.com/supabase/realtime) é um servidor Elixir que permite ouvir inserções, atualizações e exclusões PostgreSQL usando websockets. A Supabase escuta a funcionalidade de replicação embutida do Postgres, converte o fluxo de bytes de replicação em JSON e, de seguida, transmite o JSON através de websockets. diff --git a/i18n/README.ro.md b/i18n/README.ro.md index 66f121a54ad..86ba0c59e90 100644 --- a/i18n/README.ro.md +++ b/i18n/README.ro.md @@ -38,7 +38,7 @@ Pentru documentația completă vizitați [supabase.com/docs](https://supabase.co La ora actuală ne aflăm în Beta public. Urmăriți „lansările” acestui repository pentru a putea fi notificat la actualizările majore. -Urmăriți acest repository +Urmăriți acest repository --- @@ -50,7 +50,7 @@ Supabase este o combinație de unelte open source. Construim trăsăturile din F Supabase este o [platformă găzduită](https://app.supabase.com). Puteți să vă înscrieți și să începeți să folosiți Supabase fără a instala orice. Experiența de developare locală încă mai este în dezvoltare, acesta fiind lucrul la care ne concentrăm cel mai mult, împreună cu stabilitatea platformei. -![Arhitectură](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Arhitectură](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) este o bază de date de obiecte relațională cu peste 30 de ani de dezvoltare și o reputație pentru fiabilitate și performanță. - [Realtime](https://github.com/supabase/realtime) este un server Elixir care permite ascultarea inserțiilor, actualizărilor și ștergerilor bazei de date PostgreSQL prin intermediul websocket-urilor. Supabase ascultă funcționalitatea de replicare integrată PostgreSQL, convertește fluxul de octeți al replicării în JSON, apoi emite JSON-ul prin intermediul websocket-urilor. diff --git a/i18n/README.ru.md b/i18n/README.ru.md index dfdaa4d0601..238806b8b17 100644 --- a/i18n/README.ru.md +++ b/i18n/README.ru.md @@ -38,7 +38,7 @@ В настоящее время мы находимся в публичной бете. Следите за разделом "Releases" в этом репозитории, чтобы получать уведомления об основных обновлениях. -Watch this repo +Watch this repo --- @@ -50,7 +50,7 @@ Supabase - это сочетание инструментов с открыты Supabase – это [облачная платформа](https://app.supabase.com). Вы можете зарегистрироваться и начать использовать Supabase, ничего не устанавливая. Мы продолжаем улучшать удобство локальной разработки - сейчас это наш основной фокус, наряду со стабильностью платформы. -![Архитектура](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Архитектура](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) – это объектно-реляционная система баз данных с более чем 30 годами активной разработки, которая завоевала прочную репутацию благодаря надежности, устойчивости функциональности и производительности. - [Realtime](https://github.com/supabase/realtime) – это сервер, написанный на Elixir, который позволяет cледить за вставками, обновлениями и удалениями в базе PostgreSQL с помощью веб-сокета. Supabase использует встроенную функциональность репликации Postgres, преобразует поток байтов репликации в JSON, а затем передает JSON через веб-сокеты. diff --git a/i18n/README.si.md b/i18n/README.si.md index 83885ba694c..469a826d68e 100644 --- a/i18n/README.si.md +++ b/i18n/README.si.md @@ -38,7 +38,7 @@ අප දැනට පොදු beta තත්වයේ සිටින්නෙ. ප්‍රධාන නිකුත්කිරීම් හා දැනුවත් වීම් සඳහා "releases" පිළිබඳව අවධානයෙන් සිටින්න. -Watch this repo +Watch this repo --- @@ -50,7 +50,7 @@ Supabase යනු විවෘත පරිශීලක උපාංග කි Supabase යනු [hosted platform](https://app.supabase.com) එකකි.ඔබට දැන් සම්බන්ධ වී කිසිම දෙයක් install නොකර Supabase භාවිත කල හැකිය.අප තවමත් local development අත්දැකීම සාදමින් සිටියි- මෙය තමයි අපේ දැනට ප්‍රධාන අරමුණ,platform එකේ ස්ථාවර බව සමඟ. -![Architecture](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architecture](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) යනු අවුරුදු 30 වඩා කාලයක් ක්‍රියාත්මක වෙමින් පවතින object-relational database system එකක් වන අතර එය විශ්වාසනීයත්වයට,ක්‍රියාකාරීත්වයට හා feature robustness බවට කීර්තියක් අත්පත්කරගෙන සිටියි - [Realtime](https://github.com/supabase/realtime) is an Elixir server that allows you to listen to PostgreSQL inserts, updates, and deletes using websockets. Supabase listens to Postgres' built-in replication functionality, converts the replication byte stream into JSON, then broadcasts the JSON over websockets. diff --git a/i18n/README.sq.md b/i18n/README.sq.md index 8478a4396ab..0068642b5bf 100644 --- a/i18n/README.sq.md +++ b/i18n/README.sq.md @@ -38,7 +38,7 @@ Për dokumentimin e plotë, vizitoni [supabase.com/docs](https://supabase.com/do Ne për momentin jemi në testimin Beta Publike. Vëzhgo "publikimet" e këtij depos për tu njoftuar për azhurnimet kryesore. -Vëzhgo këtë depo +Vëzhgo këtë depo --- @@ -50,7 +50,7 @@ Supabase është një kombinim i mjeteve që janë projekte të hapura (open sou Supabase është një [platform hostimi](https://app.supabase.com). Ti mundesh të regjistrohesh dhe të fillosh ta përdorish Supabase duke mos instaluar asgjë. Poashtu ne jemi duke punuar për ta ndërtuar eksperiencën për zhvillim lokal, por kjo nuk është fokusi ynë kryesorë dhe thelbësor, së bashku me stabilitetin e platformës. -![Arkitektura](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Arkitektura](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) është një objekt-relacional i databasës si sistem me më shumë se 30 vite zhvillim aktiv e cila ka fituar një reputacion të fortë për besueshmërinë, karakteristikë të qëndrueshmërisë ,dhe performancë. - [Realtime](https://github.com/supabase/realtime) është një Elixir server që lejon të dëgjosh për insertime, fshirje dhe përdisime në databasën PostgreSQL duke përdorur websockets. Supabase dëgjon në Postgres' funksionaliteti i replikimit i integruar, ajo kthen rrjedhjen e bajteve të replikimit, pastaj transmeton JSON mbi/në websockets. diff --git a/i18n/README.sr.md b/i18n/README.sr.md new file mode 100644 index 00000000000..0a2c541cee7 --- /dev/null +++ b/i18n/README.sr.md @@ -0,0 +1,206 @@ +

+ + +

+ +--- + +# Supabase + +[Supabase](https://supabase.com) je open source Firebase alternativa. Mi razvijamo funkcionalnosti Firebase-a koristeći profesionalne open source alate. + +- [x] Hostovana Postgres Baza. [Dokumentacija](https://supabase.com/docs/guides/database) +- [x] Autentifikacija i Autorizacija. [Dokumentacija](https://supabase.com/docs/guides/auth) +- [x] Auto-generisani API-ji. + - [x] REST. [Dokumentacija](https://supabase.com/docs/guides/api#rest-api) + - [x] Subskripcije u realnom vremenu. [Dokumentacija](https://supabase.com/docs/guides/api#realtime-api) + - [x] GraphQL (Beta). [Dokumentacija](https://supabase.com/docs/guides/api#graphql-api) +- [x] Funkcije. + - [x] Funkcije u bazi. [Dokumentacija](https://supabase.com/docs/guides/database/functions) + - [x] Edge Funkcije [Dokumentacija](https://supabase.com/docs/guides/functions) +- [x] Skladištenje fajlova. [Dokumentacija](https://supabase.com/docs/guides/storage) +- [x] Kontrolna tabla + +![Supabase kontrolna tabla](https://raw.githubusercontent.com/supabase/supabase/master/apps/www/public/images/github/supabase-dashboard.png) + +## Dokumentacija + +Za punu dokumentaciju, posetite [supabase.com/docs](https://supabase.com/docs) + +Da vidite kako možete doprineti razvoju, posetite [Getting Started](./DEVELOPERS.md) + +## Zajednica & Podrška + +- [Forum zajednice](https://github.com/supabase/supabase/discussions). Najbolje mesto za: pomoć u razvijanju, diskusije o najboljim praksama u vezi baze. +- [GitHub Issues](https://github.com/supabase/supabase/issues). Najbolje mesto za: bagove i greške sa kojima se susretnete tokom korišćenja Supabase. +- [Email Podrška](https://supabase.com/docs/support#business-support). Najbolje mesto za: probleme sa vašom bazom ili infrastrukturom. +- [Discord](https://discord.supabase.com). Najbolje mesto za: deljenje vaših aplikacija i druženje sa zajednicom. + +## Status + +- [x] Alfa: Testiramo Supabase sa zatvorenim setom klijenata +- [x] Javna Alfa: Bilo ko može da se prijavi na [app.supabase.com](https://app.supabase.com). Ali ne budite grubi, biće nekih poteškoća +- [x] Javna Beta: Dovoljno stabilno za većinu ne-enterprise projekata +- [ ] Objavljeno: spremno za produkciju + +Trenutno smo u javnoj beti. Pratite "releasove" ovog repozitorijuma da bi ste ostali u toku sa bitnim objavama. + +Pratite ovaj repo + +--- + +## Kako radi + +Supabase je kombinacija open source alata. Razvijamo funkcionalnosti Firebase-a koristeći profesionalne open source projekte. Ako već postoje alati i zajednice, sa MIT, Apache 2 ili ekvivalentnim otvorenim licencama, koristićemo i podržati taj alat. Ako alat ne postoji, mi ga razvijamo i open sourcujemo sami. Supabase nije 1-na-1 mapiranje Firebase-a. Naš cilj je da pružimo developerima iskustvo u razvoju slično kao Firebase koristeći open source alate. + +**Arhitektura** + +Supabase je [hostovana platforma](https://app.supabase.com). Možete se prijaviti i početi sa korišćenjem Supabase-a bez instaliranja bilo čega. +Takođe možete da [hostujete sami](https://supabase.com/docs/guides/hosting/overview) i da [razvijate u lokalu](https://supabase.com/docs/guides/local-development). + +![Arhitektura](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) + +- [PostgreSQL](https://www.postgresql.org/) je sistem objektno-relacione baze sa preko 30 godina aktivnog razvoja čime je zaslužio jaku reputaciju za pouzdanost, robustnost funkcionalnosti i performanse. +- [Realtime](https://github.com/supabase/realtime) je Elixir server koji vam omogućava da slušate PostgreSQL inserte, updateove, i brisanja koristeći websokete. Realtime polluje Postgres-ovu ugrađenu funkcionalnost replikacije za promene nad bazom, konvertuje promene u JSON, zatim broadcastuje taj JSON kroz websoket autorizovanim klijentima. +- [PostgREST](http://postgrest.org/) je web server koji pretvara vašu PostgreSQL bazu direktno u RESTful API +- [Storage](https://github.com/supabase/storage-api) daje RESTful interfejs za upravljanje fajlovima sačuvanim na S3, koristeći Postgres za upravljanje permisijama. +- [postgres-meta](https://github.com/supabase/postgres-meta) je RESTful API za upravljanje vašom Postgres isntancom, omogućavajući vam da dohvatite tabele, dodate role, izvršavate upite, itd. +- [GoTrue](https://github.com/netlify/gotrue) je SWT baziran API za upravljanje korisnicima i izdavanje SWT tokena. +- [Kong](https://github.com/Kong/kong) je cloud-nativan API gateway. + +#### Klijentske biblioteke + +Naš pristup klijentskim bibliotekama je modularan. Svaka pod-biblioteka je samostalna implementacija za jedan eksterni sistem. Ovo je jedan od načina na koji podržavamo postojeće alate. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
JezikKlijentFunkcionalni klijenti (spakovani u Supabase klijenta)
SupabasePostgRESTGoTrueRealtimeStorageFunctions
⚡️ Oficijelni ⚡️
JavaScript (TypeScript)supabase-jspostgrest-jsgotrue-jsrealtime-jsstorage-jsfunctions-js
💚 Od zajednice 💚
C#supabase-csharppostgrest-csharpgotrue-csharprealtime-csharpstorage-csharpfunctions-csharp
Dart (Flutter)supabase-dartpostgrest-dartgotrue-dartrealtime-dartstorage-dartfunctions-dart
Go-postgrest-go--storage-go-
Java--gotrue-java---
Kotlin-postgrest-ktgotrue-kt---
Pythonsupabase-pypostgrest-pygotrue-pyrealtime-pystorage-pyfunctions-py
Rubysupabase-rbpostgrest-rb----
Rust-postgrest-rs----
Swiftsupabase-swiftpostgrest-swiftgotrue-swiftrealtime-swiftstorage-swift-
+ + + + +## Prevodi + +- [Lista prevoda](/i18n/languages.md) + +--- + +## Sponzori + +[![Novi sponzor](https://user-images.githubusercontent.com/10214025/90518111-e74bbb00-e198-11ea-8f88-c9e3c1aa4b5b.png)](https://github.com/sponsors/supabase) diff --git a/i18n/README.sv.md b/i18n/README.sv.md index 2066f3cdabc..2633143d9fa 100644 --- a/i18n/README.sv.md +++ b/i18n/README.sv.md @@ -38,7 +38,7 @@ För fullständig dokumentation, besök [supabase.com/docs](https://supabase.com Vi är för närvarande i offentlig beta. Bevaka "releases" i detta repo för att få notifikationer vid större uppdateringar. -Bevaka detta repo +Bevaka detta repo --- @@ -50,7 +50,7 @@ Supabase är en samling verktyg med öppen källkod. Vi bygger funktionerna som Supabase är en [hostad plattform](https://app.supabase.com). Du kan registrera dig och börja använda Supabase utan att installera någonting. Vi håller fortfarande på att förbättra den lokala utvecklarupplevelsen - detta är för närvarande vårt huvudfokus, tillsammans med plattformens övergripande stabilitet. -![Arkitektur](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Arkitektur](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) är en objektrelationsdatabas med över 30 års aktiv utveckling , vilket har gett den ett gott rykte som pålitlig, robust och högpresterande. - [Realtime](https://github.com/supabase/realtime) är en Elexir-server som låter dig lyssna på skapande, uppdateringar och borttagningar i PostgreSQL med hjälp av websockets. Supabase lyssnar på PostgreSQL´s inbyggda replikeringsfunktionalitet, konverterar replikerings-byte-strömmen till JSON och sänder sedan JSON via websockets. diff --git a/i18n/README.ta.md b/i18n/README.ta.md index 895c3b8d3cc..02966517cc3 100644 --- a/i18n/README.ta.md +++ b/i18n/README.ta.md @@ -45,7 +45,7 @@ நாங்கள் தற்போது பொது பீட்டாவில் இருக்கிறோம். முக்கிய துப்பிப்புகளைப் பற்றி அறிவிக்க இந்த ரெப்போவின் "வெளியீடுகளைப்" பாருங்கள். -இந்த ரெப்போவைப் பாருங்கள் +இந்த ரெப்போவைப் பாருங்கள் --- @@ -58,7 +58,7 @@ சுபாபேஸ் ஒரு [ஹோஸ்ட் செய்யப்பட்ட தளம்](https://app.supabase.com). எதையும் நிறுவாமல் நீங்கள் பதிவுசெய்து Supabase ஐப் பயன்படுத்தத் தொடங்கலாம். நீங்கள் [சுய ஹோஸ்ட்](https://supabase.com/docs/guides/hosting/overview) மற்றும் [உள்நாட்டில் உருவாக்க](https://supabase.com/docs/guides/local-development) ஆகியவற்றையும் செய்யலாம். -![கட்டிடக்கலை](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![கட்டிடக்கலை](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [பூஸ்ட்ஜீஆர்இஎஸ்கியூஎல்](https://www.postgresql.org/) என்பது 30 ஆண்டுகளுக்கும் மேலான செயலில் உள்ள வளர்ச்சியுடன் கூடிய ஒரு பொருள்-தொடர்புடைய தரவுத்தள அமைப்பாகும், இது நம்பகத்தன்மை, அம்ச உறுதிப்பாடு மற்றும் செயல்திறனுக்கான வலுவான நற்பெயரைப் பெற்றுள்ளது. - [நிகழ்நேரம்](https://github.com/supabase/realtime) என்பது ஒரு எலிக்சர் சேவையகமாகும், இது வெப்சாக்கெட்டுகளைப் பயன்படுத்தி பூஸ்ட்ஜீஆர்இஎஸ்கியூஎல் செருகல்கள், புதுப்பிப்புகள் மற்றும் நீக்குதல்களைக் கேட்க உங்களை அனுமதிக்கிறது. நிகழ்நேர கருத்துக் கணிப்புகள் தரவுத்தள மாற்றங்களுக்கான போஸ்ட்கிரஸின் உள்ளமைக்கப்பட்ட பிரதிபலிப்பு செயல்பாடு, ஜே.எஸ்.ஆனுக்கு மாற்றங்களை மாற்றுகிறது, பின்னர் அங்கீகரிக்கப்பட்ட வாடிக்கையாளர்களுக்கு வெப்சாக்கெட்டுகள் மூலம் ஜே.எஸ்.என் ஐ ஒளிபரப்புகிறது. diff --git a/i18n/README.th.md b/i18n/README.th.md index 5e8d97f41fb..6c92a9fe38f 100644 --- a/i18n/README.th.md +++ b/i18n/README.th.md @@ -38,7 +38,7 @@ ขณะนี้เรากำลังอยู่ในช่วง Public Beta คุณสามารถกด Watch releases เพื่อรับการแจ้งเตือนเกี่ยวกับอัพเดตครั้งสำคัญ (Major updates) -Watch this repo +Watch this repo --- @@ -50,7 +50,7 @@ Supabase สร้างขึ้นมาจากการรวมกัน Supabase เป็น [hosted platform](https://app.supabase.com). คุณสามารถลงทะเบียนและเริ่มใช้งาน Supabase ได้เลยโดยไม่ต้องติดตั้งอะไรเพิ่มเติม นอกเหนือไปจากนั้นเรากำลังพัฒนาระบบเพื่อการพัฒนาเว็บบน local (local development experience) ที่เป็นจุดมุ่งหมายของเราในตอนนี้ รวมถึงความมั่นคงของระบบ -![สถาปัตยกรรม](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![สถาปัตยกรรม](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) เป็นระบบฐานข้อมูลแบบ object-relational ที่ถูกพัฒนาอย่างต่อเนื่องมากว่า 30 ปี และเป็นที่ยอมรับในเรื่องของเสถียรภาพ ความมั่นคง และประสิทธิภาพ - [Realtime](https://github.com/supabase/realtime) เป็นเซิร์ฟเวอร์ที่พัฒนาขึ้นด้วย Elixir ที่ทำหน้าที่ตรวจจับเมื่อมีการเปลี่ยนแปลงของข้อมูล (ทั้งการ insert, update และ delete) ใน Postgres ด้วย websockets. Supabase คอยตรวจจับเมื่อ Postgres มีการทำซ้ำ (replication) ทำการแปลงข้อมูลเป็น JSON และกระจายข้อมูลผ่าน websockets diff --git a/i18n/README.tr.md b/i18n/README.tr.md index e37df9f7e7b..f21c715b504 100644 --- a/i18n/README.tr.md +++ b/i18n/README.tr.md @@ -39,7 +39,7 @@ Tam dokümantasyon için, ziyaret et [supabase.com/docs](https://supabase.com/do Şu anda Herkese Açık Beta sürümündeyiz. Önemli güncellemelerden haberdar olmak için bu deponun "sürümlerini" izleyin. -Watch this repo +Watch this repo --- @@ -51,7 +51,7 @@ Supabase, açık kaynaklı araçların bir kombinasyonudur. Firebase'in özellik Supabase [barındırılan bir platformdur](https://app.supabase.com). Hiçbir şey yüklemeden Supabase'e kaydolabilir ve kullanmaya başlayabilirsiniz. Hala yerel geliştirme deneyimini yaratıyoruz - bu, artık platform kararlılığı ile birlikte temel odak noktamız. -![Architecture](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architecture](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) güvenilirlik, özellik sağlamlığı ve performans açısından güçlü bir üne kavuşan 30 yılı aşkın aktif geliştirmeye sahip bir nesne ilişkisel veritabanı sistemidir. - [Realtime](https://github.com/supabase/realtime) Web soketleri kullanarak PostgreSQL eklerini, güncellemelerini ve silmelerini dinlemenizi sağlayan bir Elixir sunucusudur. Supabase, Postgres'in yerleşik çoğaltma işlevini dinler, çoğaltma bayt akışını JSON'a dönüştürür ve ardından JSON'yi web yuvaları üzerinden yayınlar. diff --git a/i18n/README.uk.md b/i18n/README.uk.md index 6fb362772b8..979b1ac60b0 100644 --- a/i18n/README.uk.md +++ b/i18n/README.uk.md @@ -38,7 +38,7 @@ Наразі, ми знаходимося в публічній беті. Слідкуйте за розділом “релізи” в цьому репозитарії, щоб бути в курсі основних оновлень. -Watch this repo +Watch this repo --- @@ -50,7 +50,7 @@ Supabase – це поєднання відкритого програмного Supabase – це [хмарна платформа](https://app.supabase.com). Ви можете зареєструватися і почати використовувати її, нічого не встановлюючи. Ми досі продовжуємо покращувати зручність локальної розробки – це наш основний пріоритет, одночасно зі стабільністю платформи. -![Architecture](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Architecture](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) – це об'єктно-реляційна система керування базами даних з більш ніж 30 роками активної розробки, котра завоювали міцну репутацію завдяки надійності та продуктивності. - [Realtime](https://github.com/supabase/realtime) являє собою Elixir сервер який дозволяє слухати зміни в PostgreSQL за допомогою веб-сокетів. Supabase використовує вбудований функціонал реплікації Postgres, перетворюючи бінарний протокол реплікації в JSON та передаючи по веб-сокетам. diff --git a/i18n/README.vi-vn.md b/i18n/README.vi-vn.md index 210b3bcb1a6..2e42d0bef03 100644 --- a/i18n/README.vi-vn.md +++ b/i18n/README.vi-vn.md @@ -45,7 +45,7 @@ Chúng tôi hiện đang ở giai đoạn Public Beta. Hãy đón xem mục "releases" của repo này để nhận thông báo về các bản cập nhật lớn. -Đón xem repo này +Đón xem repo này --- @@ -58,7 +58,7 @@ Supabase là sự kết hợp của các công cụ mã nguồn mở. Các tính Supabase là một [nền tảng lưu trữ cơ sở dữ liệu](https://app.supabase.com). Bạn có thể đăng ký và bắt đầu sử dụng Supabase mà không cần cài đặt bất kỳ thứ gì. Bạn cũng có thể [tự quản lý](https://supabase.com/docs/guides/hosting/overview) và [phát triển cục bộ](https://supabase.com/docs/guides/local-development). -![Kiến trúc](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![Kiến trúc](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) là một hệ thống cơ sở dữ liệu quan hệ đối tượng với hơn 30 năm phát triển tích cực, do đó có danh tiếng mạnh mẽ về độ tin cậy, tính năng mạnh mẽ và hiệu suất. - [Realtime](https://github.com/supabase/realtime) là một máy chủ Elixir cho phép bạn lắng nghe các lệnh chèn, cập nhật và xóa của PostgreSQL bằng cách sử dụng websockets. Supabase lắng nghe chức năng sao chép có sẵn của Postgres, chuyển đổi luồng byte sao chép thành JSON, sau đó phát JSON qua các cổng websockets được uỷ quyền. diff --git a/i18n/README.zh-cn.md b/i18n/README.zh-cn.md index ab22a678271..4c975b58e7b 100644 --- a/i18n/README.zh-cn.md +++ b/i18n/README.zh-cn.md @@ -45,7 +45,7 @@ 我们目前正处于 Public Beta 阶段。关注这个存储库的 "Releases" 以获得关于重大更新的通知。 -关注这个存储库 +关注这个存储库 --- @@ -58,7 +58,7 @@ Supabase 是一个开源工具的组合。我们正在使用企业级的开源 Supabase 是一个[托管平台](https://app.supabase.com)。你可以注册并开始使用 Supabase,而无需安装任何软件。 你也可以[自托管](https://supabase.com/docs/guides/hosting/overview)和[本地开发](https://supabase.com/docs/guides/local-development)。 -![架构](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![架构](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) 是一个对象关系型数据库系统,经过 30 多年的积极开发,它在可靠性、功能健壮性和性能方面赢得了很好的声誉。 - [Realtime](https://github.com/supabase/realtime) 是一个 Elixir 服务器,允许你使用 WebSocket 监听 PostgreSQL 的插入、更新和删除。Supabase 监听 Postgres 的内置复制功能,将复制的字节流转换为 JSON,然后通过 WebSocket 广播 JSON。 diff --git a/i18n/README.zh-tw.md b/i18n/README.zh-tw.md index c2f3bf679ec..4b0f1824951 100644 --- a/i18n/README.zh-tw.md +++ b/i18n/README.zh-tw.md @@ -38,7 +38,7 @@ 我們現在是公開 Beta。追蹤 "Releases" 就可以收到此 Repo 的主要更新通知。 -Watch this repo +Watch this repo --- @@ -50,7 +50,7 @@ Supabase 是一套開放原始碼工具的組合包。我們以企業等級的 Supabase 是[託管平台](https://app.supabase.com)。只要註冊,不必安裝任何東西,就可以開始使用 Supabase。目前還在打造本地端開發體驗:連同平台的穩定度,這是我們專注的核心。 -![架構](https://supabase.com/docs/assets/images/supabase-architecture-9050a7317e9ec7efb7807f5194122e48.png) +![架構](https://user-images.githubusercontent.com/70828596/187547862-ffa9d058-0c3a-4851-a3e7-92ccfca4b596.png) - [PostgreSQL](https://www.postgresql.org/) 是經歷 30 年活躍開發的關聯物件資料庫系統,因此擁有可靠度、功能細緻度與效能著稱。 - [Realtime](https://github.com/supabase/realtime) 是利用 Websocket 監聽 PostgreSQL 的 insert、update 和 delete 的 Elixir 伺服器。Supabase 監聽 Postgres 內建的複寫 (Replication) 功能,將複寫的 byte stream 轉換為 JSON 格式,接著透過 Websocket 將 JSON 進行廣播。 diff --git a/i18n/languages.md b/i18n/languages.md index 4efbb0e398a..c3d55c57cf9 100644 --- a/i18n/languages.md +++ b/i18n/languages.md @@ -3,10 +3,12 @@ - [Arabic | العربية](/i18n/README.ar.md) - [Albanian / Shqip](/i18n/README.sq.md) - [Bangla / বাংলা](/i18n/README.bn.md) +- [Bulgarian / Български](/i18n/README.bg.md) - [Catalan / Català](/i18n/README.ca.md) - [Danish / Dansk](/i18n/README.da.md) - [Dutch / Nederlands](/i18n/README.nl.md) - [English](https://github.com/supabase/supabase) +- [Finnish / Suomalainen](/i18n/README.fi.md) - [French / Français](/i18n/README.fr.md) - [German / Deutsch](/i18n/README.de.md) - [Greek / Ελληνικά](/i18n/README.gr.md) @@ -28,6 +30,7 @@ - [Portuguese (Brazilian) / Português Brasileiro](/i18n/README.pt-br.md) - [Romanian / Română](/i18n/README.ro.md) - [Russian / Pусский](/i18n/README.ru.md) +- [Serbian / Srpski](/i18n/README.sr.md) - [Sinhala / සිංහල](/i18n/README.si.md) - [Spanish / Español](/i18n/README.es.md) - [Simplified Chinese / 简体中文](/i18n/README.zh-cn.md) diff --git a/package-lock.json b/package-lock.json index c8647037a4e..5b37349e44c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,9 @@ "version": "0.0.0", "license": "Apache-2.0", "workspaces": [ - "apps/temp-community-forum", - "apps/temp-community-tutorials", - "apps/temp-docs", "apps/www", + "studio", + "tests", "packages/*" ], "dependencies": { @@ -21,1284 +20,17 @@ "mini-svg-data-uri": "^1.4.4" }, "devDependencies": { - "@babel/core": "^7.16.0", - "@babel/preset-env": "^7.16.4", - "@babel/preset-typescript": "^7.16.0", - "@supabase/supabase-js": "^1.35.3", - "@types/jest": "^27.0.3", - "@types/node": "^14.14.14", - "autoprefixer": "^10.4.4", - "axios": "^0.24.0", - "babel-jest": "^27.3.1", - "dotenv": "^10.0.0", - "faker": "^5.5.3", - "jest": "^27.3.1", - "postcss": "^8.4.12", - "prettier": "^2.6.2", - "prettier-plugin-tailwindcss": "^0.1.8", - "tailwindcss": "^3.0.24", + "eslint": "^7.32.0", + "eslint-config-custom": "*", + "prettier": "^2.5.1", "ts-jest": "^27.0.7", - "ts-node": "^9.1.1", - "turbo": "latest", - "typescript": "^4.5.2" + "turbo": "1.4.7" }, "engines": { "node": ">=14.0.0", "npm": ">=7.0.0" } }, - "apps/reference": { - "name": "reference-docs", - "version": "0.0.0", - "extraneous": true, - "dependencies": { - "@docusaurus/core": "^2.0.1", - "@docusaurus/preset-classic": "^2.0.1", - "@kiwicopple/prism-react-renderer": "github:kiwicopple/prism-react-renderer", - "@mdx-js/react": "^1.6.22", - "clsx": "^1.2.1", - "docusaurus-plugin-sass": "^0.2.2", - "docusaurus-theme-search-typesense": "^0.5.3", - "jsrsasign": "^10.5.26", - "octokit": "^2.0.5", - "prism-react-renderer": "^1.3.5", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "sass": "^1.54.4" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "2.0.0-rc.1" - }, - "engines": { - "node": ">=16.14" - } - }, - "apps/temp-community-forum": { - "name": "forum", - "version": "0.0.0", - "dependencies": { - "@octokit/graphql": "^4.8.0", - "common": "*", - "next": "12.0.8", - "react": "17.0.2", - "react-dom": "17.0.2" - }, - "devDependencies": { - "@types/node": "^17.0.12", - "@types/react": "17.0.37", - "config": "*", - "eslint": "7.32.0", - "next-transpile-modules": "9.0.0", - "tsconfig": "*", - "typescript": "^4.5.3" - } - }, - "apps/temp-community-forum/node_modules/@babel/code-frame": { - "version": "7.12.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "apps/temp-community-forum/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "apps/temp-community-forum/node_modules/@babel/types": { - "version": "7.15.0", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "apps/temp-community-forum/node_modules/@types/node": { - "version": "17.0.27", - "license": "MIT" - }, - "apps/temp-community-forum/node_modules/@types/react": { - "version": "17.0.37", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "apps/temp-community-forum/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "apps/temp-community-forum/node_modules/colorette": { - "version": "1.4.0", - "license": "MIT" - }, - "apps/temp-community-forum/node_modules/convert-source-map": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "apps/temp-community-forum/node_modules/emojis-list": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "apps/temp-community-forum/node_modules/eslint": { - "version": "7.32.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "apps/temp-community-forum/node_modules/jest-worker": { - "version": "27.0.0-next.5", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", - "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "apps/temp-community-forum/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "apps/temp-community-forum/node_modules/json5": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "apps/temp-community-forum/node_modules/loader-utils": { - "version": "1.2.3", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "apps/temp-community-forum/node_modules/next": { - "version": "12.0.8", - "license": "MIT", - "dependencies": { - "@next/env": "12.0.8", - "@next/react-refresh-utils": "12.0.8", - "caniuse-lite": "^1.0.30001283", - "jest-worker": "27.0.0-next.5", - "node-fetch": "2.6.1", - "postcss": "8.2.15", - "react-is": "17.0.2", - "react-refresh": "0.8.3", - "stream-browserify": "3.0.0", - "styled-jsx": "5.0.0-beta.6", - "use-subscription": "1.5.1" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=12.22.0" - }, - "optionalDependencies": { - "@next/swc-android-arm64": "12.0.8", - "@next/swc-darwin-arm64": "12.0.8", - "@next/swc-darwin-x64": "12.0.8", - "@next/swc-linux-arm-gnueabihf": "12.0.8", - "@next/swc-linux-arm64-gnu": "12.0.8", - "@next/swc-linux-arm64-musl": "12.0.8", - "@next/swc-linux-x64-gnu": "12.0.8", - "@next/swc-linux-x64-musl": "12.0.8", - "@next/swc-win32-arm64-msvc": "12.0.8", - "@next/swc-win32-ia32-msvc": "12.0.8", - "@next/swc-win32-x64-msvc": "12.0.8" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0", - "react": "^17.0.2 || ^18.0.0-0", - "react-dom": "^17.0.2 || ^18.0.0-0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "apps/temp-community-forum/node_modules/next/node_modules/source-map": { - "version": "0.7.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "apps/temp-community-forum/node_modules/next/node_modules/styled-jsx": { - "version": "5.0.0-beta.6", - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-jsx": "7.14.5", - "@babel/types": "7.15.0", - "convert-source-map": "1.7.0", - "loader-utils": "1.2.3", - "source-map": "0.7.3", - "string-hash": "1.1.3", - "stylis": "3.5.4", - "stylis-rule-sheet": "0.0.10" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || 18.x.x" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - } - } - }, - "apps/temp-community-forum/node_modules/node-fetch": { - "version": "2.6.1", - "license": "MIT", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "apps/temp-community-forum/node_modules/postcss": { - "version": "8.2.15", - "license": "MIT", - "dependencies": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map": "^0.6.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "apps/temp-community-forum/node_modules/semver": { - "version": "7.3.7", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "apps/temp-community-tutorials": { - "name": "tutorials", - "version": "0.0.0", - "dependencies": { - "common": "*", - "next": "12.0.8", - "react": "17.0.2", - "react-dom": "17.0.2" - }, - "devDependencies": { - "@types/node": "^17.0.12", - "@types/react": "17.0.37", - "config": "*", - "eslint": "7.32.0", - "next-transpile-modules": "9.0.0", - "tsconfig": "*", - "typescript": "^4.5.3" - } - }, - "apps/temp-community-tutorials/node_modules/@babel/code-frame": { - "version": "7.12.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "apps/temp-community-tutorials/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "apps/temp-community-tutorials/node_modules/@babel/types": { - "version": "7.15.0", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "apps/temp-community-tutorials/node_modules/@types/node": { - "version": "17.0.27", - "license": "MIT" - }, - "apps/temp-community-tutorials/node_modules/@types/react": { - "version": "17.0.37", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "apps/temp-community-tutorials/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "apps/temp-community-tutorials/node_modules/colorette": { - "version": "1.4.0", - "license": "MIT" - }, - "apps/temp-community-tutorials/node_modules/convert-source-map": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "apps/temp-community-tutorials/node_modules/emojis-list": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "apps/temp-community-tutorials/node_modules/eslint": { - "version": "7.32.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "apps/temp-community-tutorials/node_modules/jest-worker": { - "version": "27.0.0-next.5", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", - "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "apps/temp-community-tutorials/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "apps/temp-community-tutorials/node_modules/json5": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "apps/temp-community-tutorials/node_modules/loader-utils": { - "version": "1.2.3", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "apps/temp-community-tutorials/node_modules/next": { - "version": "12.0.8", - "license": "MIT", - "dependencies": { - "@next/env": "12.0.8", - "@next/react-refresh-utils": "12.0.8", - "caniuse-lite": "^1.0.30001283", - "jest-worker": "27.0.0-next.5", - "node-fetch": "2.6.1", - "postcss": "8.2.15", - "react-is": "17.0.2", - "react-refresh": "0.8.3", - "stream-browserify": "3.0.0", - "styled-jsx": "5.0.0-beta.6", - "use-subscription": "1.5.1" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=12.22.0" - }, - "optionalDependencies": { - "@next/swc-android-arm64": "12.0.8", - "@next/swc-darwin-arm64": "12.0.8", - "@next/swc-darwin-x64": "12.0.8", - "@next/swc-linux-arm-gnueabihf": "12.0.8", - "@next/swc-linux-arm64-gnu": "12.0.8", - "@next/swc-linux-arm64-musl": "12.0.8", - "@next/swc-linux-x64-gnu": "12.0.8", - "@next/swc-linux-x64-musl": "12.0.8", - "@next/swc-win32-arm64-msvc": "12.0.8", - "@next/swc-win32-ia32-msvc": "12.0.8", - "@next/swc-win32-x64-msvc": "12.0.8" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0", - "react": "^17.0.2 || ^18.0.0-0", - "react-dom": "^17.0.2 || ^18.0.0-0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "apps/temp-community-tutorials/node_modules/next/node_modules/source-map": { - "version": "0.7.3", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "apps/temp-community-tutorials/node_modules/next/node_modules/styled-jsx": { - "version": "5.0.0-beta.6", - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-jsx": "7.14.5", - "@babel/types": "7.15.0", - "convert-source-map": "1.7.0", - "loader-utils": "1.2.3", - "source-map": "0.7.3", - "string-hash": "1.1.3", - "stylis": "3.5.4", - "stylis-rule-sheet": "0.0.10" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || 18.x.x" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - } - } - }, - "apps/temp-community-tutorials/node_modules/node-fetch": { - "version": "2.6.1", - "license": "MIT", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "apps/temp-community-tutorials/node_modules/postcss": { - "version": "8.2.15", - "license": "MIT", - "dependencies": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map": "^0.6.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "apps/temp-community-tutorials/node_modules/semver": { - "version": "7.3.7", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "apps/temp-docs": { - "name": "docs", - "version": "0.0.0", - "dependencies": { - "@apollo/client": "^3.6.6", - "@mdx-js/loader": "^1.6.22", - "@mdx-js/react": "^1.6.22", - "@next/mdx": "^12.0.4", - "@supabase/ui": "v0.37.0-alpha.50", - "@tailwindcss/typography": "^0.4.1", - "common": "*", - "graphql": "^16.5.0", - "gray-matter": "^4.0.3", - "markdown-toc": "^1.2.0", - "next": "12.1.0", - "next-mdx-remote": "^3.0.8", - "next-themes": "0.0.15", - "react": "17.0.2", - "react-copy-to-clipboard": "^5.0.2", - "react-dom": "17.0.2", - "react-markdown": "^8.0.3", - "react-syntax-highlighter": "^15.3.1", - "remark": "^14.0.2", - "remark-html": "^15.0.0", - "remark-mdx": "^2.0.0-rc.2", - "remark-prism": "^1.3.6" - }, - "devDependencies": { - "@types/node": "^17.0.12", - "@types/react": "17.0.39", - "config": "*", - "eslint": "8.9.0", - "next-transpile-modules": "9.0.0", - "tsconfig": "*", - "typescript": "^4.5.3" - } - }, - "apps/temp-docs/node_modules/@mdx-js/react": { - "version": "1.6.22", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0" - } - }, - "apps/temp-docs/node_modules/@next/mdx": { - "version": "12.1.5", - "license": "MIT", - "peerDependencies": { - "@mdx-js/loader": ">=0.15.0", - "@mdx-js/react": "*" - } - }, - "apps/temp-docs/node_modules/@tailwindcss/typography": { - "version": "0.4.1", - "license": "MIT", - "dependencies": { - "lodash.castarray": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0" - }, - "peerDependencies": { - "tailwindcss": ">=2.0.0" - } - }, - "apps/temp-docs/node_modules/@types/node": { - "version": "17.0.27", - "dev": true, - "license": "MIT" - }, - "apps/temp-docs/node_modules/bail": { - "version": "2.0.2", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "apps/temp-docs/node_modules/ccount": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "apps/temp-docs/node_modules/character-entities-html4": { - "version": "2.1.0", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "apps/temp-docs/node_modules/character-entities-legacy": { - "version": "3.0.0", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "apps/temp-docs/node_modules/comma-separated-tokens": { - "version": "2.0.2", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "apps/temp-docs/node_modules/find-up": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "apps/temp-docs/node_modules/hast-util-is-element": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/hast-util-sanitize": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/hast-util-to-html": { - "version": "8.0.3", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-is-element": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "html-void-elements": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.2", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/html-void-elements": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "apps/temp-docs/node_modules/is-plain-obj": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "apps/temp-docs/node_modules/locate-path": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "apps/temp-docs/node_modules/longest-streak": { - "version": "3.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "apps/temp-docs/node_modules/mdast-util-definitions": { - "version": "5.1.0", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/mdast-util-definitions/node_modules/unist-util-visit": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents": { - "version": "4.1.1", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/mdast-util-to-hast": { - "version": "12.1.1", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/mdurl": "^1.0.0", - "mdast-util-definitions": "^5.0.0", - "mdurl": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "unist-builder": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/mdast-util-to-markdown": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/mdast-util-to-string": { - "version": "3.1.0", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/next-mdx-remote": { - "version": "3.0.8", - "license": "MPL-2.0", - "dependencies": { - "@mdx-js/mdx": "^1.6.22", - "@mdx-js/react": "^1.6.22", - "esbuild": "^0.12.9", - "pkg-dir": "^5.0.0" - }, - "peerDependencies": { - "react": ">=16.x <=17.x", - "react-dom": ">=16.x <=17.x" - } - }, - "apps/temp-docs/node_modules/p-limit": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "apps/temp-docs/node_modules/p-locate": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "apps/temp-docs/node_modules/pkg-dir": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "apps/temp-docs/node_modules/property-information": { - "version": "6.1.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "apps/temp-docs/node_modules/remark": { - "version": "14.0.2", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "remark-parse": "^10.0.0", - "remark-stringify": "^10.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/remark-html": { - "version": "15.0.1", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "hast-util-sanitize": "^4.0.0", - "hast-util-to-html": "^8.0.0", - "mdast-util-to-hast": "^12.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/remark-mdx": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^2.0.0", - "micromark-extension-mdxjs": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/remark-parse": { - "version": "10.0.1", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/remark-stringify": { - "version": "10.0.2", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/space-separated-tokens": { - "version": "2.0.1", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "apps/temp-docs/node_modules/stringify-entities": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "apps/temp-docs/node_modules/trough": { - "version": "2.1.0", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "apps/temp-docs/node_modules/unified": { - "version": "10.1.2", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/unist-builder": { - "version": "3.0.0", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/unist-util-generated": { - "version": "2.0.0", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/unist-util-is": { - "version": "5.1.1", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/unist-util-position": { - "version": "4.0.3", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/unist-util-stringify-position": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/unist-util-visit": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/unist-util-visit-parents": { - "version": "5.1.0", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/vfile": { - "version": "5.3.2", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/vfile-message": { - "version": "3.1.2", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "apps/temp-docs/node_modules/zwitch": { - "version": "2.0.2", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "apps/www": { "version": "0.0.3", "license": "MIT", @@ -1307,7 +39,8 @@ "@mdx-js/loader": "^1.6.22", "@mdx-js/react": "^1.6.22", "@next/mdx": "^10.0.7", - "@supabase/supabase-js": "^1.6.0", + "@supabase/auth-ui-react": "^0.1.6", + "@supabase/supabase-js": "^2.0.0", "@supabase/ui": "v0.37.0-alpha.80", "classnames": "^2.3.1", "date-fns": "2.10.0", @@ -1317,7 +50,7 @@ "markdown-toc": "^1.2.0", "marked": "^4.0.12", "next": "latest", - "next-mdx-remote": "^2.1.3", + "next-mdx-remote": "^4.1.0", "next-seo": "^4.20.0", "nodemailer": "^6.7.3", "parse-numeric-range": "^1.3.0", @@ -1325,14 +58,14 @@ "react-copy-to-clipboard": "^5.0.2", "react-dom": "^17.0.2", "react-ga": "^3.3.0", - "react-markdown": "^5.0.3", + "react-markdown": "^8.0.3", "react-syntax-highlighter": "^15.5.0", "react-tooltip": "^4.2.17", "react-transition-group": "^4.4.1", - "rehype-slug": "^4.0.1", + "rehype-slug": "^5.0.1", "remark": "^13.0.0", - "remark-gfm": "^1.0.0", - "remark-html": "10.0.0", + "remark-gfm": "^3.0.1", + "remark-html": "^15.0.1", "swiper": "^6.5.0", "swr": "^0.5.4", "typescript": "^4.0.3", @@ -1344,26 +77,26 @@ "@types/classnames": "^2.3.1", "@types/jest": "^25.2.2", "@types/marked": "^4.0.3", + "@types/mdx-js__react": "^1.5.5", "@types/node": "^14.0.1", "@types/nodemailer": "^6.4.4", "@types/parse-numeric-range": "^0.0.1", - "@types/react": "^16.9.35", + "@types/react": "17.0.11", "@types/react-copy-to-clipboard": "^4.3.0", - "@types/react-dom": "^16.9.8", + "@types/react-dom": "^17.0.11", "@types/react-syntax-highlighter": "^13.5.2", "autoprefixer": "^10.4.2", "file-loader": "^6.2.0", - "postcss": "^8.4.7", + "postcss": "^8.4.16", "postcss-preset-env": "^6.7.0", "prettier": "^2.2.1", - "tailwindcss": "^3.0.23" + "tailwindcss": "^3.1.8" } }, "apps/www/node_modules/@jest/types": { "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^1.1.1", @@ -1385,6 +118,14 @@ "react": "^16.13.1 || ^17.0.0" } }, + "apps/www/node_modules/@next/mdx": { + "version": "10.2.3", + "license": "MIT", + "peerDependencies": { + "@mdx-js/loader": ">=0.15.0", + "@mdx-js/react": "*" + } + }, "apps/www/node_modules/@supabase/ui": { "version": "0.37.0-alpha.80", "dependencies": { @@ -1418,6 +159,28 @@ "react-dom": "^16.13.1 || ^17.0.1" } }, + "apps/www/node_modules/@tailwindcss/typography": { + "version": "0.5.7", + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "apps/www/node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, "apps/www/node_modules/@types/jest": { "version": "25.2.3", "dev": true, @@ -1427,8 +190,13 @@ "pretty-format": "^25.2.1" } }, + "apps/www/node_modules/@types/node": { + "version": "14.18.31", + "dev": true, + "license": "MIT" + }, "apps/www/node_modules/@types/react": { - "version": "16.14.25", + "version": "17.0.11", "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -1436,11 +204,24 @@ "csstype": "^3.0.2" } }, + "apps/www/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "apps/www/node_modules/chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1449,50 +230,61 @@ "node": ">=8" } }, - "apps/www/node_modules/jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "apps/www/node_modules/color-convert": { + "version": "2.0.1", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 8.3" + "node": ">=7.0.0" } }, - "apps/www/node_modules/jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "apps/www/node_modules/color-name": { + "version": "1.1.4", "dev": true, + "license": "MIT" + }, + "apps/www/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 8.3" + "node": ">=8" } }, - "apps/www/node_modules/mdast-add-list-metadata": { - "version": "1.0.1", - "license": "MIT", + "apps/www/node_modules/next-mdx-remote": { + "version": "4.1.0", + "license": "MPL-2.0", "dependencies": { - "unist-util-visit-parents": "1.1.2" + "@mdx-js/mdx": "^2.0.0", + "@mdx-js/react": "^2.0.0", + "vfile": "^5.3.0", + "vfile-matter": "^3.0.1" + }, + "engines": { + "node": ">=14", + "npm": ">=7" + }, + "peerDependencies": { + "react": ">=16.x <=18.x", + "react-dom": ">=16.x <=18.x" } }, - "apps/www/node_modules/mdast-util-from-markdown": { - "version": "0.8.5", + "apps/www/node_modules/next-mdx-remote/node_modules/@mdx-js/react": { + "version": "2.1.4", "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "@types/mdx": "^2.0.0", + "@types/react": ">=16" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "react": ">=16" } }, "apps/www/node_modules/pretty-format": { @@ -1509,53 +301,33 @@ "node": ">= 8.3" } }, - "apps/www/node_modules/react-is": { - "version": "16.13.1", - "license": "MIT" - }, - "apps/www/node_modules/react-markdown": { - "version": "5.0.3", + "apps/www/node_modules/remark": { + "version": "13.0.0", "license": "MIT", "dependencies": { - "@types/mdast": "^3.0.3", - "@types/unist": "^2.0.3", - "html-to-react": "^1.3.4", - "mdast-add-list-metadata": "1.0.1", - "prop-types": "^15.7.2", - "react-is": "^16.8.6", "remark-parse": "^9.0.0", - "unified": "^9.0.0", - "unist-util-visit": "^2.0.0", - "xtend": "^4.0.1" + "remark-stringify": "^9.0.0", + "unified": "^9.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" } }, - "apps/www/node_modules/remark-parse": { - "version": "9.0.0", + "apps/www/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, "license": "MIT", "dependencies": { - "mdast-util-from-markdown": "^0.8.0" + "has-flag": "^4.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" } }, - "apps/www/node_modules/unist-util-visit-parents": { - "version": "1.1.2", - "license": "MIT" - }, "node_modules/@ampproject/remapping": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -1564,255 +336,9 @@ "node": ">=6.0.0" } }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz", - "integrity": "sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==", - "dev": true, - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "js-yaml": "^3.13.1" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-cli": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-cli/-/swagger-cli-4.0.4.tgz", - "integrity": "sha512-hdDT3B6GLVovCsRZYDi3+wMcB1HfetTU20l2DC8zD3iFRNMC6QNAZG5fo/6PYeHWBEv7ri4MvnlKodhNB0nt7g==", - "dev": true, - "dependencies": { - "@apidevtools/swagger-parser": "^10.0.1", - "chalk": "^4.1.0", - "js-yaml": "^3.14.0", - "yargs": "^15.4.1" - }, - "bin": { - "swagger-cli": "bin/swagger-cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-cli/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@apidevtools/swagger-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@apidevtools/swagger-cli/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/@apidevtools/swagger-cli/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/@apidevtools/swagger-cli/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@apidevtools/swagger-cli/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@apidevtools/swagger-cli/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/@apidevtools/swagger-cli/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@apidevtools/swagger-cli/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "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==", - "dev": true - }, - "node_modules/@apidevtools/swagger-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.0.tgz", - "integrity": "sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==", - "dev": true, - "dependencies": { - "@apidevtools/json-schema-ref-parser": "9.0.6", - "@apidevtools/openapi-schemas": "^2.1.0", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "ajv": "^8.6.3", - "ajv-draft-04": "^1.0.0", - "call-me-maybe": "^1.0.1" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "node_modules/@apidevtools/swagger-parser/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@apidevtools/swagger-parser/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==", - "dev": true, - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@apidevtools/swagger-parser/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==", - "dev": true - }, - "node_modules/@apollo/client": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.6.9.tgz", - "integrity": "sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "@wry/trie": "^0.3.0", - "graphql-tag": "^2.12.6", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.1", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.10.3", - "tslib": "^2.3.0", - "zen-observable-ts": "^1.2.5" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0", - "graphql-ws": "^5.5.5", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "subscriptions-transport-ws": "^0.9.0 || ^0.11.0" - }, - "peerDependenciesMeta": { - "graphql-ws": { - "optional": true - }, - "react": { - "optional": true - }, - "subscriptions-transport-ws": { - "optional": true - } - } - }, "node_modules/@babel/code-frame": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "license": "MIT", "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -1821,28 +347,26 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "version": "7.19.3", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", - "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "version": "7.19.3", + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.10", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.3", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1858,11 +382,10 @@ } }, "node_modules/@babel/generator": { - "version": "7.18.12", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", - "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", + "version": "7.19.3", + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.10", + "@babel/types": "^7.19.3", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -1872,8 +395,7 @@ }, "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1885,8 +407,8 @@ }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -1896,8 +418,8 @@ }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-explode-assignable-expression": "^7.18.6", "@babel/types": "^7.18.9" @@ -1907,13 +429,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "version": "7.19.3", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.18.8", + "@babel/compat-data": "^7.19.3", "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "engines": { @@ -1924,13 +445,13 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", - "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", + "version": "7.19.0", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-replace-supers": "^7.18.9", @@ -1944,9 +465,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", + "version": "7.19.0", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "regexpu-core": "^5.1.0" @@ -1959,9 +480,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", - "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", + "version": "0.3.3", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.17.7", "@babel/helper-plugin-utils": "^7.16.7", @@ -1976,16 +497,15 @@ }, "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-explode-assignable-expression": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -1994,12 +514,11 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "version": "7.19.0", + "license": "MIT", "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -2007,8 +526,7 @@ }, "node_modules/@babel/helper-hoist-variables": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -2018,8 +536,8 @@ }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.18.9" }, @@ -2029,8 +547,7 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -2039,18 +556,17 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "version": "7.19.0", + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -2058,8 +574,8 @@ }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -2068,17 +584,16 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "version": "7.19.0", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", @@ -2093,15 +608,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", - "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", + "version": "7.19.1", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -2109,8 +624,7 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -2120,8 +634,8 @@ }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.18.9" }, @@ -2131,8 +645,7 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "license": "MIT", "dependencies": { "@babel/types": "^7.18.6" }, @@ -2142,50 +655,46 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.19.1", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", - "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", + "version": "7.19.0", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.11", - "@babel/types": "^7.18.10" + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "version": "7.19.0", + "license": "MIT", "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -2193,8 +702,7 @@ }, "node_modules/@babel/highlight": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -2205,9 +713,8 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", - "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", + "version": "7.19.3", + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -2217,8 +724,8 @@ }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2231,8 +738,8 @@ }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", @@ -2246,12 +753,12 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", - "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", + "version": "7.19.1", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, @@ -2264,8 +771,8 @@ }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -2279,8 +786,8 @@ }, "node_modules/@babel/plugin-proposal-class-static-block": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6", @@ -2293,10 +800,28 @@ "@babel/core": "^7.12.0" } }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.19.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/plugin-syntax-decorators": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-dynamic-import": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" @@ -2308,10 +833,25 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-proposal-export-default-from": { + "version": "7.18.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-default-from": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-export-namespace-from": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -2325,8 +865,8 @@ }, "node_modules/@babel/plugin-proposal-json-strings": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -2340,8 +880,8 @@ }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -2355,8 +895,8 @@ }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -2370,8 +910,8 @@ }, "node_modules/@babel/plugin-proposal-numeric-separator": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -2385,8 +925,8 @@ }, "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.18.8", "@babel/helper-compilation-targets": "^7.18.9", @@ -2403,8 +943,8 @@ }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -2418,8 +958,8 @@ }, "node_modules/@babel/plugin-proposal-optional-chaining": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", @@ -2434,8 +974,8 @@ }, "node_modules/@babel/plugin-proposal-private-methods": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -2449,8 +989,8 @@ }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-create-class-features-plugin": "^7.18.6", @@ -2466,8 +1006,8 @@ }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -2481,8 +1021,8 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2492,9 +1032,8 @@ }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2504,8 +1043,8 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -2515,8 +1054,8 @@ }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -2527,10 +1066,24 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2538,10 +1091,24 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-export-default-from": { + "version": "7.18.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, @@ -2549,10 +1116,24 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.18.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2565,9 +1146,8 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2577,8 +1157,8 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2588,8 +1168,8 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2602,8 +1182,8 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2613,8 +1193,8 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2624,8 +1204,8 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2635,8 +1215,7 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2646,8 +1225,8 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2657,8 +1236,8 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2668,8 +1247,8 @@ }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -2682,8 +1261,8 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -2696,8 +1275,8 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2710,8 +1289,8 @@ }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2724,8 +1303,8 @@ }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6", @@ -2740,8 +1319,8 @@ }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2754,8 +1333,8 @@ }, "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -2767,15 +1346,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", - "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", + "version": "7.19.0", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.19.0", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-replace-supers": "^7.18.9", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" @@ -2787,18 +1367,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -2810,9 +1382,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", - "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", + "version": "7.18.13", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -2825,8 +1397,8 @@ }, "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -2840,8 +1412,8 @@ }, "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -2854,8 +1426,8 @@ }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -2867,10 +1439,25 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-flow": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2883,8 +1470,8 @@ }, "node_modules/@babel/plugin-transform-function-name": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.18.9", "@babel/helper-function-name": "^7.18.9", @@ -2899,8 +1486,8 @@ }, "node_modules/@babel/plugin-transform-literals": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -2913,8 +1500,8 @@ }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -2927,8 +1514,8 @@ }, "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6", @@ -2943,8 +1530,8 @@ }, "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6", @@ -2959,13 +1546,13 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", - "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", + "version": "7.19.0", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-identifier": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -2978,8 +1565,8 @@ }, "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-module-transforms": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -2992,12 +1579,12 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", + "version": "7.19.1", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -3008,8 +1595,8 @@ }, "node_modules/@babel/plugin-transform-new-target": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -3022,8 +1609,8 @@ }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-replace-supers": "^7.18.6" @@ -3037,8 +1624,7 @@ }, "node_modules/@babel/plugin-transform-parameters": { "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -3051,8 +1637,8 @@ }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -3065,8 +1651,8 @@ }, "node_modules/@babel/plugin-transform-react-display-name": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -3078,15 +1664,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz", - "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==", + "version": "7.19.0", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.18.10" + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -3097,8 +1683,8 @@ }, "node_modules/@babel/plugin-transform-react-jsx-development": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/plugin-transform-react-jsx": "^7.18.6" }, @@ -3111,8 +1697,8 @@ }, "node_modules/@babel/plugin-transform-react-pure-annotations": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -3126,8 +1712,8 @@ }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "regenerator-transform": "^0.15.0" @@ -3141,8 +1727,8 @@ }, "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -3155,8 +1741,8 @@ }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -3168,11 +1754,11 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", - "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", + "version": "7.19.0", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" }, "engines": { @@ -3184,8 +1770,8 @@ }, "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -3198,8 +1784,8 @@ }, "node_modules/@babel/plugin-transform-template-literals": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -3212,8 +1798,8 @@ }, "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -3225,12 +1811,12 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.18.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz", - "integrity": "sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==", + "version": "7.19.3", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-create-class-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-typescript": "^7.18.6" }, "engines": { @@ -3242,8 +1828,8 @@ }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" }, @@ -3256,8 +1842,8 @@ }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -3270,17 +1856,17 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", - "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", + "version": "7.19.3", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-async-generator-functions": "^7.19.1", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -3314,9 +1900,9 @@ "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", "@babel/plugin-transform-block-scoping": "^7.18.9", - "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.13", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -3326,9 +1912,9 @@ "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-systemjs": "^7.19.0", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", "@babel/plugin-transform-parameters": "^7.18.8", @@ -3336,18 +1922,18 @@ "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-spread": "^7.19.0", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.10", - "babel-plugin-polyfill-corejs2": "^0.3.2", - "babel-plugin-polyfill-corejs3": "^0.5.3", - "babel-plugin-polyfill-regenerator": "^0.4.0", - "core-js-compat": "^3.22.1", + "@babel/types": "^7.19.3", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", "semver": "^6.3.0" }, "engines": { @@ -3357,10 +1943,26 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-flow": { + "version": "7.18.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-flow-strip-types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/preset-modules": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", @@ -3374,8 +1976,8 @@ }, "node_modules/@babel/preset-react": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-validator-option": "^7.18.6", @@ -3393,8 +1995,8 @@ }, "node_modules/@babel/preset-typescript": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-validator-option": "^7.18.6", @@ -3407,10 +2009,27 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime": { + "node_modules/@babel/register": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.19.0", + "license": "MIT", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -3419,11 +2038,10 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz", - "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==", + "version": "7.19.1", + "license": "MIT", "dependencies": { - "core-js-pure": "^3.20.2", + "core-js-pure": "^3.25.1", "regenerator-runtime": "^0.13.4" }, "engines": { @@ -3432,8 +2050,7 @@ }, "node_modules/@babel/template": { "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.10", @@ -3444,18 +2061,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", - "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", + "version": "7.19.3", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", + "@babel/generator": "^7.19.3", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.11", - "@babel/types": "^7.18.10", + "@babel/parser": "^7.19.3", + "@babel/types": "^7.19.3", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -3463,74 +2079,285 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "version": "7.19.3", + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@base2/pretty-print-object": { + "version": "1.0.1", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@cnakazawa/watch": { + "version": "1.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + }, + "bin": { + "watch": "cli.js" + }, + "engines": { + "node": ">=0.1.95" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } }, "node_modules/@csstools/convert-colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", - "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", "dev": true, + "license": "CC0-1.0", "engines": { "node": ">=4.0.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "node_modules/@devtools-ds/object-inspector": { + "version": "1.2.0", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "7.7.2", + "@devtools-ds/object-parser": "^1.2.0", + "@devtools-ds/themes": "^1.2.0", + "@devtools-ds/tree": "^1.2.0", + "clsx": "1.1.0" + }, + "peerDependencies": { + "react": ">= 16.8.6" + } + }, + "node_modules/@devtools-ds/object-inspector/node_modules/@babel/runtime": { + "version": "7.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.2" + } + }, + "node_modules/@devtools-ds/object-parser": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "~7.5.4" + } + }, + "node_modules/@devtools-ds/object-parser/node_modules/@babel/runtime": { + "version": "7.5.5", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.2" + } + }, + "node_modules/@devtools-ds/themes": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "~7.5.4", + "@design-systems/utils": "2.12.0", + "clsx": "1.1.0" + }, + "peerDependencies": { + "react": ">= 16.8.6" + } + }, + "node_modules/@devtools-ds/themes/node_modules/@babel/runtime": { + "version": "7.5.5", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.2" + } + }, + "node_modules/@devtools-ds/themes/node_modules/@design-systems/utils": { + "version": "2.12.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "clsx": "^1.0.4", + "focus-lock": "^0.8.0", + "react-merge-refs": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": ">= 16.8.6", + "react-dom": ">= 16.8.6" + } + }, + "node_modules/@devtools-ds/themes/node_modules/@design-systems/utils/node_modules/@babel/runtime": { + "version": "7.19.0", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@devtools-ds/tree": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "7.7.2", + "@devtools-ds/themes": "^1.2.0", + "clsx": "1.1.0" + }, + "peerDependencies": { + "react": ">= 16.8.6" + } + }, + "node_modules/@devtools-ds/tree/node_modules/@babel/runtime": { + "version": "7.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.2" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.2", + "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@faker-js/faker": { + "version": "6.3.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "dev": true, + "license": "MIT" + }, "node_modules/@headlessui/react": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.6.6.tgz", - "integrity": "sha512-MFJtmj9Xh/hhBMhLccGbBoSk+sk61BlP6sJe4uQcVMtXZhCgGqd2GyIQzzmsdPdTEWGSF434CBi8mnhR6um46Q==", + "version": "1.7.3", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3541,36 +2368,40 @@ }, "node_modules/@heroicons/react": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-1.0.6.tgz", - "integrity": "sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ==", + "license": "MIT", "peerDependencies": { "react": ">= 16" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, + "license": "Apache-2.0", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10.10.0" + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "license": "BSD-3-Clause" }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -3582,29 +2413,66 @@ "node": ">=8" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jest/console": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -3617,11 +2485,47 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/console/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@jest/console/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3633,11 +2537,61 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/core": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^27.5.1", "@jest/reporters": "^27.5.1", @@ -3680,11 +2634,72 @@ } } }, + "node_modules/@jest/core/node_modules/@jest/transform": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@jest/core/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3696,11 +2711,106 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/jest-haste-map": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/@jest/core/node_modules/jest-regex-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/jest-serializer": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/environment": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", @@ -3711,11 +2821,97 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/environment/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/environment/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/environment/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/environment/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/environment/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/environment/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/environment/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/fake-timers": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "@sinonjs/fake-timers": "^8.0.1", @@ -3728,11 +2924,113 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/fake-timers/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/fake-timers/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/fake-timers/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/fake-timers/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/fake-timers/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/fake-timers/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/globals": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", @@ -3742,11 +3040,97 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/@jest/globals/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/globals/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/globals/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/globals/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/globals/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/globals/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/globals/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jest/reporters": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", "dev": true, + "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^27.5.1", @@ -3786,71 +3170,10 @@ } } }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/source-map": { + "node_modules/@jest/reporters/node_modules/@jest/transform": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.1.0", "@jest/types": "^27.5.1", @@ -3872,27 +3195,10 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types": { + "node_modules/@jest/reporters/node_modules/@jest/types": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", @@ -3904,29 +3210,32 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@jest/types/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@jest/types/node_modules/@types/yargs": { + "node_modules/@jest/reporters/node_modules/@types/yargs": { "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3938,10 +3247,549 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/jest-haste-map": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/@jest/reporters/node_modules/jest-regex-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/jest-serializer": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/test-result/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/test-result/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/test-result/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/test-result/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/test-result/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/test-result/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/test-sequencer/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/test-sequencer/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/test-sequencer/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/test-sequencer/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/test-sequencer/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/test-sequencer/node_modules/jest-haste-map": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/@jest/test-sequencer/node_modules/jest-regex-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer/node_modules/jest-serializer": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform": { + "version": "26.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "26.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -3952,26 +3800,22 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "devOptional": true, - "peer": true, + "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -3979,10 +3823,8 @@ }, "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "devOptional": true, - "peer": true, + "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -3994,28 +3836,19 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "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==", - "dev": true - }, "node_modules/@mdx-js/loader": { "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.6.22.tgz", - "integrity": "sha512-9CjGwy595NaxAYp0hF9B/A0lH6C8Rms97e2JS9d3jVUtILn6pT5i5IV965ra3lIWc7Rs1GG1tBdVF7dCowYe6Q==", + "license": "MIT", "dependencies": { "@mdx-js/mdx": "1.6.22", "@mdx-js/react": "1.6.22", @@ -4026,52 +3859,9 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/@mdx-js/loader/node_modules/@mdx-js/react": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0" - } - }, - "node_modules/@mdx-js/mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", - "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", - "dependencies": { - "@babel/core": "7.12.9", - "@babel/plugin-syntax-jsx": "7.12.1", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "1.6.22", - "babel-plugin-apply-mdx-type-prop": "1.6.22", - "babel-plugin-extract-import-names": "1.6.22", - "camelcase-css": "2.0.1", - "detab": "2.0.4", - "hast-util-raw": "6.0.1", - "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "10.0.1", - "remark-footnotes": "2.0.0", - "remark-mdx": "1.6.22", - "remark-parse": "8.0.3", - "remark-squeeze-paragraphs": "4.0.0", - "style-to-object": "0.3.0", - "unified": "9.2.0", - "unist-builder": "2.0.3", - "unist-util-visit": "2.0.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/mdx/node_modules/@babel/core": { + "node_modules/@mdx-js/loader/node_modules/@babel/core": { "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.12.5", @@ -4098,10 +3888,25 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": { + "node_modules/@mdx-js/loader/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "license": "MIT" + }, + "node_modules/@mdx-js/loader/node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@mdx-js/loader/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -4109,26 +3914,154 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@mdx-js/mdx/node_modules/semver": { + "node_modules/@mdx-js/loader/node_modules/@mdx-js/mdx": { + "version": "1.6.22", + "license": "MIT", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/@mdx-js/react": { + "version": "1.6.22", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0" + } + }, + "node_modules/@mdx-js/loader/node_modules/ccount": { + "version": "1.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/@mdx-js/loader/node_modules/is-buffer": { + "version": "2.0.5", + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/@mdx-js/loader/node_modules/mdast-util-to-hast": { + "version": "10.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/remark-mdx": { + "version": "1.6.22", + "license": "MIT", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/remark-parse": { + "version": "8.0.3", + "license": "MIT", + "dependencies": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/semver": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "license": "ISC", "bin": { "semver": "bin/semver" } }, - "node_modules/@mdx-js/mdx/node_modules/source-map": { + "node_modules/@mdx-js/loader/node_modules/source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/@mdx-js/mdx/node_modules/unified": { + "node_modules/@mdx-js/loader/node_modules/unified": { "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "license": "MIT", "dependencies": { "bail": "^1.0.0", "extend": "^3.0.0", @@ -4142,10 +4075,226 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/@mdx-js/loader/node_modules/unist-builder": { + "version": "2.0.3", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/unist-util-generated": { + "version": "1.1.6", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/unist-util-is": { + "version": "4.1.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/unist-util-position": { + "version": "3.1.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/unist-util-remove-position": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/unist-util-visit": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/vfile": { + "version": "4.2.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/vfile-location": { + "version": "3.2.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/loader/node_modules/vfile-message": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx": { + "version": "2.1.4", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/mdx": "^2.0.0", + "estree-util-build-jsx": "^2.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "estree-util-to-js": "^1.1.0", + "estree-walker": "^3.0.0", + "hast-util-to-estree": "^2.0.0", + "markdown-extensions": "^1.0.0", + "periscopic": "^3.0.0", + "remark-mdx": "^2.0.0", + "remark-parse": "^10.0.0", + "remark-rehype": "^10.0.0", + "unified": "^10.0.0", + "unist-util-position-from-estree": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/bail": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/@mdx-js/mdx/node_modules/is-buffer": { + "version": "2.0.5", + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/@mdx-js/mdx/node_modules/is-plain-obj": { + "version": "4.1.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mdx-js/mdx/node_modules/remark-parse": { + "version": "10.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/trough": { + "version": "2.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/@mdx-js/mdx/node_modules/unified": { + "version": "10.1.2", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/@mdx-js/react": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.1.2.tgz", - "integrity": "sha512-52e3DTJBrjsw3U51ZCdZ3N1IBaqnbzLIngCSXpKtiYiGr7PIqp3/P/+kym0MPTwBL/y9ZBmCieD8FyrXuEDrRw==", + "version": "2.1.4", + "license": "MIT", "dependencies": { "@types/mdx": "^2.0.0", "@types/react": ">=16" @@ -4160,17 +4309,15 @@ }, "node_modules/@mdx-js/util": { "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", - "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/@mertasan/tailwindcss-variables": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@mertasan/tailwindcss-variables/-/tailwindcss-variables-2.5.0.tgz", - "integrity": "sha512-yAOBw4DfJAqr3N9e4x4/e7DBtPU/XdT4pi51o2cIb5QiCQeT7kkZ0vtRQk4sN2wPI9Mg/oSEHhMu7ZIxjJGQpg==", + "version": "2.5.1", + "license": "GPL-3.0-or-later", "dependencies": { "lodash": "^4.17.21" }, @@ -4182,23 +4329,68 @@ "postcss": "^8.0.9" } }, + "node_modules/@monaco-editor/loader": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "state-local": "^1.0.6" + }, + "peerDependencies": { + "monaco-editor": ">= 0.21.0 < 1" + } + }, + "node_modules/@monaco-editor/react": { + "version": "4.4.6", + "license": "MIT", + "dependencies": { + "@monaco-editor/loader": "^1.3.2", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "monaco-editor": ">= 0.25.0 < 1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@mrmlnc/readdir-enhanced/node_modules/glob-to-regexp": { + "version": "0.3.0", + "dev": true, + "license": "BSD" + }, + "node_modules/@next/bundle-analyzer": { + "version": "12.3.1", + "license": "MIT", + "dependencies": { + "webpack-bundle-analyzer": "4.3.0" + } + }, "node_modules/@next/env": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.8.tgz", - "integrity": "sha512-Wa0gOeioB9PHap9wtZDZEhgOSE3/+qE/UALWjJHuNvH4J3oE+13EjVOiEsr1JcPCXUN8ESQE+phDKlo6qJ8P9g==" + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.1.tgz", + "integrity": "sha512-9P9THmRFVKGKt9DYqeC2aKIxm8rlvkK38V1P1sRE7qyoPBIs8l9oo79QoSdPtOWfzkbDAVUqvbQGgTMsb8BtJg==" }, "node_modules/@next/eslint-plugin-next": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.2.5.tgz", - "integrity": "sha512-VBjVbmqEzGiOTBq4+wpeVXt/KgknnGB6ahvC/AxiIGnN93/RCSyXhFRI4uSfftM2Ba3w7ZO7076bfKasZsA0fw==", + "version": "12.3.1", + "license": "MIT", "dependencies": { "glob": "7.1.7" } }, "node_modules/@next/eslint-plugin-next/node_modules/glob": { "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4214,63 +4406,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@next/mdx": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-10.2.3.tgz", - "integrity": "sha512-hseekptFqOCxLbdaNDS/yelaG2Q2uaNDilnRjq8Uv/LWHuZ9F2cp7ndwTolW9acJsbDedamKRMgdw4V2Fz0pUA==", - "peerDependencies": { - "@mdx-js/loader": ">=0.15.0", - "@mdx-js/react": "*" - } - }, - "node_modules/@next/react-refresh-utils": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-12.0.8.tgz", - "integrity": "sha512-Bq4T/aOOFQUkCF9b8k9x+HpjOevu65ZPxsYJOpgEtBuJyvb+sZREtDDLKb/RtjUeLMrWrsGD0aLteyFFtiS8Og==", - "peerDependencies": { - "react-refresh": "0.8.3", - "webpack": "^4 || ^5" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } - } - }, - "node_modules/@next/swc-android-arm64": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.0.8.tgz", - "integrity": "sha512-BiXMcOZNnXSIXv+FQvbRgbMb+iYayLX/Sb2MwR0wja+eMs46BY1x/ssXDwUBADP1M8YtrGTlSPHZqUiCU94+Mg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.8.tgz", - "integrity": "sha512-6EGMmvcIwPpwt0/iqLbXDGx6oKHAXzbowyyVXK8cqmIvhoghRFjqfiNGBs+ar6wEBGt68zhwn/77vE3iQWoFJw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@next/swc-darwin-x64": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.8.tgz", - "integrity": "sha512-todxgQOGP/ucz5UH2kKR3XGDdkWmWr0VZAAbzgTbiFm45Ol4ih602k2nNR3xSbza9IqNhxNuUVsMpBgeo19CFQ==", + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.1.tgz", + "integrity": "sha512-9S6EVueCVCyGf2vuiLiGEHZCJcPAxglyckTZcEwLdJwozLqN0gtS0Eq0bQlGS3dH49Py/rQYpZ3KVWZ9BUf/WA==", "cpu": [ "x64" ], @@ -4282,130 +4421,9 @@ "node": ">= 10" } }, - "node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.8.tgz", - "integrity": "sha512-KULmdrfI+DJxBuhEyV47MQllB/WpC3P2xbwhHezxL/LkC2nkz5SbV4k432qpx2ebjIRf9SjdQ5Oz1FjD8Urayw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.8.tgz", - "integrity": "sha512-1XO87wgIVPvt5fx5i8CqdhksRdcpqyzCOLW4KrE0f9pUCIT04EbsFiKdmsH9c73aqjNZMnCMXpbV+cn4hN8x1w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.8.tgz", - "integrity": "sha512-NStRZEy/rkk2G18Yhc/Jzi1Q2Dv+zH176oO8479zlDQ5syRfc6AvRHVV4iNRc8Pai58If83r/nOJkwFgGwkKLw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.8.tgz", - "integrity": "sha512-rHxTGtTEDFsdT9/VjewzxE19S7W1NE+aZpm4TwbT1pSNGK9KQxQGcXjqoHMeB+VZCFknzNEoIU/vydbjZMlAuw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.8.tgz", - "integrity": "sha512-1F4kuFRQE10GSx7LMSvRmjMXFGpxT30g8rZzq9r/p/WKdErA4WB4uxaKEX0P8AINfuN63i4luKdR+LoacgBhYw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.8.tgz", - "integrity": "sha512-QuRe49jqCV61TysGopC1P0HPqFAMZMWe1nbIQLyOkDLkULmZR8N2eYZq7fwqvZE5YwhMmJA/grwWFVBqSEh5Kg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.8.tgz", - "integrity": "sha512-0RV3/julybJr1IlPCowIWrJJZyAl+sOakJEM15y1NOOsbwTQ5eKZZXSi+7e23TN4wmy5HwNvn2dKzgOEVJ+jbA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.8.tgz", - "integrity": "sha512-tTga6OFfO2JS+Yt5hdryng259c/tzNgSWkdiU2E+RBHiysAIOta57n4PJ8iPahOSqEqjaToPI76wM+o441GaNQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -4416,16 +4434,14 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -4434,71 +4450,128 @@ "node": ">= 8" } }, - "node_modules/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "dev": true, + "license": "ISC", "dependencies": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" } }, - "node_modules/@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.3.8", + "dev": true, + "license": "ISC", "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@octokit/openapi-types": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" - }, - "node_modules/@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "dev": true, + "license": "MIT", "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "dependencies": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@octokit/types": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.7", + "dev": true, + "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^12.11.0" + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.8.1", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <3.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { + "version": "0.7.4", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "license": "MIT" + }, + "node_modules/@popperjs/core": { + "version": "2.11.6", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" } }, "node_modules/@radix-ui/colors": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-0.1.8.tgz", - "integrity": "sha512-jwRMXYwC0hUo0mv6wGpuw254Pd9p/R6Td5xsRpOmaWkUHlooNWqVcadgyzlRumMq3xfOTXwJReU0Jv+EIy4Jbw==" + "license": "MIT" }, "node_modules/@radix-ui/popper": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/popper/-/popper-0.1.0.tgz", - "integrity": "sha512-uzYeElL3w7SeNMuQpXiFlBhTT+JyaNMCwDfjKkrzugEcYrf5n52PHqncNdQPUtR42hJh8V9FsqyEDbDxkeNjJQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "csstype": "^3.0.4" @@ -4506,16 +4579,14 @@ }, "node_modules/@radix-ui/primitive": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-0.1.0.tgz", - "integrity": "sha512-tqxZKybwN5Fa3VzZry4G6mXAAb9aAqKmPtnVbZpL0vsBwvOHTBwsjHVPXylocYLwEtBY9SCe665bYnNB515uoA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" } }, "node_modules/@radix-ui/react-accordion": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-0.1.6.tgz", - "integrity": "sha512-LOXlqPU6y6EMBopdRIKCWFvMPY1wPTQ4uJiX7ZVxldrMJcM7imBzI3wlRTkPCHZ3FLHmpuw+cQi3du23pzJp1g==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -4533,8 +4604,7 @@ }, "node_modules/@radix-ui/react-arrow": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-0.1.4.tgz", - "integrity": "sha512-BB6XzAb7Ml7+wwpFdYVtZpK1BlMgqyafSQNGzhIpSZ4uXvXOHPlR5GP8M449JkeQzgQjv9Mp1AsJxFC0KuOtuA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "0.1.4" @@ -4545,8 +4615,7 @@ }, "node_modules/@radix-ui/react-collapsible": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-0.1.6.tgz", - "integrity": "sha512-Gkf8VuqMc6HTLzA2AxVYnyK6aMczVLpatCjdD9Lj4wlYLXCz9KtiqZYslLMeqnQFLwLyZS0WKX/pQ8j5fioIBw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -4564,8 +4633,7 @@ }, "node_modules/@radix-ui/react-collection": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-0.1.4.tgz", - "integrity": "sha512-3muGI15IdgaDFjOcO7xX8a35HQRBRF6LH9pS6UCeZeRmbslkVeHyJRQr2rzICBUoX7zgIA0kXyMDbpQnJGyJTA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "0.1.0", @@ -4579,8 +4647,7 @@ }, "node_modules/@radix-ui/react-compose-refs": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.0.tgz", - "integrity": "sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -4590,8 +4657,7 @@ }, "node_modules/@radix-ui/react-context": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-0.1.1.tgz", - "integrity": "sha512-PkyVX1JsLBioeu0jB9WvRpDBBLtLZohVDT3BB5CTSJqActma8S8030P57mWZb4baZifMvN7KKWPAA40UmWKkQg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -4601,8 +4667,7 @@ }, "node_modules/@radix-ui/react-context-menu": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-0.1.6.tgz", - "integrity": "sha512-0qa6ABaeqD+WYI+8iT0jH0QLLcV8Kv0xI+mZL4FFnG4ec9H0v+yngb5cfBBfs9e/KM8mDzFFpaeegqsQlLNqyQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -4618,8 +4683,7 @@ }, "node_modules/@radix-ui/react-dialog": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-0.1.7.tgz", - "integrity": "sha512-jXt8srGhHBRvEr9jhEAiwwJzWCWZoGRJ030aC9ja/gkRJbZdy0iD3FwXf+Ff4RtsZyLUMHW7VUwFOlz3Ixe1Vw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -4644,8 +4708,7 @@ }, "node_modules/@radix-ui/react-dismissable-layer": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-0.1.5.tgz", - "integrity": "sha512-J+fYWijkX4M4QKwf9dtu1oC0U6e6CEl8WhBp3Ad23yz2Hia0XCo6Pk/mp5CAFy4QBtQedTSkhW05AdtSOEoajQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -4661,8 +4724,7 @@ }, "node_modules/@radix-ui/react-dropdown-menu": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-0.1.6.tgz", - "integrity": "sha512-RZhtzjWwJ4ZBN7D8ek4Zn+ilHzYuYta9yIxFnbC0pfqMnSi67IQNONo1tuuNqtFh9SRHacPKc65zo+kBBlxtdg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -4680,8 +4742,7 @@ }, "node_modules/@radix-ui/react-focus-guards": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-0.1.0.tgz", - "integrity": "sha512-kRx/swAjEfBpQ3ns7J3H4uxpXuWCqN7MpALiSDOXiyo2vkWv0L9sxvbpZeTulINuE3CGMzicVMuNc/VWXjFKOg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -4691,8 +4752,7 @@ }, "node_modules/@radix-ui/react-focus-scope": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-0.1.4.tgz", - "integrity": "sha512-fbA4ES3H4Wkxp+OeLhvN6SwL7mXNn/aBtUf7DRYxY9+Akrf7dRxl2ck4lgcpPsSg3zSDsEwLcY+h5cmj5yvlug==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "0.1.0", @@ -4705,8 +4765,7 @@ }, "node_modules/@radix-ui/react-id": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "0.1.0" @@ -4717,8 +4776,7 @@ }, "node_modules/@radix-ui/react-menu": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-0.1.6.tgz", - "integrity": "sha512-ho3+bhpr3oAFkOBJ8VkUb1BcGoiZBB3OmcWPqa6i5RTUKrzNX/d6rauochu2xDlWjiRtpVuiAcsTVOeIC4FbYQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -4746,8 +4804,7 @@ }, "node_modules/@radix-ui/react-popover": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-0.1.6.tgz", - "integrity": "sha512-zQzgUqW4RQDb0ItAL1xNW4K4olUrkfV3jeEPs9rG+nsDQurO+W9TT+YZ9H1mmgAJqlthyv1sBRZGdBm4YjtD6Q==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -4772,8 +4829,7 @@ }, "node_modules/@radix-ui/react-popper": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-0.1.4.tgz", - "integrity": "sha512-18gDYof97t8UQa7zwklG1Dr8jIdj3u+rVOQLzPi9f5i1YQak/pVGkaqw8aY+iDUknKKuZniTk/7jbAJUYlKyOw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/popper": "0.1.0", @@ -4791,8 +4847,7 @@ }, "node_modules/@radix-ui/react-portal": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-0.1.4.tgz", - "integrity": "sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "0.1.4", @@ -4805,8 +4860,7 @@ }, "node_modules/@radix-ui/react-presence": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", - "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "0.1.0", @@ -4818,8 +4872,7 @@ }, "node_modules/@radix-ui/react-primitive": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-slot": "0.1.2" @@ -4830,8 +4883,7 @@ }, "node_modules/@radix-ui/react-roving-focus": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-0.1.5.tgz", - "integrity": "sha512-ClwKPS5JZE+PaHCoW7eu1onvE61pDv4kO8W4t5Ra3qMFQiTJLZMdpBQUhksN//DaVygoLirz4Samdr5Y1x1FSA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -4849,8 +4901,7 @@ }, "node_modules/@radix-ui/react-slot": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-0.1.2.tgz", - "integrity": "sha512-ADkqfL+agEzEguU3yS26jfB50hRrwf7U4VTwAOZEmi/g+ITcBWe12yM46ueS/UCIMI9Py+gFUaAdxgxafFvY2Q==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "0.1.0" @@ -4861,8 +4912,7 @@ }, "node_modules/@radix-ui/react-tabs": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-0.1.5.tgz", - "integrity": "sha512-ieVQS1TFr0dX1XA8B+CsSFKOE7kcgEaNWWEfItxj9D1GZjn1o3WqPkW+FhQWDAWZLSKCH2PezYF3MNyO41lgJg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -4876,10 +4926,34 @@ "react": "^16.8 || ^17.0" } }, + "node_modules/@radix-ui/react-tooltip": { + "version": "0.1.7", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "0.1.0", + "@radix-ui/react-compose-refs": "0.1.0", + "@radix-ui/react-context": "0.1.1", + "@radix-ui/react-id": "0.1.5", + "@radix-ui/react-popper": "0.1.4", + "@radix-ui/react-portal": "0.1.4", + "@radix-ui/react-presence": "0.1.2", + "@radix-ui/react-primitive": "0.1.4", + "@radix-ui/react-slot": "0.1.2", + "@radix-ui/react-use-controllable-state": "0.1.0", + "@radix-ui/react-use-escape-keydown": "0.1.0", + "@radix-ui/react-use-previous": "0.1.1", + "@radix-ui/react-use-rect": "0.1.1", + "@radix-ui/react-visually-hidden": "0.1.4" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0", + "react-dom": "^16.8 || ^17.0" + } + }, "node_modules/@radix-ui/react-use-body-pointer-events": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-body-pointer-events/-/react-use-body-pointer-events-0.1.1.tgz", - "integrity": "sha512-R8leV2AWmJokTmERM8cMXFHWSiv/fzOLhG/JLmRBhLTAzOj37EQizssq4oW0Z29VcZy2tODMi9Pk/htxwb+xpA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "0.1.0" @@ -4890,8 +4964,7 @@ }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-0.1.0.tgz", - "integrity": "sha512-Va041McOFFl+aV+sejvl0BS2aeHx86ND9X/rVFmEFQKTXCp6xgUK0NGUAGcgBlIjnJSbMYPGEk1xKSSlVcN2Aw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -4901,8 +4974,7 @@ }, "node_modules/@radix-ui/react-use-controllable-state": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-0.1.0.tgz", - "integrity": "sha512-zv7CX/PgsRl46a52Tl45TwqwVJdmqnlQEQhaYMz/yBOD2sx2gCkCFSoF/z9mpnYWmS6DTLNTg5lIps3fV6EnXg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "0.1.0" @@ -4913,8 +4985,7 @@ }, "node_modules/@radix-ui/react-use-direction": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-direction/-/react-use-direction-0.1.0.tgz", - "integrity": "sha512-NajpY/An9TCPSfOVkgWIdXJV+VuWl67PxB6kOKYmtNAFHvObzIoh8o0n9sAuwSAyFCZVq211FEf9gvVDRhOyiA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -4924,8 +4995,7 @@ }, "node_modules/@radix-ui/react-use-escape-keydown": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-0.1.0.tgz", - "integrity": "sha512-tDLZbTGFmvXaazUXXv8kYbiCcbAE8yKgng9s95d8fCO+Eundv0Jngbn/hKPhDDs4jj9ChwRX5cDDnlaN+ugYYQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "0.1.0" @@ -4936,8 +5006,17 @@ }, "node_modules/@radix-ui/react-use-layout-effect": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz", - "integrity": "sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "0.1.1", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -4947,8 +5026,7 @@ }, "node_modules/@radix-ui/react-use-rect": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-0.1.1.tgz", - "integrity": "sha512-kHNNXAsP3/PeszEmM/nxBBS9Jbo93sO+xuMTcRfwzXsmxT5gDXQzAiKbZQ0EecCPtJIzqvr7dlaQi/aP1PKYqQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/rect": "0.1.1" @@ -4959,8 +5037,7 @@ }, "node_modules/@radix-ui/react-use-size": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-0.1.1.tgz", - "integrity": "sha512-pTgWM5qKBu6C7kfKxrKPoBI2zZYZmp2cSXzpUiGM3qEBQlMLtYhaY2JXdXUCxz+XmD1YEjc8oRwvyfsD4AG4WA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -4968,98 +5045,2993 @@ "react": "^16.8 || ^17.0" } }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "0.1.4", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "0.1.4" + }, + "peerDependencies": { + "react": "^16.8 || ^17.0" + } + }, "node_modules/@radix-ui/rect": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-0.1.1.tgz", - "integrity": "sha512-g3hnE/UcOg7REdewduRPAK88EPuLZtaq7sA9ouu8S+YEtnyFRI16jgv6GZYe3VMoQLL1T171ebmEPtDjyxWLzw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" } }, + "node_modules/@react-dnd/asap": { + "version": "4.0.1", + "license": "MIT" + }, + "node_modules/@react-dnd/invariant": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/@react-dnd/shallowequal": { + "version": "2.0.0", + "license": "MIT" + }, "node_modules/@rushstack/eslint-patch": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz", - "integrity": "sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==" + "version": "1.2.0", + "license": "MIT" + }, + "node_modules/@scaleleap/pg-format": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/@segment/loosely-validate-event": { + "version": "2.0.0", + "dependencies": { + "component-type": "^1.2.1", + "join-component": "^1.1.0" + } + }, + "node_modules/@sentry/browser": { + "version": "6.19.7", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/core": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/browser/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/@sentry/cli": { + "version": "1.74.5", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "https-proxy-agent": "^5.0.0", + "mkdirp": "^0.5.5", + "node-fetch": "^2.6.7", + "npmlog": "^4.1.2", + "progress": "^2.0.3", + "proxy-from-env": "^1.1.0", + "which": "^2.0.2" + }, + "bin": { + "sentry-cli": "bin/sentry-cli" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sentry/core": { + "version": "6.19.7", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/hub": "6.19.7", + "@sentry/minimal": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/@sentry/hub": { + "version": "6.19.7", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/@sentry/integrations": { + "version": "6.19.7", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "localforage": "^1.8.1", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/integrations/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/@sentry/minimal": { + "version": "6.19.7", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/@sentry/nextjs": { + "version": "6.19.7", + "license": "MIT", + "dependencies": { + "@sentry/core": "6.19.7", + "@sentry/hub": "6.19.7", + "@sentry/integrations": "6.19.7", + "@sentry/node": "6.19.7", + "@sentry/react": "6.19.7", + "@sentry/tracing": "6.19.7", + "@sentry/utils": "6.19.7", + "@sentry/webpack-plugin": "1.18.8", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "next": "^10.0.8 || ^11.0 || ^12.0", + "react": "15.x || 16.x || 17.x || 18.x", + "webpack": ">= 4.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/@sentry/nextjs/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/@sentry/node": { + "version": "6.19.7", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/core": "6.19.7", + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/@sentry/react": { + "version": "6.19.7", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/browser": "6.19.7", + "@sentry/minimal": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "hoist-non-react-statics": "^3.3.2", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "react": "15.x || 16.x || 17.x || 18.x" + } + }, + "node_modules/@sentry/react/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/@sentry/tracing": { + "version": "6.19.7", + "license": "MIT", + "dependencies": { + "@sentry/hub": "6.19.7", + "@sentry/minimal": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/tracing/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/@sentry/types": { + "version": "6.19.7", + "license": "BSD-3-Clause", + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "6.19.7", + "license": "BSD-3-Clause", + "dependencies": { + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/@sentry/webpack-plugin": { + "version": "1.18.8", + "license": "MIT", + "dependencies": { + "@sentry/cli": "^1.73.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.19.2", + "license": "MIT" }, "node_modules/@sinonjs/commons": { "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/fake-timers": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^1.7.0" } }, + "node_modules/@stitches/core": { + "version": "1.2.8", + "license": "MIT" + }, + "node_modules/@stitches/react": { + "version": "1.2.8", + "license": "MIT", + "peerDependencies": { + "react": ">= 16.3.0" + } + }, + "node_modules/@storybook/addon-actions": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "polished": "^4.2.2", + "prop-types": "^15.7.2", + "react-inspector": "^5.1.0", + "regenerator-runtime": "^0.13.7", + "telejson": "^6.0.8", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "uuid-browser": "^3.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-backgrounds": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-controls": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/node-logger": "6.5.12", + "@storybook/store": "6.5.12", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "lodash": "^4.17.21", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-docs": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.12.12", + "@babel/preset-env": "^7.12.11", + "@jest/transform": "^26.6.2", + "@mdx-js/react": "^1.6.22", + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/docs-tools": "6.5.12", + "@storybook/mdx1-csf": "^0.0.1", + "@storybook/node-logger": "6.5.12", + "@storybook/postinstall": "6.5.12", + "@storybook/preview-web": "6.5.12", + "@storybook/source-loader": "6.5.12", + "@storybook/store": "6.5.12", + "@storybook/theming": "6.5.12", + "babel-loader": "^8.0.0", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "regenerator-runtime": "^0.13.7", + "remark-external-links": "^8.0.0", + "remark-slug": "^6.0.0", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@storybook/mdx2-csf": "^0.0.3", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@storybook/mdx2-csf": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-docs/node_modules/@mdx-js/react": { + "version": "1.6.22", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0" + } + }, + "node_modules/@storybook/addon-essentials": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addon-actions": "6.5.12", + "@storybook/addon-backgrounds": "6.5.12", + "@storybook/addon-controls": "6.5.12", + "@storybook/addon-docs": "6.5.12", + "@storybook/addon-measure": "6.5.12", + "@storybook/addon-outline": "6.5.12", + "@storybook/addon-toolbars": "6.5.12", + "@storybook/addon-viewport": "6.5.12", + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/node-logger": "6.5.12", + "core-js": "^3.8.2", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@babel/core": "^7.9.6" + }, + "peerDependenciesMeta": { + "@storybook/angular": { + "optional": true + }, + "@storybook/builder-manager4": { + "optional": true + }, + "@storybook/builder-manager5": { + "optional": true + }, + "@storybook/builder-webpack4": { + "optional": true + }, + "@storybook/builder-webpack5": { + "optional": true + }, + "@storybook/html": { + "optional": true + }, + "@storybook/vue": { + "optional": true + }, + "@storybook/vue3": { + "optional": true + }, + "@storybook/web-components": { + "optional": true + }, + "lit": { + "optional": true + }, + "lit-html": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "svelte": { + "optional": true + }, + "sveltedoc-parser": { + "optional": true + }, + "vue": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-interactions": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@devtools-ds/object-inspector": "^1.1.2", + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/instrumenter": "6.5.12", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0", + "jest-mock": "^27.0.6", + "polished": "^4.2.2", + "ts-dedent": "^2.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-links": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/router": "6.5.12", + "@types/qs": "^6.9.5", + "core-js": "^3.8.2", + "global": "^4.4.0", + "prop-types": "^15.7.2", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-measure": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "core-js": "^3.8.2", + "global": "^4.4.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-outline": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "core-js": "^3.8.2", + "global": "^4.4.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-toolbars": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "regenerator-runtime": "^0.13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-viewport": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0", + "memoizerific": "^1.11.3", + "prop-types": "^15.7.2", + "regenerator-runtime": "^0.13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/addons": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/api": "6.5.12", + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/router": "6.5.12", + "@storybook/theming": "6.5.12", + "@types/webpack-env": "^1.16.0", + "core-js": "^3.8.2", + "global": "^4.4.0", + "regenerator-runtime": "^0.13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/api": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/router": "6.5.12", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7", + "store2": "^2.12.0", + "telejson": "^6.0.8", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/builder-webpack4": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.10", + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/channel-postmessage": "6.5.12", + "@storybook/channels": "6.5.12", + "@storybook/client-api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/node-logger": "6.5.12", + "@storybook/preview-web": "6.5.12", + "@storybook/router": "6.5.12", + "@storybook/semver": "^7.3.2", + "@storybook/store": "6.5.12", + "@storybook/theming": "6.5.12", + "@storybook/ui": "6.5.12", + "@types/node": "^14.0.10 || ^16.0.0", + "@types/webpack": "^4.41.26", + "autoprefixer": "^9.8.6", + "babel-loader": "^8.0.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "core-js": "^3.8.2", + "css-loader": "^3.6.0", + "file-loader": "^6.2.0", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^4.1.6", + "glob": "^7.1.6", + "glob-promise": "^3.4.0", + "global": "^4.4.0", + "html-webpack-plugin": "^4.0.0", + "pnp-webpack-plugin": "1.6.4", + "postcss": "^7.0.36", + "postcss-flexbugs-fixes": "^4.2.1", + "postcss-loader": "^4.2.0", + "raw-loader": "^4.0.2", + "stable": "^0.1.8", + "style-loader": "^1.3.0", + "terser-webpack-plugin": "^4.2.3", + "ts-dedent": "^2.0.0", + "url-loader": "^4.1.1", + "util-deprecate": "^1.0.2", + "webpack": "4", + "webpack-dev-middleware": "^3.7.3", + "webpack-filter-warnings-plugin": "^1.2.1", + "webpack-hot-middleware": "^2.25.1", + "webpack-virtual-modules": "^0.2.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/@types/node": { + "version": "16.11.64", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/builder-webpack4/node_modules/autoprefixer": { + "version": "9.8.8", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/braces": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/fill-range": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/fork-ts-checker-webpack-plugin": { + "version": "4.1.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.5.5", + "chalk": "^2.4.1", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "engines": { + "node": ">=6.11.5", + "yarn": ">=1.0.0" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/is-extendable": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/is-number": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/is-plain-object": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/micromatch": { + "version": "3.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/picocolors": { + "version": "0.2.1", + "dev": true, + "license": "ISC" + }, + "node_modules/@storybook/builder-webpack4/node_modules/postcss": { + "version": "7.0.39", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@storybook/builder-webpack4/node_modules/to-regex-range": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/channel-postmessage": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0", + "qs": "^6.10.0", + "telejson": "^6.0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/channel-websocket": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0", + "telejson": "^6.0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/channels": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "core-js": "^3.8.2", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/client-api": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/channel-postmessage": "6.5.12", + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/store": "6.5.12", + "@types/qs": "^6.9.5", + "@types/webpack-env": "^1.16.0", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "store2": "^2.12.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/client-logger": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "core-js": "^3.8.2", + "global": "^4.4.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/components": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/client-logger": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/core": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/core-client": "6.5.12", + "@storybook/core-server": "6.5.12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "webpack": "*" + }, + "peerDependenciesMeta": { + "@storybook/builder-webpack5": { + "optional": true + }, + "@storybook/manager-webpack5": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/core-client": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/channel-postmessage": "6.5.12", + "@storybook/channel-websocket": "6.5.12", + "@storybook/client-api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/preview-web": "6.5.12", + "@storybook/store": "6.5.12", + "@storybook/ui": "6.5.12", + "airbnb-js-shims": "^2.2.1", + "ansi-to-html": "^0.6.11", + "core-js": "^3.8.2", + "global": "^4.4.0", + "lodash": "^4.17.21", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "unfetch": "^4.2.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "webpack": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/core-common": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-decorators": "^7.12.12", + "@babel/plugin-proposal-export-default-from": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-private-property-in-object": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.12", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/preset-env": "^7.12.11", + "@babel/preset-react": "^7.12.10", + "@babel/preset-typescript": "^7.12.7", + "@babel/register": "^7.12.1", + "@storybook/node-logger": "6.5.12", + "@storybook/semver": "^7.3.2", + "@types/node": "^14.0.10 || ^16.0.0", + "@types/pretty-hrtime": "^1.0.0", + "babel-loader": "^8.0.0", + "babel-plugin-macros": "^3.0.1", + "babel-plugin-polyfill-corejs3": "^0.1.0", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "express": "^4.17.1", + "file-system-cache": "^1.0.5", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.0.4", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "handlebars": "^4.7.7", + "interpret": "^2.2.0", + "json5": "^2.1.3", + "lazy-universal-dotenv": "^3.0.1", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "slash": "^3.0.0", + "telejson": "^6.0.8", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "webpack": "4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/core-common/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@storybook/core-common/node_modules/@types/node": { + "version": "16.11.64", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/core-common/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/core-common/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@storybook/core-common/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@storybook/core-common/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/core-common/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/core-common/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/core-common/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/core-events": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "core-js": "^3.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-server": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.3", + "@storybook/builder-webpack4": "6.5.12", + "@storybook/core-client": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/csf-tools": "6.5.12", + "@storybook/manager-webpack4": "6.5.12", + "@storybook/node-logger": "6.5.12", + "@storybook/semver": "^7.3.2", + "@storybook/store": "6.5.12", + "@storybook/telemetry": "6.5.12", + "@types/node": "^14.0.10 || ^16.0.0", + "@types/node-fetch": "^2.5.7", + "@types/pretty-hrtime": "^1.0.0", + "@types/webpack": "^4.41.26", + "better-opn": "^2.1.1", + "boxen": "^5.1.2", + "chalk": "^4.1.0", + "cli-table3": "^0.6.1", + "commander": "^6.2.1", + "compression": "^1.7.4", + "core-js": "^3.8.2", + "cpy": "^8.1.2", + "detect-port": "^1.3.0", + "express": "^4.17.1", + "fs-extra": "^9.0.1", + "global": "^4.4.0", + "globby": "^11.0.2", + "ip": "^2.0.0", + "lodash": "^4.17.21", + "node-fetch": "^2.6.7", + "open": "^8.4.0", + "pretty-hrtime": "^1.0.3", + "prompts": "^2.4.0", + "regenerator-runtime": "^0.13.7", + "serve-favicon": "^2.5.0", + "slash": "^3.0.0", + "telejson": "^6.0.8", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "watchpack": "^2.2.0", + "webpack": "4", + "ws": "^8.2.3", + "x-default-browser": "^0.4.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@storybook/builder-webpack5": { + "optional": true + }, + "@storybook/manager-webpack5": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/core-server/node_modules/@types/node": { + "version": "16.11.64", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/core-server/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/core-server/node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/core-server/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@storybook/core-server/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/core-server/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/core-server/node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/core-server/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/core-server/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/csf": { + "version": "0.0.2--canary.4566f4d.1", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/@storybook/csf-tools": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/generator": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/plugin-transform-react-jsx": "^7.12.12", + "@babel/preset-env": "^7.12.11", + "@babel/traverse": "^7.12.11", + "@babel/types": "^7.12.11", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/mdx1-csf": "^0.0.1", + "core-js": "^3.8.2", + "fs-extra": "^9.0.1", + "global": "^4.4.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@storybook/mdx2-csf": "^0.0.3" + }, + "peerDependenciesMeta": { + "@storybook/mdx2-csf": { + "optional": true + } + } + }, + "node_modules/@storybook/docs-tools": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.10", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/store": "6.5.12", + "core-js": "^3.8.2", + "doctrine": "^3.0.0", + "lodash": "^4.17.21", + "regenerator-runtime": "^0.13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/instrumenter": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/manager-webpack4": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.10", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/preset-react": "^7.12.10", + "@storybook/addons": "6.5.12", + "@storybook/core-client": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/node-logger": "6.5.12", + "@storybook/theming": "6.5.12", + "@storybook/ui": "6.5.12", + "@types/node": "^14.0.10 || ^16.0.0", + "@types/webpack": "^4.41.26", + "babel-loader": "^8.0.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "css-loader": "^3.6.0", + "express": "^4.17.1", + "file-loader": "^6.2.0", + "find-up": "^5.0.0", + "fs-extra": "^9.0.1", + "html-webpack-plugin": "^4.0.0", + "node-fetch": "^2.6.7", + "pnp-webpack-plugin": "1.6.4", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7", + "resolve-from": "^5.0.0", + "style-loader": "^1.3.0", + "telejson": "^6.0.8", + "terser-webpack-plugin": "^4.2.3", + "ts-dedent": "^2.0.0", + "url-loader": "^4.1.1", + "util-deprecate": "^1.0.2", + "webpack": "4", + "webpack-dev-middleware": "^3.7.3", + "webpack-virtual-modules": "^0.2.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/manager-webpack4/node_modules/@types/node": { + "version": "16.11.64", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/manager-webpack4/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/manager-webpack4/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@storybook/manager-webpack4/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/manager-webpack4/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/manager-webpack4/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/manager-webpack4/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/mdx1-csf": { + "version": "0.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/preset-env": "^7.12.11", + "@babel/types": "^7.12.11", + "@mdx-js/mdx": "^1.6.22", + "@types/lodash": "^4.14.167", + "js-string-escape": "^1.0.1", + "loader-utils": "^2.0.0", + "lodash": "^4.17.21", + "prettier": ">=2.2.1 <=2.3.0", + "ts-dedent": "^2.0.0" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/@babel/core": { + "version": "7.12.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/mdx1-csf/node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/@mdx-js/mdx": { + "version": "1.6.22", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/ccount": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/is-buffer": { + "version": "2.0.5", + "dev": true, + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/mdast-util-to-hast": { + "version": "10.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/prettier": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/remark-mdx": { + "version": "1.6.22", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/remark-parse": { + "version": "8.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/source-map": { + "version": "0.5.7", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/unified": { + "version": "9.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/unist-builder": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/unist-util-generated": { + "version": "1.1.6", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/unist-util-is": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/unist-util-position": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/unist-util-remove-position": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/unist-util-visit": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/vfile": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/vfile-location": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/mdx1-csf/node_modules/vfile-message": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@storybook/node-logger": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/node-logger/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/node-logger/node_modules/are-we-there-yet": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/node-logger/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@storybook/node-logger/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/node-logger/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/node-logger/node_modules/gauge": { + "version": "3.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/node-logger/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/node-logger/node_modules/npmlog": { + "version": "5.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/@storybook/node-logger/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@storybook/node-logger/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/postinstall": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "core-js": "^3.8.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/preview-web": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/channel-postmessage": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/store": "6.5.12", + "ansi-to-html": "^0.6.11", + "core-js": "^3.8.2", + "global": "^4.4.0", + "lodash": "^4.17.21", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "unfetch": "^4.2.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/react": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/preset-flow": "^7.12.1", + "@babel/preset-react": "^7.12.10", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@storybook/addons": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/docs-tools": "6.5.12", + "@storybook/node-logger": "6.5.12", + "@storybook/react-docgen-typescript-plugin": "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0", + "@storybook/semver": "^7.3.2", + "@storybook/store": "6.5.12", + "@types/estree": "^0.0.51", + "@types/node": "^14.14.20 || ^16.0.0", + "@types/webpack-env": "^1.16.0", + "acorn": "^7.4.1", + "acorn-jsx": "^5.3.1", + "acorn-walk": "^7.2.0", + "babel-plugin-add-react-displayname": "^0.0.5", + "babel-plugin-react-docgen": "^4.2.1", + "core-js": "^3.8.2", + "escodegen": "^2.0.0", + "fs-extra": "^9.0.1", + "global": "^4.4.0", + "html-tags": "^3.1.0", + "lodash": "^4.17.21", + "prop-types": "^15.7.2", + "react-element-to-jsx-string": "^14.3.4", + "react-refresh": "^0.11.0", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "webpack": ">=4.43.0 <6.0.0" + }, + "bin": { + "build-storybook": "bin/build.js", + "start-storybook": "bin/index.js", + "storybook-server": "bin/index.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@babel/core": "^7.11.5", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "require-from-string": "^2.0.2" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@storybook/builder-webpack4": { + "optional": true + }, + "@storybook/builder-webpack5": { + "optional": true + }, + "@storybook/manager-webpack4": { + "optional": true + }, + "@storybook/manager-webpack5": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/react-docgen-typescript-plugin": { + "version": "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "endent": "^2.0.1", + "find-cache-dir": "^3.3.1", + "flat-cache": "^3.0.4", + "micromatch": "^4.0.2", + "react-docgen-typescript": "^2.1.1", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "typescript": ">= 3.x", + "webpack": ">= 4" + } + }, + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/find-cache-dir": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/react/node_modules/@types/node": { + "version": "16.11.64", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/router": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/client-logger": "6.5.12", + "core-js": "^3.8.2", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/semver": { + "version": "7.3.2", + "dev": true, + "license": "ISC", + "dependencies": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/semver/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/semver/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/semver/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/semver/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/source-loader": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "core-js": "^3.8.2", + "estraverse": "^5.2.0", + "global": "^4.4.0", + "loader-utils": "^2.0.0", + "lodash": "^4.17.21", + "prettier": ">=2.2.1 <=2.3.0", + "regenerator-runtime": "^0.13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/source-loader/node_modules/prettier": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@storybook/store": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7", + "slash": "^3.0.0", + "stable": "^0.1.8", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/telemetry": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/client-logger": "6.5.12", + "@storybook/core-common": "6.5.12", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "detect-package-manager": "^2.0.1", + "fetch-retry": "^5.0.2", + "fs-extra": "^9.0.1", + "global": "^4.4.0", + "isomorphic-unfetch": "^3.1.0", + "nanoid": "^3.3.1", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/telemetry/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/telemetry/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@storybook/telemetry/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/telemetry/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/telemetry/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/telemetry/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/testing-library": { + "version": "0.0.9", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/client-logger": "^6.4.0 || >=6.5.0-0", + "@storybook/instrumenter": "^6.4.0 || >=6.5.0-0", + "@testing-library/dom": "^8.3.0", + "@testing-library/user-event": "^13.2.1", + "ts-dedent": "^2.2.0" + } + }, + "node_modules/@storybook/theming": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/client-logger": "6.5.12", + "core-js": "^3.8.2", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/ui": { + "version": "6.5.12", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/router": "6.5.12", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "resolve-from": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@stripe/react-stripe-js": { + "version": "1.12.0", + "license": "MIT", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "@stripe/stripe-js": "^1.38.1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@stripe/stripe-js": { + "version": "1.38.1", + "license": "MIT" + }, + "node_modules/@supabase/auth-ui-react": { + "version": "0.1.8", + "dependencies": { + "@stitches/core": "^1.2.8", + "@stitches/react": "^1.2.8", + "lodash": "^4.17.20", + "prop-types": "^15.7.2" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.1", + "react-dom": "^16.13.1 || ^17.0.1" + } + }, "node_modules/@supabase/functions-js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-1.3.4.tgz", - "integrity": "sha512-yYVgkECjv7IZEBKBI3EB5Q7R1p0FJ10g8Q9N7SWKIHUU6i6DnbEGHIMFLyQRm1hmiNWD8fL7bRVEYacmTRJhHw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.0.0.tgz", + "integrity": "sha512-ozb7bds2yvf5k7NM2ZzUkxvsx4S4i2eRKFSJetdTADV91T65g4gCzEs9L3LUXSrghcGIkUaon03VPzOrFredqg==", "dependencies": { "cross-fetch": "^3.1.5" } }, - "node_modules/@supabase/generator": { - "resolved": "packages/spec", - "link": true - }, "node_modules/@supabase/gotrue-js": { - "version": "1.22.22", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.22.22.tgz", - "integrity": "sha512-exbCopLo4tLawKZR25wEdipm+IRVujuqFRR4h2wiXd11YA+N8rfgg/4S4L6BTFHmzV+KMjy0kDF3yMbsjIR/xA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.0.1.tgz", + "integrity": "sha512-PCzHeFhz33lPWLZT+UiVDpGkZQI3K1wwhkhgAjvJdkyCbwK5u+LWWUzz0AX66bGGLpg1IYQIP7oz8V68XVjzMA==", "dependencies": { - "cross-fetch": "^3.0.6" + "cross-fetch": "^3.1.5" + } + }, + "node_modules/@supabase/postgres-meta": { + "version": "0.26.1", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.19.2", + "pg": "^8.7.1", + "pg-format": "^1.0.4" + }, + "engines": { + "node": ">=14 <15", + "npm": ">=7" } }, "node_modules/@supabase/postgrest-js": { - "version": "0.37.4", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.37.4.tgz", - "integrity": "sha512-x+c2rk1fz9s6f1PrGxCJ0QTUgXPDI0G3ngIqD5sSiXhhCyfl8Q5V92mXl2EYtlDhkiUkjFNrOZFhXVbXOHgvDw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.0.0.tgz", + "integrity": "sha512-MRR4g8dThgSnlnjkL2Jvc6gS73W68hLq48/Q245CLvUPt3KtOh3WXpvo4rZDEDHYVkyVga+L9IQixo6YTsjMQg==", "dependencies": { "cross-fetch": "^3.1.5" } }, + "node_modules/@supabase/react-data-grid": { + "version": "7.1.0-beta.7", + "license": "MIT", + "dependencies": { + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.14 || ^17.0.0", + "react-dom": "^16.14 || ^17.0.0" + } + }, + "node_modules/@supabase/react-data-grid/node_modules/clsx": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/@supabase/realtime-js": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.7.4.tgz", - "integrity": "sha512-h/Jk3PCLkIVonsNavof/LvHbvF41UD+D+mWcA3m8yHzJ2TLbV3S4XDYId+A3AkvFOAork7Ns/9O8rK0uY4F4zw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.0.0.tgz", + "integrity": "sha512-DJVt5Z76pik3Fxt1es4fmquq6GrwR3nLqcb2Q6VpHXSudtixML0Cyxsu0DPzxa6ruSQrO9s08s0OQgwaIA1C0Q==", "dependencies": { "@types/phoenix": "^1.5.4", "websocket": "^1.0.34" } }, + "node_modules/@supabase/shared-types": { + "version": "0.1.29", + "license": "Copyright Supabase" + }, "node_modules/@supabase/storage-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.7.3.tgz", - "integrity": "sha512-jnIZWqOc9TGclOozgX9v/RWGFCgJAyW/yvmauexgRZhWknUXoA4b2i8tj7vfwE0WTvNRuA5JpXID98rfJeSG7Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.0.0.tgz", + "integrity": "sha512-7kXThdRt/xqnOOvZZxBqNkeX1CFNUWc0hYBJtNN/Uvt8ok9hD14foYmroWrHn046wEYFqUrB9U35JYsfTrvltA==", "dependencies": { - "cross-fetch": "^3.1.0" + "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/supabase-js": { - "version": "1.35.6", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.35.6.tgz", - "integrity": "sha512-KDRXRr+kdGwruIUizZPALbe5YccMYFVyZJf1sFWKLncaLYSFiM6iKFnqCrNeQ4JFoZZiICkiTl1FUuai62jVpg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.0.0.tgz", + "integrity": "sha512-8nNMXYzBlQVSDONFaNgyyxsAdUY+C9Q/7vEDYDdTFTyC3i+luXTDOSjHMLcjIky/+x5rIAcNQqqIJ48HJUluXA==", "dependencies": { - "@supabase/functions-js": "^1.3.4", - "@supabase/gotrue-js": "^1.22.21", - "@supabase/postgrest-js": "^0.37.4", - "@supabase/realtime-js": "^1.7.4", - "@supabase/storage-js": "^1.7.2" + "@supabase/functions-js": "^2.0.0", + "@supabase/gotrue-js": "^2.0.1", + "@supabase/postgrest-js": "^1.0.0", + "@supabase/realtime-js": "^2.0.0", + "@supabase/storage-js": "^2.0.0", + "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/ui": { "version": "0.37.0-alpha.50", - "resolved": "https://registry.npmjs.org/@supabase/ui/-/ui-0.37.0-alpha.50.tgz", - "integrity": "sha512-d5jFxIVCRrZ6cHQ6qpuvyaexTmqMnxDWm0hg7vj9D2x5qcmySRCTC42uhpKXz5fKre2TUl38pFT+UpscWw/OyA==", "dependencies": { "@headlessui/react": "^1.0.0", "@mertasan/tailwindcss-variables": "^2.0.1", @@ -5091,10 +8063,30 @@ "react-dom": "^16.13.1 || ^17.0.1" } }, + "node_modules/@supabase/ui/node_modules/@tailwindcss/typography": { + "version": "0.5.7", + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/@swc/helpers": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", + "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@tailwindcss/forms": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.4.1.tgz", - "integrity": "sha512-gS9xjCmJjUBz/eP12QlENPLnf0tCx68oYE3mri0GMP5jdtVwLbGUNSRpjsp6NzLAZzZy3ueOwrcqB78Ax6Z84A==", + "license": "MIT", "dependencies": { "mini-svg-data-uri": "^1.2.3" }, @@ -5102,32 +8094,182 @@ "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" } }, - "node_modules/@tailwindcss/typography": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.4.tgz", - "integrity": "sha512-QEdg40EmGvE7kKoDei8zr5sf4D1pIayHj4R31bH3lX8x2BtTiR+jNejYPOkhbmy3DXgkMF9jC8xqNiGFAuL9Sg==", + "node_modules/@testdeck/core": { + "version": "0.2.1", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@testdeck/jest": { + "version": "0.2.1", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "lodash.castarray": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2" + "@testdeck/core": "^0.2.0" + } + }, + "node_modules/@testing-library/dom": { + "version": "8.18.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "12.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.0.0", + "@types/react-dom": "<18.0.0" + }, + "engines": { + "node": ">=12" }, "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" + "react": "<18.0.0", + "react-dom": "<18.0.0" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" } }, "node_modules/@tootallnate/once": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/acorn": { + "version": "4.0.6", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/allure-js-commons": { + "version": "0.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/aria-query": { + "version": "4.2.2", + "dev": true, + "license": "MIT" + }, "node_modules/@types/babel__core": { "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -5138,202 +8280,290 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.0.tgz", - "integrity": "sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==", + "version": "7.18.2", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.3.0" } }, "node_modules/@types/classnames": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-zeOWb0JGBoVmlQoznvqXbE0tEC/HONsnoUNH19Hc96NFsTAwTXbTqb8FMYkru1F/iqp7a18Ws3nWJvtA1sHD1A==", - "deprecated": "This is a stub types definition. classnames provides its own type definitions, so you do not need this installed.", "dev": true, + "license": "MIT", "dependencies": { "classnames": "*" } }, + "node_modules/@types/crypto-js": { + "version": "4.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "2.0.3", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "@types/d3-color": "^2" + } + }, + "node_modules/@types/d3-path": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "3.3.2", + "license": "MIT", + "dependencies": { + "@types/d3-time": "^2" + } + }, + "node_modules/@types/d3-shape": { + "version": "2.1.3", + "license": "MIT", + "dependencies": { + "@types/d3-path": "^2" + } + }, + "node_modules/@types/d3-time": { + "version": "2.1.1", + "license": "MIT" + }, + "node_modules/@types/debounce-promise": { + "version": "3.1.4", + "license": "MIT" + }, "node_modules/@types/debug": { "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "license": "MIT", "dependencies": { "@types/ms": "*" } }, - "node_modules/@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", - "devOptional": true, - "peer": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } + "node_modules/@types/estree": { + "version": "0.0.51", + "license": "MIT" }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "devOptional": true, - "peer": true, + "node_modules/@types/estree-jsx": { + "version": "1.0.0", + "license": "MIT", "dependencies": { - "@types/eslint": "*", "@types/estree": "*" } }, - "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "devOptional": true, - "peer": true + "node_modules/@types/file-saver": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/glob": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } }, "node_modules/@types/graceful-fs": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/hast": { "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "license": "MIT", "dependencies": { "@types/unist": "*" } }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "license": "MIT", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "5.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/is-function": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "version": "3.0.1", "dev": true, + "license": "MIT", "dependencies": { - "@types/istanbul-lib-coverage": "*", "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jest": { "version": "27.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", "dev": true, + "license": "MIT", "dependencies": { "jest-matcher-utils": "^27.0.0", "pretty-format": "^27.0.0" } }, + "node_modules/@types/js-yaml": { + "version": "4.0.5", + "license": "MIT" + }, + "node_modules/@types/json-logic-js": { + "version": "1.2.1", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "devOptional": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.14.182", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", - "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==", - "dev": true + "version": "4.14.186", + "license": "MIT" + }, + "node_modules/@types/markdown-table": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "markdown-table": "*" + } }, "node_modules/@types/marked": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.0.3.tgz", - "integrity": "sha512-HnMWQkLJEf/PnxZIfbm0yGJRRZYYMhb++O9M36UCTA9z53uPvVoSlAwJr3XOpDEryb7Hwl1qAx/MV6YIW1RXxg==", - "dev": true + "version": "4.0.7", + "dev": true, + "license": "MIT" }, "node_modules/@types/mdast": { "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "license": "MIT", "dependencies": { "@types/unist": "*" } }, - "node_modules/@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" - }, "node_modules/@types/mdx": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.2.tgz", - "integrity": "sha512-mJGfgj4aWpiKb8C0nnJJchs1sHBHn0HugkVfqqyQi7Wn6mBRksLeQsPOFvih/Pu8L1vlDzfe/LidhVHBeUk3aQ==" + "license": "MIT" + }, + "node_modules/@types/mdx-js__react": { + "version": "1.5.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "dev": true, + "license": "MIT" }, "node_modules/@types/ms": { "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + "license": "MIT" }, "node_modules/@types/node": { - "version": "14.18.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.23.tgz", - "integrity": "sha512-MhbCWN18R4GhO8ewQWAFK4TGQdBpXWByukz7cWyJmXhvRuCIaM/oWytGPqVmDzgEnnaIc9ss6HbU5mUi+vyZPA==", - "devOptional": true + "version": "17.0.45", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } }, "node_modules/@types/nodemailer": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.5.tgz", - "integrity": "sha512-zuP3nBRQHI6M2PkXnGGy1Ww4VB+MyYHGgnfV2T+JR9KLkeWqPJuyVUgLpKXuFnA/b7pZaIDFh2sV4759B7jK1g==", + "version": "6.4.6", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/npmlog": { + "version": "4.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/papaparse": { + "version": "5.3.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/@types/parse-numeric-range": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-numeric-range/-/parse-numeric-range-0.0.1.tgz", - "integrity": "sha512-nI3rPGKk8BxedokP2VilnW5JyZHYNjGCUDsAZ2JQgISgDflHNUO0wXMfGYP8CkihrKYDm5tilD52XfGhO/ZFCA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/parse5": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" + "license": "MIT" }, "node_modules/@types/phoenix": { "version": "1.5.4", @@ -5341,103 +8571,291 @@ "integrity": "sha512-L5eZmzw89eXBKkiqVBcJfU1QGx9y+wurRIEgt0cuLH0hwNtVUxtx+6cu0R2STwWj468sjXyBYPYDtGclUd1kjQ==" }, "node_modules/@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", - "dev": true + "version": "2.7.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/pretty-hrtime": { + "version": "1.0.1", + "dev": true, + "license": "MIT" }, "node_modules/@types/prop-types": { "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "dev": true, + "license": "MIT" }, "node_modules/@types/react": { - "version": "17.0.39", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.39.tgz", - "integrity": "sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==", + "version": "17.0.37", + "license": "MIT", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, + "node_modules/@types/react-beautiful-dnd": { + "version": "13.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/react-copy-to-clipboard": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-4.3.0.tgz", - "integrity": "sha512-iideNPRyroENqsOFh1i2Dv3zkviYS9r/9qD9Uh3Z9NNoAAqqa2x53i7iGndGNnJFIo20wIu7Hgh77tx1io8bgw==", "dev": true, + "license": "MIT", "dependencies": { "@types/react": "*" } }, - "node_modules/@types/react-dom": { - "version": "16.9.16", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.16.tgz", - "integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==", + "node_modules/@types/react-csv": { + "version": "1.1.3", "dev": true, + "license": "MIT", "dependencies": { - "@types/react": "^16" + "@types/react": "*" } }, - "node_modules/@types/react-dom/node_modules/@types/react": { - "version": "16.14.30", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.30.tgz", - "integrity": "sha512-tG+xGtDDSuIl1l63mN0LnaROAc99knkYyN4YTheE80iPzYvSy0U8LVie+OBZkrgjVrpkQV6bMCkSphPBnVNk6g==", + "node_modules/@types/react-datepicker": { + "version": "4.4.2", "dev": true, + "license": "MIT", "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "@popperjs/core": "^2.9.2", + "@types/react": "*", + "date-fns": "^2.0.1", + "react-popper": "^2.2.5" + } + }, + "node_modules/@types/react-dom": { + "version": "17.0.17", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "^17" + } + }, + "node_modules/@types/react-grid-layout": { + "version": "1.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-redux": { + "version": "7.1.24", + "license": "MIT", + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" } }, "node_modules/@types/react-syntax-highlighter": { "version": "13.5.2", - "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-13.5.2.tgz", - "integrity": "sha512-sRZoKZBGKaE7CzMvTTgz+0x/aVR58ZYUTfB7HN76vC+yQnvo1FWtzNARBt0fGqcLGEVakEzMu/CtPzssmanu8Q==", "dev": true, + "license": "MIT", "dependencies": { "@types/react": "*" } }, + "node_modules/@types/react-virtualized-auto-sizer": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-window": { + "version": "1.8.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-window-infinite-loader": { + "version": "1.0.6", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*", + "@types/react-window": "*" + } + }, + "node_modules/@types/resize-observer-browser": { + "version": "0.1.7", + "license": "MIT" + }, "node_modules/@types/scheduler": { "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.3.12", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/source-list-map": { + "version": "0.1.2", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sqlstring": { + "version": "2.3.0", + "dev": true, + "license": "MIT" }, "node_modules/@types/stack-utils": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@types/strip-ansi": { + "version": "5.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "*" + } + }, + "node_modules/@types/tapable": { + "version": "1.0.8", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/uglify-js": { + "version": "3.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "^0.6.1" + } }, "node_modules/@types/unist": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/webpack": { + "version": "4.41.32", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@types/webpack-env": { + "version": "1.18.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/webpack-sources": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + } + }, + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.7.4", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } }, "node_modules/@types/yargs": { "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@types/zxcvbn": { + "version": "4.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.39.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "5.39.0", + "@typescript-eslint/type-utils": "5.39.0", + "@typescript-eslint/utils": "5.39.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.8", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, "node_modules/@typescript-eslint/parser": { - "version": "5.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.0.tgz", - "integrity": "sha512-cgM5cJrWmrDV2KpvlcSkelTBASAs1mgqq+IUGKJvFxWrapHpaRy5EXPQz9YaKF3nZ8KY18ILTiVpUtbIac86/w==", + "version": "5.39.0", + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "5.33.0", - "@typescript-eslint/types": "5.33.0", - "@typescript-eslint/typescript-estree": "5.33.0", + "@typescript-eslint/scope-manager": "5.39.0", + "@typescript-eslint/types": "5.39.0", + "@typescript-eslint/typescript-estree": "5.39.0", "debug": "^4.3.4" }, "engines": { @@ -5457,12 +8875,11 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.0.tgz", - "integrity": "sha512-/Jta8yMNpXYpRDl8EwF/M8It2A9sFJTubDo0ATZefGXmOqlaBffEw0ZbkbQ7TNDK6q55NPHFshGBPAZvZkE8Pw==", + "version": "5.39.0", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.33.0", - "@typescript-eslint/visitor-keys": "5.33.0" + "@typescript-eslint/types": "5.39.0", + "@typescript-eslint/visitor-keys": "5.39.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5472,10 +8889,35 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.39.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.39.0", + "@typescript-eslint/utils": "5.39.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/types": { - "version": "5.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.0.tgz", - "integrity": "sha512-nIMt96JngB4MYFYXpZ/3ZNU4GWPNdBbcB5w2rDOCpXOVUkhtNlG2mmm8uXhubhidRZdwMaMBap7Uk8SZMU/ppw==", + "version": "5.39.0", + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -5485,12 +8927,11 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.0.tgz", - "integrity": "sha512-tqq3MRLlggkJKJUrzM6wltk8NckKyyorCSGMq4eVkyL5sDYzJJcMgZATqmF8fLdsWrW7OjjIZ1m9v81vKcaqwQ==", + "version": "5.39.0", + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.33.0", - "@typescript-eslint/visitor-keys": "5.33.0", + "@typescript-eslint/types": "5.39.0", + "@typescript-eslint/visitor-keys": "5.39.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5512,16 +8953,14 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -5537,18 +8976,9 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5559,12 +8989,34 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.0.tgz", - "integrity": "sha512-/XsqCzD4t+Y9p5wd9HZiptuGKBlaZO5showwqODii5C0nZawxWLF+Q6k5wYHBrQv96h6GYKyqqMHCSTqta8Kiw==", + "node_modules/@typescript-eslint/utils": { + "version": "5.39.0", + "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.33.0", + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.39.0", + "@typescript-eslint/types": "5.39.0", + "@typescript-eslint/typescript-estree": "5.39.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.39.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.39.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -5575,231 +9027,193 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.9.0", "devOptional": true, - "peer": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "version": "1.9.0", "devOptional": true, - "peer": true + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "version": "1.9.0", "devOptional": true, - "peer": true + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.9.0", "devOptional": true, - "peer": true + "license": "MIT" }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", "devOptional": true, - "peer": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "devOptional": true, + "license": "ISC" + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "version": "1.9.0", "devOptional": true, - "peer": true + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.9.0", "devOptional": true, - "peer": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.9.0", "devOptional": true, - "peer": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.9.0", "devOptional": true, - "peer": true, + "license": "MIT", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.9.0", "devOptional": true, - "peer": true + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.9.0", "devOptional": true, - "peer": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.9.0", "devOptional": true, - "peer": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.9.0", "devOptional": true, - "peer": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.9.0", "devOptional": true, - "peer": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", "devOptional": true, - "peer": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", "@xtuc/long": "4.2.2" } }, - "node_modules/@wry/context": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", - "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "devOptional": true, + "license": "MIT", "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/equality": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", - "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz", - "integrity": "sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" } }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "devOptional": true, - "peer": true + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "devOptional": true, - "peer": true + "license": "Apache-2.0" }, "node_modules/abab": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/accepts": { + "version": "1.3.8", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } }, "node_modules/acorn": { "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -5809,8 +9223,8 @@ }, "node_modules/acorn-globals": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "license": "MIT", "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -5818,16 +9232,14 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-node": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "license": "Apache-2.0", "dependencies": { "acorn": "^7.0.0", "acorn-walk": "^7.0.0", @@ -5836,16 +9248,22 @@ }, "node_modules/acorn-walk": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, + "node_modules/address": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", "dependencies": { "debug": "4" }, @@ -5853,14 +9271,49 @@ "node": ">= 6.0.0" } }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/airbnb-js-shims": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "array.prototype.flatmap": "^1.2.1", + "es5-shim": "^4.5.13", + "es6-shim": "^0.35.5", + "function.prototype.name": "^1.1.0", + "globalthis": "^1.0.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0 || ^1.0.0", + "object.getownpropertydescriptors": "^2.0.3", + "object.values": "^1.1.0", + "promise.allsettled": "^1.0.0", + "promise.prototype.finally": "^3.1.0", + "string.prototype.matchall": "^4.0.0 || ^3.0.1", + "string.prototype.padend": "^3.0.0", + "string.prototype.padstart": "^3.0.0", + "symbol.prototype.description": "^1.0.0" + } + }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.11.0", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { @@ -5868,29 +9321,86 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/ajv-errors": { + "version": "1.0.1", "devOptional": true, + "license": "MIT", "peerDependencies": { - "ajv": "^6.9.1" + "ajv": ">=5.0.0" + } + }, + "node_modules/allure-commandline": { + "version": "2.18.1", + "dev": true, + "license": "Apache-2.0", + "bin": { + "allure": "bin/allure" + } + }, + "node_modules/allure-js-commons": { + "version": "2.0.0-beta.19", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mkdirp": "^1.0.4", + "properties": "^1.2.1", + "uuid": "^8.3.0" + } + }, + "node_modules/allure-js-commons/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/analytics-node": { + "version": "3.5.0", + "license": "MIT", + "dependencies": { + "@segment/loosely-validate-event": "^2.0.0", + "axios": "^0.21.1", + "axios-retry": "^3.0.2", + "lodash.isstring": "^4.0.1", + "md5": "^2.2.1", + "ms": "^2.0.0", + "remove-trailing-slash": "^0.1.0", + "uuid": "^3.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/analytics-node/node_modules/uuid": { + "version": "3.4.0", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" } }, "node_modules/ansi-colors": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -5903,9 +9413,8 @@ }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -5913,10 +9422,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, "node_modules/ansi-red": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==", + "license": "MIT", "dependencies": { "ansi-wrap": "0.1.0" }, @@ -5926,38 +9445,45 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "3.2.1", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=8" + "node": ">=4" + } + }, + "node_modules/ansi-to-html": { + "version": "0.6.15", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^2.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "bin": { + "ansi-to-html": "bin/ansi-to-html" + }, + "engines": { + "node": ">=8.0.0" } }, "node_modules/ansi-wrap": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/anymatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -5966,51 +9492,102 @@ "node": ">= 8" } }, + "node_modules/app-root-dir": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/aproba": { + "version": "1.2.0", + "license": "ISC" + }, + "node_modules/are-we-there-yet": { + "version": "1.1.7", + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, "node_modules/arg": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "license": "MIT" }, "node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/aria-hidden": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.1.3.tgz", - "integrity": "sha512-RhVWFtKH5BiGMycI72q2RAFMLQi8JP9bLuQXgR5a8Znp7P5KOIADSJeyfI8PCVxLEp067B2HbP5JIiI/PXIZeA==", + "version": "1.2.1", + "license": "MIT", "dependencies": { - "tslib": "^1.0.0" + "tslib": "^2.0.0" }, "engines": { - "node": ">=8.5.0" + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.9.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/aria-hidden/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, + "version": "5.0.2", + "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=6.0" } }, + "node_modules/arr-diff": { + "version": "4.0.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, "node_modules/array-includes": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -6027,8 +9604,7 @@ }, "node_modules/array-union": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -6036,10 +9612,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/array-uniq": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array.prototype.flat": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -6055,8 +9646,7 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -6070,43 +9660,164 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "node_modules/array.prototype.map": { + "version": "1.0.4", "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true + "node_modules/asn1.js": { + "version": "5.4.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/assert": { + "version": "1.5.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "devOptional": true, + "license": "ISC" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "devOptional": true, + "license": "MIT", + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types": { + "version": "0.14.2", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "license": "ISC" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/astring": { + "version": "1.8.3", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "optional": true }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "dev": true, + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "devOptional": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } }, "node_modules/autolinker": { "version": "0.28.1", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz", - "integrity": "sha512-zQAFO1Dlsn69eXaO6+7YZc+v84aquQKbwpzCE3L0stj56ERn9hutFxPopViLjo9G+rWwjozRhgS5KJ25Xy19cQ==", + "license": "MIT", "dependencies": { "gulp-header": "^1.7.1" } }, "node_modules/autoprefixer": { - "version": "10.4.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.8.tgz", - "integrity": "sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==", + "version": "10.4.12", "funding": [ { "type": "opencollective", @@ -6117,9 +9828,10 @@ "url": "https://tidelift.com/funding/github/npm/autoprefixer" } ], + "license": "MIT", "dependencies": { - "browserslist": "^4.21.3", - "caniuse-lite": "^1.0.30001373", + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001407", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -6135,33 +9847,69 @@ "postcss": "^8.1.0" } }, + "node_modules/awesome-debounce-promise": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@types/debounce-promise": "^3.1.1", + "awesome-imperative-promise": "^1.0.1", + "awesome-only-resolves-last-promise": "^1.0.3", + "debounce-promise": "^3.1.0" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + } + }, + "node_modules/awesome-imperative-promise": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=8", + "npm": ">=5" + } + }, + "node_modules/awesome-only-resolves-last-promise": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "awesome-imperative-promise": "^1.0.1" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + } + }, "node_modules/axe-core": { "version": "4.4.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", - "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", + "license": "MPL-2.0", "engines": { "node": ">=4" } }, "node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "dev": true, + "version": "0.21.4", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.14.0" + } + }, + "node_modules/axios-retry": { + "version": "3.3.1", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" } }, "node_modules/axobject-query": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + "license": "Apache-2.0" }, "node_modules/babel-jest": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/transform": "^27.5.1", "@jest/types": "^27.5.1", @@ -6179,11 +9927,72 @@ "@babel/core": "^7.8.0" } }, + "node_modules/babel-jest/node_modules/@jest/transform": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-jest/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-jest/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/babel-jest/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -6195,10 +10004,262 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/jest-haste-map": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/babel-jest/node_modules/jest-regex-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-jest/node_modules/jest-serializer": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-jest/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.2.5", + "dev": true, + "license": "MIT", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/babel-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/babel-loader/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/babel-loader/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader/node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-add-react-displayname": { + "version": "0.0.5", + "dev": true, + "license": "MIT" + }, "node_modules/babel-plugin-apply-mdx-type-prop": { "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", - "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "7.10.4", "@mdx-js/util": "1.6.22" @@ -6213,21 +10274,19 @@ }, "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + "license": "MIT" }, "node_modules/babel-plugin-dynamic-import-node": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "license": "MIT", "dependencies": { "object.assign": "^4.1.0" } }, "node_modules/babel-plugin-extract-import-names": { "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", - "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "7.10.4" }, @@ -6238,14 +10297,12 @@ }, "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + "license": "MIT" }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -6259,9 +10316,8 @@ }, "node_modules/babel-plugin-jest-hoist": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -6272,13 +10328,27 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", - "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", + "version": "0.3.3", + "dev": true, + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.2", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" }, "peerDependencies": { @@ -6286,33 +10356,42 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", - "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "version": "0.6.0", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.2", - "core-js-compat": "^3.21.0" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", - "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", + "version": "0.4.1", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.2" + "@babel/helper-define-polyfill-provider": "^0.3.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, + "node_modules/babel-plugin-react-docgen": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ast-types": "^0.14.2", + "lodash": "^4.17.15", + "react-docgen": "^5.0.0" + } + }, "node_modules/babel-preset-current-node-syntax": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -6333,9 +10412,8 @@ }, "node_modules/babel-preset-jest": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", "dev": true, + "license": "MIT", "dependencies": { "babel-plugin-jest-hoist": "^27.5.1", "babel-preset-current-node-syntax": "^1.0.0" @@ -6349,8 +10427,7 @@ }, "node_modules/bail": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6358,29 +10435,294 @@ }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "devOptional": true, + "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/better-opn": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "open": "^7.0.3" + }, + "engines": { + "node": ">8.0.0" + } + }, + "node_modules/better-opn/node_modules/open": { + "version": "7.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/big-integer": { + "version": "1.6.51", + "dev": true, + "license": "Unlicense", + "optional": true, + "engines": { + "node": ">=0.6" + } }, "node_modules/big.js": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/bindings": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "devOptional": true, + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "devOptional": true, + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.10.3", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/boxen": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bplist-parser": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "big-integer": "^1.6.7" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6388,8 +10730,7 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -6397,15 +10738,117 @@ "node": ">=8" } }, + "node_modules/brorand": { + "version": "1.1.0", + "devOptional": true, + "license": "MIT" + }, "node_modules/browser-process-hrtime": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "devOptional": true, + "license": "ISC", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "devOptional": true, + "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/browserify-zlib": { + "version": "0.2.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "pako": "~1.0.5" + } }, "node_modules/browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.21.4", "funding": [ { "type": "opencollective", @@ -6416,11 +10859,12 @@ "url": "https://tidelift.com/funding/github/npm/browserslist" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "update-browserslist-db": "^1.0.9" }, "bin": { "browserslist": "cli.js" @@ -6431,9 +10875,8 @@ }, "node_modules/bs-logger": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, + "license": "MIT", "dependencies": { "fast-json-stable-stringify": "2.x" }, @@ -6443,23 +10886,47 @@ }, "node_modules/bser": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } }, + "node_modules/buffer": { + "version": "4.9.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "license": "MIT" + }, + "node_modules/buffer-writer": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "devOptional": true, + "license": "MIT" + }, + "node_modules/buffer/node_modules/isarray": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT" }, "node_modules/bufferutil": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", - "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "node-gyp-build": "^4.3.0" }, @@ -6467,10 +10934,132 @@ "node": ">=6.14.2" } }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/c8": { + "version": "7.12.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/c8/node_modules/v8-to-istanbul": { + "version": "9.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -6481,42 +11070,64 @@ }, "node_modules/call-me-maybe": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/camel-case": { + "version": "4.1.2", "dev": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/camelcase-css": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", "engines": { "node": ">= 6" } }, + "node_modules/camelcase-keys": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/caniuse-lite": { - "version": "1.0.30001375", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001375.tgz", - "integrity": "sha512-kWIMkNzLYxSvnjy0hL8w1NOaWNr2rn39RTAVyIwcw8juu60bZDWiF1/loOYANzjtJmy6qPgNmn38ro5Pygagdw==", + "version": "1.0.30001418", "funding": [ { "type": "opencollective", @@ -6526,12 +11137,31 @@ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" } - ] + ], + "license": "CC-BY-4.0" + }, + "node_modules/capture-exit": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "rsvp": "^4.8.4" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, "node_modules/ccount": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", + "version": "2.0.1", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6539,8 +11169,7 @@ }, "node_modules/chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -6550,79 +11179,25 @@ "node": ">=4" } }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/chalk/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==" - }, - "node_modules/chalk/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "version": "2.0.2", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-entities-html4": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", - "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==", + "version": "2.1.0", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6630,8 +11205,7 @@ }, "node_modules/character-entities-legacy": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6639,23 +11213,28 @@ }, "node_modules/character-reference-invalid": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/charenc": { + "version": "0.0.2", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, "node_modules/chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -6672,96 +11251,259 @@ "fsevents": "~2.3.2" } }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/chrome-trace-event": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "devOptional": true, - "peer": true, + "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", - "dev": true + "version": "3.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } }, "node_modules/cjs-module-lexer": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/class-utils": { + "version": "0.3.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, "node_modules/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + "version": "2.3.2", + "license": "MIT" + }, + "node_modules/clean-css": { + "version": "4.2.4", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/clipboard": { + "version": "2.0.11", + "license": "MIT", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } }, "node_modules/cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/clone-deep": { + "version": "4.0.1", "dev": true, + "license": "MIT", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "isobject": "^3.0.1" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=0.10.0" + } + }, + "node_modules/clsx": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" } }, + "node_modules/code-point-at": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/coffee-script": { "version": "1.12.7", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", - "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==", - "deprecated": "CoffeeScript on NPM has moved to \"coffeescript\" (no hyphen)", + "license": "MIT", "bin": { "cake": "bin/cake", "coffee": "bin/coffee" @@ -6772,8 +11514,7 @@ }, "node_modules/collapse-white-space": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6781,30 +11522,44 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/collection-visit": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" } }, "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/color-support": { + "version": "1.1.3", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -6813,30 +11568,94 @@ } }, "node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "version": "2.0.2", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/commander": { + "version": "6.2.1", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/common": { "resolved": "packages/common", "link": true }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "dev": true, + "license": "ISC" + }, + "node_modules/commondir": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT" + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/component-type": { + "version": "1.2.1", + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "license": "MIT" }, "node_modules/concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "engines": [ "node >= 0.8" ], + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -6846,8 +11665,7 @@ }, "node_modules/concat-with-sourcemaps": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "license": "ISC", "dependencies": { "source-map": "^0.6.1" } @@ -6856,48 +11674,152 @@ "resolved": "packages/config", "link": true }, + "node_modules/configcat-common": { + "version": "5.3.0", + "license": "MIT" + }, + "node_modules/configcat-js": { + "version": "5.10.0", + "license": "MIT", + "dependencies": { + "configcat-common": "^5.3.0" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "devOptional": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "license": "ISC" + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-disposition/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "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/content-type": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/convert-source-map": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.1" } }, + "node_modules/cookie": { + "version": "0.4.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "devOptional": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "devOptional": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/copy-to-clipboard": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz", - "integrity": "sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg==", + "license": "MIT", "dependencies": { "toggle-selection": "^1.0.6" } }, + "node_modules/core-js": { + "version": "3.25.5", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/core-js-compat": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", - "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", + "version": "3.25.5", + "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.21.3", - "semver": "7.0.0" + "browserslist": "^4.21.4" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/core-js-pure": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.24.1.tgz", - "integrity": "sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg==", + "version": "3.25.5", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -6905,27 +11827,380 @@ }, "node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cp-file": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cp-file/node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy": { + "version": "8.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^2.0.1", + "cp-file": "^7.0.0", + "globby": "^9.2.0", + "has-glob": "^1.0.0", + "junk": "^3.1.0", + "nested-error-stacks": "^2.1.0", + "p-all": "^2.1.0", + "p-filter": "^2.1.0", + "p-map": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cpy/node_modules/@nodelib/fs.stat": { + "version": "1.1.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cpy/node_modules/@types/glob": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/cpy/node_modules/array-union": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/braces": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/dir-glob": { + "version": "2.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cpy/node_modules/fast-glob": { + "version": "2.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/cpy/node_modules/fill-range": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/glob-parent": { + "version": "3.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/cpy/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/globby": { + "version": "9.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cpy/node_modules/ignore": { + "version": "4.0.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/cpy/node_modules/is-extendable": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/is-number": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/is-plain-object": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/micromatch": { + "version": "3.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cpy/node_modules/path-type": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cpy/node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/cpy/node_modules/slash": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cpy/node_modules/to-regex-range": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "devOptional": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } }, "node_modules/create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/cross-fetch": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "license": "MIT", "dependencies": { "node-fetch": "2.6.7" } }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6935,11 +12210,42 @@ "node": ">= 8" } }, + "node_modules/crypt": { + "version": "0.0.2", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-js": { + "version": "4.1.1", + "license": "MIT" + }, "node_modules/css-blank-pseudo": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", - "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.5" }, @@ -6952,15 +12258,13 @@ }, "node_modules/css-blank-pseudo/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/css-blank-pseudo/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -6973,11 +12277,17 @@ "url": "https://opencollective.com/postcss/" } }, + "node_modules/css-box-model": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "tiny-invariant": "^1.0.6" + } + }, "node_modules/css-has-pseudo": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", - "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.6", "postcss-selector-parser": "^5.0.0-rc.4" @@ -6991,9 +12301,8 @@ }, "node_modules/css-has-pseudo/node_modules/cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -7003,15 +12312,13 @@ }, "node_modules/css-has-pseudo/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/css-has-pseudo/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -7026,9 +12333,8 @@ }, "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", @@ -7038,32 +12344,97 @@ "node": ">=4" } }, - "node_modules/css-prefers-color-scheme": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", - "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", + "node_modules/css-loader": { + "version": "3.6.0", "dev": true, + "license": "MIT", "dependencies": { - "postcss": "^7.0.5" - }, - "bin": { - "css-prefers-color-scheme": "cli.js" + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" }, "engines": { - "node": ">=6.0.0" + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/css-prefers-color-scheme/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/css-prefers-color-scheme/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "node_modules/css-loader/node_modules/ajv": { + "version": "6.12.6", "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/css-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/css-loader/node_modules/json5": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/css-loader/node_modules/loader-utils": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/css-loader/node_modules/picocolors": { + "version": "0.2.1", + "dev": true, + "license": "ISC" + }, + "node_modules/css-loader/node_modules/postcss": { + "version": "7.0.39", + "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -7076,21 +12447,96 @@ "url": "https://opencollective.com/postcss/" } }, - "node_modules/css-selector-parser": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", - "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==" + "node_modules/css-loader/node_modules/schema-utils": { + "version": "2.7.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "3.1.1", + "dev": true, + "license": "CC0-1.0", + "dependencies": { + "postcss": "^7.0.5" + }, + "bin": { + "css-prefers-color-scheme": "cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/css-prefers-color-scheme/node_modules/picocolors": { + "version": "0.2.1", + "dev": true, + "license": "ISC" + }, + "node_modules/css-prefers-color-scheme/node_modules/postcss": { + "version": "7.0.39", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-unit-converter": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/css-what": { + "version": "6.1.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } }, "node_modules/cssdb": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", - "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/cssesc": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -7098,15 +12544,20 @@ "node": ">=4" } }, + "node_modules/cssfontparser": { + "version": "1.2.1", + "dev": true, + "license": "MIT" + }, "node_modules/cssom": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + "dev": true, + "license": "MIT" }, "node_modules/cssstyle": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "license": "MIT", "dependencies": { "cssom": "~0.3.6" }, @@ -7116,13 +12567,29 @@ }, "node_modules/cssstyle/node_modules/cssom": { "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + "dev": true, + "license": "MIT" }, "node_modules/csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "version": "3.1.1", + "license": "MIT" + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cyclist": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT" }, "node_modules/d": { "version": "1.0.1", @@ -7133,15 +12600,72 @@ "type": "^1.0.1" } }, + "node_modules/d3-array": { + "version": "2.12.1", + "license": "BSD-3-Clause", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-color": { + "version": "2.0.0", + "license": "BSD-3-Clause" + }, + "node_modules/d3-format": { + "version": "2.0.0", + "license": "BSD-3-Clause" + }, + "node_modules/d3-interpolate": { + "version": "2.0.1", + "license": "BSD-3-Clause", + "dependencies": { + "d3-color": "1 - 2" + } + }, + "node_modules/d3-path": { + "version": "2.0.0", + "license": "BSD-3-Clause" + }, + "node_modules/d3-scale": { + "version": "3.3.0", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "^2.1.1", + "d3-time-format": "2 - 3" + } + }, + "node_modules/d3-shape": { + "version": "2.1.0", + "license": "BSD-3-Clause", + "dependencies": { + "d3-path": "1 - 2" + } + }, + "node_modules/d3-time": { + "version": "2.1.1", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "2" + } + }, + "node_modules/d3-time-format": { + "version": "3.0.0", + "license": "BSD-3-Clause", + "dependencies": { + "d3-time": "1 - 2" + } + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + "license": "BSD-2-Clause" }, "node_modules/data-urls": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "license": "MIT", "dependencies": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", @@ -7153,18 +12677,19 @@ }, "node_modules/date-fns": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.10.0.tgz", - "integrity": "sha512-EhfEKevYGWhWlZbNeplfhIU/+N+x0iCIx7VzKlXma2EdQyznVlZhCptXUY+BegNpPW2kjdx15Rvq503YcXXrcA==" + "license": "MIT" }, "node_modules/dayjs": { "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "license": "MIT" + }, + "node_modules/debounce-promise": { + "version": "3.1.2", + "license": "MIT" }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -7177,24 +12702,31 @@ } } }, + "node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, "node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, + "license": "MIT", + "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + "version": "10.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "license": "MIT" }, "node_modules/decode-named-character-reference": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, @@ -7203,38 +12735,58 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/decode-named-character-reference/node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/decode-uri-component": { + "version": "0.2.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10" } }, "node_modules/dedent": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/default-browser-id": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bplist-parser": "^0.1.0", + "meow": "^3.1.0", + "untildify": "^2.0.0" + }, + "bin": { + "default-browser-id": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/define-properties": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "license": "MIT", "dependencies": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" @@ -7246,36 +12798,74 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/define-property": { + "version": "2.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/defined": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==" + "license": "MIT" }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + "node_modules/delegate": { + "version": "3.2.0", + "license": "MIT" + }, + "node_modules/delegates": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/depd": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } }, "node_modules/dequal": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", - "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==", + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/des.js": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, "node_modules/detab": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", - "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", + "license": "MIT", "dependencies": { "repeat-string": "^1.5.4" }, @@ -7286,22 +12876,43 @@ }, "node_modules/detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/detect-node-es": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + "license": "MIT" + }, + "node_modules/detect-package-manager": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detect-port": { + "version": "1.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + } }, "node_modules/detective": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "license": "MIT", "dependencies": { "acorn-node": "^1.8.2", "defined": "^1.0.0", @@ -7316,39 +12927,49 @@ }, "node_modules/diacritics-map": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz", - "integrity": "sha512-3omnDTYrGigU0i4cJjvaKwD52B8aoqyX/NEIkukFFkogBemsIbhSa1O414fpTp5nuszJG6lvQ5vBvDVNCbSsaQ==", + "license": "MIT", "engines": { "node": ">=0.8.0" } }, "node_modules/didyoumean": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + "license": "Apache-2.0" }, "node_modules/diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "devOptional": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, "node_modules/diff-sequences": { "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8.3" } }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "devOptional": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "devOptional": true, + "license": "MIT" + }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -7358,17 +12979,20 @@ }, "node_modules/dlv": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "license": "MIT" }, - "node_modules/docs": { - "resolved": "apps/temp-docs", - "link": true + "node_modules/dnd-core": { + "version": "14.0.1", + "license": "MIT", + "dependencies": { + "@react-dnd/asap": "^4.0.0", + "@react-dnd/invariant": "^2.0.0", + "redux": "^4.1.1" + } }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -7376,27 +13000,75 @@ "node": ">=6.0.0" } }, + "node_modules/dom-accessibility-api": { + "version": "0.5.14", + "dev": true, + "license": "MIT" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, "node_modules/dom-helpers": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "dev": true + }, "node_modules/dom7": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz", - "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", + "license": "MIT", "dependencies": { "ssr-window": "^3.0.0-alpha.1" } }, + "node_modules/domain-browser": { + "version": "1.2.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, "node_modules/domexception": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "license": "MIT", "dependencies": { "webidl-conversions": "^5.0.0" }, @@ -7406,46 +13078,108 @@ }, "node_modules/domexception/node_modules/webidl-conversions": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=8" } }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "node_modules/domhandler": { + "version": "4.3.1", "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "8.6.0", + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=10" } }, - "node_modules/ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "node_modules/dotenv-expand": { + "version": "5.1.0", "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "license": "MIT" + }, + "node_modules/duplexify": { + "version": "3.7.1", + "devOptional": true, + "license": "MIT", "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, + "node_modules/ee-first": { + "version": "1.1.1", + "dev": true, + "license": "MIT" + }, "node_modules/electron-to-chromium": { - "version": "1.4.217", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.217.tgz", - "integrity": "sha512-iX8GbAMij7cOtJPZo02CClpaPMWjvN5meqXiJXkBgwvraNWTNH0Z7F9tkznI34JRPtWASoPM/xWamq3oNb49GA==" + "version": "1.4.275", + "license": "ISC" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "devOptional": true, + "license": "MIT" }, "node_modules/emittery": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7455,22 +13189,44 @@ }, "node_modules/emoji-regex": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "license": "MIT" }, "node_modules/emojis-list": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", "engines": { "node": ">= 4" } }, + "node_modules/encodeurl": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/endent": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "dedent": "^0.7.0", + "fast-json-parse": "^1.0.3", + "objectorarray": "^1.0.5" + } + }, "node_modules/enhanced-resolve": { "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "devOptional": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -7479,11 +13235,16 @@ "node": ">=10.13.0" } }, + "node_modules/enhanced-resolve/node_modules/tapable": { + "version": "2.2.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/enquirer": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, + "license": "MIT", "dependencies": { "ansi-colors": "^4.1.1" }, @@ -7491,40 +13252,66 @@ "node": ">=8.6" } }, + "node_modules/entities": { + "version": "2.2.0", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "devOptional": true, + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, "node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.20.4", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", "string.prototype.trimend": "^1.0.5", "string.prototype.trimstart": "^1.0.5", "unbox-primitive": "^1.0.2" @@ -7536,25 +13323,39 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "devOptional": true, - "peer": true + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/es-get-iterator": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "license": "MIT", "dependencies": { "has": "^1.0.3" } }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -7581,6 +13382,14 @@ "node": ">=0.10" } }, + "node_modules/es5-shim": { + "version": "4.6.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", @@ -7591,6 +13400,11 @@ "es6-symbol": "^3.1.1" } }, + "node_modules/es6-shim": { + "version": "0.35.6", + "dev": true, + "license": "MIT" + }, "node_modules/es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", @@ -7600,43 +13414,29 @@ "ext": "^1.1.2" } }, - "node_modules/esbuild": { - "version": "0.12.29", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.29.tgz", - "integrity": "sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - } - }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "dev": true, + "license": "MIT" }, "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "version": "1.0.5", + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.8.0" } }, "node_modules/escodegen": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -7654,99 +13454,48 @@ "source-map": "~0.6.1" } }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", + "version": "7.32.0", + "license": "MIT", "dependencies": { - "@eslint/eslintrc": "^1.1.0", - "@humanwhocodes/config-array": "^0.9.2", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.3.2", + "debug": "^4.0.1", "doctrine": "^3.0.0", + "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", + "glob-parent": "^5.1.2", "globals": "^13.6.0", - "ignore": "^5.2.0", + "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -7754,25 +13503,34 @@ "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^10.12.0 || >=12.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-config-next": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.2.5.tgz", - "integrity": "sha512-SOowilkqPzW6DxKp3a3SYlrfPi5Ajs9MIzp9gVfUDxxH9QFM5ElkR1hX5m/iICJuvCbWgQqFBiA3mCMozluniw==", + "node_modules/eslint-config-custom": { + "version": "0.0.0", + "dev": true, + "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "12.2.5", + "eslint-config-next": "^12.0.8", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-react": "7.28.0" + } + }, + "node_modules/eslint-config-next": { + "version": "12.3.1", + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "12.3.1", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^2.7.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.29.4", + "eslint-plugin-react": "^7.31.7", "eslint-plugin-react-hooks": "^4.5.0" }, "peerDependencies": { @@ -7787,8 +13545,7 @@ }, "node_modules/eslint-config-next/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -7797,9 +13554,8 @@ } }, "node_modules/eslint-config-next/node_modules/eslint-plugin-react": { - "version": "7.30.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", - "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", + "version": "7.31.8", + "license": "MIT", "dependencies": { "array-includes": "^3.1.5", "array.prototype.flatmap": "^1.3.0", @@ -7823,18 +13579,9 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, - "node_modules/eslint-config-next/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint-config-next/node_modules/resolve": { "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "license": "MIT", "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -7849,8 +13596,7 @@ }, "node_modules/eslint-config-prettier": { "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -7860,8 +13606,7 @@ }, "node_modules/eslint-import-resolver-node": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "license": "MIT", "dependencies": { "debug": "^3.2.7", "resolve": "^1.20.0" @@ -7869,16 +13614,14 @@ }, "node_modules/eslint-import-resolver-node/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-import-resolver-typescript": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz", - "integrity": "sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==", + "license": "ISC", "dependencies": { "debug": "^4.3.4", "glob": "^7.2.0", @@ -7896,8 +13639,7 @@ }, "node_modules/eslint-module-utils": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -7912,16 +13654,14 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "license": "MIT", "dependencies": { "array-includes": "^3.1.4", "array.prototype.flat": "^1.2.5", @@ -7946,16 +13686,14 @@ }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -7965,13 +13703,11 @@ }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "license": "MIT" }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", - "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.9", "aria-query": "^4.2.2", @@ -7994,10 +13730,20 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { + "version": "4.2.2", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, "node_modules/eslint-plugin-react": { "version": "7.28.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz", - "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==", + "license": "MIT", "dependencies": { "array-includes": "^3.1.4", "array.prototype.flatmap": "^1.2.5", @@ -8023,8 +13769,7 @@ }, "node_modules/eslint-plugin-react-hooks": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -8034,8 +13779,7 @@ }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -8043,18 +13787,9 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-react/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", + "license": "MIT", "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -8069,9 +13804,7 @@ }, "node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "devOptional": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -8080,118 +13813,17 @@ "node": ">=8.0.0" } }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/eslint/node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/eslint/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==" - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-utils": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -8205,26 +13837,252 @@ "eslint": ">=5" } }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10" } }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { + "node_modules/eslint-visitor-keys": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/eslint/node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/eslint/node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, "node_modules/eslint/node_modules/espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "version": "7.3.1", + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/eslint/node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.17.0", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/eslint/node_modules/optionator": { + "version": "0.9.1", + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/semver": { + "version": "7.3.8", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.4.0", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", @@ -8237,71 +14095,20 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/eslint/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==", - "dependencies": { - "argparse": "^2.0.1" - }, + "node_modules/espree/node_modules/acorn": { + "version": "8.8.0", + "dev": true, + "license": "MIT", "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "acorn": "bin/acorn" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -8312,8 +14119,7 @@ }, "node_modules/esquery": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -8321,18 +14127,9 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -8340,46 +14137,143 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "devOptional": true, + "node_modules/estree-to-babel": { + "version": "3.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.1.6", + "@babel/types": "^7.2.0", + "c8": "^7.6.0" + }, "engines": { - "node": ">=4.0" + "node": ">=8.3.0" } }, + "node_modules/estree-util-attach-comments": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-attach-comments/node_modules/@types/estree": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/estree-util-build-jsx": { + "version": "2.2.0", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js/node_modules/source-map": { + "version": "0.7.4", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/estree-util-visit": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.1", + "license": "MIT" + }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/etag": { + "version": "1.8.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "license": "MIT" + }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "devOptional": true, - "peer": true, + "license": "MIT", "engines": { "node": ">=0.8.x" } }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "devOptional": true, + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/exec-sh": { + "version": "0.3.6", + "dev": true, + "license": "MIT" + }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -8398,19 +14292,126 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/exenv": { + "version": "1.2.2", + "license": "BSD-3-Clause" + }, "node_modules/exit": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" } }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "devOptional": true, + "license": "MIT" + }, "node_modules/expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", + "license": "MIT", "dependencies": { "fill-range": "^2.1.0" }, @@ -8420,8 +14421,7 @@ }, "node_modules/expand-range/node_modules/fill-range": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "license": "MIT", "dependencies": { "is-number": "^2.1.0", "isobject": "^2.0.0", @@ -8435,13 +14435,11 @@ }, "node_modules/expand-range/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "license": "MIT" }, "node_modules/expand-range/node_modules/isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "license": "MIT", "dependencies": { "isarray": "1.0.0" }, @@ -8451,9 +14449,8 @@ }, "node_modules/expect": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "jest-get-type": "^27.5.1", @@ -8464,12 +14461,199 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "node_modules/expect/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", "dependencies": { - "type": "^2.5.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/expect/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/expect/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/expect/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/expect/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/expect/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/expect/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/expect/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/express": { + "version": "4.18.1", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/qs": { + "version": "6.10.3", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/express/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "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/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" } }, "node_modules/ext/node_modules/type": { @@ -8479,13 +14663,11 @@ }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "license": "MIT" }, "node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -8493,21 +14675,46 @@ "node": ">=0.10.0" } }, - "node_modules/faker": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", - "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", - "dev": true + "node_modules/extglob": { + "version": "2.0.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "license": "MIT" + }, + "node_modules/fast-equals": { + "version": "2.0.4", + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -8519,28 +14726,39 @@ "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-parse": { + "version": "1.0.3", + "dev": true, + "license": "MIT" + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "license": "MIT" }, "node_modules/fastq": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fault": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "license": "MIT", "dependencies": { "format": "^0.2.0" }, @@ -8550,18 +14768,26 @@ } }, "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", "dev": true, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } }, + "node_modules/fetch-retry": { + "version": "5.0.3", + "dev": true, + "license": "MIT" + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "devOptional": true, + "license": "ISC" + }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -8571,9 +14797,8 @@ }, "node_modules/file-loader": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", "dev": true, + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -8589,58 +14814,41 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "node_modules/file-saver": { + "version": "2.0.5", + "license": "MIT" + }, + "node_modules/file-system-cache": { + "version": "1.1.0", "dev": true, + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "fs-extra": "^10.1.0", + "ramda": "^0.28.0" + } + }, + "node_modules/file-system-cache/node_modules/fs-extra": { + "version": "10.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=12" } }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "node_modules/file-uri-to-path": { + "version": "1.0.0", "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } + "license": "MIT", + "optional": true }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -8648,23 +14856,134 @@ "node": ">=8" } }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/finalhandler": { + "version": "1.2.0", "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "3.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "3.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "2.3.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "3.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "3.0.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "3.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -8674,28 +14993,48 @@ } }, "node_modules/flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==" + "version": "3.2.7", + "license": "ISC" }, "node_modules/flatten": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", - "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/focus-lock": { + "version": "0.8.1", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/focus-lock/node_modules/tslib": { + "version": "1.14.1", + "dev": true, + "license": "0BSD" }, "node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "dev": true, + "version": "1.15.2", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -8707,16 +15046,203 @@ }, "node_modules/for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/foreground-child": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { + "version": "7.3.8", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/form-data": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -8728,22 +15254,19 @@ }, "node_modules/format": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", "engines": { "node": ">=0.4.x" } }, "node_modules/formik": { "version": "2.2.9", - "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", - "integrity": "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==", "funding": [ { "type": "individual", "url": "https://opencollective.com/formik" } ], + "license": "Apache-2.0", "dependencies": { "deepmerge": "^2.1.1", "hoist-non-react-statics": "^3.3.0", @@ -8759,25 +15282,26 @@ }, "node_modules/formik/node_modules/deepmerge": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/formik/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, - "node_modules/forum": { - "resolved": "apps/temp-community-forum", - "link": true + "node_modules/forwarded": { + "version": "0.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, "node_modules/fraction.js": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "license": "MIT", "engines": { "node": "*" }, @@ -8786,16 +15310,82 @@ "url": "https://www.patreon.com/infusion" } }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "dev": true, + "license": "Unlicense" + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "devOptional": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -8806,13 +15396,11 @@ }, "node_modules/function-bind": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "license": "MIT" }, "node_modules/function.prototype.name": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -8828,38 +15416,90 @@ }, "node_modules/functional-red-black-tree": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + "license": "MIT" }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gauge": { + "version": "2.7.4", + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/generate-password": { + "version": "1.7.0", + "license": "MIT" + }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "version": "1.1.3", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -8871,26 +15511,32 @@ }, "node_modules/get-nonce": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } }, + "node_modules/get-stdin": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -8900,8 +15546,7 @@ }, "node_modules/get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -8913,15 +15558,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-value": { + "version": "2.0.6", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/github-slugger": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", - "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==" + "license": "ISC" }, "node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8938,52 +15589,67 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" + } + }, + "node_modules/glob-promise": { + "version": "3.4.0", + "dev": true, + "license": "ISC", + "dependencies": { + "@types/glob": "*" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "glob": "*" } }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "devOptional": true, - "peer": true + "dev": true, + "license": "BSD-2-Clause" }, - "node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "node_modules/global": { + "version": "4.4.0", + "dev": true, + "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "min-document": "^2.19.0", + "process": "^0.11.10" } }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/globals": { + "version": "11.12.0", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/globby": { "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "license": "MIT", "dependencies": { "array-union": "^3.0.1", "dir-glob": "^3.0.1", @@ -8999,18 +15665,9 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, "node_modules/globby/node_modules/slash": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -9018,38 +15675,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/goober": { + "version": "2.1.11", + "license": "MIT", + "peerDependencies": { + "csstype": "^3.0.10" + } + }, + "node_modules/good-listener": { + "version": "1.2.2", + "license": "MIT", + "dependencies": { + "delegate": "^3.1.2" + } + }, "node_modules/graceful-fs": { "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "devOptional": true + "license": "ISC" }, - "node_modules/graphql": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.5.0.tgz", - "integrity": "sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA==", - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" - } - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "dev": true, + "license": "MIT" }, "node_modules/gray-matter": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", "dependencies": { "js-yaml": "^3.13.1", "kind-of": "^6.0.2", @@ -9062,19 +15713,49 @@ }, "node_modules/gulp-header": { "version": "1.8.12", - "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz", - "integrity": "sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==", - "deprecated": "Removed event-stream from gulp-header", + "license": "MIT", "dependencies": { "concat-with-sourcemaps": "*", "lodash.template": "^4.4.0", "through2": "^2.0.0" } }, + "node_modules/gzip-size": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, "node_modules/has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.1" }, @@ -9084,24 +15765,43 @@ }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "version": "3.0.0", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" + } + }, + "node_modules/has-glob": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-glob": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-glob/node_modules/is-glob": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -9111,8 +15811,7 @@ }, "node_modules/has-symbols": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9122,8 +15821,7 @@ }, "node_modules/has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -9134,10 +15832,125 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-unicode": { + "version": "2.0.1", + "license": "ISC" + }, + "node_modules/has-value": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "devOptional": true, + "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/hash.js": { + "version": "1.1.7", + "devOptional": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, "node_modules/hast-to-hyperscript": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", - "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.3", "comma-separated-tokens": "^1.0.0", @@ -9152,10 +15965,44 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-to-hyperscript/node_modules/comma-separated-tokens": { + "version": "1.0.8", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-to-hyperscript/node_modules/property-information": { + "version": "5.6.0", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-to-hyperscript/node_modules/space-separated-tokens": { + "version": "1.1.5", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-to-hyperscript/node_modules/unist-util-is": { + "version": "4.1.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-from-parse5": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", - "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "license": "MIT", "dependencies": { "@types/parse5": "^5.0.0", "hastscript": "^6.0.0", @@ -9169,28 +16016,109 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-from-parse5/node_modules/is-buffer": { + "version": "2.0.5", + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/hast-util-from-parse5/node_modules/property-information": { + "version": "5.6.0", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5/node_modules/vfile": { + "version": "4.2.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5/node_modules/vfile-location": { + "version": "3.2.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5/node_modules/vfile-message": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-has-property": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz", - "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==", + "version": "2.0.0", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-heading-rank": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-1.0.1.tgz", - "integrity": "sha512-P6Hq7RCky9syMevlrN90QWpqWDXCxwIVOfQR2rK6P4GpY4bqjKEuCzoWSRORZ7vz+VgRpLnXimh+mkwvVFjbyQ==", + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-is-element": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", - "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==", + "version": "2.1.2", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -9198,8 +16126,7 @@ }, "node_modules/hast-util-parse-selector": { "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -9207,8 +16134,7 @@ }, "node_modules/hast-util-raw": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", - "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "hast-util-from-parse5": "^6.0.0", @@ -9226,386 +16152,16 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-raw/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/hast-util-sanitize": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-2.0.3.tgz", - "integrity": "sha512-RILqWHmzU0Anmfw1KEP41LbCsJuJUVM0lQWAbTDk9+0bWqzRFXDaMdqIoRocLlOfR5NfcWyhFfZw/mGsuftwYA==", - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-html": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-6.1.0.tgz", - "integrity": "sha512-IlC+LG2HGv0Y8js3wqdhg9O2sO4iVpRDbHOPwXd7qgeagpGsnY49i8yyazwqS35RA35WCzrBQE/n0M6GG/ewxA==", - "dependencies": { - "ccount": "^1.0.0", - "comma-separated-tokens": "^1.0.1", - "hast-util-is-element": "^1.0.0", - "hast-util-whitespace": "^1.0.0", - "html-void-elements": "^1.0.0", - "property-information": "^5.2.0", - "space-separated-tokens": "^1.0.0", - "stringify-entities": "^2.0.0", - "unist-util-is": "^3.0.0", - "xtend": "^4.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-html/node_modules/hast-util-whitespace": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz", - "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-html/node_modules/unist-util-is": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", - "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" - }, - "node_modules/hast-util-to-parse5": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", - "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", - "dependencies": { - "hast-to-hyperscript": "^9.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-string": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz", - "integrity": "sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", - "integrity": "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "engines": { - "node": "*" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/html-to-image": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/html-to-image/-/html-to-image-1.10.1.tgz", - "integrity": "sha512-gFXnnC3HyPKlcmP3kPJ7ffOWJ4kUL3YqssrqVJ4LsczIzEvFyxa6mJKaQfew646raOUrwbKs9KrjcNb9zJ35gQ==" - }, - "node_modules/html-void-elements": { + "node_modules/hast-util-raw/node_modules/html-void-elements": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", - "optional": true, - "peer": true - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { + "node_modules/hast-util-raw/node_modules/is-buffer": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "funding": [ { "type": "github", @@ -9620,14 +16176,761 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "engines": { "node": ">=4" } }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "node_modules/hast-util-raw/node_modules/unist-util-position": { + "version": "3.1.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/vfile": { + "version": "4.2.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/vfile-message": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/zwitch": { + "version": "1.0.5", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-sanitize": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "estree-util-attach-comments": "^2.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "mdast-util-mdx-expression": "^1.0.0", + "mdast-util-mdxjs-esm": "^1.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.3.0", + "unist-util-position": "^4.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree/node_modules/@types/estree": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/hast-util-to-html": { + "version": "8.0.3", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "html-void-elements": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.2", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "hast-to-hyperscript": "^9.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5/node_modules/property-information": { + "version": "5.6.0", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-parse5/node_modules/zwitch": { + "version": "1.0.5", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-string": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "2.0.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript/node_modules/comma-separated-tokens": { + "version": "1.0.8", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hastscript/node_modules/property-information": { + "version": "5.6.0", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hastscript/node_modules/space-separated-tokens": { + "version": "1.1.5", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/he": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "license": "BSD-3-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "dev": true, + "license": "ISC" + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "dev": true, + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-tags": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-to-image": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/html-to-image/-/html-to-image-1.10.8.tgz", + "integrity": "sha512-t+JyFJwKDCp4ZwBp4iC/wqw0meQDDc77Qs8OFl5P7RGlIP3LQMvwpD7VXxqQfC7/TfC+GKYlFP6WDYfXTmXHfw==" + }, + "node_modules/html-void-elements": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-webpack-plugin": { + "version": "4.5.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, + "engines": { + "node": ">=6.9" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/json5": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/html-webpack-plugin/node_modules/loader-utils": { + "version": "1.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "4.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/icss-utils/node_modules/picocolors": { + "version": "0.2.1", + "dev": true, + "license": "ISC" + }, + "node_modules/icss-utils/node_modules/postcss": { + "version": "7.0.39", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "devOptional": true, + "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": "BSD-3-Clause" + }, + "node_modules/iferr": { + "version": "0.1.5", + "devOptional": true, + "license": "MIT" + }, + "node_modules/ignore": { + "version": "5.2.0", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "license": "MIT" + }, + "node_modules/immutability-helper": { + "version": "3.1.1", + "license": "MIT" + }, + "node_modules/immutable": { + "version": "4.1.0", + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "devOptional": true, + "license": "ISC" + }, + "node_modules/inflight": { + "version": "1.0.6", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "license": "MIT" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internmap": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/interpret": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -9635,10 +16938,78 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "license": "MIT" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/is-core-module": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -9646,10 +17017,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -9662,51 +17043,97 @@ }, "node_modules/is-decimal": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-dom": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-object": "^1.0.1", + "is-window": "^1.0.2" + } + }, "node_modules/is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/is-finite": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/is-function": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -9716,17 +17143,23 @@ }, "node_modules/is-hexadecimal": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-map": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-negative-zero": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9736,8 +17169,7 @@ }, "node_modules/is-number": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -9747,8 +17179,7 @@ }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -9759,15 +17190,9 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-number/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -9775,31 +17200,44 @@ "node": ">=0.10.0" } }, + "node_modules/is-object": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-plain-obj": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + "dev": true, + "license": "MIT" + }, + "node_modules/is-reference": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -9811,10 +17249,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-retry-allowed": { + "version": "2.2.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -9824,9 +17279,8 @@ }, "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==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -9836,8 +17290,7 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -9850,8 +17303,7 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -9864,13 +17316,17 @@ }, "node_modules/is-typedarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "license": "MIT" + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "dev": true, + "license": "MIT", + "optional": true }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -9880,49 +17336,81 @@ }, "node_modules/is-whitespace-character": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "node_modules/is-window": { + "version": "1.0.2", + "dev": true, + "license": "MIT" }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "node_modules/is-windows": { + "version": "1.0.2", + "devOptional": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/is-word-character": { + "version": "1.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-unfetch": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.1", + "unfetch": "^4.2.0" + } + }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "5.2.1", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -9936,9 +17424,8 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", @@ -9948,11 +17435,43 @@ "node": ">=8" } }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -9964,9 +17483,8 @@ }, "node_modules/istanbul-reports": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -9975,45 +17493,30 @@ "node": ">=8" } }, - "node_modules/jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "node_modules/iterate-iterator": { + "version": "1.0.2", "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/iterate-value": { + "version": "1.0.2", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/jest": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^27.5.1", "import-local": "^3.0.2", @@ -10034,11 +17537,37 @@ } } }, + "node_modules/jest-allure2-adapter": { + "version": "0.3.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/allure-js-commons": "^0.0.1", + "@types/node": "^10.1.2", + "@types/strip-ansi": "^5.2.0", + "allure-js-commons": "^2.0.0-beta.9", + "strip-ansi": "^6.0.0", + "uuid-by-string": "^3.0.2" + } + }, + "node_modules/jest-allure2-adapter/node_modules/@types/node": { + "version": "10.17.60", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-canvas-mock": { + "version": "2.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cssfontparser": "^1.2.1", + "moo-color": "^1.0.2" + } + }, "node_modules/jest-changed-files": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "execa": "^5.0.0", @@ -10048,11 +17577,97 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-changed-files/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-changed-files/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-changed-files/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-changed-files/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-changed-files/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-changed-files/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-circus": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^27.5.1", "@jest/test-result": "^27.5.1", @@ -10078,11 +17693,47 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-circus/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-circus/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10094,11 +17745,61 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-cli": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^27.5.1", "@jest/test-result": "^27.5.1", @@ -10128,11 +17829,47 @@ } } }, + "node_modules/jest-cli/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-cli/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-cli/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10144,11 +17881,61 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-config": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.8.0", "@jest/test-sequencer": "^27.5.1", @@ -10187,11 +17974,47 @@ } } }, + "node_modules/jest-config/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-config/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-config/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10203,51 +18026,189 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/jest-regex-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-config/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "version": "25.5.0", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 8.3" + } + }, + "node_modules/jest-diff/node_modules/@jest/types": { + "version": "25.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + }, + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/jest-diff/node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "version": "3.0.0", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/jest-diff/node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/jest-get-type": { + "version": "25.2.6", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/jest-diff/node_modules/pretty-format": { + "version": "25.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + }, + "engines": { + "node": ">= 8.3" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/jest-docblock": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", "dev": true, + "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -10257,9 +18218,8 @@ }, "node_modules/jest-each": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -10271,11 +18231,47 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-each/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-each/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10287,11 +18283,61 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-environment-jsdom": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -10305,11 +18351,113 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-environment-jsdom/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-environment-jsdom/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-environment-jsdom/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-environment-node": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -10322,46 +18470,179 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-environment-node/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-environment-node/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-environment-node/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-environment-node/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-environment-node/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-environment-node/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-node/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-get-type": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "dev": true, + "license": "MIT", "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "version": "26.6.2", "dev": true, + "license": "MIT", "dependencies": { - "@jest/types": "^27.5.1", + "@jest/types": "^26.6.2", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", "walker": "^1.0.7" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 10.14.2" }, "optionalDependencies": { - "fsevents": "^2.3.2" + "fsevents": "^2.1.2" + } + }, + "node_modules/jest-haste-map/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-haste-map/node_modules/jest-worker": { + "version": "26.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-haste-map/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/jest-jasmine2": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^27.5.1", "@jest/source-map": "^27.5.1", @@ -10385,11 +18666,47 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-jasmine2/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-jasmine2/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10401,11 +18718,61 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-leak-detector": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^27.5.1", "pretty-format": "^27.5.1" @@ -10416,9 +18783,8 @@ }, "node_modules/jest-matcher-utils": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "jest-diff": "^27.5.1", @@ -10429,11 +18795,24 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-matcher-utils/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10445,11 +18824,67 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-matcher-utils/node_modules/diff-sequences": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/jest-diff": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-message-util": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^27.5.1", @@ -10465,11 +18900,47 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-message-util/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-message-util/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10481,11 +18952,45 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-mock": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*" @@ -10494,11 +18999,97 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-mock/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-mock/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-mock/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-mock/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-mock/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-mock/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-mock/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-pnp-resolver": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -10512,19 +19103,17 @@ } }, "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "version": "26.0.0", "dev": true, + "license": "MIT", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">= 10.14.2" } }, "node_modules/jest-resolve": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "chalk": "^4.0.0", @@ -10543,9 +19132,8 @@ }, "node_modules/jest-resolve-dependencies": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "jest-regex-util": "^27.5.1", @@ -10555,11 +19143,47 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-resolve-dependencies/node_modules/@jest/types": { + "version": "27.5.1", "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10571,11 +19195,201 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-resolve-dependencies/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-resolve-dependencies/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/jest-regex-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/jest-haste-map": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-resolve/node_modules/jest-regex-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/jest-serializer": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-runner": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^27.5.1", "@jest/environment": "^27.5.1", @@ -10603,11 +19417,72 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-runner/node_modules/@jest/transform": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-runner/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10619,11 +19494,106 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/jest-haste-map": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-runner/node_modules/jest-regex-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/jest-serializer": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-runtime": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^27.5.1", "@jest/fake-timers": "^27.5.1", @@ -10652,11 +19622,72 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-runtime/node_modules/@jest/transform": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-runtime/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10668,11 +19699,67 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/jest-haste-map": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-runtime/node_modules/jest-regex-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/jest-serializer": { + "version": "27.5.1", + "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "graceful-fs": "^4.2.9" @@ -10681,11 +19768,49 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-runtime/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "26.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + }, + "engines": { + "node": ">= 10.14.2" + } + }, "node_modules/jest-snapshot": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.7.2", "@babel/generator": "^7.7.2", @@ -10714,11 +19839,72 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-snapshot/node_modules/@jest/transform": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-snapshot/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10730,26 +19916,101 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", "dev": true, + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10" + "node": ">=7.0.0" } }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", "dev": true, + "license": "MIT" + }, + "node_modules/jest-snapshot/node_modules/diff-sequences": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-haste-map": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-snapshot/node_modules/jest-regex-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-serializer": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "@types/node": "*", @@ -10762,11 +20023,65 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.8", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "26.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-util/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10778,11 +20093,45 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-validate": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^27.5.1", "camelcase": "^6.2.0", @@ -10795,11 +20144,58 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-validate/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/jest-validate/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10811,11 +20207,45 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-watcher": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^27.5.1", "@jest/types": "^27.5.1", @@ -10829,11 +20259,47 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-watcher/node_modules/@jest/types": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-watcher/node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -10845,11 +20311,61 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-worker": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "devOptional": true, + "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -10859,11 +20375,18 @@ "node": ">= 10.13.0" } }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "devOptional": true, + "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -10874,15 +20397,40 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/join-component": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/js-md5": { + "version": "0.7.3", + "dev": true, + "license": "MIT" + }, + "node_modules/js-sdsl": { + "version": "4.1.5", + "dev": true, + "license": "MIT" + }, + "node_modules/js-sha1": { + "version": "0.6.0", + "dev": true, + "license": "MIT" + }, + "node_modules/js-string-escape": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "license": "MIT" }, "node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -10893,8 +20441,8 @@ }, "node_modules/jsdom": { "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "license": "MIT", "dependencies": { "abab": "^2.0.5", "acorn": "^8.2.4", @@ -10938,8 +20486,8 @@ }, "node_modules/jsdom/node_modules/acorn": { "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -10947,15 +20495,29 @@ "node": ">=0.4.0" } }, - "node_modules/jsdom/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "node_modules/jsdom/node_modules/ws": { + "version": "7.5.9", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, "node_modules/jsesc": { "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -10963,26 +20525,31 @@ "node": ">=4" } }, + "node_modules/json-logic-js": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "devOptional": true, + "license": "MIT" + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "devOptional": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "1.0.0", + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + "license": "MIT" }, "node_modules/json5": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -10990,10 +20557,20 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", + "license": "MIT", "dependencies": { "array-includes": "^3.1.5", "object.assign": "^4.1.3" @@ -11002,40 +20579,51 @@ "node": ">=4.0" } }, + "node_modules/junk": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/kind-of": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/klona": { + "version": "2.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/language-subtag-registry": { "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + "license": "CC0-1.0" }, "node_modules/language-tags": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "license": "MIT", "dependencies": { "language-subtag-registry": "~0.3.2" } }, "node_modules/lazy-cache": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", - "integrity": "sha512-7vp2Acd2+Kz4XkzxGxaB1FWOi8KjWIWsgdfD5MCb86DWvlLqhRPM+d6Pro3iNEL5VT9mstz5hKAlcd+QR6H3aA==", + "license": "MIT", "dependencies": { "set-getter": "^0.1.0" }, @@ -11043,19 +20631,34 @@ "node": ">=0.10.0" } }, + "node_modules/lazy-universal-dotenv": { + "version": "3.0.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.5.0", + "app-root-dir": "^1.0.2", + "core-js": "^3.0.4", + "dotenv": "^8.0.0", + "dotenv-expand": "^5.1.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=6.0.0", + "yarn": ">=1.0.0" + } + }, "node_modules/leven": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -11064,24 +20667,28 @@ "node": ">= 0.8.0" } }, + "node_modules/lie": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lilconfig": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/list-item": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz", - "integrity": "sha512-S3D0WZ4J6hyM8o5SNKWaMYB1ALSacPZ2nHGEuCjmHZ+dc03gFeNZoNDcqfcnO4vDhTZmNrqrpYZCdXsRh22bzw==", + "license": "MIT", "dependencies": { "expand-range": "^1.8.1", "extend-shallow": "^2.0.1", @@ -11092,20 +20699,66 @@ "node": ">=0.10.0" } }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "devOptional": true, - "peer": true, + "node_modules/load-json-file": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, "engines": { - "node": ">=6.11.5" + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "2.2.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" } }, "node_modules/loader-utils": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -11115,63 +20768,72 @@ "node": ">=8.9.0" } }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, + "node_modules/localforage": { + "version": "1.10.0", + "license": "Apache-2.0", "dependencies": { - "p-locate": "^4.1.0" + "lie": "3.1.1" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "license": "MIT" }, "node_modules/lodash-es": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "license": "MIT" }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==" + "license": "MIT" }, "node_modules/lodash.castarray": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", - "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==" + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "license": "MIT" }, "node_modules/lodash.template": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "license": "MIT", "dependencies": { "lodash._reinterpolate": "^3.0.0", "lodash.templatesettings": "^4.0.0" @@ -11179,27 +20841,22 @@ }, "node_modules/lodash.templatesettings": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "license": "MIT", "dependencies": { "lodash._reinterpolate": "^3.0.0" } }, "node_modules/lodash.truncate": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "license": "MIT" }, "node_modules/lodash.uniq": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + "license": "MIT" }, "node_modules/longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", + "version": "3.0.1", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -11207,8 +20864,7 @@ }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -11216,10 +20872,45 @@ "loose-envify": "cli.js" } }, + "node_modules/lottie-react": { + "version": "2.3.1", + "license": "MIT", + "dependencies": { + "lottie-web": "^5.9.4" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/lottie-web": { + "version": "5.9.6", + "license": "MIT" + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/lowlight": { "version": "1.20.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", - "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", + "license": "MIT", "dependencies": { "fault": "^1.0.0", "highlight.js": "~10.7.0" @@ -11229,10 +20920,13 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/lru_map": { + "version": "0.3.3", + "license": "MIT" + }, "node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -11240,57 +20934,105 @@ "node": ">=10" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/lz-string": { + "version": "1.4.4", "dev": true, + "license": "WTFPL", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "devOptional": true, + "license": "MIT", "dependencies": { - "semver": "^6.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "devOptional": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "devOptional": true + "devOptional": true, + "license": "ISC" }, "node_modules/makeerror": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } }, + "node_modules/map-cache": { + "version": "0.2.2", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-or-similar": { + "version": "1.5.0", + "dev": true, + "license": "MIT" + }, + "node_modules/map-visit": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/markdown-escapes": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/markdown-extensions": { + "version": "1.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/markdown-link": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz", - "integrity": "sha512-TurLymbyLyo+kAUUAV9ggR9EPcDjP/ctlv9QAFiqUH7c+t6FlsbivPo9OKTU8xdOx9oNd2drW/Fi5RRElQbUqA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/markdown-table": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "license": "MIT", "dependencies": { "repeat-string": "^1.0.0" }, @@ -11301,8 +21043,7 @@ }, "node_modules/markdown-toc": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz", - "integrity": "sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg==", + "license": "MIT", "dependencies": { "concat-stream": "^1.5.2", "diacritics-map": "^0.1.0", @@ -11326,8 +21067,7 @@ }, "node_modules/markdown-toc/node_modules/gray-matter": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz", - "integrity": "sha512-vbmvP1Fe/fxuT2QuLVcqb2BfK7upGhhbLIt9/owWEvPYrZZEkelLcq2HqzxosV+PQ67dUFLaAeNpH7C4hhICAA==", + "license": "MIT", "dependencies": { "ansi-red": "^0.1.1", "coffee-script": "^1.12.4", @@ -11340,9 +21080,8 @@ } }, "node_modules/marked": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.18.tgz", - "integrity": "sha512-wbLDJ7Zh0sqA0Vdg6aqlbT+yPxqLblpAZh1mK2+AO2twQkPywvvqQNfEPVwSSRjZ7dZcdeVBIAgiO7MMp3Dszw==", + "version": "4.1.1", + "license": "MIT", "bin": { "marked": "bin/marked.js" }, @@ -11352,13 +21091,30 @@ }, "node_modules/math-random": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" + "license": "MIT" + }, + "node_modules/md5": { + "version": "2.3.0", + "license": "BSD-3-Clause", + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "devOptional": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } }, "node_modules/mdast-squeeze-paragraphs": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "license": "MIT", "dependencies": { "unist-util-remove": "^2.0.0" }, @@ -11369,8 +21125,7 @@ }, "node_modules/mdast-util-definitions": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "license": "MIT", "dependencies": { "unist-util-visit": "^2.0.0" }, @@ -11379,12 +21134,19 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-find-and-replace": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz", - "integrity": "sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==", + "node_modules/mdast-util-definitions/node_modules/unist-util-is": { + "version": "4.1.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions/node_modules/unist-util-visit": { + "version": "2.0.3", + "license": "MIT", "dependencies": { - "escape-string-regexp": "^4.0.0", + "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" }, @@ -11393,10 +21155,44 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "2.2.1", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mdast-util-from-markdown": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", - "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -11416,19 +21212,458 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", + "node_modules/mdast-util-gfm": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-from-markdown/node_modules/micromark": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", - "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "1.0.6", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/markdown-table": { + "version": "3.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "mdast-util-mdx-expression": "^1.0.0", + "mdast-util-mdx-jsx": "^2.0.0", + "mdast-util-mdxjs-esm": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "1.3.1", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-to-markdown": "^1.3.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-remove-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/character-entities-legacy": { + "version": "3.0.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/character-reference-invalid": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/is-alphabetical": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/is-alphanumerical": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/is-decimal": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/is-hexadecimal": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/parse-entities": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities": "^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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "12.2.4", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-definitions": "^5.0.0", + "micromark-util-sanitize-uri": "^1.1.0", + "trim-lines": "^3.0.0", + "unist-builder": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/node_modules/mdast-util-definitions": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "3.1.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.7", + "dev": true, + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "license": "MIT" + }, + "node_modules/memoizerific": { + "version": "1.11.3", + "dev": true, + "license": "MIT", + "dependencies": { + "map-or-similar": "^1.5.0" + } + }, + "node_modules/memory-fs": { + "version": "0.4.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/meow": { + "version": "3.7.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/meow/node_modules/find-up": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/meow/node_modules/path-exists": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/meow/node_modules/path-type": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/meow/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/microevent.ts": { + "version": "0.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/micromark": { + "version": "3.1.0", "funding": [ { "type": "GitHub Sponsors", @@ -11439,6 +21674,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -11459,171 +21695,8 @@ "uvu": "^0.5.0" } }, - "node_modules/mdast-util-from-markdown/node_modules/unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz", - "integrity": "sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==", - "dependencies": { - "mdast-util-gfm-autolink-literal": "^0.1.0", - "mdast-util-gfm-strikethrough": "^0.2.0", - "mdast-util-gfm-table": "^0.1.0", - "mdast-util-gfm-task-list-item": "^0.1.0", - "mdast-util-to-markdown": "^0.6.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz", - "integrity": "sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==", - "dependencies": { - "ccount": "^1.0.0", - "mdast-util-find-and-replace": "^1.1.0", - "micromark": "^2.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", - "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", - "dependencies": { - "mdast-util-to-markdown": "^0.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", - "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", - "dependencies": { - "markdown-table": "^2.0.0", - "mdast-util-to-markdown": "~0.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", - "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", - "dependencies": { - "mdast-util-to-markdown": "~0.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", - "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "mdast-util-definitions": "^4.0.0", - "mdurl": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", - "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "debug": "^4.0.0", - "parse-entities": "^2.0.0" - } - }, "node_modules/micromark-core-commonmark": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", "funding": [ { "type": "GitHub Sponsors", @@ -11634,6 +21707,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-factory-destination": "^1.0.0", @@ -11654,16 +21728,17 @@ } }, "node_modules/micromark-extension-gfm": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz", - "integrity": "sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==", + "version": "2.0.1", + "license": "MIT", "dependencies": { - "micromark": "~2.11.0", - "micromark-extension-gfm-autolink-literal": "~0.5.0", - "micromark-extension-gfm-strikethrough": "~0.6.5", - "micromark-extension-gfm-table": "~0.4.0", - "micromark-extension-gfm-tagfilter": "~0.3.0", - "micromark-extension-gfm-task-list-item": "~0.3.0" + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" }, "funding": { "type": "opencollective", @@ -11671,11 +21746,32 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz", - "integrity": "sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==", + "version": "1.0.3", + "license": "MIT", "dependencies": { - "micromark": "~2.11.3" + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" }, "funding": { "type": "opencollective", @@ -11683,11 +21779,15 @@ } }, "node_modules/micromark-extension-gfm-strikethrough": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz", - "integrity": "sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==", + "version": "1.0.4", + "license": "MIT", "dependencies": { - "micromark": "~2.11.0" + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" }, "funding": { "type": "opencollective", @@ -11695,11 +21795,14 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz", - "integrity": "sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==", + "version": "1.0.5", + "license": "MIT", "dependencies": { - "micromark": "~2.11.0" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" }, "funding": { "type": "opencollective", @@ -11707,30 +21810,33 @@ } }, "node_modules/micromark-extension-gfm-tagfilter": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", - "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", - "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", + "version": "1.0.1", + "license": "MIT", "dependencies": { - "micromark": "~2.11.0" + "micromark-util-types": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "1.0.3", "funding": [ { "type": "GitHub Sponsors", @@ -11741,6 +21847,106 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", + "dependencies": { + "micromark-factory-mdx-expression": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-events-to-acorn": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "@types/acorn": "^4.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "micromark-factory-mdx-expression": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^1.0.0", + "micromark-extension-mdx-jsx": "^1.0.0", + "micromark-extension-mdx-md": "^1.0.0", + "micromark-extension-mdxjs-esm": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "micromark-core-commonmark": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-events-to-acorn": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-position-from-estree": "^1.1.0", + "uvu": "^0.5.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs/node_modules/acorn": { + "version": "8.8.0", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "1.0.0", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -11749,8 +21955,6 @@ }, "node_modules/micromark-factory-label": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", "funding": [ { "type": "GitHub Sponsors", @@ -11761,6 +21965,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -11768,10 +21973,8 @@ "uvu": "^0.5.0" } }, - "node_modules/micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", + "node_modules/micromark-factory-mdx-expression": { + "version": "1.0.6", "funding": [ { "type": "GitHub Sponsors", @@ -11782,6 +21985,31 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-events-to-acorn": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-position-from-estree": "^1.0.0", + "uvu": "^0.5.0", + "vfile-message": "^3.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "1.0.0", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -11789,8 +22017,6 @@ }, "node_modules/micromark-factory-title": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", "funding": [ { "type": "GitHub Sponsors", @@ -11801,6 +22027,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -11811,8 +22038,6 @@ }, "node_modules/micromark-factory-whitespace": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", "funding": [ { "type": "GitHub Sponsors", @@ -11823,6 +22048,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -11832,8 +22058,6 @@ }, "node_modules/micromark-util-character": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", "funding": [ { "type": "GitHub Sponsors", @@ -11844,6 +22068,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -11851,8 +22076,6 @@ }, "node_modules/micromark-util-chunked": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", "funding": [ { "type": "GitHub Sponsors", @@ -11863,14 +22086,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/micromark-util-classify-character": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", "funding": [ { "type": "GitHub Sponsors", @@ -11881,6 +22103,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -11889,8 +22112,6 @@ }, "node_modules/micromark-util-combine-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", "funding": [ { "type": "GitHub Sponsors", @@ -11901,6 +22122,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -11908,8 +22130,6 @@ }, "node_modules/micromark-util-decode-numeric-character-reference": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", "funding": [ { "type": "GitHub Sponsors", @@ -11920,14 +22140,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/micromark-util-decode-string": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", "funding": [ { "type": "GitHub Sponsors", @@ -11938,6 +22157,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -11947,38 +22167,6 @@ }, "node_modules/micromark-util-encode": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", "funding": [ { "type": "GitHub Sponsors", @@ -11989,14 +22177,68 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "1.2.0", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "estree-util-visit": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0", + "vfile-location": "^4.0.0", + "vfile-message": "^3.0.0" + } + }, + "node_modules/micromark-util-events-to-acorn/node_modules/@types/estree": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.1.0", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.0.0", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0" } }, "node_modules/micromark-util-resolve-all": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", "funding": [ { "type": "GitHub Sponsors", @@ -12007,14 +22249,13 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-types": "^1.0.0" } }, "node_modules/micromark-util-sanitize-uri": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", - "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", + "version": "1.1.0", "funding": [ { "type": "GitHub Sponsors", @@ -12025,6 +22266,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-encode": "^1.0.0", @@ -12033,8 +22275,6 @@ }, "node_modules/micromark-util-subtokenize": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", "funding": [ { "type": "GitHub Sponsors", @@ -12045,6 +22285,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -12054,8 +22295,6 @@ }, "node_modules/micromark-util-symbol": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", "funding": [ { "type": "GitHub Sponsors", @@ -12065,12 +22304,11 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-types": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", "funding": [ { "type": "GitHub Sponsors", @@ -12080,12 +22318,12 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -12094,18 +22332,46 @@ "node": ">=8.6" } }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/mime": { + "version": "1.6.0", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -12115,25 +22381,47 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/min-document": { + "version": "2.19.0", + "dev": true, + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/mini-svg-data-uri": { "version": "1.4.4", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", - "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "license": "MIT", "bin": { "mini-svg-data-uri": "cli.js" } }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "devOptional": true, + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT" + }, "node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -12143,13 +22431,87 @@ }, "node_modules/minimist": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "license": "MIT" + }, + "node_modules/minipass": { + "version": "3.3.4", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mississippi": { + "version": "3.0.0", + "devOptional": true, + "license": "BSD-2-Clause", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } }, "node_modules/mixin-deep": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "license": "MIT", "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -12160,8 +22522,7 @@ }, "node_modules/mixin-deep/node_modules/is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4" }, @@ -12171,8 +22532,7 @@ }, "node_modules/mixin-deep/node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -12180,23 +22540,117 @@ "node": ">=0.10.0" } }, + "node_modules/mkdirp": { + "version": "0.5.6", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mobx": { + "version": "6.6.2", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + } + }, + "node_modules/mobx-react-lite": { + "version": "3.4.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mobx" + }, + "peerDependencies": { + "mobx": "^6.1.0", + "react": "^16.8.0 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/monaco-editor": { + "version": "0.34.0", + "license": "MIT", + "peer": true + }, + "node_modules/moo-color": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "^1.1.4" + } + }, + "node_modules/moo-color/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "devOptional": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/move-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "devOptional": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/mri": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/mrmime": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/nan": { + "version": "2.16.0", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/nanoclone": { + "version": "0.2.1", + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -12204,28 +22658,94 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/nanomatch": { + "version": "1.2.13", + "devOptional": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "devOptional": true, - "peer": true + "license": "MIT" + }, + "node_modules/nested-error-stacks": { + "version": "2.1.1", + "dev": true, + "license": "MIT" }, "node_modules/next": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/next/-/next-12.1.0.tgz", - "integrity": "sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q==", + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/next/-/next-12.3.1.tgz", + "integrity": "sha512-l7bvmSeIwX5lp07WtIiP9u2ytZMv7jIeB8iacR28PuUEFG5j0HGAPnMqyG5kbZNBG2H7tRsrQ4HCjuMOPnANZw==", "dependencies": { - "@next/env": "12.1.0", - "caniuse-lite": "^1.0.30001283", - "postcss": "8.4.5", - "styled-jsx": "5.0.0", - "use-subscription": "1.5.1" + "@next/env": "12.3.1", + "@swc/helpers": "0.4.11", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.14", + "styled-jsx": "5.0.7", + "use-sync-external-store": "1.2.0" }, "bin": { "next": "dist/bin/next" @@ -12234,17 +22754,19 @@ "node": ">=12.22.0" }, "optionalDependencies": { - "@next/swc-android-arm64": "12.1.0", - "@next/swc-darwin-arm64": "12.1.0", - "@next/swc-darwin-x64": "12.1.0", - "@next/swc-linux-arm-gnueabihf": "12.1.0", - "@next/swc-linux-arm64-gnu": "12.1.0", - "@next/swc-linux-arm64-musl": "12.1.0", - "@next/swc-linux-x64-gnu": "12.1.0", - "@next/swc-linux-x64-musl": "12.1.0", - "@next/swc-win32-arm64-msvc": "12.1.0", - "@next/swc-win32-ia32-msvc": "12.1.0", - "@next/swc-win32-x64-msvc": "12.1.0" + "@next/swc-android-arm-eabi": "12.3.1", + "@next/swc-android-arm64": "12.3.1", + "@next/swc-darwin-arm64": "12.3.1", + "@next/swc-darwin-x64": "12.3.1", + "@next/swc-freebsd-x64": "12.3.1", + "@next/swc-linux-arm-gnueabihf": "12.3.1", + "@next/swc-linux-arm64-gnu": "12.3.1", + "@next/swc-linux-arm64-musl": "12.3.1", + "@next/swc-linux-x64-gnu": "12.3.1", + "@next/swc-linux-x64-musl": "12.3.1", + "@next/swc-win32-arm64-msvc": "12.3.1", + "@next/swc-win32-ia32-msvc": "12.3.1", + "@next/swc-win32-x64-msvc": "12.3.1" }, "peerDependencies": { "fibers": ">= 3.1.0", @@ -12265,55 +22787,19 @@ } } }, - "node_modules/next-mdx-remote": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/next-mdx-remote/-/next-mdx-remote-2.1.4.tgz", - "integrity": "sha512-HHJasFVgPGjWXW3tWC37NCvHcQUOjJgVUMdwxgVbshwgtDLrGmupNkist/iamDLlvVibU52B9rqM9VAWofq7cA==", - "dependencies": { - "@babel/core": "^7.12.10", - "@babel/preset-env": "^7.12.11", - "@babel/preset-react": "^7.12.10", - "@babel/preset-typescript": "^7.12.7", - "@mdx-js/mdx": "^1.6.22", - "@mdx-js/react": "^1.6.22" - }, - "peerDependencies": { - "react": ">=16.x <=17.x", - "react-dom": ">=16.x <=17.x" - } - }, - "node_modules/next-mdx-remote/node_modules/@mdx-js/react": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0" - } + "node_modules/next-compose-plugins": { + "version": "2.2.1", + "license": "MIT" }, "node_modules/next-seo": { "version": "4.29.0", - "resolved": "https://registry.npmjs.org/next-seo/-/next-seo-4.29.0.tgz", - "integrity": "sha512-xmwzcz4uHaYJ8glbuhs6FSBQ7z3irmdPYdJJ5saWm72Uy3o+mPKGaPCXQetTCE6/xxVnpoDV4yFtFlEjUcljSg==", + "license": "MIT", "peerDependencies": { "next": "^8.1.1-canary.54 || >=9.0.0", "react": ">=16.0.0", "react-dom": ">=16.0.0" } }, - "node_modules/next-themes": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.0.15.tgz", - "integrity": "sha512-LTmtqYi03c4gMTJmWwVK9XkHL7h0/+XrtR970Ujvtu3s0kZNeJN24aJsi4rkZOI8i19+qq6f8j+8Duwy5jqcrQ==", - "peerDependencies": { - "next": "*", - "react": "*", - "react-dom": "*" - } - }, "node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", @@ -12321,651 +22807,16 @@ }, "node_modules/next-transpile-modules": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/next-transpile-modules/-/next-transpile-modules-9.0.0.tgz", - "integrity": "sha512-VCNFOazIAnXn1hvgYYSTYMnoWgKgwlYh4lm1pKbSfiB3kj5ZYLcKVhfh3jkPOg1cnd9DP+pte9yCUocdPEUBTQ==", - "dev": true, + "license": "MIT", "dependencies": { "enhanced-resolve": "^5.7.0", "escalade": "^3.1.1" } }, - "node_modules/next/node_modules/@next/env": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.0.tgz", - "integrity": "sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ==" - }, - "node_modules/next/node_modules/@next/swc-android-arm64": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.0.tgz", - "integrity": "sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/next/node_modules/@next/swc-darwin-arm64": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.0.tgz", - "integrity": "sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/next/node_modules/@next/swc-darwin-x64": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.0.tgz", - "integrity": "sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/next/node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.0.tgz", - "integrity": "sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/next/node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.0.tgz", - "integrity": "sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/next/node_modules/@next/swc-linux-arm64-musl": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.0.tgz", - "integrity": "sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/next/node_modules/@next/swc-linux-x64-gnu": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz", - "integrity": "sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/next/node_modules/@next/swc-linux-x64-musl": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz", - "integrity": "sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/next/node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz", - "integrity": "sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/next/node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz", - "integrity": "sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/next/node_modules/@next/swc-win32-x64-msvc": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.0.tgz", - "integrity": "sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, "node_modules/next/node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" - }, - "node_modules/nodemailer": { - "version": "6.7.8", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.8.tgz", - "integrity": "sha512-2zaTFGqZixVmTxpJRCFC+Vk5eGRd/fYtvIR+dl5u9QXLTQWGIf48x/JXvo58g9sa0bU6To04XUv554Paykum3g==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", - "dev": true - }, - "node_modules/nwsapi": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz", - "integrity": "sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg==" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.3.tgz", - "integrity": "sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", - "dependencies": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openapi-types": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.0.0.tgz", - "integrity": "sha512-6Wd9k8nmGQHgCbehZCP6wwWcfXcvinhybUTBatuhjRsCxUIujuYFZc9QnGeae75CyHASewBtxs0HX/qwREReUw==", - "dev": true - }, - "node_modules/optimism": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", - "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", - "dependencies": { - "@wry/context": "^0.6.0", - "@wry/trie": "^0.3.0" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-numeric-range": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", "funding": [ { "type": "opencollective", @@ -12985,11 +22836,1081 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/nice-try": { + "version": "1.0.5", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-dir": { + "version": "0.1.17", + "dev": true, + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.10.5" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.5.0", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "devOptional": true, + "license": "MIT" + }, + "node_modules/node-libs-browser/node_modules/stream-browserify": { + "version": "2.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/node-releases": { + "version": "2.0.6", + "license": "MIT" + }, + "node_modules/nodemailer": { + "version": "6.8.0", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "license": "ISC", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.2", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.4", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.reduce": "^1.0.4", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/objectorarray": { + "version": "1.0.5", + "dev": true, + "license": "ISC" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openapi-types": { + "version": "9.3.1", + "license": "MIT" + }, + "node_modules/opener": { + "version": "1.5.2", + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/optionator/node_modules/levn": { + "version": "0.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/optionator/node_modules/prelude-ls": { + "version": "1.1.2", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/optionator/node_modules/type-check": { + "version": "0.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-all": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-all/node_modules/p-map": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-event": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-timeout": "^3.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-filter": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-filter/node_modules/p-map": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-queue": { + "version": "6.6.2", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/packet-reader": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/pako": { + "version": "1.0.11", + "devOptional": true, + "license": "(MIT AND Zlib)" + }, + "node_modules/papaparse": { + "version": "5.3.2", + "license": "MIT" + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "devOptional": true, + "license": "ISC", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/character-entities": { + "version": "1.2.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "license": "ISC" + }, + "node_modules/parse5": { + "version": "6.0.1", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "devOptional": true, + "license": "MIT" + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "6.2.1", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/periscopic": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/pg": { + "version": "8.8.0", + "license": "MIT", + "dependencies": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.5.0", + "pg-pool": "^3.5.2", + "pg-protocol": "^1.5.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-connection-string": { + "version": "2.5.0", + "license": "MIT" + }, + "node_modules/pg-format": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.5.0", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.6.4", + "dev": true, + "license": "MIT", + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/polished": { + "version": "4.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.17.8" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.17", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/postcss-attribute-case-insensitive": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", - "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^7.0.2", "postcss-selector-parser": "^6.0.2" @@ -12997,15 +23918,13 @@ }, "node_modules/postcss-attribute-case-insensitive/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-attribute-case-insensitive/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13020,9 +23939,8 @@ }, "node_modules/postcss-color-functional-notation": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", - "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" @@ -13033,15 +23951,13 @@ }, "node_modules/postcss-color-functional-notation/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-color-functional-notation/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13056,9 +23972,8 @@ }, "node_modules/postcss-color-gray": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", - "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", "dev": true, + "license": "ISC", "dependencies": { "@csstools/convert-colors": "^1.4.0", "postcss": "^7.0.5", @@ -13070,15 +23985,13 @@ }, "node_modules/postcss-color-gray/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-color-gray/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13093,9 +24006,8 @@ }, "node_modules/postcss-color-hex-alpha": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", - "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^7.0.14", "postcss-values-parser": "^2.0.1" @@ -13106,15 +24018,13 @@ }, "node_modules/postcss-color-hex-alpha/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-color-hex-alpha/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13129,9 +24039,8 @@ }, "node_modules/postcss-color-mod-function": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", - "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", "dev": true, + "license": "CC0-1.0", "dependencies": { "@csstools/convert-colors": "^1.4.0", "postcss": "^7.0.2", @@ -13143,15 +24052,13 @@ }, "node_modules/postcss-color-mod-function/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-color-mod-function/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13166,9 +24073,8 @@ }, "node_modules/postcss-color-rebeccapurple": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", - "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" @@ -13179,15 +24085,13 @@ }, "node_modules/postcss-color-rebeccapurple/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-color-rebeccapurple/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13202,9 +24106,8 @@ }, "node_modules/postcss-custom-media": { "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", - "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^7.0.14" }, @@ -13214,15 +24117,13 @@ }, "node_modules/postcss-custom-media/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-custom-media/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13237,9 +24138,8 @@ }, "node_modules/postcss-custom-properties": { "version": "8.0.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", - "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^7.0.17", "postcss-values-parser": "^2.0.1" @@ -13250,15 +24150,13 @@ }, "node_modules/postcss-custom-properties/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-custom-properties/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13273,9 +24171,8 @@ }, "node_modules/postcss-custom-selectors": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", - "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^7.0.2", "postcss-selector-parser": "^5.0.0-rc.3" @@ -13286,9 +24183,8 @@ }, "node_modules/postcss-custom-selectors/node_modules/cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -13298,15 +24194,13 @@ }, "node_modules/postcss-custom-selectors/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-custom-selectors/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13321,9 +24215,8 @@ }, "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", @@ -13335,9 +24228,8 @@ }, "node_modules/postcss-dir-pseudo-class": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", - "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2", "postcss-selector-parser": "^5.0.0-rc.3" @@ -13348,9 +24240,8 @@ }, "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -13360,15 +24251,13 @@ }, "node_modules/postcss-dir-pseudo-class/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-dir-pseudo-class/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13383,9 +24272,8 @@ }, "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", @@ -13397,9 +24285,8 @@ }, "node_modules/postcss-double-position-gradients": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", - "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.5", "postcss-values-parser": "^2.0.0" @@ -13410,15 +24297,13 @@ }, "node_modules/postcss-double-position-gradients/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-double-position-gradients/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13433,9 +24318,8 @@ }, "node_modules/postcss-env-function": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", - "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" @@ -13446,15 +24330,42 @@ }, "node_modules/postcss-env-function/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-env-function/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "4.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss": "^7.0.26" + } + }, + "node_modules/postcss-flexbugs-fixes/node_modules/picocolors": { + "version": "0.2.1", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss-flexbugs-fixes/node_modules/postcss": { + "version": "7.0.39", + "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13469,9 +24380,8 @@ }, "node_modules/postcss-focus-visible": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", - "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2" }, @@ -13481,15 +24391,13 @@ }, "node_modules/postcss-focus-visible/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-focus-visible/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13504,9 +24412,8 @@ }, "node_modules/postcss-focus-within": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", - "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2" }, @@ -13516,15 +24423,13 @@ }, "node_modules/postcss-focus-within/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-focus-within/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13539,24 +24444,21 @@ }, "node_modules/postcss-font-variant": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", - "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^7.0.2" } }, "node_modules/postcss-font-variant/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-font-variant/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13571,9 +24473,8 @@ }, "node_modules/postcss-gap-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", - "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2" }, @@ -13583,15 +24484,13 @@ }, "node_modules/postcss-gap-properties/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-gap-properties/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13606,9 +24505,8 @@ }, "node_modules/postcss-image-set-function": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", - "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" @@ -13619,15 +24517,13 @@ }, "node_modules/postcss-image-set-function/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-image-set-function/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13642,8 +24538,7 @@ }, "node_modules/postcss-import": { "version": "14.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", - "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -13658,24 +24553,21 @@ }, "node_modules/postcss-initial": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", - "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^7.0.2" } }, "node_modules/postcss-initial/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-initial/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13690,8 +24582,7 @@ }, "node_modules/postcss-js": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "license": "MIT", "dependencies": { "camelcase-css": "^2.0.1" }, @@ -13708,9 +24599,8 @@ }, "node_modules/postcss-lab-function": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", - "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", "dev": true, + "license": "CC0-1.0", "dependencies": { "@csstools/convert-colors": "^1.4.0", "postcss": "^7.0.2", @@ -13722,15 +24612,13 @@ }, "node_modules/postcss-lab-function/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-lab-function/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13745,8 +24633,7 @@ }, "node_modules/postcss-load-config": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "license": "MIT", "dependencies": { "lilconfig": "^2.0.5", "yaml": "^1.10.2" @@ -13771,11 +24658,47 @@ } } }, + "node_modules/postcss-loader": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.3.8", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/postcss-logical": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", - "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2" }, @@ -13785,15 +24708,13 @@ }, "node_modules/postcss-logical/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-logical/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13808,9 +24729,8 @@ }, "node_modules/postcss-media-minmax": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", - "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^7.0.2" }, @@ -13820,15 +24740,143 @@ }, "node_modules/postcss-media-minmax/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-media-minmax/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss": "^7.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/picocolors": { + "version": "0.2.1", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss-modules-extract-imports/node_modules/postcss": { + "version": "7.0.39", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "3.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/picocolors": { + "version": "0.2.1", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss": { + "version": "7.0.39", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-modules-scope": { + "version": "2.2.0", + "dev": true, + "license": "ISC", + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-scope/node_modules/picocolors": { + "version": "0.2.1", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss-modules-scope/node_modules/postcss": { + "version": "7.0.39", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-modules-values": { + "version": "3.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "node_modules/postcss-modules-values/node_modules/picocolors": { + "version": "0.2.1", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss-modules-values/node_modules/postcss": { + "version": "7.0.39", + "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13843,8 +24891,7 @@ }, "node_modules/postcss-nested": { "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.6" }, @@ -13861,9 +24908,8 @@ }, "node_modules/postcss-nesting": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", - "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2" }, @@ -13873,15 +24919,13 @@ }, "node_modules/postcss-nesting/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-nesting/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13896,9 +24940,8 @@ }, "node_modules/postcss-overflow-shorthand": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", - "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2" }, @@ -13908,15 +24951,13 @@ }, "node_modules/postcss-overflow-shorthand/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-overflow-shorthand/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13931,24 +24972,21 @@ }, "node_modules/postcss-page-break": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", - "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^7.0.2" } }, "node_modules/postcss-page-break/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-page-break/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13963,9 +25001,8 @@ }, "node_modules/postcss-place": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", - "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" @@ -13976,15 +25013,13 @@ }, "node_modules/postcss-place/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-place/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -13999,9 +25034,8 @@ }, "node_modules/postcss-preset-env": { "version": "6.7.1", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.1.tgz", - "integrity": "sha512-rlRkgX9t0v2On33n7TK8pnkcYOATGQSv48J2RS8GsXhqtg+xk6AummHP88Y5mJo0TLJelBjePvSjScTNkj3+qw==", "dev": true, + "license": "CC0-1.0", "dependencies": { "autoprefixer": "^9.6.1", "browserslist": "^4.6.4", @@ -14047,9 +25081,8 @@ }, "node_modules/postcss-preset-env/node_modules/autoprefixer": { "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", "dev": true, + "license": "MIT", "dependencies": { "browserslist": "^4.12.0", "caniuse-lite": "^1.0.30001109", @@ -14069,15 +25102,13 @@ }, "node_modules/postcss-preset-env/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-preset-env/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -14092,9 +25123,8 @@ }, "node_modules/postcss-pseudo-class-any-link": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", - "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", "dev": true, + "license": "CC0-1.0", "dependencies": { "postcss": "^7.0.2", "postcss-selector-parser": "^5.0.0-rc.3" @@ -14105,9 +25135,8 @@ }, "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -14117,15 +25146,13 @@ }, "node_modules/postcss-pseudo-class-any-link/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-pseudo-class-any-link/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -14140,9 +25167,8 @@ }, "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", @@ -14154,24 +25180,21 @@ }, "node_modules/postcss-replace-overflow-wrap": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", - "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", "dev": true, + "license": "MIT", "dependencies": { "postcss": "^7.0.2" } }, "node_modules/postcss-replace-overflow-wrap/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-replace-overflow-wrap/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -14186,9 +25209,8 @@ }, "node_modules/postcss-selector-matches": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", - "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "postcss": "^7.0.2" @@ -14196,15 +25218,13 @@ }, "node_modules/postcss-selector-matches/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-selector-matches/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -14219,9 +25239,8 @@ }, "node_modules/postcss-selector-not": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", - "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "postcss": "^7.0.2" @@ -14229,15 +25248,13 @@ }, "node_modules/postcss-selector-not/node_modules/picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/postcss-selector-not/node_modules/postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, + "license": "MIT", "dependencies": { "picocolors": "^0.2.1", "source-map": "^0.6.1" @@ -14252,8 +25269,7 @@ }, "node_modules/postcss-selector-parser": { "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14264,14 +25280,12 @@ }, "node_modules/postcss-value-parser": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "license": "MIT" }, "node_modules/postcss-values-parser": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", "dev": true, + "license": "MIT", "dependencies": { "flatten": "^1.0.2", "indexes-of": "^1.0.1", @@ -14281,19 +25295,57 @@ "node": ">=6.14.4" } }, + "node_modules/postgres": { + "version": "3.3.1", + "dev": true, + "license": "Unlicense", + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/porsager" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin-prettier.js" }, @@ -14304,23 +25356,19 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/prettier-plugin-tailwindcss": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.13.tgz", - "integrity": "sha512-/EKQURUrxLu66CMUg4+1LwGdxnz8of7IDvrSLqEtDqhLH61SAlNNUSr90UTvZaemujgl3OH/VHg+fyGltrNixw==", + "node_modules/pretty-error": { + "version": "2.1.2", "dev": true, - "engines": { - "node": ">=12.17.0" - }, - "peerDependencies": { - "prettier": ">=2.2.0" + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" } }, "node_modules/pretty-format": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -14332,9 +25380,8 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -14342,33 +25389,96 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "dev": true, + "license": "MIT" + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/prism-react-renderer": { + "version": "1.3.5", + "license": "MIT", + "peerDependencies": { + "react": ">=0.14.9" + } + }, "node_modules/prismjs": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz", - "integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==", + "version": "1.29.0", + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/process": { + "version": "0.11.10", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "devOptional": true, + "license": "ISC" + }, + "node_modules/promise.allsettled": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.map": "^1.0.4", + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "iterate-value": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/promise.prototype.finally": { + "version": "3.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/prompts": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -14379,40 +25489,151 @@ }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "node_modules/properties": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/property-expr": { + "version": "2.0.5", + "license": "MIT" }, "node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "dependencies": { - "xtend": "^4.0.0" - }, + "version": "6.1.1", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-compare": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT" + }, "node_modules/psl": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + "dev": true, + "license": "MIT" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "devOptional": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "devOptional": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "devOptional": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "dev": true, + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "funding": [ { "type": "github", @@ -14426,12 +25647,12 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-lru": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -14439,10 +25660,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/raf-schd": { + "version": "4.0.3", + "license": "MIT" + }, + "node_modules/ramda": { + "version": "0.28.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, "node_modules/randomatic": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "license": "MIT", "dependencies": { "is-number": "^4.0.0", "kind-of": "^6.0.0", @@ -14454,26 +25687,80 @@ }, "node_modules/randomatic/node_modules/is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "devOptional": true, - "peer": true, + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, + "node_modules/randomfill": { + "version": "1.0.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-loader": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, "node_modules/react": { "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" @@ -14482,10 +25769,47 @@ "node": ">=0.10.0" } }, + "node_modules/react-beautiful-dnd": { + "version": "13.1.1", + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.9.2", + "css-box-model": "^1.2.0", + "memoize-one": "^5.1.1", + "raf-schd": "^4.0.2", + "react-redux": "^7.2.0", + "redux": "^4.0.4", + "use-memo-one": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.5 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.5 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-contexify": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "clsx": "^1.1.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-contexify/node_modules/clsx": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/react-copy-to-clipboard": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz", - "integrity": "sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==", + "license": "MIT", "dependencies": { "copy-to-clipboard": "^3.3.1", "prop-types": "^15.8.1" @@ -14494,10 +25818,111 @@ "react": "^15.3.0 || 16 || 17 || 18" } }, + "node_modules/react-csv": { + "version": "2.2.2", + "license": "MIT" + }, + "node_modules/react-datepicker": { + "version": "4.8.0", + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.2", + "classnames": "^2.2.6", + "date-fns": "^2.24.0", + "prop-types": "^15.7.2", + "react-onclickoutside": "^6.12.0", + "react-popper": "^2.2.5" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17 || ^18", + "react-dom": "^16.9.0 || ^17 || ^18" + } + }, + "node_modules/react-datepicker/node_modules/date-fns": { + "version": "2.29.3", + "license": "MIT", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/react-dnd": { + "version": "14.0.5", + "license": "MIT", + "dependencies": { + "@react-dnd/invariant": "^2.0.0", + "@react-dnd/shallowequal": "^2.0.0", + "dnd-core": "14.0.1", + "fast-deep-equal": "^3.1.3", + "hoist-non-react-statics": "^3.3.2" + }, + "peerDependencies": { + "@types/hoist-non-react-statics": ">= 3.3.1", + "@types/node": ">= 12", + "@types/react": ">= 16", + "react": ">= 16.14" + }, + "peerDependenciesMeta": { + "@types/hoist-non-react-statics": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-dnd-html5-backend": { + "version": "14.1.0", + "license": "MIT", + "dependencies": { + "dnd-core": "14.0.1" + } + }, + "node_modules/react-docgen": { + "version": "5.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.7.5", + "@babel/generator": "^7.12.11", + "@babel/runtime": "^7.7.6", + "ast-types": "^0.14.2", + "commander": "^2.19.0", + "doctrine": "^3.0.0", + "estree-to-babel": "^3.1.0", + "neo-async": "^2.6.1", + "node-dir": "^0.1.10", + "strip-indent": "^3.0.0" + }, + "bin": { + "react-docgen": "bin/react-docgen.js" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/react-docgen-typescript": { + "version": "2.2.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": ">= 4.3.x" + } + }, + "node_modules/react-docgen/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, "node_modules/react-dom": { "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -14507,29 +25932,144 @@ "react": "17.0.2" } }, + "node_modules/react-draggable": { + "version": "4.4.5", + "license": "MIT", + "dependencies": { + "clsx": "^1.1.1", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-draggable/node_modules/clsx": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react-element-to-jsx-string": { + "version": "14.3.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@base2/pretty-print-object": "1.0.1", + "is-plain-object": "5.0.0", + "react-is": "17.0.2" + }, + "peerDependencies": { + "react": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1", + "react-dom": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1" + } + }, + "node_modules/react-element-to-jsx-string/node_modules/react-is": { + "version": "17.0.2", + "dev": true, + "license": "MIT" + }, "node_modules/react-fast-compare": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + "license": "MIT" + }, + "node_modules/react-feather": { + "version": "2.0.10", + "license": "MIT", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": ">=16.8.6" + } + }, + "node_modules/react-from-dom": { + "version": "0.6.2", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } }, "node_modules/react-ga": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-3.3.1.tgz", - "integrity": "sha512-4Vc0W5EvXAXUN/wWyxvsAKDLLgtJ3oLmhYYssx+YzphJpejtOst6cbIHCIyF50Fdxuf5DDKqRYny24yJ2y7GFQ==", + "license": "Apache-2.0", "peerDependencies": { "prop-types": "^15.6.0", "react": "^15.6.2 || ^16.0 || ^17 || ^18" } }, + "node_modules/react-grid-layout": { + "version": "1.3.4", + "license": "MIT", + "dependencies": { + "clsx": "^1.1.1", + "lodash.isequal": "^4.0.0", + "prop-types": "^15.8.1", + "react-draggable": "^4.0.0", + "react-resizable": "^3.0.4" + }, + "peerDependencies": { + "react": ">= 16.3.0", + "react-dom": ">= 16.3.0" + } + }, + "node_modules/react-grid-layout/node_modules/clsx": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react-hot-toast": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "goober": "^2.1.10" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-inlinesvg": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "exenv": "^1.2.2", + "react-from-dom": "^0.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/react-inspector": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.0.0", + "is-dom": "^1.0.0", + "prop-types": "^15.0.0" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0" + } + }, "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "version": "16.13.1", + "license": "MIT" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "license": "MIT" }, "node_modules/react-markdown": { "version": "8.0.3", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.3.tgz", - "integrity": "sha512-We36SfqaKoVNpN1QqsZwWSv/OZt5J15LNgTLWynwAN5b265hrQrsjMtlRNwUvS+YyR3yDM8HpTNc4pK9H/Gc0A==", + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "@types/prop-types": "^15.0.0", @@ -14558,26 +26098,36 @@ }, "node_modules/react-markdown/node_modules/bail": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/react-markdown/node_modules/comma-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz", - "integrity": "sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/react-markdown/node_modules/is-buffer": { + "version": "2.0.5", + "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", + "engines": { + "node": ">=4" } }, "node_modules/react-markdown/node_modules/is-plain-obj": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -14585,24 +26135,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-markdown/node_modules/property-information": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz", - "integrity": "sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/react-markdown/node_modules/react-is": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "license": "MIT" }, "node_modules/react-markdown/node_modules/remark-parse": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", - "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", + "license": "MIT", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-from-markdown": "^1.0.0", @@ -14613,19 +26152,9 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/react-markdown/node_modules/space-separated-tokens": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", - "integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/react-markdown/node_modules/trough": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -14633,8 +26162,7 @@ }, "node_modules/react-markdown/node_modules/unified": { "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -14649,94 +26177,82 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/react-markdown/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", + "node_modules/react-merge-refs": { + "version": "1.1.0", + "dev": true, + "license": "MIT", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, - "node_modules/react-markdown/node_modules/unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, + "node_modules/react-onclickoutside": { + "version": "6.12.2", + "license": "MIT", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "individual", + "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md" + }, + "peerDependencies": { + "react": "^15.5.x || ^16.x || ^17.x || ^18.x", + "react-dom": "^15.5.x || ^16.x || ^17.x || ^18.x" } }, - "node_modules/react-markdown/node_modules/unist-util-visit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz", - "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==", + "node_modules/react-popper": { + "version": "2.3.0", + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" } }, - "node_modules/react-markdown/node_modules/unist-util-visit-parents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", - "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", + "node_modules/react-popper/node_modules/react-fast-compare": { + "version": "3.2.0", + "license": "MIT" + }, + "node_modules/react-redux": { + "version": "7.2.9", + "license": "MIT", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependencies": { + "react": "^16.8.3 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } } }, - "node_modules/react-markdown/node_modules/vfile": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.4.tgz", - "integrity": "sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/react-markdown/node_modules/vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } + "node_modules/react-redux/node_modules/react-is": { + "version": "17.0.2", + "license": "MIT" }, "node_modules/react-refresh": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", - "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==", + "version": "0.11.0", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-remove-scroll": { "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.3", "react-style-singleton": "^2.2.1", @@ -14759,8 +26275,7 @@ }, "node_modules/react-remove-scroll-bar": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.3.tgz", - "integrity": "sha512-i9GMNWwpz8XpUpQ6QlevUtFjHGqnPG4Hxs+wlIJntu/xcsZVEpJcIV71K3ZkqNy2q3GfgvkD7y6t/Sv8ofYSbw==", + "license": "MIT", "dependencies": { "react-style-singleton": "^2.2.1", "tslib": "^2.0.0" @@ -14778,10 +26293,78 @@ } } }, + "node_modules/react-resizable": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "prop-types": "15.x", + "react-draggable": "^4.0.3" + }, + "peerDependencies": { + "react": ">= 16.3" + } + }, + "node_modules/react-resize-detector": { + "version": "6.7.8", + "license": "MIT", + "dependencies": { + "@types/resize-observer-browser": "^0.1.6", + "lodash": "^4.17.21", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0", + "react-dom": "^16.0.0 || ^17.0.0" + } + }, + "node_modules/react-smooth": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "fast-equals": "^2.0.0", + "react-transition-group": "2.9.0" + }, + "peerDependencies": { + "prop-types": "^15.6.0", + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-smooth/node_modules/dom-helpers": { + "version": "3.4.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/react-smooth/node_modules/react-transition-group": { + "version": "2.9.0", + "license": "BSD-3-Clause", + "dependencies": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0", + "react-dom": ">=15.0.0" + } + }, + "node_modules/react-split": { + "version": "2.0.14", + "license": "MIT", + "dependencies": { + "prop-types": "^15.5.7", + "split.js": "^1.6.0" + }, + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-style-singleton": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", "invariant": "^2.2.4", @@ -14802,8 +26385,7 @@ }, "node_modules/react-syntax-highlighter": { "version": "15.5.0", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz", - "integrity": "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.3.1", "highlight.js": "^10.4.1", @@ -14817,8 +26399,7 @@ }, "node_modules/react-tooltip": { "version": "4.2.21", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-4.2.21.tgz", - "integrity": "sha512-zSLprMymBDowknr0KVDiJ05IjZn9mQhhg4PRsqln0OZtURAJ1snt1xi5daZfagsh6vfsziZrc9pErPTDY1ACig==", + "license": "MIT", "dependencies": { "prop-types": "^15.7.2", "uuid": "^7.0.3" @@ -14833,16 +26414,54 @@ }, "node_modules/react-tooltip/node_modules/uuid": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, + "node_modules/react-tracked": { + "version": "1.7.5", + "license": "MIT", + "dependencies": { + "proxy-compare": "2.0.2", + "use-context-selector": "1.3.9" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": "*", + "react-native": "*", + "scheduler": ">=0.19.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-tracked/node_modules/use-context-selector": { + "version": "1.3.9", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": "*", + "react-native": "*", + "scheduler": ">=0.19.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, "node_modules/react-transition-group": { "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -14854,18 +26473,154 @@ "react-dom": ">=16.6.0" } }, + "node_modules/react-virtualized-auto-sizer": { + "version": "1.0.7", + "license": "MIT", + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc", + "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc" + } + }, + "node_modules/react-window": { + "version": "1.8.7", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" + }, + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-window-infinite-loader": { + "version": "1.0.8", + "license": "MIT", + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0", + "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", "dependencies": { "pify": "^2.3.0" } }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, "node_modules/readable-stream": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -14878,13 +26633,11 @@ }, "node_modules/readable-stream/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "license": "MIT" }, "node_modules/readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -14892,10 +26645,99 @@ "node": ">=8.10.0" } }, + "node_modules/recharts": { + "version": "2.1.6", + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "^2.0.0", + "@types/d3-scale": "^3.0.0", + "@types/d3-shape": "^2.0.0", + "classnames": "^2.2.5", + "d3-interpolate": "^2.0.0", + "d3-scale": "^3.0.0", + "d3-shape": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.19", + "react-is": "^16.10.2", + "react-resize-detector": "^6.6.3", + "react-smooth": "^2.0.0", + "recharts-scale": "^0.4.4", + "reduce-css-calc": "^2.1.8" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0", + "react-dom": "^16.0.0 || ^17.0.0" + } + }, + "node_modules/recharts-scale": { + "version": "0.4.5", + "license": "MIT", + "dependencies": { + "decimal.js-light": "^2.4.1" + } + }, + "node_modules/redent": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/redent/node_modules/indent-string": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/redent/node_modules/strip-indent": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reduce-css-calc": { + "version": "2.1.8", + "license": "MIT", + "dependencies": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + } + }, + "node_modules/reduce-css-calc/node_modules/postcss-value-parser": { + "version": "3.3.1", + "license": "MIT" + }, + "node_modules/redux": { + "version": "4.2.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, "node_modules/refractor": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", - "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", + "license": "MIT", "dependencies": { "hastscript": "^6.0.0", "parse-entities": "^2.0.0", @@ -14908,21 +26750,20 @@ }, "node_modules/refractor/node_modules/prismjs": { "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/regenerate": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "dev": true, + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "dev": true, + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -14932,21 +26773,65 @@ }, "node_modules/regenerator-runtime": { "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "license": "MIT" }, "node_modules/regenerator-transform": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } }, + "node_modules/regex-not": { + "version": "1.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/regexp.prototype.flags": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -14961,8 +26846,7 @@ }, "node_modules/regexpp": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -14971,14 +26855,14 @@ } }, "node_modules/regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", + "version": "5.2.1", + "dev": true, + "license": "MIT", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.0.0" }, @@ -14987,14 +26871,14 @@ } }, "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + "version": "0.7.1", + "dev": true, + "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { "jsesc": "~0.5.0" }, @@ -15004,343 +26888,21 @@ }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, "bin": { "jsesc": "bin/jsesc" } }, "node_modules/rehype-slug": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-4.0.1.tgz", - "integrity": "sha512-KIlJALf9WfHFF21icwTd2yI2IP+RQRweaxH9ChVGQwRYy36+hiomG4ZSe0yQRyCt+D/vE39LbAcOI/h4O4GPhA==", + "version": "5.0.1", + "license": "MIT", "dependencies": { + "@types/hast": "^2.0.0", "github-slugger": "^1.1.1", - "hast-util-has-property": "^1.0.0", - "hast-util-heading-rank": "^1.0.0", - "hast-util-to-string": "^1.0.0", - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "dependencies": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-footnotes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", - "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-gfm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", - "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", - "dependencies": { - "mdast-util-gfm": "^0.1.0", - "micromark-extension-gfm": "^0.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-html": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-10.0.0.tgz", - "integrity": "sha512-TbSQuedRFjAhXSk1NAbfaTqDK0jKAjfgn82D2ZYFFT8XpJ80uwXc8yVwK/Tl2eqboTMPxzNzCIss4kIucE5M8w==", - "dependencies": { - "hast-util-sanitize": "^2.0.0", - "hast-util-to-html": "^6.0.0", - "mdast-util-to-hast": "^6.0.0", - "xtend": "^4.0.1" - } - }, - "node_modules/remark-html/node_modules/mdast-util-definitions": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz", - "integrity": "sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==", - "dependencies": { - "unist-util-visit": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-html/node_modules/mdast-util-to-hast": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-6.0.2.tgz", - "integrity": "sha512-GjcOimC9qHI0yNFAQdBesrZXzUkRdFleQlcoU8+TVNfDW6oLUazUx8MgUoTaUyCJzBOnE5AOgqhpURrSlf0QwQ==", - "dependencies": { - "collapse-white-space": "^1.0.0", - "detab": "^2.0.0", - "mdast-util-definitions": "^1.2.0", - "mdurl": "^1.0.1", - "trim": "0.0.1", - "trim-lines": "^1.0.0", - "unist-builder": "^1.0.1", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^1.1.0", - "xtend": "^4.0.1" - } - }, - "node_modules/remark-html/node_modules/unist-builder": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-1.0.4.tgz", - "integrity": "sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg==", - "dependencies": { - "object-assign": "^4.1.0" - } - }, - "node_modules/remark-html/node_modules/unist-util-is": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", - "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" - }, - "node_modules/remark-html/node_modules/unist-util-visit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", - "dependencies": { - "unist-util-visit-parents": "^2.0.0" - } - }, - "node_modules/remark-html/node_modules/unist-util-visit-parents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", - "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", - "dependencies": { - "unist-util-is": "^3.0.0" - } - }, - "node_modules/remark-mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", - "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", - "dependencies": { - "@babel/core": "7.12.9", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-syntax-jsx": "7.12.1", - "@mdx-js/util": "1.6.22", - "is-alphabetical": "1.0.4", - "remark-parse": "8.0.3", - "unified": "9.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx/node_modules/@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/remark-mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/remark-mdx/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remark-mdx/node_modules/unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", - "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", - "dependencies": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-prism": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/remark-prism/-/remark-prism-1.3.6.tgz", - "integrity": "sha512-yYSXJ2MEK2DeD9UKDKFkQPcVqRx6aX2FYD1kE27ScogpZ/BBO8MoOO6gf/AKqfXvKGnP51wqvDEBmPseypgaug==", - "dependencies": { - "classnames": "^2.3.1", - "css-selector-parser": "^1.4.1", - "escape-html": "^1.0.3", - "jsdom": "^16.5.3", - "parse-numeric-range": "^1.2.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "prismjs": "^1.23.0", - "unist-util-map": "^2.0.1" - } - }, - "node_modules/remark-prism/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/remark-prism/node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-rehype/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-rehype/node_modules/mdast-util-definitions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz", - "integrity": "sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", + "hast-util-has-property": "^2.0.0", + "hast-util-heading-rank": "^2.0.0", + "hast-util-to-string": "^2.0.0", + "unified": "^10.0.0", "unist-util-visit": "^4.0.0" }, "funding": { @@ -15348,353 +26910,16 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-rehype/node_modules/mdast-util-to-hast": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.2.0.tgz", - "integrity": "sha512-YDwT5KhGzLgPpSnQhAlK1+WpCW4gsPmNNAxUNMkMTDhxQyPp2eX86WOelnKnLKEvSpfxqJbPbInHFkefXZBhEA==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/mdurl": "^1.0.0", - "mdast-util-definitions": "^5.0.0", - "mdurl": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "trim-lines": "^3.0.0", - "unist-builder": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-rehype/node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-rehype/node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-builder": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.0.tgz", - "integrity": "sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-generated": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", - "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-position": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", - "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-visit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz", - "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-visit-parents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", - "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/vfile": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.4.tgz", - "integrity": "sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", - "dependencies": { - "mdast-squeeze-paragraphs": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", - "dependencies": { - "mdast-util-to-markdown": "^0.6.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark/node_modules/mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark/node_modules/remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", - "dependencies": { - "mdast-util-from-markdown": "^0.8.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remarkable": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz", - "integrity": "sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==", - "dependencies": { - "argparse": "^1.0.10", - "autolinker": "~0.28.0" - }, - "bin": { - "remarkable": "bin/remarkable.js" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { + "node_modules/rehype-slug/node_modules/bail": { "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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, + "license": "MIT", "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/rehype-slug/node_modules/is-buffer": { + "version": "2.0.5", "funding": [ { "type": "github", @@ -15709,14 +26934,783 @@ "url": "https://feross.org/support" } ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rehype-slug/node_modules/is-plain-obj": { + "version": "4.1.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rehype-slug/node_modules/trough": { + "version": "2.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/rehype-slug/node_modules/unified": { + "version": "10.1.2", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-external-links": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "is-absolute-url": "^3.0.0", + "mdast-util-definitions": "^4.0.0", + "space-separated-tokens": "^1.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-external-links/node_modules/space-separated-tokens": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-external-links/node_modules/unist-util-is": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-external-links/node_modules/unist-util-visit": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-external-links/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-footnotes": { + "version": "2.0.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm/node_modules/bail": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-gfm/node_modules/is-buffer": { + "version": "2.0.5", + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/remark-gfm/node_modules/is-plain-obj": { + "version": "4.1.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/remark-gfm/node_modules/trough": { + "version": "2.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-gfm/node_modules/unified": { + "version": "10.1.2", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-html": { + "version": "15.0.1", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "hast-util-sanitize": "^4.0.0", + "hast-util-to-html": "^8.0.0", + "mdast-util-to-hast": "^12.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-html/node_modules/bail": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-html/node_modules/is-buffer": { + "version": "2.0.5", + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/remark-html/node_modules/is-plain-obj": { + "version": "4.1.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/remark-html/node_modules/trough": { + "version": "2.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-html/node_modules/unified": { + "version": "10.1.2", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "2.1.4", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^2.0.0", + "micromark-extension-mdxjs": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "9.0.0", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse/node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse/node_modules/mdast-util-to-string": { + "version": "2.0.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse/node_modules/micromark": { + "version": "2.11.4", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, + "node_modules/remark-parse/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "10.1.0", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-to-hast": "^12.1.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype/node_modules/bail": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-rehype/node_modules/is-buffer": { + "version": "2.0.5", + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/remark-rehype/node_modules/is-plain-obj": { + "version": "4.1.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/remark-rehype/node_modules/trough": { + "version": "2.1.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-rehype/node_modules/unified": { + "version": "10.1.2", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-slug": { + "version": "6.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "github-slugger": "^1.0.0", + "mdast-util-to-string": "^1.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-slug/node_modules/mdast-util-to-string": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-slug/node_modules/unist-util-is": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-slug/node_modules/unist-util-visit": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-slug/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-squeeze-paragraphs": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "mdast-squeeze-paragraphs": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "9.0.1", + "license": "MIT", + "dependencies": { + "mdast-util-to-markdown": "^0.6.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify/node_modules/longest-streak": { + "version": "2.0.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remark-stringify/node_modules/mdast-util-to-markdown": { + "version": "0.6.5", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "longest-streak": "^2.0.0", + "mdast-util-to-string": "^2.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify/node_modules/mdast-util-to-string": { + "version": "2.0.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify/node_modules/zwitch": { + "version": "1.0.5", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/remarkable": { + "version": "1.7.4", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.10", + "autolinker": "~0.28.0" + }, + "bin": { + "remarkable": "bin/remarkable.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "dev": true, + "license": "ISC" + }, + "node_modules/remove-trailing-slash": { + "version": "0.1.1", + "license": "MIT" + }, + "node_modules/renderkid": { + "version": "2.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + } + }, + "node_modules/renderkid/node_modules/ansi-regex": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/renderkid/node_modules/strip-ansi": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.1", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "devOptional": true, + "license": "MIT" + }, + "node_modules/resolve.exports": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rsvp": { + "version": "4.8.5", + "dev": true, + "license": "MIT", + "engines": { + "node": "6.* || >= 7.*" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "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", "dependencies": { "queue-microtask": "^1.2.2" } }, + "node_modules/run-queue": { + "version": "1.0.3", + "devOptional": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.1.1" + } + }, "node_modules/sade": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "license": "MIT", "dependencies": { "mri": "^1.1.0" }, @@ -15726,20 +27720,311 @@ }, "node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "devOptional": true, + "license": "MIT" + }, + "node_modules/sane": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "bin": { + "sane": "src/cli.js" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/sane/node_modules/anymatch": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/sane/node_modules/braces": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/cross-spawn": { + "version": "6.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/sane/node_modules/execa": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sane/node_modules/fill-range": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/get-stream": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sane/node_modules/is-extendable": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-plain-object": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-stream": { + "version": "1.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/micromatch": { + "version": "3.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/normalize-path": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/npm-run-path": { + "version": "2.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sane/node_modules/path-key": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/sane/node_modules/semver": { + "version": "5.7.1", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/sane/node_modules/shebang-command": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/shebang-regex": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/to-regex-range": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/which": { + "version": "1.3.1", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } }, "node_modules/sass": { - "version": "1.54.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.4.tgz", - "integrity": "sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==", - "optional": true, - "peer": true, + "version": "1.55.0", + "license": "MIT", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -15754,8 +28039,8 @@ }, "node_modules/saxes": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "license": "ISC", "dependencies": { "xmlchars": "^2.2.0" }, @@ -15765,17 +28050,60 @@ }, "node_modules/scheduler": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" } }, + "node_modules/schema-utils": { + "version": "3.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, "node_modules/section-matter": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" @@ -15784,34 +28112,107 @@ "node": ">=4" } }, + "node_modules/select": { + "version": "1.1.2", + "license": "MIT" + }, "node_modules/semver": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, + "node_modules/send": { + "version": "0.18.0", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "devOptional": true, - "peer": true, + "version": "5.0.1", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, + "node_modules/serve-favicon": { + "version": "2.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-favicon/node_modules/ms": { + "version": "2.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-favicon/node_modules/safe-buffer": { + "version": "5.1.1", + "dev": true, + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "license": "ISC" }, "node_modules/set-getter": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.1.tgz", - "integrity": "sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==", + "license": "MIT", "dependencies": { "to-object-path": "^0.3.0" }, @@ -15819,10 +28220,67 @@ "node": ">=0.10.0" } }, + "node_modules/set-value": { + "version": "2.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "devOptional": true, + "license": "MIT" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "dev": true, + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "devOptional": true, + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -15832,16 +28290,14 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -15853,29 +28309,35 @@ }, "node_modules/signal-exit": { "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "license": "ISC" + }, + "node_modules/sirv": { + "version": "1.0.19", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } }, "node_modules/sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -15888,56 +28350,366 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "devOptional": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "devOptional": true, + "license": "MIT" + }, "node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "devOptional": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "devOptional": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, + "node_modules/source-map-url": { + "version": "0.4.1", + "devOptional": true, + "license": "MIT" + }, "node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "version": "2.0.1", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split-string": { + "version": "3.1.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split.js": { + "version": "1.6.5", + "license": "MIT" + }, + "node_modules/split2": { + "version": "4.1.0", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "license": "BSD-3-Clause" + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, "node_modules/ssr-window": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", - "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" + "license": "MIT" + }, + "node_modules/ssri": { + "version": "8.0.1", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "dev": true, + "license": "MIT" }, "node_modules/stack-utils": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -15947,62 +28719,194 @@ }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/stackframe": { + "version": "1.3.4", + "dev": true, + "license": "MIT" + }, + "node_modules/state-local": { + "version": "1.0.7", + "license": "MIT" + }, "node_modules/state-toggle": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "node_modules/static-extend": { + "version": "0.1.2", + "devOptional": true, + "license": "MIT", "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/store2": { + "version": "2.14.2", + "dev": true, + "license": "(MIT OR GPL-3.0)" + }, + "node_modules/storybook-dark-mode": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addons": "^6.0.0", + "@storybook/api": "^6.0.0", + "@storybook/components": "^6.0.0", + "@storybook/core-events": "^6.0.0", + "@storybook/theming": "^6.0.0", + "fast-deep-equal": "^3.0.0", + "global": "^4.4.0", + "memoizerific": "^1.11.3" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "devOptional": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "devOptional": true, + "license": "MIT", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT" + }, "node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, - "node_modules/string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==" - }, "node_modules/string-length": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -16011,10 +28915,25 @@ "node": ">=10" } }, + "node_modules/string-width": { + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, "node_modules/string.prototype.matchall": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -16029,10 +28948,41 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.padend": { + "version": "3.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padstart": { + "version": "3.1.3", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/string.prototype.trimend": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -16044,8 +28994,7 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -16056,21 +29005,28 @@ } }, "node_modules/stringify-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-2.0.0.tgz", - "integrity": "sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==", + "version": "4.0.3", + "license": "MIT", "dependencies": { - "character-entities-html4": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.2", - "is-hexadecimal": "^1.0.0" + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-entities/node_modules/character-entities-legacy": { + "version": "3.0.0", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -16080,42 +29036,56 @@ }, "node_modules/strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/strip-bom-string": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/strip-color": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz", - "integrity": "sha512-p9LsUieSjWNNAxVCXLeilaDlmuUOrDS5/dF9znM1nZc7EGX5+zEFC0bEevsNIaldjlks+2jns5Siz6F9iK6jwA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/strip-indent": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -16123,23 +29093,90 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/studio": { + "resolved": "studio", + "link": true + }, + "node_modules/style-loader": { + "version": "1.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/style-loader/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/style-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/style-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "node_modules/style-loader/node_modules/schema-utils": { + "version": "2.7.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/style-to-object": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "license": "MIT", "dependencies": { "inline-style-parser": "0.1.1" } }, "node_modules/styled-jsx": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz", - "integrity": "sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.7.tgz", + "integrity": "sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA==", "engines": { "node": ">= 12.0.0" }, "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || 18.x.x" + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" }, "peerDependenciesMeta": { "@babel/core": { @@ -16150,22 +29187,24 @@ } } }, + "node_modules/supabase-tests": { + "resolved": "tests", + "link": true + }, "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "5.5.0", + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "version": "2.3.0", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -16174,10 +29213,28 @@ "node": ">=8" } }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -16187,8 +29244,6 @@ }, "node_modules/swiper": { "version": "6.8.4", - "resolved": "https://registry.npmjs.org/swiper/-/swiper-6.8.4.tgz", - "integrity": "sha512-O+buF9Q+sMA0H7luMS8R59hCaJKlpo8PXhQ6ZYu6Rn2v9OsFd4d1jmrv14QvxtQpKAvL/ZiovEeANI/uDGet7g==", "funding": [ { "type": "patreon", @@ -16200,6 +29255,7 @@ } ], "hasInstallScript": true, + "license": "MIT", "dependencies": { "dom7": "^3.0.0", "ssr-window": "^3.0.0" @@ -16210,8 +29266,7 @@ }, "node_modules/swr": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/swr/-/swr-0.5.7.tgz", - "integrity": "sha512-Jh1Efgu8nWZV9rU4VLUMzBzcwaZgi4znqbVXvAtUy/0JzSiN6bNjLaJK8vhY/Rtp7a83dosz5YuehfBNwC/ZoQ==", + "license": "MIT", "dependencies": { "dequal": "2.0.2" }, @@ -16219,24 +29274,36 @@ "react": "^16.11.0 || ^17.0.0" } }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "engines": { - "node": ">=0.10" - } - }, "node_modules/symbol-tree": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + "dev": true, + "license": "MIT" + }, + "node_modules/symbol.prototype.description": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-symbol-description": "^1.0.0", + "has-symbols": "^1.0.2", + "object.getownpropertydescriptors": "^2.1.2" + }, + "engines": { + "node": ">= 0.11.15" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synchronous-promise": { + "version": "2.0.16", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/table": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, + "license": "BSD-3-Clause", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -16248,52 +29315,9 @@ "node": ">=10.0.0" } }, - "node_modules/table/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/table/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==", - "dev": true - }, - "node_modules/table/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tailwindcss": { "version": "3.1.8", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz", - "integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==", + "license": "MIT", "dependencies": { "arg": "^5.0.2", "chokidar": "^3.5.3", @@ -16331,34 +29355,74 @@ }, "node_modules/tailwindcss-radix": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tailwindcss-radix/-/tailwindcss-radix-1.6.0.tgz", - "integrity": "sha512-5oBgGCVGsITMiUVlc6Euj4kt03l8htLJxVT9AXbkFxcJiXLtQxJriFq/8R+3s63OKit/ynCVdkqvlnW6H7iG1g==" + "license": "MIT" }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } + "node_modules/tailwindcss/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "1.1.3", "devOptional": true, + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/tar": { + "version": "6.1.11", + "dev": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/telejson": { + "version": "6.0.8", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/is-function": "^1.0.0", + "global": "^4.4.0", + "is-function": "^1.0.2", + "is-regex": "^1.1.2", + "is-symbol": "^1.0.3", + "isobject": "^4.0.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3" + } + }, + "node_modules/telejson/node_modules/isobject": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/terminal-link": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" @@ -16371,11 +29435,188 @@ } }, "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "4.8.1", "devOptional": true, - "peer": true, + "license": "BSD-2-Clause", + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "4.2.3", + "dev": true, + "license": "MIT", + "dependencies": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/acorn": { + "version": "8.8.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/commander": { + "version": "2.20.3", + "dev": true, + "license": "MIT" + }, + "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { + "version": "3.3.2", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "26.6.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/terser": { + "version": "5.15.1", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", @@ -16389,85 +29630,15 @@ "node": ">=10" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.4.tgz", - "integrity": "sha512-SmnkUhBxLDcBfTIeaq+ZqJXLVEyXxSaNcCeSezECdKjfkMrTTnPvapBILylYwyEvHFZAn2cJ8dtiXel5XnfOfQ==", - "devOptional": true, - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "devOptional": true, - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser/node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "devOptional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "devOptional": true, - "peer": true + "license": "MIT" }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -16479,47 +29650,64 @@ }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "license": "MIT" }, "node_modules/throat": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/through2": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "license": "MIT", "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "devOptional": true, + "license": "MIT", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "license": "MIT" + }, "node_modules/tiny-warning": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + "license": "MIT" }, "node_modules/tmpl": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT" }, "node_modules/to-fast-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -16527,15 +29715,9 @@ "node": ">=0.10.0" } }, - "node_modules/to-object-path/node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "node_modules/to-object-path/node_modules/kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -16543,10 +29725,23 @@ "node": ">=0.10.0" } }, + "node_modules/to-regex": { + "version": "3.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -16556,55 +29751,98 @@ }, "node_modules/to-regex-range/node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/toggle-selection": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + "license": "MIT" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6" + } }, "node_modules/toml": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", - "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==" + "license": "MIT" + }, + "node_modules/toposort": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/totalist": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } }, "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.2", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { "node": ">=6" } }, - "node_modules/tough-cookie/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "0.2.0", + "dev": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/tr46": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "license": "MIT", "dependencies": { "punycode": "^2.1.1" }, @@ -16612,32 +29850,29 @@ "node": ">=8" } }, - "node_modules/tr46/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, "node_modules/trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==" + "version": "0.0.1" }, "node_modules/trim-lines": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-1.1.3.tgz", - "integrity": "sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA==", + "version": "3.0.1", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/trim-trailing-lines": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", - "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -16645,29 +29880,24 @@ }, "node_modules/trough": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/ts-invariant": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", - "dependencies": { - "tslib": "^2.1.0" - }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=6.10" } }, "node_modules/ts-jest": { "version": "27.1.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", - "integrity": "sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==", "dev": true, + "license": "MIT", "dependencies": { "bs-logger": "0.x", "fast-json-stable-stringify": "2.x", @@ -16706,11 +29936,102 @@ } } }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "node_modules/ts-jest/node_modules/@jest/types": { + "version": "27.5.1", "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/ts-jest/node_modules/@types/yargs": { + "version": "16.0.4", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/ts-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-jest/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-jest/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-jest/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/ts-jest/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-jest/node_modules/jest-util": { + "version": "27.5.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.3.8", + "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -16721,1332 +30042,20 @@ "node": ">=10" } }, + "node_modules/ts-jest/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "devOptional": true, - "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" - } - }, - "node_modules/ts-node/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true - }, - "node_modules/tsconfig": { - "resolved": "packages/tsconfig", - "link": true - }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/turbo": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo/-/turbo-1.4.3.tgz", - "integrity": "sha512-g08eD2HdO/XW5xGHnXr0cXGiWnrgFBI6pN/3u0EOTeerKAsWIZU0ZrpSnl3whRtImeBB/gQu7Eu1waM2VOxzgw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "turbo": "bin/turbo" - }, - "optionalDependencies": { - "turbo-android-arm64": "1.4.3", - "turbo-darwin-64": "1.4.3", - "turbo-darwin-arm64": "1.4.3", - "turbo-freebsd-64": "1.4.3", - "turbo-freebsd-arm64": "1.4.3", - "turbo-linux-32": "1.4.3", - "turbo-linux-64": "1.4.3", - "turbo-linux-arm": "1.4.3", - "turbo-linux-arm64": "1.4.3", - "turbo-linux-mips64le": "1.4.3", - "turbo-linux-ppc64le": "1.4.3", - "turbo-windows-32": "1.4.3", - "turbo-windows-64": "1.4.3", - "turbo-windows-arm64": "1.4.3" - } - }, - "node_modules/turbo-android-arm64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-android-arm64/-/turbo-android-arm64-1.4.3.tgz", - "integrity": "sha512-ZUvdoEHJkTkOFOO9PKWYrdONDBVqkNsvwEMufTVf07RXgqmbXDPkznzT4hcQm6xXyqWqJdjgSAMdlm+2nNE1Og==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/turbo-darwin-64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-1.4.3.tgz", - "integrity": "sha512-gapoVm5qbu2TJS4lJ6fM3o2eAkLyXSxHihw/4NRAYmwHCH3at1/cIAnRcctB/HLL3ZaB/p3HKb8mnI7k6xNHOw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/turbo-darwin-arm64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-1.4.3.tgz", - "integrity": "sha512-XUe6FTsHamEH7FfNslYYO04yecAaguhZuwW4kE9B/BAP8MUYsmVqONauLPyE/YqM6pf2K0xwVe+RlEGf53CWbg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/turbo-freebsd-64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-freebsd-64/-/turbo-freebsd-64-1.4.3.tgz", - "integrity": "sha512-1CAjXmDClgMXdWZXreUfAbGBB2WB9TZHfJIdsgnDqt4fIcFGChknzYqc+Fj3tGHAczMpinGjBbWIzFuxOq/ofQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/turbo-freebsd-arm64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-freebsd-arm64/-/turbo-freebsd-arm64-1.4.3.tgz", - "integrity": "sha512-j5C7j/vwabPKpr5d6YlLgHGHBZCOcXj3HdkBshDHTQ0wghH0NuCUUaesYxI3wva/4/Ec0dhIrb20Laa/HMxXLA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/turbo-linux-32": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-32/-/turbo-linux-32-1.4.3.tgz", - "integrity": "sha512-vnc+StXIoQEnxIU43j7rEz/J+v+RV4dbUdUolBq0k9gkUV8KMCcqPkIa753K47E2KLNGKXMaYDI6AHQX1GAQZg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/turbo-linux-64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-1.4.3.tgz", - "integrity": "sha512-KAUeIa8Ejt6BLrBGbVurlrjDxqh62tu75D4cqKqKfzWspcbEtmdqlV6qthXfm8SlzGSNuQXX0+qXEWds2FIZXg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/turbo-linux-arm": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-arm/-/turbo-linux-arm-1.4.3.tgz", - "integrity": "sha512-zZNoHUK5ioFyxAngh8tHe763Dzb22ne3LJkaZn0ExkFHJtWClWv536lPcDuQPpIH9W9iz5OwPKtN32DNpNwk8A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/turbo-linux-arm64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-1.4.3.tgz", - "integrity": "sha512-rzB7w+RHCQkKr8aDxxozv/IzdN976CYyBiRocSf9QGU73uyAg8pCo3i0MiENSRjDC+tUbdbu2lEUwGXf9ziB9Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/turbo-linux-mips64le": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-mips64le/-/turbo-linux-mips64le-1.4.3.tgz", - "integrity": "sha512-Ztr1BM5NiUsHWjB7zpkP2RpRDA/fjbLaCbkyfyGlLmVkrSkh05NFBD03IWs2LSLy/wb6vRpL3MQ4FKcb97Tn8w==", - "cpu": [ - "mipsel" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/turbo-linux-ppc64le": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-ppc64le/-/turbo-linux-ppc64le-1.4.3.tgz", - "integrity": "sha512-tJaFJWxwfy/iLd69VHZj6JcXy9hO8LQ+ZUOna/p/wiy5WrFVgEYlD+4gfECfRZ+52EIelMgXl97vACaN1WMhLw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/turbo-windows-32": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-windows-32/-/turbo-windows-32-1.4.3.tgz", - "integrity": "sha512-w9LyYd+DW3PYFXu9vQiie5lfdqmVIKLV0h181C49hempkIXfgQAosXfaugYWDwBc0GEBoBIQB0vGQKE7gt5nzA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/turbo-windows-64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-1.4.3.tgz", - "integrity": "sha512-qPCqemxxOrXyqqig3fVQozRkOwo5oJSsQ3FTZE5YlNu2NwwWvY1mC0X4WTZIDsbj4oHqr0riqC7RGKbjQm1IIQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/turbo-windows-arm64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-1.4.3.tgz", - "integrity": "sha512-djnOOBjw33AnUx2SR6TMOpDr3nKLnVD+HcZvnQz70HyE331AKWjBoEE4rtUOteLAfViWAp3afbiljFSOnbU00Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/tutorials": { - "resolved": "apps/temp-community-tutorials", - "link": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "dependencies": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unified": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", - "dev": true - }, - "node_modules/unist-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", - "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-generated": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", - "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-map/-/unist-util-map-2.0.1.tgz", - "integrity": "sha512-VdNvk4BQUUU9Rgr8iUOvclHa/iN9O+6Dt66FKij8l9OVezGG37gGWCPU5KSax1R2degqXFvl3kWTkvzL79e9tQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "object-assign": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", - "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", - "dependencies": { - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" - }, - "node_modules/update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/use-callback-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", - "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-debounce": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-7.0.1.tgz", - "integrity": "sha512-fOrzIw2wstbAJuv8PC9Vg4XgwyTLEOdq4y/Z3IhVl8DAE4svRcgyEUvrEXu+BMNgMoc3YND6qLT61kkgEKXh7Q==", - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-subscription": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", - "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", - "dependencies": { - "object-assign": "^4.1.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz", - "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "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==" - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uvu/node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/uvu/node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "devOptional": true, - "peer": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/webpack": { - "version": "5.74.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", - "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", - "devOptional": true, - "peer": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "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": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "devOptional": true, - "peer": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "devOptional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "devOptional": true, - "peer": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "devOptional": true, - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/websocket/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/websocket/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/www": { - "resolved": "apps/www", - "link": true - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "node_modules/zen-observable-ts": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", - "dependencies": { - "zen-observable": "0.8.15" - } - }, - "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "packages/common": { - "version": "0.0.0", - "license": "MIT", - "dependencies": { - "@headlessui/react": "^1.5.0", - "@supabase/ui": "^0.37.0-alpha.50" - }, - "devDependencies": { - "@types/react": "^17.0.37", - "@types/react-dom": "^17.0.11", - "config": "*", - "tsconfig": "*", - "typescript": "^4.5.3" - } - }, - "packages/common/node_modules/@types/react-dom": { - "version": "17.0.16", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/react": "^17" - } - }, - "packages/config": { - "version": "0.0.0", - "license": "MIT", - "dependencies": { - "@mertasan/tailwindcss-variables": "^2.2.3", - "@radix-ui/colors": "^0.1.8", - "@tailwindcss/forms": "^0.5.0", - "deepmerge": "^4.2.2", - "eslint-config-next": "^12.0.8", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-react": "7.28.0", - "mini-svg-data-uri": "^1.4.4", - "tailwindcss-radix": "^2.0.0" - } - }, - "packages/config/node_modules/@tailwindcss/forms": { - "version": "0.5.0", - "license": "MIT", - "dependencies": { - "mini-svg-data-uri": "^1.2.3" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" - } - }, - "packages/config/node_modules/tailwindcss-radix": { - "version": "2.2.0", - "license": "MIT" - }, - "packages/spec": { - "name": "@supabase/generator", - "version": "0.0.0", - "license": "MIT", - "devDependencies": { - "@apidevtools/swagger-cli": "^4.0.4", - "@types/lodash": "^4.14.182", - "ejs": "^3.1.8", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "openapi-types": "^12.0.0", - "ts-node": "^10.9.1" - } - }, - "packages/spec/node_modules/acorn": { - "version": "8.8.0", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "packages/spec/node_modules/acorn-walk": { - "version": "8.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "packages/spec/node_modules/arg": { - "version": "4.1.3", - "dev": true, - "license": "MIT" - }, - "packages/spec/node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "packages/spec/node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "packages/spec/node_modules/ts-node": { "version": "10.9.1", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -18086,236 +30095,3081 @@ } } }, + "node_modules/ts-node/node_modules/acorn": { + "version": "8.8.0", + "devOptional": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ts-node/node_modules/acorn-walk": { + "version": "8.2.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "devOptional": true, + "license": "MIT" + }, + "node_modules/ts-pnp": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tsconfig": { + "resolved": "packages/tsconfig", + "link": true + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/turbo": { + "version": "1.4.7", + "dev": true, + "hasInstallScript": true, + "license": "MPL-2.0", + "bin": { + "turbo": "bin/turbo" + }, + "optionalDependencies": { + "turbo-android-arm64": "1.4.7", + "turbo-darwin-64": "1.4.7", + "turbo-darwin-arm64": "1.4.7", + "turbo-freebsd-64": "1.4.7", + "turbo-freebsd-arm64": "1.4.7", + "turbo-linux-32": "1.4.7", + "turbo-linux-64": "1.4.7", + "turbo-linux-arm": "1.4.7", + "turbo-linux-arm64": "1.4.7", + "turbo-linux-mips64le": "1.4.7", + "turbo-linux-ppc64le": "1.4.7", + "turbo-windows-32": "1.4.7", + "turbo-windows-64": "1.4.7", + "turbo-windows-arm64": "1.4.7" + } + }, + "node_modules/turbo-darwin-64": { + "version": "1.4.7", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "license": "MIT" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.8.4", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uglify-js": { + "version": "3.17.3", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ui": { + "resolved": "packages/ui", + "link": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unfetch": { + "version": "4.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/unherit": { + "version": "1.1.3", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "9.2.2", + "license": "MIT", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/is-buffer": { + "version": "2.0.5", + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/vfile": { + "version": "4.2.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/vfile-message": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/uniforms": { + "version": "3.10.1", + "license": "MIT", + "dependencies": { + "invariant": "^2.0.0", + "lodash": "^4.0.0", + "tslib": "^2.2.0" + }, + "funding": { + "url": "https://github.com/vazco/uniforms?sponsor=1" + }, + "peerDependencies": { + "react": "^18.0.0 || ^17.0.0 || ^16.8.0" + } + }, + "node_modules/uniforms-bootstrap4": { + "version": "3.10.1", + "license": "MIT", + "dependencies": { + "classnames": "^2.0.0", + "invariant": "^2.0.0", + "lodash": "^4.0.0", + "tslib": "^2.2.0", + "uniforms": "^3.10.1", + "warning": "^4.0.0" + }, + "funding": { + "url": "https://github.com/vazco/uniforms?sponsor=1" + }, + "peerDependencies": { + "react": "^18.0.0 || ^17.0.0 || ^16.8.0" + } + }, + "node_modules/uniforms-bridge-json-schema": { + "version": "3.10.1", + "license": "MIT", + "dependencies": { + "invariant": "^2.0.0", + "lodash": "^4.0.0", + "tslib": "^2.2.0", + "uniforms": "^3.10.1" + }, + "funding": { + "url": "https://github.com/vazco/uniforms?sponsor=1" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "devOptional": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "devOptional": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/unist-builder": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-generated": { + "version": "2.0.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "5.1.1", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove/node_modules/unist-util-is": { + "version": "4.1.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "4.1.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/untildify": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "os-homedir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "devOptional": true, + "license": "MIT" + }, + "node_modules/url": { + "version": "0.11.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "devOptional": true, + "license": "MIT" + }, + "node_modules/use": { + "version": "3.1.1", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-debounce": { + "version": "7.0.1", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/use-memo-one": { + "version": "1.1.3", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-subscription": { + "version": "1.5.1", + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.9", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/util": { + "version": "0.11.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/util.promisify": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "devOptional": true, + "license": "ISC" + }, + "node_modules/utila": { + "version": "0.4.0", + "dev": true, + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/uuid-browser": { + "version": "3.1.0", + "dev": true, + "license": "MIT" + }, + "node_modules/uuid-by-string": { + "version": "3.0.7", + "dev": true, + "license": "MIT", + "dependencies": { + "js-md5": "^0.7.3", + "js-sha1": "^0.6.0" + } + }, + "node_modules/uvu": { + "version": "0.5.6", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/uvu/node_modules/diff": { + "version": "5.1.0", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/uvu/node_modules/kleur": { + "version": "4.1.5", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "license": "MIT" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "devOptional": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "dev": true, + "license": "ISC", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "5.3.5", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-matter": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "@types/js-yaml": "^4.0.0", + "is-buffer": "^2.0.0", + "js-yaml": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-matter/node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, + "node_modules/vfile-matter/node_modules/is-buffer": { + "version": "2.0.5", + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/vfile-matter/node_modules/js-yaml": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/vfile-message": { + "version": "3.1.2", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/is-buffer": { + "version": "2.0.5", + "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", + "engines": { + "node": ">=4" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "devOptional": true, + "license": "MIT" + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-extendable": { + "version": "1.0.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-plain-object": { + "version": "2.0.4", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { + "version": "2.1.1", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/web-namespaces": { + "version": "1.1.4", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "4.46.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + }, + "webpack-command": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^6.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn": { + "version": "8.8.0", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": { + "version": "8.2.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ws": { + "version": "7.5.9", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.3", + "dev": true, + "license": "MIT", + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.6.0", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-filter-warnings-plugin": { + "version": "1.2.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.3 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/webpack-hot-middleware": { + "version": "2.25.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-html-community": "0.0.8", + "html-entities": "^2.1.0", + "strip-ansi": "^6.0.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-log/node_modules/ansi-colors": { + "version": "3.2.4", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-log/node_modules/uuid": { + "version": "3.4.0", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "devOptional": true, + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.2.2", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.0.0" + } + }, + "node_modules/webpack-virtual-modules/node_modules/debug": { + "version": "3.2.7", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/webpack/node_modules/acorn": { + "version": "6.4.2", + "devOptional": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "devOptional": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/braces": { + "version": "2.3.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/cacache": { + "version": "12.0.4", + "devOptional": true, + "license": "ISC", + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/chownr": { + "version": "1.1.4", + "devOptional": true, + "license": "ISC" + }, + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "4.5.0", + "devOptional": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/webpack/node_modules/enhanced-resolve/node_modules/memory-fs": { + "version": "0.5.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "4.0.3", + "devOptional": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "devOptional": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/fill-range": { + "version": "4.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-extendable": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number": { + "version": "3.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-wsl": { + "version": "1.1.0", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "devOptional": true, + "license": "MIT" + }, + "node_modules/webpack/node_modules/json5": { + "version": "1.0.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/webpack/node_modules/loader-utils": { + "version": "1.4.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack/node_modules/lru-cache": { + "version": "5.1.1", + "devOptional": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/webpack/node_modules/micromatch": { + "version": "3.1.10", + "devOptional": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "devOptional": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/rimraf": { + "version": "2.7.1", + "devOptional": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "1.0.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack/node_modules/serialize-javascript": { + "version": "4.0.0", + "devOptional": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/webpack/node_modules/ssri": { + "version": "6.0.2", + "devOptional": true, + "license": "ISC", + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/webpack/node_modules/terser-webpack-plugin": { + "version": "1.4.5", + "devOptional": true, + "license": "MIT", + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/to-regex-range": { + "version": "2.1.1", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/watchpack": { + "version": "1.7.5", + "devOptional": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/webpack/node_modules/y18n": { + "version": "4.0.3", + "devOptional": true, + "license": "ISC" + }, + "node_modules/webpack/node_modules/yallist": { + "version": "3.1.1", + "devOptional": true, + "license": "ISC" + }, + "node_modules/websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/websocket/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/websocket/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "dev": true, + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "devOptional": true, + "license": "MIT", + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/worker-rpc": { + "version": "0.1.1", + "dev": true, + "license": "MIT", + "dependencies": { + "microevent.ts": "~0.1.1" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "8.9.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/www": { + "resolved": "apps/www", + "link": true + }, + "node_modules/x-default-browser": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "bin": { + "x-default-browser": "bin/x-default-browser.js" + }, + "optionalDependencies": { + "default-browser-id": "^1.0.4" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "dev": true, + "license": "MIT" + }, + "node_modules/xtend": { + "version": "4.0.2", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yup": { + "version": "0.32.11", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/lodash": "^4.14.175", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/zwitch": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/zxcvbn": { + "version": "4.4.2", + "license": "MIT" + }, + "packages/common": { + "version": "0.0.0", + "license": "MIT", + "dependencies": { + "@headlessui/react": "^1.5.0", + "@supabase/ui": "^0.37.0-alpha.50" + }, + "devDependencies": { + "@types/react": "^17.0.37", + "@types/react-dom": "^17.0.11", + "config": "*", + "tsconfig": "*", + "typescript": "^4.5.3" + } + }, + "packages/common/node_modules/@types/react": { + "version": "17.0.50", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "packages/config": { + "version": "0.0.0", + "license": "MIT", + "dependencies": { + "@mertasan/tailwindcss-variables": "^2.2.3", + "@radix-ui/colors": "^0.1.8", + "@tailwindcss/forms": "^0.5.0", + "@tailwindcss/typography": "^0.5.2", + "deepmerge": "^4.2.2", + "eslint-config-next": "^12.0.8", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-react": "7.28.0", + "mini-svg-data-uri": "^1.4.4", + "tailwindcss-radix": "^2.0.0" + } + }, + "packages/config/node_modules/@tailwindcss/forms": { + "version": "0.5.3", + "license": "MIT", + "dependencies": { + "mini-svg-data-uri": "^1.2.3" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + } + }, + "packages/config/node_modules/@tailwindcss/typography": { + "version": "0.5.7", + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "packages/config/node_modules/tailwindcss-radix": { + "version": "2.6.0", + "license": "MIT" + }, "packages/tsconfig": { "version": "0.0.0" + }, + "packages/ui": { + "version": "0.0.0", + "license": "MIT", + "dependencies": { + "@headlessui/react": "^1.0.0", + "@mertasan/tailwindcss-variables": "^2.0.1", + "@radix-ui/colors": "^0.1.8", + "@radix-ui/react-accordion": "^0.1.5", + "@radix-ui/react-collapsible": "^0.1.5", + "@radix-ui/react-context-menu": "^0.1.0", + "@radix-ui/react-dialog": "^0.1.5", + "@radix-ui/react-dropdown-menu": "^0.1.4", + "@radix-ui/react-popover": "^0.1.0", + "@radix-ui/react-portal": "^0.1.3", + "@radix-ui/react-tabs": "^0.1.0", + "@tailwindcss/forms": "^0.4.0", + "@tailwindcss/typography": "^0.5.0", + "autoprefixer": "^10.4.2", + "deepmerge": "^4.2.2", + "formik": "^2.2.9", + "lodash": "^4.17.20", + "postcss": "^8.4.5", + "prop-types": "^15.7.2", + "react-feather": "^2.0.10", + "tailwindcss": "^3.0.15", + "tailwindcss-radix": "^1.6.0" + }, + "devDependencies": { + "@types/react": "^17.0.37", + "@types/react-dom": "^17.0.11", + "typescript": "4.3.4" + } + }, + "packages/ui/node_modules/@tailwindcss/typography": { + "version": "0.5.7", + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "packages/ui/node_modules/typescript": { + "version": "4.3.4", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "studio": { + "version": "0.0.9", + "dependencies": { + "@headlessui/react": "^1.4.1", + "@monaco-editor/react": "^4.3.1", + "@next/bundle-analyzer": "^12.0.4", + "@radix-ui/react-portal": "^0.1.1", + "@radix-ui/react-tooltip": "^0.1.6", + "@scaleleap/pg-format": "^1.0.0", + "@sentry/browser": "^6.15.0", + "@sentry/nextjs": "^6.17.4", + "@stripe/react-stripe-js": "^1.7.0", + "@stripe/stripe-js": "^1.25.0", + "@supabase/postgres-meta": "^0.26.1", + "@supabase/react-data-grid": "^7.1.0-beta.7", + "@supabase/shared-types": "^0.1.29", + "@supabase/supabase-js": "^2.0.0", + "ajv": "^8.6.3", + "analytics-node": "^3.5.0", + "awesome-debounce-promise": "^2.1.0", + "clipboard": "^2.0.8", + "common": "*", + "config": "*", + "configcat-js": "^5.6.0", + "crypto-js": "^4.1.1", + "dayjs": "^1.11.0", + "file-saver": "^2.0.5", + "generate-password": "^1.7.0", + "html-to-image": "^1.10.8", + "immutability-helper": "^3.1.1", + "json-logic-js": "^2.0.2", + "lodash": "^4.17.21", + "lottie-react": "^2.2.1", + "markdown-table": "=2.0.0", + "mobx": "^6.3.2", + "mobx-react-lite": "^3.2.0", + "next": "12.0.9", + "next-compose-plugins": "^2.2.1", + "next-transpile-modules": "^9.0.0", + "openapi-types": "^9.1.0", + "p-queue": "^6.6.2", + "papaparse": "^5.3.1", + "parse-numeric-range": "^1.3.0", + "path-to-regexp": "^6.2.0", + "prism-react-renderer": "^1.2.1", + "react": "^17.0.2", + "react-beautiful-dnd": "^13.1.0", + "react-contexify": "^5.0.0", + "react-csv": "^2.0.3", + "react-datepicker": "^4.8.0", + "react-dnd": "^14.0.3", + "react-dnd-html5-backend": "^14.0.1", + "react-dom": "^17.0.2", + "react-grid-layout": "^1.3.0", + "react-hot-toast": "2.3.0", + "react-inlinesvg": "^2.3.0", + "react-markdown": "^8.0.3", + "react-split": "^2.0.13", + "react-tracked": "1.7.5", + "react-virtualized-auto-sizer": "^1.0.6", + "react-window": "^1.8.6", + "react-window-infinite-loader": "^1.0.7", + "recharts": "2.1.6", + "sass": "^1.43.4", + "scheduler": "^0.20.2", + "semver": "^6.3.0", + "sqlstring": "^2.3.2", + "swr": "^1.2.1", + "ui": "*", + "uniforms-bootstrap4": "^3.6.2", + "uniforms-bridge-json-schema": "^3.6.2", + "uuid": "^8.3.2", + "yup": "^0.32.11", + "zxcvbn": "^4.4.2" + }, + "devDependencies": { + "@babel/core": "^7.17.5", + "@storybook/addon-actions": "^6.4.19", + "@storybook/addon-essentials": "^6.4.19", + "@storybook/addon-interactions": "^6.4.19", + "@storybook/addon-links": "^6.4.19", + "@storybook/react": "^6.4.19", + "@storybook/testing-library": "^0.0.9", + "@tailwindcss/typography": "^0.5.2", + "@testing-library/dom": "^8.11.1", + "@testing-library/react": "^12.1.2", + "@testing-library/user-event": "^13.5.0", + "@types/crypto-js": "^4.0.2", + "@types/file-saver": "^2.0.2", + "@types/json-logic-js": "^1.2.1", + "@types/lodash": "^4.14.172", + "@types/markdown-table": "^3.0.0", + "@types/papaparse": "^5.3.1", + "@types/react": "17.0.11", + "@types/react-beautiful-dnd": "^13.1.2", + "@types/react-csv": "^1.1.2", + "@types/react-datepicker": "^4.3.4", + "@types/react-dom": "^17.0.11", + "@types/react-grid-layout": "^1.3.0", + "@types/react-virtualized-auto-sizer": "^1.0.1", + "@types/react-window": "^1.8.5", + "@types/react-window-infinite-loader": "^1.0.5", + "@types/semver": "^7.3.9", + "@types/sqlstring": "^2.3.0", + "@types/uuid": "^8.3.4", + "@types/zxcvbn": "^4.4.1", + "autoprefixer": "10.4.2", + "babel-loader": "^8.2.3", + "common": "*", + "config": "*", + "jest": "^27.4.0", + "jest-canvas-mock": "^2.3.1", + "postcss": "^8.4.6", + "prettier": "^2.7.1", + "storybook-dark-mode": "^1.0.4", + "tailwindcss": "^3.0.22", + "ts-jest": "^27.0.7", + "typescript": "4.3.4" + } + }, + "studio/node_modules/@next/env": { + "version": "12.0.9", + "license": "MIT" + }, + "studio/node_modules/@next/swc-darwin-x64": { + "version": "12.0.9", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "studio/node_modules/@tailwindcss/typography": { + "version": "0.5.7", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "studio/node_modules/@types/react": { + "version": "17.0.11", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "studio/node_modules/autoprefixer": { + "version": "10.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001297", + "fraction.js": "^4.1.2", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "studio/node_modules/next": { + "version": "12.0.9", + "license": "MIT", + "dependencies": { + "@next/env": "12.0.9", + "caniuse-lite": "^1.0.30001283", + "postcss": "8.4.5", + "styled-jsx": "5.0.0", + "use-subscription": "1.5.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=12.22.0" + }, + "optionalDependencies": { + "@next/swc-android-arm64": "12.0.9", + "@next/swc-darwin-arm64": "12.0.9", + "@next/swc-darwin-x64": "12.0.9", + "@next/swc-linux-arm-gnueabihf": "12.0.9", + "@next/swc-linux-arm64-gnu": "12.0.9", + "@next/swc-linux-arm64-musl": "12.0.9", + "@next/swc-linux-x64-gnu": "12.0.9", + "@next/swc-linux-x64-musl": "12.0.9", + "@next/swc-win32-arm64-msvc": "12.0.9", + "@next/swc-win32-ia32-msvc": "12.0.9", + "@next/swc-win32-x64-msvc": "12.0.9" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0", + "react": "^17.0.2 || ^18.0.0-0", + "react-dom": "^17.0.2 || ^18.0.0-0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "studio/node_modules/next/node_modules/postcss": { + "version": "8.4.5", + "license": "MIT", + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "studio/node_modules/next/node_modules/styled-jsx": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || 18.x.x" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "studio/node_modules/swr": { + "version": "1.3.0", + "license": "MIT", + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + } + }, + "studio/node_modules/typescript": { + "version": "4.3.4", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "tests": { + "name": "supabase-tests", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "@faker-js/faker": "^6.1.2", + "@supabase/supabase-js": "^2.0.0", + "@testdeck/jest": "^0.2.0", + "@types/jest": "^27.4.0", + "@types/node": "^17.0.24", + "@typescript-eslint/eslint-plugin": "^5.10.0", + "@typescript-eslint/parser": "^5.10.0", + "allure-commandline": "^2.17.2", + "allure-js-commons": "^2.0.0-beta.14", + "cross-fetch": "^3.1.5", + "eslint": "^8.7.0", + "jest": "^27.4.7", + "jest-allure2-adapter": "^0.3.11", + "postgres": "^3.0.5", + "ts-jest": "^27.1.3", + "ts-node": "^10.7.0", + "typescript": "^4.6.3" + } + }, + "tests/node_modules/@humanwhocodes/config-array": { + "version": "0.10.7", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "tests/node_modules/ajv": { + "version": "6.12.6", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "tests/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "tests/node_modules/argparse": { + "version": "2.0.1", + "dev": true, + "license": "Python-2.0" + }, + "tests/node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "tests/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "tests/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "tests/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "license": "MIT" + }, + "tests/node_modules/escape-string-regexp": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "tests/node_modules/eslint": { + "version": "8.24.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.5", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "tests/node_modules/eslint-scope": { + "version": "7.1.1", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "tests/node_modules/globals": { + "version": "13.17.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "tests/node_modules/globby": { + "version": "11.1.0", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "tests/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "tests/node_modules/js-yaml": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "tests/node_modules/json-schema-traverse": { + "version": "0.4.1", + "dev": true, + "license": "MIT" + }, + "tests/node_modules/optionator": { + "version": "0.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "tests/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } } }, "dependencies": { "@ampproject/remapping": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "requires": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" } }, - "@apidevtools/json-schema-ref-parser": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz", - "integrity": "sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==", - "dev": true, - "requires": { - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "js-yaml": "^3.13.1" - } - }, - "@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==", - "dev": true - }, - "@apidevtools/swagger-cli": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-cli/-/swagger-cli-4.0.4.tgz", - "integrity": "sha512-hdDT3B6GLVovCsRZYDi3+wMcB1HfetTU20l2DC8zD3iFRNMC6QNAZG5fo/6PYeHWBEv7ri4MvnlKodhNB0nt7g==", - "dev": true, - "requires": { - "@apidevtools/swagger-parser": "^10.0.1", - "chalk": "^4.1.0", - "js-yaml": "^3.14.0", - "yargs": "^15.4.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "@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==", - "dev": true - }, - "@apidevtools/swagger-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.0.tgz", - "integrity": "sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==", - "dev": true, - "requires": { - "@apidevtools/json-schema-ref-parser": "9.0.6", - "@apidevtools/openapi-schemas": "^2.1.0", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "ajv": "^8.6.3", - "ajv-draft-04": "^1.0.0", - "call-me-maybe": "^1.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "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==", - "dev": true, - "requires": {} - }, - "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==", - "dev": true - } - } - }, - "@apollo/client": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.6.9.tgz", - "integrity": "sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA==", - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "@wry/trie": "^0.3.0", - "graphql-tag": "^2.12.6", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.1", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.10.3", - "tslib": "^2.3.0", - "zen-observable-ts": "^1.2.5" - } - }, "@babel/code-frame": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "requires": { "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==" + "version": "7.19.3" }, "@babel/core": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", - "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "version": "7.19.3", "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.10", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.3", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -18324,19 +33178,15 @@ } }, "@babel/generator": { - "version": "7.18.12", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", - "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", + "version": "7.19.3", "requires": { - "@babel/types": "^7.18.10", + "@babel/types": "^7.19.3", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, "dependencies": { "@jridgewell/gen-mapping": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -18347,40 +33197,35 @@ }, "@babel/helper-annotate-as-pure": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, "requires": { "@babel/types": "^7.18.6" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, "requires": { "@babel/helper-explode-assignable-expression": "^7.18.6", "@babel/types": "^7.18.9" } }, "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "version": "7.19.3", "requires": { - "@babel/compat-data": "^7.18.8", + "@babel/compat-data": "^7.19.3", "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", + "browserslist": "^4.21.3", "semver": "^6.3.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", - "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", + "version": "7.19.0", + "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-replace-supers": "^7.18.9", @@ -18388,18 +33233,16 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", + "version": "7.19.0", + "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "regexpu-core": "^5.1.0" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", - "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", + "version": "0.3.3", + "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.17.7", "@babel/helper-plugin-utils": "^7.16.7", @@ -18410,83 +33253,67 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + "version": "7.18.9" }, "@babel/helper-explode-assignable-expression": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, "requires": { "@babel/types": "^7.18.6" } }, "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "version": "7.19.0", "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" } }, "@babel/helper-hoist-variables": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "requires": { "@babel/types": "^7.18.6" } }, "@babel/helper-member-expression-to-functions": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "dev": true, "requires": { "@babel/types": "^7.18.9" } }, "@babel/helper-module-imports": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "requires": { "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "version": "7.19.0", "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" } }, "@babel/helper-optimise-call-expression": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, "requires": { "@babel/types": "^7.18.6" } }, "@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==" + "version": "7.19.0" }, "@babel/helper-remap-async-to-generator": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", @@ -18495,81 +33322,64 @@ } }, "@babel/helper-replace-supers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", - "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", + "version": "7.19.1", + "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" } }, "@babel/helper-simple-access": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", "requires": { "@babel/types": "^7.18.6" } }, "@babel/helper-skip-transparent-expression-wrappers": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "dev": true, "requires": { "@babel/types": "^7.18.9" } }, "@babel/helper-split-export-declaration": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "requires": { "@babel/types": "^7.18.6" } }, "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==" + "version": "7.18.10" }, "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" + "version": "7.19.1" }, "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + "version": "7.18.6" }, "@babel/helper-wrap-function": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", - "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", + "version": "7.19.0", + "dev": true, "requires": { - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.11", - "@babel/types": "^7.18.10" + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" } }, "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "version": "7.19.0", "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" } }, "@babel/highlight": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "requires": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -18577,22 +33387,18 @@ } }, "@babel/parser": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", - "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==" + "version": "7.19.3" }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", @@ -18600,20 +33406,18 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", - "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", + "version": "7.19.1", + "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, "requires": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -18621,27 +33425,43 @@ }, "@babel/plugin-proposal-class-static-block": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "dev": true, "requires": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, + "@babel/plugin-proposal-decorators": { + "version": "7.19.3", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/plugin-syntax-decorators": "^7.19.0" + } + }, "@babel/plugin-proposal-dynamic-import": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, + "@babel/plugin-proposal-export-default-from": { + "version": "7.18.10", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-default-from": "^7.18.6" + } + }, "@babel/plugin-proposal-export-namespace-from": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" @@ -18649,8 +33469,7 @@ }, "@babel/plugin-proposal-json-strings": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" @@ -18658,8 +33477,7 @@ }, "@babel/plugin-proposal-logical-assignment-operators": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" @@ -18667,8 +33485,7 @@ }, "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" @@ -18676,8 +33493,7 @@ }, "@babel/plugin-proposal-numeric-separator": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" @@ -18685,8 +33501,7 @@ }, "@babel/plugin-proposal-object-rest-spread": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "dev": true, "requires": { "@babel/compat-data": "^7.18.8", "@babel/helper-compilation-targets": "^7.18.9", @@ -18697,8 +33512,7 @@ }, "@babel/plugin-proposal-optional-catch-binding": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" @@ -18706,8 +33520,7 @@ }, "@babel/plugin-proposal-optional-chaining": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", @@ -18716,8 +33529,7 @@ }, "@babel/plugin-proposal-private-methods": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, "requires": { "@babel/helper-create-class-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -18725,8 +33537,7 @@ }, "@babel/plugin-proposal-private-property-in-object": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-create-class-features-plugin": "^7.18.6", @@ -18736,8 +33547,7 @@ }, "@babel/plugin-proposal-unicode-property-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -18745,16 +33555,13 @@ }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-bigint": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" @@ -18762,48 +33569,62 @@ }, "@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-class-static-block": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5" } }, + "@babel/plugin-syntax-decorators": { + "version": "7.19.0", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-export-default-from": { + "version": "7.18.6", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, "@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-flow": { + "version": "7.18.6", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, "@babel/plugin-syntax-import-assertions": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-import-meta": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" @@ -18811,104 +33632,90 @@ }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-jsx": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-syntax-typescript": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-arrow-functions": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-async-to-generator": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dev": true, "requires": { "@babel/helper-module-imports": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6", @@ -18917,62 +33724,50 @@ }, "@babel/plugin-transform-block-scoped-functions": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-block-scoping": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-classes": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", - "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", + "version": "7.19.0", + "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.19.0", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-replace-supers": "^7.18.9", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - } } }, "@babel/plugin-transform-computed-properties": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-destructuring": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", - "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", + "version": "7.18.13", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-dotall-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -18980,33 +33775,37 @@ }, "@babel/plugin-transform-duplicate-keys": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-exponentiation-operator": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, "requires": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" } }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.19.0", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-flow": "^7.18.6" + } + }, "@babel/plugin-transform-for-of": { "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-function-name": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.18.9", "@babel/helper-function-name": "^7.18.9", @@ -19015,24 +33814,21 @@ }, "@babel/plugin-transform-literals": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-member-expression-literals": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-modules-amd": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "dev": true, "requires": { "@babel/helper-module-transforms": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6", @@ -19041,8 +33837,7 @@ }, "@babel/plugin-transform-modules-commonjs": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "dev": true, "requires": { "@babel/helper-module-transforms": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6", @@ -19051,47 +33846,42 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", - "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", + "version": "7.19.0", + "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-identifier": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, "requires": { "@babel/helper-module-transforms": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", + "version": "7.19.1", + "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-new-target": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-object-super": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-replace-supers": "^7.18.6" @@ -19099,52 +33889,45 @@ }, "@babel/plugin-transform-parameters": { "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-property-literals": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-react-display-name": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz", - "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==", + "version": "7.19.0", + "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.18.10" + "@babel/types": "^7.19.0" } }, "@babel/plugin-transform-react-jsx-development": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, "requires": { "@babel/plugin-transform-react-jsx": "^7.18.6" } }, "@babel/plugin-transform-react-pure-annotations": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -19152,8 +33935,7 @@ }, "@babel/plugin-transform-regenerator": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6", "regenerator-transform": "^0.15.0" @@ -19161,92 +33943,82 @@ }, "@babel/plugin-transform-reserved-words": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-shorthand-properties": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", - "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", + "version": "7.19.0", + "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" } }, "@babel/plugin-transform-sticky-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-template-literals": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-typeof-symbol": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-typescript": { - "version": "7.18.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz", - "integrity": "sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==", + "version": "7.19.3", + "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-create-class-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-typescript": "^7.18.6" } }, "@babel/plugin-transform-unicode-escapes": { "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-unicode-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/preset-env": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", - "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", + "version": "7.19.3", + "dev": true, "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-async-generator-functions": "^7.19.1", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -19280,9 +34052,9 @@ "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", "@babel/plugin-transform-block-scoping": "^7.18.9", - "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.13", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -19292,9 +34064,9 @@ "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-systemjs": "^7.19.0", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", "@babel/plugin-transform-parameters": "^7.18.8", @@ -19302,25 +34074,33 @@ "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-spread": "^7.19.0", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.10", - "babel-plugin-polyfill-corejs2": "^0.3.2", - "babel-plugin-polyfill-corejs3": "^0.5.3", - "babel-plugin-polyfill-regenerator": "^0.4.0", - "core-js-compat": "^3.22.1", + "@babel/types": "^7.19.3", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", "semver": "^6.3.0" } }, + "@babel/preset-flow": { + "version": "7.18.6", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-flow-strip-types": "^7.18.6" + } + }, "@babel/preset-modules": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", @@ -19331,8 +34111,7 @@ }, "@babel/preset-react": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-validator-option": "^7.18.6", @@ -19344,35 +34123,39 @@ }, "@babel/preset-typescript": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-transform-typescript": "^7.18.6" } }, - "@babel/runtime": { + "@babel/register": { "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + } + }, + "@babel/runtime": { + "version": "7.19.0", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz", - "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==", + "version": "7.19.1", "requires": { - "core-js-pure": "^3.20.2", + "core-js-pure": "^3.25.1", "regenerator-runtime": "^0.13.4" } }, "@babel/template": { "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "requires": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.10", @@ -19380,106 +34163,243 @@ } }, "@babel/traverse": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", - "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", + "version": "7.19.3", "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", + "@babel/generator": "^7.19.3", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.11", - "@babel/types": "^7.18.10", + "@babel/parser": "^7.19.3", + "@babel/types": "^7.19.3", "debug": "^4.1.0", "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - } } }, "@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "version": "7.19.3", "requires": { "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, + "@base2/pretty-print-object": { + "version": "1.0.1", + "dev": true + }, "@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "@cnakazawa/watch": { + "version": "1.0.4", + "dev": true, + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@colors/colors": { + "version": "1.5.0", + "dev": true, + "optional": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "devOptional": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "devOptional": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + } + } + }, "@csstools/convert-colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", - "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", + "dev": true + }, + "@devtools-ds/object-inspector": { + "version": "1.2.0", + "dev": true, + "requires": { + "@babel/runtime": "7.7.2", + "@devtools-ds/object-parser": "^1.2.0", + "@devtools-ds/themes": "^1.2.0", + "@devtools-ds/tree": "^1.2.0", + "clsx": "1.1.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.7.2", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + } + } + } + }, + "@devtools-ds/object-parser": { + "version": "1.2.0", + "dev": true, + "requires": { + "@babel/runtime": "~7.5.4" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.5.5", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + } + } + } + }, + "@devtools-ds/themes": { + "version": "1.2.0", + "dev": true, + "requires": { + "@babel/runtime": "~7.5.4", + "@design-systems/utils": "2.12.0", + "clsx": "1.1.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.5.5", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + } + }, + "@design-systems/utils": { + "version": "2.12.0", + "dev": true, + "requires": { + "@babel/runtime": "^7.11.2", + "clsx": "^1.0.4", + "focus-lock": "^0.8.0", + "react-merge-refs": "^1.0.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.19.0", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + } + } + } + } + }, + "@devtools-ds/tree": { + "version": "1.2.0", + "dev": true, + "requires": { + "@babel/runtime": "7.7.2", + "@devtools-ds/themes": "^1.2.0", + "clsx": "1.1.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.7.2", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + } + } + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", "dev": true }, "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "1.3.2", "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "argparse": { + "version": "2.0.1", + "dev": true + }, + "globals": { + "version": "13.17.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } } }, - "@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", - "requires": {} + "@faker-js/faker": { + "version": "6.3.1", + "dev": true + }, + "@gar/promisify": { + "version": "1.1.3", + "dev": true }, "@headlessui/react": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.6.6.tgz", - "integrity": "sha512-MFJtmj9Xh/hhBMhLccGbBoSk+sk61BlP6sJe4uQcVMtXZhCgGqd2GyIQzzmsdPdTEWGSF434CBi8mnhR6um46Q==", + "version": "1.7.3", "requires": {} }, "@heroicons/react": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-1.0.6.tgz", - "integrity": "sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ==", "requires": {} }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "dev": true + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "dev": true }, "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "version": "1.2.1" }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { "camelcase": "^5.3.1", @@ -19489,24 +34409,43 @@ "resolve-from": "^5.0.0" }, "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } } } }, "@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, "@jest/console": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", "dev": true, "requires": { "@jest/types": "^27.5.1", @@ -19517,22 +34456,77 @@ "slash": "^3.0.0" }, "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "@jest/core": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", "dev": true, "requires": { "@jest/console": "^27.5.1", @@ -19565,34 +34559,196 @@ "strip-ansi": "^6.0.0" }, "dependencies": { + "@jest/transform": { + "version": "27.5.1", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-haste-map": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-regex-util": { + "version": "27.5.1", + "dev": true + }, + "jest-serializer": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "@jest/environment": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", "dev": true, "requires": { "@jest/fake-timers": "^27.5.1", "@jest/types": "^27.5.1", "@types/node": "*", "jest-mock": "^27.5.1" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@jest/fake-timers": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", "dev": true, "requires": { "@jest/types": "^27.5.1", @@ -19601,23 +34757,145 @@ "jest-message-util": "^27.5.1", "jest-mock": "^27.5.1", "jest-util": "^27.5.1" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@jest/globals": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", "dev": true, "requires": { "@jest/environment": "^27.5.1", "@jest/types": "^27.5.1", "expect": "^27.5.1" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@jest/reporters": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", @@ -19647,22 +34925,129 @@ "v8-to-istanbul": "^8.1.0" }, "dependencies": { + "@jest/transform": { + "version": "27.5.1", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-haste-map": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-regex-util": { + "version": "27.5.1", + "dev": true + }, + "jest-serializer": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "@jest/source-map": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", "dev": true, "requires": { "callsites": "^3.0.0", @@ -19672,131 +35057,307 @@ }, "@jest/test-result": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", "dev": true, "requires": { "@jest/console": "^27.5.1", "@jest/types": "^27.5.1", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "@jest/test-sequencer": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", "dev": true, "requires": { "@jest/test-result": "^27.5.1", "graceful-fs": "^4.2.9", "jest-haste-map": "^27.5.1", "jest-runtime": "^27.5.1" - } - }, - "@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "@jest/types": { + "version": "27.5.1", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } - } - }, - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" } }, "@types/yargs": { "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-haste-map": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-regex-util": { + "version": "27.5.1", + "dev": true + }, + "jest-serializer": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/transform": { + "version": "26.6.2", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "26.6.2", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "@jridgewell/gen-mapping": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "requires": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "version": "3.1.0" }, "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "version": "1.1.2" }, "@jridgewell/source-map": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "devOptional": true, - "peer": true, + "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -19804,10 +35365,7 @@ "dependencies": { "@jridgewell/gen-mapping": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "devOptional": true, - "peer": true, + "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -19817,73 +35375,25 @@ } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "version": "1.4.14" }, "@jridgewell/trace-mapping": { "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "@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==", - "dev": true - }, "@mdx-js/loader": { "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.6.22.tgz", - "integrity": "sha512-9CjGwy595NaxAYp0hF9B/A0lH6C8Rms97e2JS9d3jVUtILn6pT5i5IV965ra3lIWc7Rs1GG1tBdVF7dCowYe6Q==", "requires": { "@mdx-js/mdx": "1.6.22", "@mdx-js/react": "1.6.22", "loader-utils": "2.0.0" }, - "dependencies": { - "@mdx-js/react": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", - "requires": {} - } - } - }, - "@mdx-js/mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", - "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", - "requires": { - "@babel/core": "7.12.9", - "@babel/plugin-syntax-jsx": "7.12.1", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "1.6.22", - "babel-plugin-apply-mdx-type-prop": "1.6.22", - "babel-plugin-extract-import-names": "1.6.22", - "camelcase-css": "2.0.1", - "detab": "2.0.4", - "hast-util-raw": "6.0.1", - "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "10.0.1", - "remark-footnotes": "2.0.0", - "remark-mdx": "1.6.22", - "remark-parse": "8.0.3", - "remark-squeeze-paragraphs": "4.0.0", - "style-to-object": "0.3.0", - "unified": "9.2.0", - "unist-builder": "2.0.3", - "unist-util-visit": "2.0.3" - }, "dependencies": { "@babel/core": { "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", "requires": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.12.5", @@ -19903,28 +35413,112 @@ "source-map": "^0.5.0" } }, + "@babel/helper-plugin-utils": { + "version": "7.10.4" + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, "@babel/plugin-syntax-jsx": { "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, + "@mdx-js/mdx": { + "version": "1.6.22", + "requires": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + } + }, + "@mdx-js/react": { + "version": "1.6.22", + "requires": {} + }, + "ccount": { + "version": "1.1.0" + }, + "is-buffer": { + "version": "2.0.5" + }, + "mdast-util-to-hast": { + "version": "10.0.1", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + } + }, + "remark-mdx": { + "version": "1.6.22", + "requires": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + } + }, + "remark-parse": { + "version": "8.0.3", + "requires": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + } + }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.1" }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + "version": "0.5.7" }, "unified": { "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", "requires": { "bail": "^1.0.0", "extend": "^3.0.0", @@ -19933,48 +35527,185 @@ "trough": "^1.0.0", "vfile": "^4.0.0" } + }, + "unist-builder": { + "version": "2.0.3" + }, + "unist-util-generated": { + "version": "1.1.6" + }, + "unist-util-is": { + "version": "4.1.0" + }, + "unist-util-position": { + "version": "3.1.0" + }, + "unist-util-remove-position": { + "version": "2.0.1", + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "requires": { + "@types/unist": "^2.0.2" + } + }, + "unist-util-visit": { + "version": "2.0.3", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.1.1", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + }, + "vfile": { + "version": "4.2.1", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-location": { + "version": "3.2.0" + }, + "vfile-message": { + "version": "2.0.4", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + } + } + }, + "@mdx-js/mdx": { + "version": "2.1.4", + "requires": { + "@types/estree-jsx": "^1.0.0", + "@types/mdx": "^2.0.0", + "estree-util-build-jsx": "^2.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "estree-util-to-js": "^1.1.0", + "estree-walker": "^3.0.0", + "hast-util-to-estree": "^2.0.0", + "markdown-extensions": "^1.0.0", + "periscopic": "^3.0.0", + "remark-mdx": "^2.0.0", + "remark-parse": "^10.0.0", + "remark-rehype": "^10.0.0", + "unified": "^10.0.0", + "unist-util-position-from-estree": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0" + }, + "dependencies": { + "bail": { + "version": "2.0.2" + }, + "is-buffer": { + "version": "2.0.5" + }, + "is-plain-obj": { + "version": "4.1.0" + }, + "remark-parse": { + "version": "10.0.1", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + } + }, + "trough": { + "version": "2.1.0" + }, + "unified": { + "version": "10.1.2", + "requires": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + } } } }, "@mdx-js/react": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.1.2.tgz", - "integrity": "sha512-52e3DTJBrjsw3U51ZCdZ3N1IBaqnbzLIngCSXpKtiYiGr7PIqp3/P/+kym0MPTwBL/y9ZBmCieD8FyrXuEDrRw==", + "version": "2.1.4", "requires": { "@types/mdx": "^2.0.0", "@types/react": ">=16" } }, "@mdx-js/util": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", - "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==" + "version": "1.6.22" }, "@mertasan/tailwindcss-variables": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@mertasan/tailwindcss-variables/-/tailwindcss-variables-2.5.0.tgz", - "integrity": "sha512-yAOBw4DfJAqr3N9e4x4/e7DBtPU/XdT4pi51o2cIb5QiCQeT7kkZ0vtRQk4sN2wPI9Mg/oSEHhMu7ZIxjJGQpg==", + "version": "2.5.1", "requires": { "lodash": "^4.17.21" } }, + "@monaco-editor/loader": { + "version": "1.3.2", + "requires": { + "state-local": "^1.0.6" + } + }, + "@monaco-editor/react": { + "version": "4.4.6", + "requires": { + "@monaco-editor/loader": "^1.3.2", + "prop-types": "^15.7.2" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + }, + "dependencies": { + "glob-to-regexp": { + "version": "0.3.0", + "dev": true + } + } + }, + "@next/bundle-analyzer": { + "version": "12.3.1", + "requires": { + "webpack-bundle-analyzer": "4.3.0" + } + }, "@next/env": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.8.tgz", - "integrity": "sha512-Wa0gOeioB9PHap9wtZDZEhgOSE3/+qE/UALWjJHuNvH4J3oE+13EjVOiEsr1JcPCXUN8ESQE+phDKlo6qJ8P9g==" + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-12.3.1.tgz", + "integrity": "sha512-9P9THmRFVKGKt9DYqeC2aKIxm8rlvkK38V1P1sRE7qyoPBIs8l9oo79QoSdPtOWfzkbDAVUqvbQGgTMsb8BtJg==" }, "@next/eslint-plugin-next": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-12.2.5.tgz", - "integrity": "sha512-VBjVbmqEzGiOTBq4+wpeVXt/KgknnGB6ahvC/AxiIGnN93/RCSyXhFRI4uSfftM2Ba3w7ZO7076bfKasZsA0fw==", + "version": "12.3.1", "requires": { "glob": "7.1.7" }, "dependencies": { "glob": { "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -19986,172 +35717,92 @@ } } }, - "@next/mdx": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-10.2.3.tgz", - "integrity": "sha512-hseekptFqOCxLbdaNDS/yelaG2Q2uaNDilnRjq8Uv/LWHuZ9F2cp7ndwTolW9acJsbDedamKRMgdw4V2Fz0pUA==", - "requires": {} - }, - "@next/react-refresh-utils": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-12.0.8.tgz", - "integrity": "sha512-Bq4T/aOOFQUkCF9b8k9x+HpjOevu65ZPxsYJOpgEtBuJyvb+sZREtDDLKb/RtjUeLMrWrsGD0aLteyFFtiS8Og==", - "requires": {} - }, - "@next/swc-android-arm64": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.0.8.tgz", - "integrity": "sha512-BiXMcOZNnXSIXv+FQvbRgbMb+iYayLX/Sb2MwR0wja+eMs46BY1x/ssXDwUBADP1M8YtrGTlSPHZqUiCU94+Mg==", - "optional": true - }, - "@next/swc-darwin-arm64": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.8.tgz", - "integrity": "sha512-6EGMmvcIwPpwt0/iqLbXDGx6oKHAXzbowyyVXK8cqmIvhoghRFjqfiNGBs+ar6wEBGt68zhwn/77vE3iQWoFJw==", - "optional": true - }, "@next/swc-darwin-x64": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.8.tgz", - "integrity": "sha512-todxgQOGP/ucz5UH2kKR3XGDdkWmWr0VZAAbzgTbiFm45Ol4ih602k2nNR3xSbza9IqNhxNuUVsMpBgeo19CFQ==", - "optional": true - }, - "@next/swc-linux-arm-gnueabihf": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.8.tgz", - "integrity": "sha512-KULmdrfI+DJxBuhEyV47MQllB/WpC3P2xbwhHezxL/LkC2nkz5SbV4k432qpx2ebjIRf9SjdQ5Oz1FjD8Urayw==", - "optional": true - }, - "@next/swc-linux-arm64-gnu": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.8.tgz", - "integrity": "sha512-1XO87wgIVPvt5fx5i8CqdhksRdcpqyzCOLW4KrE0f9pUCIT04EbsFiKdmsH9c73aqjNZMnCMXpbV+cn4hN8x1w==", - "optional": true - }, - "@next/swc-linux-arm64-musl": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.8.tgz", - "integrity": "sha512-NStRZEy/rkk2G18Yhc/Jzi1Q2Dv+zH176oO8479zlDQ5syRfc6AvRHVV4iNRc8Pai58If83r/nOJkwFgGwkKLw==", - "optional": true - }, - "@next/swc-linux-x64-gnu": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.8.tgz", - "integrity": "sha512-rHxTGtTEDFsdT9/VjewzxE19S7W1NE+aZpm4TwbT1pSNGK9KQxQGcXjqoHMeB+VZCFknzNEoIU/vydbjZMlAuw==", - "optional": true - }, - "@next/swc-linux-x64-musl": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.8.tgz", - "integrity": "sha512-1F4kuFRQE10GSx7LMSvRmjMXFGpxT30g8rZzq9r/p/WKdErA4WB4uxaKEX0P8AINfuN63i4luKdR+LoacgBhYw==", - "optional": true - }, - "@next/swc-win32-arm64-msvc": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.8.tgz", - "integrity": "sha512-QuRe49jqCV61TysGopC1P0HPqFAMZMWe1nbIQLyOkDLkULmZR8N2eYZq7fwqvZE5YwhMmJA/grwWFVBqSEh5Kg==", - "optional": true - }, - "@next/swc-win32-ia32-msvc": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.8.tgz", - "integrity": "sha512-0RV3/julybJr1IlPCowIWrJJZyAl+sOakJEM15y1NOOsbwTQ5eKZZXSi+7e23TN4wmy5HwNvn2dKzgOEVJ+jbA==", - "optional": true - }, - "@next/swc-win32-x64-msvc": { - "version": "12.0.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.8.tgz", - "integrity": "sha512-tTga6OFfO2JS+Yt5hdryng259c/tzNgSWkdiU2E+RBHiysAIOta57n4PJ8iPahOSqEqjaToPI76wM+o441GaNQ==", + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.3.1.tgz", + "integrity": "sha512-9S6EVueCVCyGf2vuiLiGEHZCJcPAxglyckTZcEwLdJwozLqN0gtS0Eq0bQlGS3dH49Py/rQYpZ3KVWZ9BUf/WA==", "optional": true }, "@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "version": "2.0.5" }, "@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, - "@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "@npmcli/fs": { + "version": "1.1.1", + "dev": true, "requires": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, - "@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "@npmcli/move-file": { + "version": "1.1.2", + "dev": true, "requires": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "dev": true + } } }, - "@octokit/openapi-types": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" - }, - "@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.7", + "dev": true, "requires": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.8.1", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.4", + "dev": true + } } }, - "@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "requires": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } + "@polka/url": { + "version": "1.0.0-next.21" }, - "@octokit/types": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", - "requires": { - "@octokit/openapi-types": "^12.11.0" - } + "@popperjs/core": { + "version": "2.11.6" }, "@radix-ui/colors": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-0.1.8.tgz", - "integrity": "sha512-jwRMXYwC0hUo0mv6wGpuw254Pd9p/R6Td5xsRpOmaWkUHlooNWqVcadgyzlRumMq3xfOTXwJReU0Jv+EIy4Jbw==" + "version": "0.1.8" }, "@radix-ui/popper": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/popper/-/popper-0.1.0.tgz", - "integrity": "sha512-uzYeElL3w7SeNMuQpXiFlBhTT+JyaNMCwDfjKkrzugEcYrf5n52PHqncNdQPUtR42hJh8V9FsqyEDbDxkeNjJQ==", "requires": { "@babel/runtime": "^7.13.10", "csstype": "^3.0.4" @@ -20159,16 +35810,12 @@ }, "@radix-ui/primitive": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-0.1.0.tgz", - "integrity": "sha512-tqxZKybwN5Fa3VzZry4G6mXAAb9aAqKmPtnVbZpL0vsBwvOHTBwsjHVPXylocYLwEtBY9SCe665bYnNB515uoA==", "requires": { "@babel/runtime": "^7.13.10" } }, "@radix-ui/react-accordion": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-0.1.6.tgz", - "integrity": "sha512-LOXlqPU6y6EMBopdRIKCWFvMPY1wPTQ4uJiX7ZVxldrMJcM7imBzI3wlRTkPCHZ3FLHmpuw+cQi3du23pzJp1g==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -20183,8 +35830,6 @@ }, "@radix-ui/react-arrow": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-0.1.4.tgz", - "integrity": "sha512-BB6XzAb7Ml7+wwpFdYVtZpK1BlMgqyafSQNGzhIpSZ4uXvXOHPlR5GP8M449JkeQzgQjv9Mp1AsJxFC0KuOtuA==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "0.1.4" @@ -20192,8 +35837,6 @@ }, "@radix-ui/react-collapsible": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-0.1.6.tgz", - "integrity": "sha512-Gkf8VuqMc6HTLzA2AxVYnyK6aMczVLpatCjdD9Lj4wlYLXCz9KtiqZYslLMeqnQFLwLyZS0WKX/pQ8j5fioIBw==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -20208,8 +35851,6 @@ }, "@radix-ui/react-collection": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-0.1.4.tgz", - "integrity": "sha512-3muGI15IdgaDFjOcO7xX8a35HQRBRF6LH9pS6UCeZeRmbslkVeHyJRQr2rzICBUoX7zgIA0kXyMDbpQnJGyJTA==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "0.1.0", @@ -20220,24 +35861,18 @@ }, "@radix-ui/react-compose-refs": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.0.tgz", - "integrity": "sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==", "requires": { "@babel/runtime": "^7.13.10" } }, "@radix-ui/react-context": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-0.1.1.tgz", - "integrity": "sha512-PkyVX1JsLBioeu0jB9WvRpDBBLtLZohVDT3BB5CTSJqActma8S8030P57mWZb4baZifMvN7KKWPAA40UmWKkQg==", "requires": { "@babel/runtime": "^7.13.10" } }, "@radix-ui/react-context-menu": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-0.1.6.tgz", - "integrity": "sha512-0qa6ABaeqD+WYI+8iT0jH0QLLcV8Kv0xI+mZL4FFnG4ec9H0v+yngb5cfBBfs9e/KM8mDzFFpaeegqsQlLNqyQ==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -20249,8 +35884,6 @@ }, "@radix-ui/react-dialog": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-0.1.7.tgz", - "integrity": "sha512-jXt8srGhHBRvEr9jhEAiwwJzWCWZoGRJ030aC9ja/gkRJbZdy0iD3FwXf+Ff4RtsZyLUMHW7VUwFOlz3Ixe1Vw==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -20271,8 +35904,6 @@ }, "@radix-ui/react-dismissable-layer": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-0.1.5.tgz", - "integrity": "sha512-J+fYWijkX4M4QKwf9dtu1oC0U6e6CEl8WhBp3Ad23yz2Hia0XCo6Pk/mp5CAFy4QBtQedTSkhW05AdtSOEoajQ==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -20285,8 +35916,6 @@ }, "@radix-ui/react-dropdown-menu": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-0.1.6.tgz", - "integrity": "sha512-RZhtzjWwJ4ZBN7D8ek4Zn+ilHzYuYta9yIxFnbC0pfqMnSi67IQNONo1tuuNqtFh9SRHacPKc65zo+kBBlxtdg==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -20300,16 +35929,12 @@ }, "@radix-ui/react-focus-guards": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-0.1.0.tgz", - "integrity": "sha512-kRx/swAjEfBpQ3ns7J3H4uxpXuWCqN7MpALiSDOXiyo2vkWv0L9sxvbpZeTulINuE3CGMzicVMuNc/VWXjFKOg==", "requires": { "@babel/runtime": "^7.13.10" } }, "@radix-ui/react-focus-scope": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-0.1.4.tgz", - "integrity": "sha512-fbA4ES3H4Wkxp+OeLhvN6SwL7mXNn/aBtUf7DRYxY9+Akrf7dRxl2ck4lgcpPsSg3zSDsEwLcY+h5cmj5yvlug==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "0.1.0", @@ -20319,8 +35944,6 @@ }, "@radix-ui/react-id": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "0.1.0" @@ -20328,8 +35951,6 @@ }, "@radix-ui/react-menu": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-0.1.6.tgz", - "integrity": "sha512-ho3+bhpr3oAFkOBJ8VkUb1BcGoiZBB3OmcWPqa6i5RTUKrzNX/d6rauochu2xDlWjiRtpVuiAcsTVOeIC4FbYQ==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -20353,8 +35974,6 @@ }, "@radix-ui/react-popover": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-0.1.6.tgz", - "integrity": "sha512-zQzgUqW4RQDb0ItAL1xNW4K4olUrkfV3jeEPs9rG+nsDQurO+W9TT+YZ9H1mmgAJqlthyv1sBRZGdBm4YjtD6Q==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -20375,8 +35994,6 @@ }, "@radix-ui/react-popper": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-0.1.4.tgz", - "integrity": "sha512-18gDYof97t8UQa7zwklG1Dr8jIdj3u+rVOQLzPi9f5i1YQak/pVGkaqw8aY+iDUknKKuZniTk/7jbAJUYlKyOw==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/popper": "0.1.0", @@ -20391,8 +36008,6 @@ }, "@radix-ui/react-portal": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-0.1.4.tgz", - "integrity": "sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "0.1.4", @@ -20401,8 +36016,6 @@ }, "@radix-ui/react-presence": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", - "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "0.1.0", @@ -20411,8 +36024,6 @@ }, "@radix-ui/react-primitive": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/react-slot": "0.1.2" @@ -20420,8 +36031,6 @@ }, "@radix-ui/react-roving-focus": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-0.1.5.tgz", - "integrity": "sha512-ClwKPS5JZE+PaHCoW7eu1onvE61pDv4kO8W4t5Ra3qMFQiTJLZMdpBQUhksN//DaVygoLirz4Samdr5Y1x1FSA==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -20436,8 +36045,6 @@ }, "@radix-ui/react-slot": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-0.1.2.tgz", - "integrity": "sha512-ADkqfL+agEzEguU3yS26jfB50hRrwf7U4VTwAOZEmi/g+ITcBWe12yM46ueS/UCIMI9Py+gFUaAdxgxafFvY2Q==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "0.1.0" @@ -20445,8 +36052,6 @@ }, "@radix-ui/react-tabs": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-0.1.5.tgz", - "integrity": "sha512-ieVQS1TFr0dX1XA8B+CsSFKOE7kcgEaNWWEfItxj9D1GZjn1o3WqPkW+FhQWDAWZLSKCH2PezYF3MNyO41lgJg==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "0.1.0", @@ -20457,10 +36062,28 @@ "@radix-ui/react-use-controllable-state": "0.1.0" } }, + "@radix-ui/react-tooltip": { + "version": "0.1.7", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "0.1.0", + "@radix-ui/react-compose-refs": "0.1.0", + "@radix-ui/react-context": "0.1.1", + "@radix-ui/react-id": "0.1.5", + "@radix-ui/react-popper": "0.1.4", + "@radix-ui/react-portal": "0.1.4", + "@radix-ui/react-presence": "0.1.2", + "@radix-ui/react-primitive": "0.1.4", + "@radix-ui/react-slot": "0.1.2", + "@radix-ui/react-use-controllable-state": "0.1.0", + "@radix-ui/react-use-escape-keydown": "0.1.0", + "@radix-ui/react-use-previous": "0.1.1", + "@radix-ui/react-use-rect": "0.1.1", + "@radix-ui/react-visually-hidden": "0.1.4" + } + }, "@radix-ui/react-use-body-pointer-events": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-body-pointer-events/-/react-use-body-pointer-events-0.1.1.tgz", - "integrity": "sha512-R8leV2AWmJokTmERM8cMXFHWSiv/fzOLhG/JLmRBhLTAzOj37EQizssq4oW0Z29VcZy2tODMi9Pk/htxwb+xpA==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "0.1.0" @@ -20468,16 +36091,12 @@ }, "@radix-ui/react-use-callback-ref": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-0.1.0.tgz", - "integrity": "sha512-Va041McOFFl+aV+sejvl0BS2aeHx86ND9X/rVFmEFQKTXCp6xgUK0NGUAGcgBlIjnJSbMYPGEk1xKSSlVcN2Aw==", "requires": { "@babel/runtime": "^7.13.10" } }, "@radix-ui/react-use-controllable-state": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-0.1.0.tgz", - "integrity": "sha512-zv7CX/PgsRl46a52Tl45TwqwVJdmqnlQEQhaYMz/yBOD2sx2gCkCFSoF/z9mpnYWmS6DTLNTg5lIps3fV6EnXg==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "0.1.0" @@ -20485,16 +36104,12 @@ }, "@radix-ui/react-use-direction": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-direction/-/react-use-direction-0.1.0.tgz", - "integrity": "sha512-NajpY/An9TCPSfOVkgWIdXJV+VuWl67PxB6kOKYmtNAFHvObzIoh8o0n9sAuwSAyFCZVq211FEf9gvVDRhOyiA==", "requires": { "@babel/runtime": "^7.13.10" } }, "@radix-ui/react-use-escape-keydown": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-0.1.0.tgz", - "integrity": "sha512-tDLZbTGFmvXaazUXXv8kYbiCcbAE8yKgng9s95d8fCO+Eundv0Jngbn/hKPhDDs4jj9ChwRX5cDDnlaN+ugYYQ==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "0.1.0" @@ -20502,16 +36117,18 @@ }, "@radix-ui/react-use-layout-effect": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz", - "integrity": "sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==", + "requires": { + "@babel/runtime": "^7.13.10" + } + }, + "@radix-ui/react-use-previous": { + "version": "0.1.1", "requires": { "@babel/runtime": "^7.13.10" } }, "@radix-ui/react-use-rect": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-0.1.1.tgz", - "integrity": "sha512-kHNNXAsP3/PeszEmM/nxBBS9Jbo93sO+xuMTcRfwzXsmxT5gDXQzAiKbZQ0EecCPtJIzqvr7dlaQi/aP1PKYqQ==", "requires": { "@babel/runtime": "^7.13.10", "@radix-ui/rect": "0.1.1" @@ -20519,29 +36136,220 @@ }, "@radix-ui/react-use-size": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-0.1.1.tgz", - "integrity": "sha512-pTgWM5qKBu6C7kfKxrKPoBI2zZYZmp2cSXzpUiGM3qEBQlMLtYhaY2JXdXUCxz+XmD1YEjc8oRwvyfsD4AG4WA==", "requires": { "@babel/runtime": "^7.13.10" } }, + "@radix-ui/react-visually-hidden": { + "version": "0.1.4", + "requires": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "0.1.4" + } + }, "@radix-ui/rect": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-0.1.1.tgz", - "integrity": "sha512-g3hnE/UcOg7REdewduRPAK88EPuLZtaq7sA9ouu8S+YEtnyFRI16jgv6GZYe3VMoQLL1T171ebmEPtDjyxWLzw==", "requires": { "@babel/runtime": "^7.13.10" } }, + "@react-dnd/asap": { + "version": "4.0.1" + }, + "@react-dnd/invariant": { + "version": "2.0.0" + }, + "@react-dnd/shallowequal": { + "version": "2.0.0" + }, "@rushstack/eslint-patch": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz", - "integrity": "sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==" + "version": "1.2.0" + }, + "@scaleleap/pg-format": { + "version": "1.0.0" + }, + "@segment/loosely-validate-event": { + "version": "2.0.0", + "requires": { + "component-type": "^1.2.1", + "join-component": "^1.1.0" + } + }, + "@sentry/browser": { + "version": "6.19.7", + "requires": { + "@sentry/core": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } + } + }, + "@sentry/cli": { + "version": "1.74.5", + "requires": { + "https-proxy-agent": "^5.0.0", + "mkdirp": "^0.5.5", + "node-fetch": "^2.6.7", + "npmlog": "^4.1.2", + "progress": "^2.0.3", + "proxy-from-env": "^1.1.0", + "which": "^2.0.2" + } + }, + "@sentry/core": { + "version": "6.19.7", + "requires": { + "@sentry/hub": "6.19.7", + "@sentry/minimal": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } + } + }, + "@sentry/hub": { + "version": "6.19.7", + "requires": { + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } + } + }, + "@sentry/integrations": { + "version": "6.19.7", + "requires": { + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "localforage": "^1.8.1", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } + } + }, + "@sentry/minimal": { + "version": "6.19.7", + "requires": { + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } + } + }, + "@sentry/nextjs": { + "version": "6.19.7", + "requires": { + "@sentry/core": "6.19.7", + "@sentry/hub": "6.19.7", + "@sentry/integrations": "6.19.7", + "@sentry/node": "6.19.7", + "@sentry/react": "6.19.7", + "@sentry/tracing": "6.19.7", + "@sentry/utils": "6.19.7", + "@sentry/webpack-plugin": "1.18.8", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } + } + }, + "@sentry/node": { + "version": "6.19.7", + "requires": { + "@sentry/core": "6.19.7", + "@sentry/hub": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } + } + }, + "@sentry/react": { + "version": "6.19.7", + "requires": { + "@sentry/browser": "6.19.7", + "@sentry/minimal": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "hoist-non-react-statics": "^3.3.2", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } + } + }, + "@sentry/tracing": { + "version": "6.19.7", + "requires": { + "@sentry/hub": "6.19.7", + "@sentry/minimal": "6.19.7", + "@sentry/types": "6.19.7", + "@sentry/utils": "6.19.7", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } + } + }, + "@sentry/types": { + "version": "6.19.7" + }, + "@sentry/utils": { + "version": "6.19.7", + "requires": { + "@sentry/types": "6.19.7", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1" + } + } + }, + "@sentry/webpack-plugin": { + "version": "1.18.8", + "requires": { + "@sentry/cli": "^1.73.0" + } + }, + "@sinclair/typebox": { + "version": "0.19.2" }, "@sinonjs/commons": { "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -20549,126 +36357,1723 @@ }, "@sinonjs/fake-timers": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" } }, - "@supabase/functions-js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-1.3.4.tgz", - "integrity": "sha512-yYVgkECjv7IZEBKBI3EB5Q7R1p0FJ10g8Q9N7SWKIHUU6i6DnbEGHIMFLyQRm1hmiNWD8fL7bRVEYacmTRJhHw==", + "@stitches/core": { + "version": "1.2.8" + }, + "@stitches/react": { + "version": "1.2.8", + "requires": {} + }, + "@storybook/addon-actions": { + "version": "6.5.12", + "dev": true, "requires": { - "cross-fetch": "^3.1.5" + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "polished": "^4.2.2", + "prop-types": "^15.7.2", + "react-inspector": "^5.1.0", + "regenerator-runtime": "^0.13.7", + "telejson": "^6.0.8", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "uuid-browser": "^3.1.0" } }, - "@supabase/generator": { - "version": "file:packages/spec", + "@storybook/addon-backgrounds": { + "version": "6.5.12", + "dev": true, "requires": { - "@apidevtools/swagger-cli": "^4.0.4", - "@types/lodash": "^4.14.182", - "ejs": "^3.1.8", - "js-yaml": "^4.1.0", + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/addon-controls": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/node-logger": "6.5.12", + "@storybook/store": "6.5.12", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", "lodash": "^4.17.21", - "openapi-types": "^12.0.0", - "ts-node": "^10.9.1" + "ts-dedent": "^2.0.0" + } + }, + "@storybook/addon-docs": { + "version": "6.5.12", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.12.12", + "@babel/preset-env": "^7.12.11", + "@jest/transform": "^26.6.2", + "@mdx-js/react": "^1.6.22", + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/docs-tools": "6.5.12", + "@storybook/mdx1-csf": "^0.0.1", + "@storybook/node-logger": "6.5.12", + "@storybook/postinstall": "6.5.12", + "@storybook/preview-web": "6.5.12", + "@storybook/source-loader": "6.5.12", + "@storybook/store": "6.5.12", + "@storybook/theming": "6.5.12", + "babel-loader": "^8.0.0", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "regenerator-runtime": "^0.13.7", + "remark-external-links": "^8.0.0", + "remark-slug": "^6.0.0", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" }, "dependencies": { - "acorn": { - "version": "8.8.0", + "@mdx-js/react": { + "version": "1.6.22", + "dev": true, + "requires": {} + } + } + }, + "@storybook/addon-essentials": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addon-actions": "6.5.12", + "@storybook/addon-backgrounds": "6.5.12", + "@storybook/addon-controls": "6.5.12", + "@storybook/addon-docs": "6.5.12", + "@storybook/addon-measure": "6.5.12", + "@storybook/addon-outline": "6.5.12", + "@storybook/addon-toolbars": "6.5.12", + "@storybook/addon-viewport": "6.5.12", + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/node-logger": "6.5.12", + "core-js": "^3.8.2", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/addon-interactions": { + "version": "6.5.12", + "dev": true, + "requires": { + "@devtools-ds/object-inspector": "^1.1.2", + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/instrumenter": "6.5.12", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0", + "jest-mock": "^27.0.6", + "polished": "^4.2.2", + "ts-dedent": "^2.2.0" + } + }, + "@storybook/addon-links": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/router": "6.5.12", + "@types/qs": "^6.9.5", + "core-js": "^3.8.2", + "global": "^4.4.0", + "prop-types": "^15.7.2", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/addon-measure": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "core-js": "^3.8.2", + "global": "^4.4.0" + } + }, + "@storybook/addon-outline": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "core-js": "^3.8.2", + "global": "^4.4.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/addon-toolbars": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "regenerator-runtime": "^0.13.7" + } + }, + "@storybook/addon-viewport": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0", + "memoizerific": "^1.11.3", + "prop-types": "^15.7.2", + "regenerator-runtime": "^0.13.7" + } + }, + "@storybook/addons": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/api": "6.5.12", + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/router": "6.5.12", + "@storybook/theming": "6.5.12", + "@types/webpack-env": "^1.16.0", + "core-js": "^3.8.2", + "global": "^4.4.0", + "regenerator-runtime": "^0.13.7" + } + }, + "@storybook/api": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/router": "6.5.12", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7", + "store2": "^2.12.0", + "telejson": "^6.0.8", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/builder-webpack4": { + "version": "6.5.12", + "dev": true, + "requires": { + "@babel/core": "^7.12.10", + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/channel-postmessage": "6.5.12", + "@storybook/channels": "6.5.12", + "@storybook/client-api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/node-logger": "6.5.12", + "@storybook/preview-web": "6.5.12", + "@storybook/router": "6.5.12", + "@storybook/semver": "^7.3.2", + "@storybook/store": "6.5.12", + "@storybook/theming": "6.5.12", + "@storybook/ui": "6.5.12", + "@types/node": "^14.0.10 || ^16.0.0", + "@types/webpack": "^4.41.26", + "autoprefixer": "^9.8.6", + "babel-loader": "^8.0.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "core-js": "^3.8.2", + "css-loader": "^3.6.0", + "file-loader": "^6.2.0", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^4.1.6", + "glob": "^7.1.6", + "glob-promise": "^3.4.0", + "global": "^4.4.0", + "html-webpack-plugin": "^4.0.0", + "pnp-webpack-plugin": "1.6.4", + "postcss": "^7.0.36", + "postcss-flexbugs-fixes": "^4.2.1", + "postcss-loader": "^4.2.0", + "raw-loader": "^4.0.2", + "stable": "^0.1.8", + "style-loader": "^1.3.0", + "terser-webpack-plugin": "^4.2.3", + "ts-dedent": "^2.0.0", + "url-loader": "^4.1.1", + "util-deprecate": "^1.0.2", + "webpack": "4", + "webpack-dev-middleware": "^3.7.3", + "webpack-filter-warnings-plugin": "^1.2.1", + "webpack-hot-middleware": "^2.25.1", + "webpack-virtual-modules": "^0.2.2" + }, + "dependencies": { + "@types/node": { + "version": "16.11.64", "dev": true }, - "acorn-walk": { - "version": "8.2.0", - "dev": true - }, - "arg": { - "version": "4.1.3", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", + "autoprefixer": { + "version": "9.8.8", "dev": true, "requires": { - "argparse": "^2.0.1" + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" } }, - "ts-node": { - "version": "10.9.1", + "braces": { + "version": "2.3.2", "dev": true, "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "fill-range": { + "version": "4.0.0", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fork-ts-checker-webpack-plugin": { + "version": "4.1.6", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "chalk": "^2.4.1", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + } + }, + "is-extendable": { + "version": "1.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "picocolors": { + "version": "0.2.1", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "semver": { + "version": "5.7.1", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } }, - "@supabase/gotrue-js": { - "version": "1.22.22", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.22.22.tgz", - "integrity": "sha512-exbCopLo4tLawKZR25wEdipm+IRVujuqFRR4h2wiXd11YA+N8rfgg/4S4L6BTFHmzV+KMjy0kDF3yMbsjIR/xA==", + "@storybook/channel-postmessage": { + "version": "6.5.12", + "dev": true, "requires": { - "cross-fetch": "^3.0.6" + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0", + "qs": "^6.10.0", + "telejson": "^6.0.8" } }, - "@supabase/postgrest-js": { - "version": "0.37.4", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.37.4.tgz", - "integrity": "sha512-x+c2rk1fz9s6f1PrGxCJ0QTUgXPDI0G3ngIqD5sSiXhhCyfl8Q5V92mXl2EYtlDhkiUkjFNrOZFhXVbXOHgvDw==", + "@storybook/channel-websocket": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0", + "telejson": "^6.0.8" + } + }, + "@storybook/channels": { + "version": "6.5.12", + "dev": true, + "requires": { + "core-js": "^3.8.2", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-api": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/channel-postmessage": "6.5.12", + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/store": "6.5.12", + "@types/qs": "^6.9.5", + "@types/webpack-env": "^1.16.0", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "store2": "^2.12.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/client-logger": { + "version": "6.5.12", + "dev": true, + "requires": { + "core-js": "^3.8.2", + "global": "^4.4.0" + } + }, + "@storybook/components": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/client-logger": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/core": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/core-client": "6.5.12", + "@storybook/core-server": "6.5.12" + } + }, + "@storybook/core-client": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/channel-postmessage": "6.5.12", + "@storybook/channel-websocket": "6.5.12", + "@storybook/client-api": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/preview-web": "6.5.12", + "@storybook/store": "6.5.12", + "@storybook/ui": "6.5.12", + "airbnb-js-shims": "^2.2.1", + "ansi-to-html": "^0.6.11", + "core-js": "^3.8.2", + "global": "^4.4.0", + "lodash": "^4.17.21", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "unfetch": "^4.2.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/core-common": { + "version": "6.5.12", + "dev": true, + "requires": { + "@babel/core": "^7.12.10", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-decorators": "^7.12.12", + "@babel/plugin-proposal-export-default-from": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-private-property-in-object": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.12", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/preset-env": "^7.12.11", + "@babel/preset-react": "^7.12.10", + "@babel/preset-typescript": "^7.12.7", + "@babel/register": "^7.12.1", + "@storybook/node-logger": "6.5.12", + "@storybook/semver": "^7.3.2", + "@types/node": "^14.0.10 || ^16.0.0", + "@types/pretty-hrtime": "^1.0.0", + "babel-loader": "^8.0.0", + "babel-plugin-macros": "^3.0.1", + "babel-plugin-polyfill-corejs3": "^0.1.0", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "express": "^4.17.1", + "file-system-cache": "^1.0.5", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.0.4", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "handlebars": "^4.7.7", + "interpret": "^2.2.0", + "json5": "^2.1.3", + "lazy-universal-dotenv": "^3.0.1", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "slash": "^3.0.0", + "telejson": "^6.0.8", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "webpack": "4" + }, + "dependencies": { + "@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@types/node": { + "version": "16.11.64", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@storybook/core-events": { + "version": "6.5.12", + "dev": true, + "requires": { + "core-js": "^3.8.2" + } + }, + "@storybook/core-server": { + "version": "6.5.12", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.3", + "@storybook/builder-webpack4": "6.5.12", + "@storybook/core-client": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/csf-tools": "6.5.12", + "@storybook/manager-webpack4": "6.5.12", + "@storybook/node-logger": "6.5.12", + "@storybook/semver": "^7.3.2", + "@storybook/store": "6.5.12", + "@storybook/telemetry": "6.5.12", + "@types/node": "^14.0.10 || ^16.0.0", + "@types/node-fetch": "^2.5.7", + "@types/pretty-hrtime": "^1.0.0", + "@types/webpack": "^4.41.26", + "better-opn": "^2.1.1", + "boxen": "^5.1.2", + "chalk": "^4.1.0", + "cli-table3": "^0.6.1", + "commander": "^6.2.1", + "compression": "^1.7.4", + "core-js": "^3.8.2", + "cpy": "^8.1.2", + "detect-port": "^1.3.0", + "express": "^4.17.1", + "fs-extra": "^9.0.1", + "global": "^4.4.0", + "globby": "^11.0.2", + "ip": "^2.0.0", + "lodash": "^4.17.21", + "node-fetch": "^2.6.7", + "open": "^8.4.0", + "pretty-hrtime": "^1.0.3", + "prompts": "^2.4.0", + "regenerator-runtime": "^0.13.7", + "serve-favicon": "^2.5.0", + "slash": "^3.0.0", + "telejson": "^6.0.8", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "watchpack": "^2.2.0", + "webpack": "4", + "ws": "^8.2.3", + "x-default-browser": "^0.4.0" + }, + "dependencies": { + "@types/node": { + "version": "16.11.64", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "array-union": { + "version": "2.1.0", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "globby": { + "version": "11.1.0", + "dev": true, + "requires": { + "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" + } + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@storybook/csf": { + "version": "0.0.2--canary.4566f4d.1", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "@storybook/csf-tools": { + "version": "6.5.12", + "dev": true, + "requires": { + "@babel/core": "^7.12.10", + "@babel/generator": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/plugin-transform-react-jsx": "^7.12.12", + "@babel/preset-env": "^7.12.11", + "@babel/traverse": "^7.12.11", + "@babel/types": "^7.12.11", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/mdx1-csf": "^0.0.1", + "core-js": "^3.8.2", + "fs-extra": "^9.0.1", + "global": "^4.4.0", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0" + } + }, + "@storybook/docs-tools": { + "version": "6.5.12", + "dev": true, + "requires": { + "@babel/core": "^7.12.10", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/store": "6.5.12", + "core-js": "^3.8.2", + "doctrine": "^3.0.0", + "lodash": "^4.17.21", + "regenerator-runtime": "^0.13.7" + } + }, + "@storybook/instrumenter": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "core-js": "^3.8.2", + "global": "^4.4.0" + } + }, + "@storybook/manager-webpack4": { + "version": "6.5.12", + "dev": true, + "requires": { + "@babel/core": "^7.12.10", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/preset-react": "^7.12.10", + "@storybook/addons": "6.5.12", + "@storybook/core-client": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/node-logger": "6.5.12", + "@storybook/theming": "6.5.12", + "@storybook/ui": "6.5.12", + "@types/node": "^14.0.10 || ^16.0.0", + "@types/webpack": "^4.41.26", + "babel-loader": "^8.0.0", + "case-sensitive-paths-webpack-plugin": "^2.3.0", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "css-loader": "^3.6.0", + "express": "^4.17.1", + "file-loader": "^6.2.0", + "find-up": "^5.0.0", + "fs-extra": "^9.0.1", + "html-webpack-plugin": "^4.0.0", + "node-fetch": "^2.6.7", + "pnp-webpack-plugin": "1.6.4", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7", + "resolve-from": "^5.0.0", + "style-loader": "^1.3.0", + "telejson": "^6.0.8", + "terser-webpack-plugin": "^4.2.3", + "ts-dedent": "^2.0.0", + "url-loader": "^4.1.1", + "util-deprecate": "^1.0.2", + "webpack": "4", + "webpack-dev-middleware": "^3.7.3", + "webpack-virtual-modules": "^0.2.2" + }, + "dependencies": { + "@types/node": { + "version": "16.11.64", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@storybook/mdx1-csf": { + "version": "0.0.1", + "dev": true, + "requires": { + "@babel/generator": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/preset-env": "^7.12.11", + "@babel/types": "^7.12.11", + "@mdx-js/mdx": "^1.6.22", + "@types/lodash": "^4.14.167", + "js-string-escape": "^1.0.1", + "loader-utils": "^2.0.0", + "lodash": "^4.17.21", + "prettier": ">=2.2.1 <=2.3.0", + "ts-dedent": "^2.0.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.12.9", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "dev": true + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@mdx-js/mdx": { + "version": "1.6.22", + "dev": true, + "requires": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + } + }, + "ccount": { + "version": "1.1.0", + "dev": true + }, + "is-buffer": { + "version": "2.0.5", + "dev": true + }, + "mdast-util-to-hast": { + "version": "10.0.1", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + } + }, + "prettier": { + "version": "2.3.0", + "dev": true + }, + "remark-mdx": { + "version": "1.6.22", + "dev": true, + "requires": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + } + }, + "remark-parse": { + "version": "8.0.3", + "dev": true, + "requires": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + } + }, + "semver": { + "version": "5.7.1", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "dev": true + }, + "unified": { + "version": "9.2.0", + "dev": true, + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + }, + "unist-builder": { + "version": "2.0.3", + "dev": true + }, + "unist-util-generated": { + "version": "1.1.6", + "dev": true + }, + "unist-util-is": { + "version": "4.1.0", + "dev": true + }, + "unist-util-position": { + "version": "3.1.0", + "dev": true + }, + "unist-util-remove-position": { + "version": "2.0.1", + "dev": true, + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "dev": true, + "requires": { + "@types/unist": "^2.0.2" + } + }, + "unist-util-visit": { + "version": "2.0.3", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.1.1", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + }, + "vfile": { + "version": "4.2.1", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-location": { + "version": "3.2.0", + "dev": true + }, + "vfile-message": { + "version": "2.0.4", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + } + } + }, + "@storybook/node-logger": { + "version": "6.5.12", + "dev": true, + "requires": { + "@types/npmlog": "^4.1.2", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "npmlog": "^5.0.1", + "pretty-hrtime": "^1.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "are-we-there-yet": { + "version": "2.0.0", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "gauge": { + "version": "3.0.2", + "dev": true, + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + } + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "npmlog": { + "version": "5.0.1", + "dev": true, + "requires": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@storybook/postinstall": { + "version": "6.5.12", + "dev": true, + "requires": { + "core-js": "^3.8.2" + } + }, + "@storybook/preview-web": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/channel-postmessage": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/store": "6.5.12", + "ansi-to-html": "^0.6.11", + "core-js": "^3.8.2", + "global": "^4.4.0", + "lodash": "^4.17.21", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "unfetch": "^4.2.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/react": { + "version": "6.5.12", + "dev": true, + "requires": { + "@babel/preset-flow": "^7.12.1", + "@babel/preset-react": "^7.12.10", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@storybook/addons": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core": "6.5.12", + "@storybook/core-common": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "@storybook/docs-tools": "6.5.12", + "@storybook/node-logger": "6.5.12", + "@storybook/react-docgen-typescript-plugin": "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0", + "@storybook/semver": "^7.3.2", + "@storybook/store": "6.5.12", + "@types/estree": "^0.0.51", + "@types/node": "^14.14.20 || ^16.0.0", + "@types/webpack-env": "^1.16.0", + "acorn": "^7.4.1", + "acorn-jsx": "^5.3.1", + "acorn-walk": "^7.2.0", + "babel-plugin-add-react-displayname": "^0.0.5", + "babel-plugin-react-docgen": "^4.2.1", + "core-js": "^3.8.2", + "escodegen": "^2.0.0", + "fs-extra": "^9.0.1", + "global": "^4.4.0", + "html-tags": "^3.1.0", + "lodash": "^4.17.21", + "prop-types": "^15.7.2", + "react-element-to-jsx-string": "^14.3.4", + "react-refresh": "^0.11.0", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2", + "webpack": ">=4.43.0 <6.0.0" + }, + "dependencies": { + "@types/node": { + "version": "16.11.64", + "dev": true + } + } + }, + "@storybook/react-docgen-typescript-plugin": { + "version": "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0", + "dev": true, + "requires": { + "debug": "^4.1.1", + "endent": "^2.0.1", + "find-cache-dir": "^3.3.1", + "flat-cache": "^3.0.4", + "micromatch": "^4.0.2", + "react-docgen-typescript": "^2.1.1", + "tslib": "^2.0.0" + }, + "dependencies": { + "find-cache-dir": { + "version": "3.3.2", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "@storybook/router": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/client-logger": "6.5.12", + "core-js": "^3.8.2", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7" + } + }, + "@storybook/semver": { + "version": "7.3.2", + "dev": true, + "requires": { + "core-js": "^3.6.5", + "find-up": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "@storybook/source-loader": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "core-js": "^3.8.2", + "estraverse": "^5.2.0", + "global": "^4.4.0", + "loader-utils": "^2.0.0", + "lodash": "^4.17.21", + "prettier": ">=2.2.1 <=2.3.0", + "regenerator-runtime": "^0.13.7" + }, + "dependencies": { + "prettier": { + "version": "2.3.0", + "dev": true + } + } + }, + "@storybook/store": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/csf": "0.0.2--canary.4566f4d.1", + "core-js": "^3.8.2", + "fast-deep-equal": "^3.1.3", + "global": "^4.4.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7", + "slash": "^3.0.0", + "stable": "^0.1.8", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + } + }, + "@storybook/telemetry": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/client-logger": "6.5.12", + "@storybook/core-common": "6.5.12", + "chalk": "^4.1.0", + "core-js": "^3.8.2", + "detect-package-manager": "^2.0.1", + "fetch-retry": "^5.0.2", + "fs-extra": "^9.0.1", + "global": "^4.4.0", + "isomorphic-unfetch": "^3.1.0", + "nanoid": "^3.3.1", + "read-pkg-up": "^7.0.1", + "regenerator-runtime": "^0.13.7" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@storybook/testing-library": { + "version": "0.0.9", + "dev": true, + "requires": { + "@storybook/client-logger": "^6.4.0 || >=6.5.0-0", + "@storybook/instrumenter": "^6.4.0 || >=6.5.0-0", + "@testing-library/dom": "^8.3.0", + "@testing-library/user-event": "^13.2.1", + "ts-dedent": "^2.2.0" + } + }, + "@storybook/theming": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/client-logger": "6.5.12", + "core-js": "^3.8.2", + "memoizerific": "^1.11.3", + "regenerator-runtime": "^0.13.7" + } + }, + "@storybook/ui": { + "version": "6.5.12", + "dev": true, + "requires": { + "@storybook/addons": "6.5.12", + "@storybook/api": "6.5.12", + "@storybook/channels": "6.5.12", + "@storybook/client-logger": "6.5.12", + "@storybook/components": "6.5.12", + "@storybook/core-events": "6.5.12", + "@storybook/router": "6.5.12", + "@storybook/semver": "^7.3.2", + "@storybook/theming": "6.5.12", + "core-js": "^3.8.2", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "regenerator-runtime": "^0.13.7", + "resolve-from": "^5.0.0" + } + }, + "@stripe/react-stripe-js": { + "version": "1.12.0", + "requires": { + "prop-types": "^15.7.2" + } + }, + "@stripe/stripe-js": { + "version": "1.38.1" + }, + "@supabase/auth-ui-react": { + "version": "0.1.8", + "requires": { + "@stitches/core": "^1.2.8", + "@stitches/react": "^1.2.8", + "fsevents": "^2.3.2", + "lodash": "^4.17.20", + "prop-types": "^15.7.2" + } + }, + "@supabase/functions-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.0.0.tgz", + "integrity": "sha512-ozb7bds2yvf5k7NM2ZzUkxvsx4S4i2eRKFSJetdTADV91T65g4gCzEs9L3LUXSrghcGIkUaon03VPzOrFredqg==", "requires": { "cross-fetch": "^3.1.5" } }, + "@supabase/gotrue-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.0.1.tgz", + "integrity": "sha512-PCzHeFhz33lPWLZT+UiVDpGkZQI3K1wwhkhgAjvJdkyCbwK5u+LWWUzz0AX66bGGLpg1IYQIP7oz8V68XVjzMA==", + "requires": { + "cross-fetch": "^3.1.5" + } + }, + "@supabase/postgres-meta": { + "version": "0.26.1", + "requires": { + "@sinclair/typebox": "^0.19.2", + "pg": "^8.7.1", + "pg-format": "^1.0.4" + } + }, + "@supabase/postgrest-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.0.0.tgz", + "integrity": "sha512-MRR4g8dThgSnlnjkL2Jvc6gS73W68hLq48/Q245CLvUPt3KtOh3WXpvo4rZDEDHYVkyVga+L9IQixo6YTsjMQg==", + "requires": { + "cross-fetch": "^3.1.5" + } + }, + "@supabase/react-data-grid": { + "version": "7.1.0-beta.7", + "requires": { + "clsx": "^1.1.1" + }, + "dependencies": { + "clsx": { + "version": "1.2.1" + } + } + }, "@supabase/realtime-js": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.7.4.tgz", - "integrity": "sha512-h/Jk3PCLkIVonsNavof/LvHbvF41UD+D+mWcA3m8yHzJ2TLbV3S4XDYId+A3AkvFOAork7Ns/9O8rK0uY4F4zw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.0.0.tgz", + "integrity": "sha512-DJVt5Z76pik3Fxt1es4fmquq6GrwR3nLqcb2Q6VpHXSudtixML0Cyxsu0DPzxa6ruSQrO9s08s0OQgwaIA1C0Q==", "requires": { "@types/phoenix": "^1.5.4", "websocket": "^1.0.34" } }, + "@supabase/shared-types": { + "version": "0.1.29" + }, "@supabase/storage-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.7.3.tgz", - "integrity": "sha512-jnIZWqOc9TGclOozgX9v/RWGFCgJAyW/yvmauexgRZhWknUXoA4b2i8tj7vfwE0WTvNRuA5JpXID98rfJeSG7Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.0.0.tgz", + "integrity": "sha512-7kXThdRt/xqnOOvZZxBqNkeX1CFNUWc0hYBJtNN/Uvt8ok9hD14foYmroWrHn046wEYFqUrB9U35JYsfTrvltA==", "requires": { - "cross-fetch": "^3.1.0" + "cross-fetch": "^3.1.5" } }, "@supabase/supabase-js": { - "version": "1.35.6", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.35.6.tgz", - "integrity": "sha512-KDRXRr+kdGwruIUizZPALbe5YccMYFVyZJf1sFWKLncaLYSFiM6iKFnqCrNeQ4JFoZZiICkiTl1FUuai62jVpg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.0.0.tgz", + "integrity": "sha512-8nNMXYzBlQVSDONFaNgyyxsAdUY+C9Q/7vEDYDdTFTyC3i+luXTDOSjHMLcjIky/+x5rIAcNQqqIJ48HJUluXA==", "requires": { - "@supabase/functions-js": "^1.3.4", - "@supabase/gotrue-js": "^1.22.21", - "@supabase/postgrest-js": "^0.37.4", - "@supabase/realtime-js": "^1.7.4", - "@supabase/storage-js": "^1.7.2" + "@supabase/functions-js": "^2.0.0", + "@supabase/gotrue-js": "^2.0.1", + "@supabase/postgrest-js": "^1.0.0", + "@supabase/realtime-js": "^2.0.0", + "@supabase/storage-js": "^2.0.0", + "cross-fetch": "^3.1.5" } }, "@supabase/ui": { "version": "0.37.0-alpha.50", - "resolved": "https://registry.npmjs.org/@supabase/ui/-/ui-0.37.0-alpha.50.tgz", - "integrity": "sha512-d5jFxIVCRrZ6cHQ6qpuvyaexTmqMnxDWm0hg7vj9D2x5qcmySRCTC42uhpKXz5fKre2TUl38pFT+UpscWw/OyA==", "requires": { "@headlessui/react": "^1.0.0", "@mertasan/tailwindcss-variables": "^2.0.1", @@ -20692,35 +38097,149 @@ "prop-types": "^15.7.2", "tailwindcss": "^3.0.15", "tailwindcss-radix": "^1.6.0" + }, + "dependencies": { + "@tailwindcss/typography": { + "version": "0.5.7", + "requires": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + } + } + } + }, + "@swc/helpers": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", + "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==", + "requires": { + "tslib": "^2.4.0" } }, "@tailwindcss/forms": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.4.1.tgz", - "integrity": "sha512-gS9xjCmJjUBz/eP12QlENPLnf0tCx68oYE3mri0GMP5jdtVwLbGUNSRpjsp6NzLAZzZy3ueOwrcqB78Ax6Z84A==", "requires": { "mini-svg-data-uri": "^1.2.3" } }, - "@tailwindcss/typography": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.4.tgz", - "integrity": "sha512-QEdg40EmGvE7kKoDei8zr5sf4D1pIayHj4R31bH3lX8x2BtTiR+jNejYPOkhbmy3DXgkMF9jC8xqNiGFAuL9Sg==", + "@testdeck/core": { + "version": "0.2.1", + "dev": true + }, + "@testdeck/jest": { + "version": "0.2.1", + "dev": true, "requires": { - "lodash.castarray": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2" + "@testdeck/core": "^0.2.0" + } + }, + "@testing-library/dom": { + "version": "8.18.1", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@testing-library/react": { + "version": "12.1.5", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.0.0", + "@types/react-dom": "<18.0.0" + } + }, + "@testing-library/user-event": { + "version": "13.5.0", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5" } }, "@tootallnate/once": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "dev": true + }, + "@tsconfig/node10": { + "version": "1.0.9", + "devOptional": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "devOptional": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "devOptional": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "devOptional": true + }, + "@types/acorn": { + "version": "4.0.6", + "requires": { + "@types/estree": "*" + } + }, + "@types/allure-js-commons": { + "version": "0.0.1", + "dev": true + }, + "@types/aria-query": { + "version": "4.2.2", + "dev": true }, "@types/babel__core": { "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -20732,8 +38251,6 @@ }, "@types/babel__generator": { "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "dev": true, "requires": { "@babel/types": "^7.0.0" @@ -20741,8 +38258,6 @@ }, "@types/babel__template": { "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -20750,9 +38265,7 @@ } }, "@types/babel__traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.0.tgz", - "integrity": "sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==", + "version": "7.18.2", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -20760,54 +38273,74 @@ }, "@types/classnames": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-zeOWb0JGBoVmlQoznvqXbE0tEC/HONsnoUNH19Hc96NFsTAwTXbTqb8FMYkru1F/iqp7a18Ws3nWJvtA1sHD1A==", "dev": true, "requires": { "classnames": "*" } }, + "@types/crypto-js": { + "version": "4.1.1", + "dev": true + }, + "@types/d3-color": { + "version": "2.0.3" + }, + "@types/d3-interpolate": { + "version": "2.0.2", + "requires": { + "@types/d3-color": "^2" + } + }, + "@types/d3-path": { + "version": "2.0.2" + }, + "@types/d3-scale": { + "version": "3.3.2", + "requires": { + "@types/d3-time": "^2" + } + }, + "@types/d3-shape": { + "version": "2.1.3", + "requires": { + "@types/d3-path": "^2" + } + }, + "@types/d3-time": { + "version": "2.1.1" + }, + "@types/debounce-promise": { + "version": "3.1.4" + }, "@types/debug": { "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", "requires": { "@types/ms": "*" } }, - "@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", - "devOptional": true, - "peer": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } + "@types/estree": { + "version": "0.0.51" }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "devOptional": true, - "peer": true, + "@types/estree-jsx": { + "version": "1.0.0", "requires": { - "@types/eslint": "*", "@types/estree": "*" } }, - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "devOptional": true, - "peer": true + "@types/file-saver": { + "version": "2.0.5", + "dev": true + }, + "@types/glob": { + "version": "8.0.0", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } }, "@types/graceful-fs": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", "dev": true, "requires": { "@types/node": "*" @@ -20815,118 +38348,146 @@ }, "@types/hast": { "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", "requires": { "@types/unist": "*" } }, + "@types/hoist-non-react-statics": { + "version": "3.3.1", + "requires": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "@types/html-minifier-terser": { + "version": "5.1.2", + "dev": true + }, + "@types/is-function": { + "version": "1.0.1", + "dev": true + }, "@types/istanbul-lib-coverage": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, "@types/istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "*" } }, "@types/istanbul-reports": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", - "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "version": "3.0.1", "dev": true, "requires": { - "@types/istanbul-lib-coverage": "*", "@types/istanbul-lib-report": "*" } }, "@types/jest": { "version": "27.5.2", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", - "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", "dev": true, "requires": { "jest-matcher-utils": "^27.0.0", "pretty-format": "^27.0.0" } }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "devOptional": true + "@types/js-yaml": { + "version": "4.0.5" }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" - }, - "@types/lodash": { - "version": "4.14.182", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", - "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==", + "@types/json-logic-js": { + "version": "1.2.1", "dev": true }, + "@types/json-schema": { + "version": "7.0.11", + "dev": true + }, + "@types/json5": { + "version": "0.0.29" + }, + "@types/lodash": { + "version": "4.14.186" + }, + "@types/markdown-table": { + "version": "3.0.0", + "dev": true, + "requires": { + "markdown-table": "*" + } + }, "@types/marked": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.0.3.tgz", - "integrity": "sha512-HnMWQkLJEf/PnxZIfbm0yGJRRZYYMhb++O9M36UCTA9z53uPvVoSlAwJr3XOpDEryb7Hwl1qAx/MV6YIW1RXxg==", + "version": "4.0.7", "dev": true }, "@types/mdast": { "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", "requires": { "@types/unist": "*" } }, - "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" - }, "@types/mdx": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.2.tgz", - "integrity": "sha512-mJGfgj4aWpiKb8C0nnJJchs1sHBHn0HugkVfqqyQi7Wn6mBRksLeQsPOFvih/Pu8L1vlDzfe/LidhVHBeUk3aQ==" + "version": "2.0.2" + }, + "@types/mdx-js__react": { + "version": "1.5.5", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/minimatch": { + "version": "5.1.2", + "dev": true }, "@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + "version": "0.7.31" }, "@types/node": { - "version": "14.18.23", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.23.tgz", - "integrity": "sha512-MhbCWN18R4GhO8ewQWAFK4TGQdBpXWByukz7cWyJmXhvRuCIaM/oWytGPqVmDzgEnnaIc9ss6HbU5mUi+vyZPA==", + "version": "17.0.45", "devOptional": true }, + "@types/node-fetch": { + "version": "2.6.2", + "dev": true, + "requires": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, "@types/nodemailer": { - "version": "6.4.5", - "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.5.tgz", - "integrity": "sha512-zuP3nBRQHI6M2PkXnGGy1Ww4VB+MyYHGgnfV2T+JR9KLkeWqPJuyVUgLpKXuFnA/b7pZaIDFh2sV4759B7jK1g==", + "version": "6.4.6", "dev": true, "requires": { "@types/node": "*" } }, + "@types/normalize-package-data": { + "version": "2.4.1", + "dev": true + }, + "@types/npmlog": { + "version": "4.1.4", + "dev": true + }, + "@types/papaparse": { + "version": "5.3.5", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/parse-json": { + "version": "4.0.0", + "dev": true + }, "@types/parse-numeric-range": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-numeric-range/-/parse-numeric-range-0.0.1.tgz", - "integrity": "sha512-nI3rPGKk8BxedokP2VilnW5JyZHYNjGCUDsAZ2JQgISgDflHNUO0wXMfGYP8CkihrKYDm5tilD52XfGhO/ZFCA==", "dev": true }, "@types/parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" + "version": "5.0.3" }, "@types/phoenix": { "version": "1.5.4", @@ -20934,86 +38495,191 @@ "integrity": "sha512-L5eZmzw89eXBKkiqVBcJfU1QGx9y+wurRIEgt0cuLH0hwNtVUxtx+6cu0R2STwWj468sjXyBYPYDtGclUd1kjQ==" }, "@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", + "version": "2.7.1", + "dev": true + }, + "@types/pretty-hrtime": { + "version": "1.0.1", "dev": true }, "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "version": "15.7.5" + }, + "@types/qs": { + "version": "6.9.7", + "dev": true }, "@types/react": { - "version": "17.0.39", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.39.tgz", - "integrity": "sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==", + "version": "17.0.37", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, - "@types/react-copy-to-clipboard": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-4.3.0.tgz", - "integrity": "sha512-iideNPRyroENqsOFh1i2Dv3zkviYS9r/9qD9Uh3Z9NNoAAqqa2x53i7iGndGNnJFIo20wIu7Hgh77tx1io8bgw==", + "@types/react-beautiful-dnd": { + "version": "13.1.2", "dev": true, "requires": { "@types/react": "*" } }, - "@types/react-dom": { - "version": "16.9.16", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.16.tgz", - "integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==", + "@types/react-copy-to-clipboard": { + "version": "4.3.0", "dev": true, "requires": { - "@types/react": "^16" - }, - "dependencies": { - "@types/react": { - "version": "16.14.30", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.30.tgz", - "integrity": "sha512-tG+xGtDDSuIl1l63mN0LnaROAc99knkYyN4YTheE80iPzYvSy0U8LVie+OBZkrgjVrpkQV6bMCkSphPBnVNk6g==", - "dev": true, - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - } + "@types/react": "*" + } + }, + "@types/react-csv": { + "version": "1.1.3", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-datepicker": { + "version": "4.4.2", + "dev": true, + "requires": { + "@popperjs/core": "^2.9.2", + "@types/react": "*", + "date-fns": "^2.0.1", + "react-popper": "^2.2.5" + } + }, + "@types/react-dom": { + "version": "17.0.17", + "dev": true, + "requires": { + "@types/react": "^17" + } + }, + "@types/react-grid-layout": { + "version": "1.3.2", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-redux": { + "version": "7.1.24", + "requires": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" } }, "@types/react-syntax-highlighter": { "version": "13.5.2", - "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-13.5.2.tgz", - "integrity": "sha512-sRZoKZBGKaE7CzMvTTgz+0x/aVR58ZYUTfB7HN76vC+yQnvo1FWtzNARBt0fGqcLGEVakEzMu/CtPzssmanu8Q==", "dev": true, "requires": { "@types/react": "*" } }, + "@types/react-virtualized-auto-sizer": { + "version": "1.0.1", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-window": { + "version": "1.8.5", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/react-window-infinite-loader": { + "version": "1.0.6", + "dev": true, + "requires": { + "@types/react": "*", + "@types/react-window": "*" + } + }, + "@types/resize-observer-browser": { + "version": "0.1.7" + }, "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "version": "0.16.2" + }, + "@types/semver": { + "version": "7.3.12", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "dev": true + }, + "@types/sqlstring": { + "version": "2.3.0", + "dev": true }, "@types/stack-utils": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, + "@types/strip-ansi": { + "version": "5.2.1", + "dev": true, + "requires": { + "strip-ansi": "*" + } + }, + "@types/tapable": { + "version": "1.0.8", + "dev": true + }, + "@types/uglify-js": { + "version": "3.17.0", + "dev": true, + "requires": { + "source-map": "^0.6.1" + } + }, "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + "version": "2.0.6" + }, + "@types/uuid": { + "version": "8.3.4", + "dev": true + }, + "@types/webpack": { + "version": "4.41.32", + "dev": true, + "requires": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "@types/webpack-env": { + "version": "1.18.0", + "dev": true + }, + "@types/webpack-sources": { + "version": "3.2.0", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.4", + "dev": true + } + } }, "@types/yargs": { "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -21021,42 +38687,69 @@ }, "@types/yargs-parser": { "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", "dev": true }, - "@typescript-eslint/parser": { - "version": "5.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.33.0.tgz", - "integrity": "sha512-cgM5cJrWmrDV2KpvlcSkelTBASAs1mgqq+IUGKJvFxWrapHpaRy5EXPQz9YaKF3nZ8KY18ILTiVpUtbIac86/w==", + "@types/zxcvbn": { + "version": "4.4.1", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.39.0", + "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.33.0", - "@typescript-eslint/types": "5.33.0", - "@typescript-eslint/typescript-estree": "5.33.0", + "@typescript-eslint/scope-manager": "5.39.0", + "@typescript-eslint/type-utils": "5.39.0", + "@typescript-eslint/utils": "5.39.0", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.39.0", + "requires": { + "@typescript-eslint/scope-manager": "5.39.0", + "@typescript-eslint/types": "5.39.0", + "@typescript-eslint/typescript-estree": "5.39.0", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.33.0.tgz", - "integrity": "sha512-/Jta8yMNpXYpRDl8EwF/M8It2A9sFJTubDo0ATZefGXmOqlaBffEw0ZbkbQ7TNDK6q55NPHFshGBPAZvZkE8Pw==", + "version": "5.39.0", "requires": { - "@typescript-eslint/types": "5.33.0", - "@typescript-eslint/visitor-keys": "5.33.0" + "@typescript-eslint/types": "5.39.0", + "@typescript-eslint/visitor-keys": "5.39.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.39.0", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.39.0", + "@typescript-eslint/utils": "5.39.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.33.0.tgz", - "integrity": "sha512-nIMt96JngB4MYFYXpZ/3ZNU4GWPNdBbcB5w2rDOCpXOVUkhtNlG2mmm8uXhubhidRZdwMaMBap7Uk8SZMU/ppw==" + "version": "5.39.0" }, "@typescript-eslint/typescript-estree": { - "version": "5.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.33.0.tgz", - "integrity": "sha512-tqq3MRLlggkJKJUrzM6wltk8NckKyyorCSGMq4eVkyL5sDYzJJcMgZATqmF8fLdsWrW7OjjIZ1m9v81vKcaqwQ==", + "version": "5.39.0", "requires": { - "@typescript-eslint/types": "5.33.0", - "@typescript-eslint/visitor-keys": "5.33.0", + "@typescript-eslint/types": "5.39.0", + "@typescript-eslint/visitor-keys": "5.39.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -21065,14 +38758,10 @@ }, "dependencies": { "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + "version": "2.1.0" }, "globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -21082,250 +38771,198 @@ "slash": "^3.0.0" } }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", "requires": { "lru-cache": "^6.0.0" } } } }, - "@typescript-eslint/visitor-keys": { - "version": "5.33.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.33.0.tgz", - "integrity": "sha512-/XsqCzD4t+Y9p5wd9HZiptuGKBlaZO5showwqODii5C0nZawxWLF+Q6k5wYHBrQv96h6GYKyqqMHCSTqta8Kiw==", + "@typescript-eslint/utils": { + "version": "5.39.0", + "dev": true, "requires": { - "@typescript-eslint/types": "5.33.0", + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.39.0", + "@typescript-eslint/types": "5.39.0", + "@typescript-eslint/typescript-estree": "5.39.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.39.0", + "requires": { + "@typescript-eslint/types": "5.39.0", "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" - } } }, "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.9.0", "devOptional": true, - "peer": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "devOptional": true, - "peer": true + "version": "1.9.0", + "devOptional": true }, "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "devOptional": true, - "peer": true + "version": "1.9.0", + "devOptional": true }, "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "devOptional": true, - "peer": true + "version": "1.9.0", + "devOptional": true }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", "devOptional": true, - "peer": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "devOptional": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "devOptional": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "devOptional": true, - "peer": true + "version": "1.9.0", + "devOptional": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.9.0", "devOptional": true, - "peer": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.9.0", "devOptional": true, - "peer": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.9.0", "devOptional": true, - "peer": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "devOptional": true, - "peer": true + "version": "1.9.0", + "devOptional": true }, "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.9.0", "devOptional": true, - "peer": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.9.0", "devOptional": true, - "peer": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.9.0", "devOptional": true, - "peer": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.9.0", "devOptional": true, - "peer": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "@webassemblyjs/wast-parser": { + "version": "1.9.0", "devOptional": true, - "peer": true, "requires": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", "@xtuc/long": "4.2.2" } }, - "@wry/context": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", - "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "devOptional": true, "requires": { - "tslib": "^2.3.0" - } - }, - "@wry/equality": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", - "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@wry/trie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz", - "integrity": "sha512-WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==", - "requires": { - "tslib": "^2.3.0" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" } }, "@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "devOptional": true, - "peer": true + "devOptional": true }, "@xtuc/long": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "devOptional": true, - "peer": true + "devOptional": true }, "abab": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" + "dev": true + }, + "accepts": { + "version": "1.3.8", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } }, "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "version": "7.4.1" }, "acorn-globals": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, "requires": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" @@ -21333,14 +38970,10 @@ }, "acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "requires": {} }, "acorn-node": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", "requires": { "acorn": "^7.0.0", "acorn-walk": "^7.0.0", @@ -21348,46 +38981,112 @@ } }, "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + "version": "7.2.0" + }, + "address": { + "version": "1.2.1", + "dev": true }, "agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "requires": { "debug": "4" } }, + "aggregate-error": { + "version": "3.1.0", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "airbnb-js-shims": { + "version": "2.2.1", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "array.prototype.flatmap": "^1.2.1", + "es5-shim": "^4.5.13", + "es6-shim": "^0.35.5", + "function.prototype.name": "^1.1.0", + "globalthis": "^1.0.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0 || ^1.0.0", + "object.getownpropertydescriptors": "^2.0.3", + "object.values": "^1.1.0", + "promise.allsettled": "^1.0.0", + "promise.prototype.finally": "^3.1.0", + "string.prototype.matchall": "^4.0.0 || ^3.0.1", + "string.prototype.padend": "^3.0.0", + "string.prototype.padstart": "^3.0.0", + "symbol.prototype.description": "^1.0.0" + } + }, "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.11.0", "requires": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "ajv-errors": { + "version": "1.0.1", "devOptional": true, "requires": {} }, - "ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "allure-commandline": { + "version": "2.18.1", "dev": true }, + "allure-js-commons": { + "version": "2.0.0-beta.19", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "properties": "^1.2.1", + "uuid": "^8.3.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "dev": true + } + } + }, + "analytics-node": { + "version": "3.5.0", + "requires": { + "@segment/loosely-validate-event": "^2.0.0", + "axios": "^0.21.1", + "axios-retry": "^3.0.2", + "lodash.isstring": "^4.0.1", + "md5": "^2.2.1", + "ms": "^2.0.0", + "remove-trailing-slash": "^0.1.0", + "uuid": "^3.2.1" + }, + "dependencies": { + "uuid": { + "version": "3.4.0" + } + } + }, + "ansi-align": { + "version": "3.0.1", + "dev": true, + "requires": { + "string-width": "^4.1.0" + } + }, + "ansi-colors": { + "version": "4.1.3" + }, "ansi-escapes": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { "type-fest": "^0.21.3" @@ -21395,88 +39094,102 @@ "dependencies": { "type-fest": { "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true } } }, + "ansi-html-community": { + "version": "0.0.8", + "dev": true + }, "ansi-red": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", - "integrity": "sha512-ewaIr5y+9CUTGFwZfpECUbFlGcC0GCw1oqR9RI6h1gQCd9Aj2GxSckCnPsVJnmfMZbwFYE+leZGASgkWl06Jow==", "requires": { "ansi-wrap": "0.1.0" } }, "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "version": "5.0.1" }, "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "3.2.1", "requires": { - "color-convert": "^2.0.1" + "color-convert": "^1.9.0" + } + }, + "ansi-to-html": { + "version": "0.6.15", + "dev": true, + "requires": { + "entities": "^2.0.0" } }, "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==" + "version": "0.1.0" }, "anymatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, + "app-root-dir": { + "version": "1.0.2", + "dev": true + }, + "aproba": { + "version": "1.2.0" + }, + "are-we-there-yet": { + "version": "1.1.7", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, "arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "version": "5.0.2" }, "argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { "sprintf-js": "~1.0.2" } }, "aria-hidden": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.1.3.tgz", - "integrity": "sha512-RhVWFtKH5BiGMycI72q2RAFMLQi8JP9bLuQXgR5a8Znp7P5KOIADSJeyfI8PCVxLEp067B2HbP5JIiI/PXIZeA==", + "version": "1.2.1", "requires": { - "tslib": "^1.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "tslib": "^2.0.0" } }, "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } + "version": "5.0.2", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "devOptional": true + }, + "arr-flatten": { + "version": "1.1.0", + "devOptional": true + }, + "arr-union": { + "version": "3.1.0", + "devOptional": true + }, + "array-find-index": { + "version": "1.0.2", + "dev": true, + "optional": true + }, + "array-flatten": { + "version": "1.1.1", + "dev": true }, "array-includes": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -21486,14 +39199,18 @@ } }, "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==" + "version": "3.0.1" + }, + "array-uniq": { + "version": "1.0.3", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "devOptional": true }, "array.prototype.flat": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -21503,8 +39220,6 @@ }, "array.prototype.flatmap": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -21512,72 +39227,162 @@ "es-shim-unscopables": "^1.0.0" } }, + "array.prototype.map": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, + "array.prototype.reduce": { + "version": "1.0.4", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + } + }, + "arrify": { + "version": "2.0.1", + "dev": true + }, + "asn1.js": { + "version": "5.4.1", + "devOptional": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "devOptional": true + } + } + }, + "assert": { + "version": "1.5.0", + "devOptional": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "devOptional": true + }, + "util": { + "version": "0.10.3", + "devOptional": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assign-symbols": { + "version": "1.0.0", + "devOptional": true + }, + "ast-types": { + "version": "0.14.2", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + }, "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" + "version": "0.0.7" }, "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true + "version": "2.0.0" }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true + "astring": { + "version": "1.8.3" + }, + "async-each": { + "version": "1.0.3", + "dev": true, + "optional": true }, "asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "dev": true + }, + "atob": { + "version": "2.1.2", + "devOptional": true }, "autolinker": { "version": "0.28.1", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz", - "integrity": "sha512-zQAFO1Dlsn69eXaO6+7YZc+v84aquQKbwpzCE3L0stj56ERn9hutFxPopViLjo9G+rWwjozRhgS5KJ25Xy19cQ==", "requires": { "gulp-header": "^1.7.1" } }, "autoprefixer": { - "version": "10.4.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.8.tgz", - "integrity": "sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw==", + "version": "10.4.12", "requires": { - "browserslist": "^4.21.3", - "caniuse-lite": "^1.0.30001373", + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001407", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" } }, + "awesome-debounce-promise": { + "version": "2.1.0", + "requires": { + "@types/debounce-promise": "^3.1.1", + "awesome-imperative-promise": "^1.0.1", + "awesome-only-resolves-last-promise": "^1.0.3", + "debounce-promise": "^3.1.0" + } + }, + "awesome-imperative-promise": { + "version": "1.0.1" + }, + "awesome-only-resolves-last-promise": { + "version": "1.0.3", + "requires": { + "awesome-imperative-promise": "^1.0.1" + } + }, "axe-core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", - "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==" + "version": "4.4.3" }, "axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "dev": true, + "version": "0.21.4", "requires": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.14.0" + } + }, + "axios-retry": { + "version": "3.3.1", + "requires": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" } }, "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + "version": "2.2.0" }, "babel-jest": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", "dev": true, "requires": { "@jest/transform": "^27.5.1", @@ -21590,61 +39395,255 @@ "slash": "^3.0.0" }, "dependencies": { + "@jest/transform": { + "version": "27.5.1", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-haste-map": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-regex-util": { + "version": "27.5.1", + "dev": true + }, + "jest-serializer": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, + "babel-loader": { + "version": "8.2.5", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "dev": true, + "requires": {} + }, + "find-cache-dir": { + "version": "3.3.2", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "schema-utils": { + "version": "2.7.1", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "babel-plugin-add-react-displayname": { + "version": "0.0.5", + "dev": true + }, "babel-plugin-apply-mdx-type-prop": { "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", - "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", "requires": { "@babel/helper-plugin-utils": "7.10.4", "@mdx-js/util": "1.6.22" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + "version": "7.10.4" } } }, "babel-plugin-dynamic-import-node": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, "requires": { "object.assign": "^4.1.0" } }, "babel-plugin-extract-import-names": { "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", - "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", "requires": { "@babel/helper-plugin-utils": "7.10.4" }, "dependencies": { "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + "version": "7.10.4" } } }, "babel-plugin-istanbul": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", @@ -21656,8 +39655,6 @@ }, "babel-plugin-jest-hoist": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -21666,37 +39663,50 @@ "@types/babel__traverse": "^7.0.6" } }, + "babel-plugin-macros": { + "version": "3.1.0", + "dev": true, + "requires": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + } + }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", - "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", + "version": "0.3.3", + "dev": true, "requires": { "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.2", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", - "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "version": "0.6.0", + "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.2", - "core-js-compat": "^3.21.0" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", - "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", + "version": "0.4.1", + "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.2" + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "babel-plugin-react-docgen": { + "version": "4.2.1", + "dev": true, + "requires": { + "ast-types": "^0.14.2", + "lodash": "^4.17.15", + "react-docgen": "^5.0.0" } }, "babel-preset-current-node-syntax": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -21715,8 +39725,6 @@ }, "babel-preset-jest": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", "dev": true, "requires": { "babel-plugin-jest-hoist": "^27.5.1", @@ -21724,29 +39732,194 @@ } }, "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" + "version": "1.0.5" }, "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "version": "1.0.2" + }, + "base": { + "version": "0.11.2", + "devOptional": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "devOptional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "devOptional": true + }, + "better-opn": { + "version": "2.1.1", + "dev": true, + "requires": { + "open": "^7.0.3" + }, + "dependencies": { + "open": { + "version": "7.4.2", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + } + } + }, + "big-integer": { + "version": "1.6.51", + "dev": true, + "optional": true }, "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "version": "5.2.2" }, "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "version": "2.2.0" + }, + "bindings": { + "version": "1.5.0", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "devOptional": true + }, + "bn.js": { + "version": "5.2.1", + "devOptional": true + }, + "body-parser": { + "version": "1.20.0", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "dev": true + }, + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + }, + "qs": { + "version": "6.10.3", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "boolbase": { + "version": "1.0.0", + "dev": true + }, + "boxen": { + "version": "5.1.2", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.3.0", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "bplist-parser": { + "version": "0.1.1", + "dev": true, + "optional": true, + "requires": { + "big-integer": "^1.6.7" + } }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -21754,32 +39927,105 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { "fill-range": "^7.0.1" } }, + "brorand": { + "version": "1.1.0", + "devOptional": true + }, "browser-process-hrtime": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "devOptional": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "devOptional": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "devOptional": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "devOptional": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "devOptional": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "devOptional": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "devOptional": true, + "requires": { + "pako": "~1.0.5" + } }, "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.21.4", "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "update-browserslist-db": "^1.0.9" } }, "bs-logger": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "requires": { "fast-json-stable-stringify": "2.x" @@ -21787,30 +40033,133 @@ }, "bser": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "requires": { "node-int64": "^0.4.0" } }, + "buffer": { + "version": "4.9.2", + "devOptional": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "devOptional": true + } + } + }, "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "version": "1.1.2" + }, + "buffer-writer": { + "version": "2.0.0" + }, + "buffer-xor": { + "version": "1.0.3", + "devOptional": true }, "bufferutil": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", - "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", "requires": { "node-gyp-build": "^4.3.0" } }, + "builtin-status-codes": { + "version": "3.0.0", + "devOptional": true + }, + "bytes": { + "version": "3.0.0", + "dev": true + }, + "c8": { + "version": "7.12.0", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "dependencies": { + "v8-to-istanbul": { + "version": "9.0.1", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + } + } + }, + "cacache": { + "version": "15.3.0", + "dev": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "dev": true + }, + "p-map": { + "version": "4.0.0", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + } + } + }, + "cache-base": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, "call-bind": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -21818,117 +40167,88 @@ }, "call-me-maybe": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==", "dev": true }, "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "version": "3.1.0" + }, + "camel-case": { + "version": "4.1.2", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } }, "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "version": "5.3.1", "dev": true }, "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + "version": "2.0.1" + }, + "camelcase-keys": { + "version": "2.1.0", + "dev": true, + "optional": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "dev": true, + "optional": true + } + } }, "caniuse-lite": { - "version": "1.0.30001375", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001375.tgz", - "integrity": "sha512-kWIMkNzLYxSvnjy0hL8w1NOaWNr2rn39RTAVyIwcw8juu60bZDWiF1/loOYANzjtJmy6qPgNmn38ro5Pygagdw==" + "version": "1.0.30001418" + }, + "capture-exit": { + "version": "2.0.0", + "dev": true, + "requires": { + "rsvp": "^4.8.4" + } + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "dev": true }, "ccount": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==" + "version": "2.0.1" }, "chalk": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "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==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } } }, "char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + "version": "2.0.2" }, "character-entities-html4": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", - "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==" + "version": "2.1.0" }, "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + "version": "1.1.4" }, "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + "version": "1.1.4" + }, + "charenc": { + "version": "0.0.2" }, "chokidar": { "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -21938,120 +40258,219 @@ "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "requires": { + "is-glob": "^4.0.1" + } + } } }, + "chownr": { + "version": "2.0.0", + "dev": true + }, "chrome-trace-event": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "devOptional": true, - "peer": true + "devOptional": true }, "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "version": "3.4.0", "dev": true }, + "cipher-base": { + "version": "1.0.4", + "devOptional": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "cjs-module-lexer": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", "dev": true }, + "class-utils": { + "version": "0.3.6", + "devOptional": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "devOptional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "devOptional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "devOptional": true + } + } + }, "classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" + "version": "2.3.2" + }, + "clean-css": { + "version": "4.2.4", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "dev": true + }, + "cli-table3": { + "version": "0.6.3", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + } + }, + "clipboard": { + "version": "2.0.11", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } }, "cliui": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" + } + }, + "clone-deep": { + "version": "4.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" }, "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "is-plain-object": { + "version": "2.0.4", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "isobject": "^3.0.1" } } } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "clsx": { + "version": "1.1.0", "dev": true }, + "co": { + "version": "4.6.0", + "dev": true + }, + "code-point-at": { + "version": "1.1.0" + }, "coffee-script": { - "version": "1.12.7", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", - "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==" + "version": "1.12.7" }, "collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" + "version": "1.0.6" }, "collect-v8-coverage": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", "dev": true }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "collection-visit": { + "version": "1.0.0", + "devOptional": true, "requires": { - "color-name": "~1.1.4" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "requires": { + "color-name": "1.1.3" } }, "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "version": "1.1.3" + }, + "color-support": { + "version": "1.1.3", + "dev": true }, "combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, "comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" + "version": "2.0.2" + }, + "commander": { + "version": "6.2.1" }, "common": { "version": "file:packages/common", @@ -22065,24 +40484,70 @@ "typescript": "^4.5.3" }, "dependencies": { - "@types/react-dom": { - "version": "17.0.16", + "@types/react": { + "version": "17.0.50", "dev": true, "requires": { - "@types/react": "^17" + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" } } } }, + "common-path-prefix": { + "version": "3.0.0", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "devOptional": true + }, + "component-emitter": { + "version": "1.3.0", + "devOptional": true + }, + "component-type": { + "version": "1.2.1" + }, + "compressible": { + "version": "2.0.18", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "version": "0.0.1" }, "concat-stream": { "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -22092,8 +40557,6 @@ }, "concat-with-sourcemaps": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", "requires": { "source-map": "^0.6.1" } @@ -22104,6 +40567,7 @@ "@mertasan/tailwindcss-variables": "^2.2.3", "@radix-ui/colors": "^0.1.8", "@tailwindcss/forms": "^0.5.0", + "@tailwindcss/typography": "^0.5.2", "deepmerge": "^4.2.2", "eslint-config-next": "^12.0.8", "eslint-config-prettier": "^8.3.0", @@ -22113,86 +40577,433 @@ }, "dependencies": { "@tailwindcss/forms": { - "version": "0.5.0", + "version": "0.5.3", "requires": { "mini-svg-data-uri": "^1.2.3" } }, + "@tailwindcss/typography": { + "version": "0.5.7", + "requires": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + } + }, "tailwindcss-radix": { - "version": "2.2.0" + "version": "2.6.0" } } }, + "configcat-common": { + "version": "5.3.0" + }, + "configcat-js": { + "version": "5.10.0", + "requires": { + "configcat-common": "^5.3.0" + } + }, + "console-browserify": { + "version": "1.2.0", + "devOptional": true + }, + "console-control-strings": { + "version": "1.1.0" + }, + "constants-browserify": { + "version": "1.0.0", + "devOptional": true + }, + "content-disposition": { + "version": "0.5.4", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "dev": true + } + } + }, + "content-type": { + "version": "1.0.4", + "dev": true + }, "convert-source-map": { "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "requires": { "safe-buffer": "~5.1.1" } }, + "cookie": { + "version": "0.4.2" + }, + "cookie-signature": { + "version": "1.0.6", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "devOptional": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "devOptional": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "devOptional": true + }, "copy-to-clipboard": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz", - "integrity": "sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg==", "requires": { "toggle-selection": "^1.0.6" } }, + "core-js": { + "version": "3.25.5", + "dev": true + }, "core-js-compat": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", - "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", + "version": "3.25.5", + "dev": true, "requires": { - "browserslist": "^4.21.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } + "browserslist": "^4.21.4" } }, "core-js-pure": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.24.1.tgz", - "integrity": "sha512-r1nJk41QLLPyozHUUPmILCEMtMw24NG4oWK6RbsDdjzQgg9ZvrUsPBj1MnG0wXXp1DCDU6j+wUvEmBSrtRbLXg==" + "version": "3.25.5" }, "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "version": "1.0.3" + }, + "cosmiconfig": { + "version": "7.0.1", + "dev": true, + "requires": { + "@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" + } + }, + "cp-file": { + "version": "7.0.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "nested-error-stacks": "^2.0.0", + "p-event": "^4.1.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + } + } + }, + "cpy": { + "version": "8.1.2", + "dev": true, + "requires": { + "arrify": "^2.0.1", + "cp-file": "^7.0.0", + "globby": "^9.2.0", + "has-glob": "^1.0.0", + "junk": "^3.1.0", + "nested-error-stacks": "^2.1.0", + "p-all": "^2.1.0", + "p-filter": "^2.1.0", + "p-map": "^3.0.0" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "1.1.3", + "dev": true + }, + "@types/glob": { + "version": "7.2.0", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "array-union": { + "version": "1.0.2", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "braces": { + "version": "2.3.2", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "dir-glob": { + "version": "2.2.2", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "fast-glob": { + "version": "2.2.7", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fill-range": { + "version": "4.0.0", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globby": { + "version": "9.2.0", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + } + }, + "ignore": { + "version": "4.0.6", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "path-type": { + "version": "3.0.0", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "dev": true + } + } + }, + "slash": { + "version": "2.0.0", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "create-ecdh": { + "version": "4.0.4", + "devOptional": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "devOptional": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "devOptional": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "devOptional": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } }, "create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "devOptional": true }, "cross-fetch": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "requires": { "node-fetch": "2.6.7" } }, "cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, + "crypt": { + "version": "0.0.2" + }, + "crypto-browserify": { + "version": "3.12.0", + "devOptional": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-js": { + "version": "4.1.1" + }, "css-blank-pseudo": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", - "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", "dev": true, "requires": { "postcss": "^7.0.5" @@ -22200,14 +41011,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -22216,10 +41023,14 @@ } } }, + "css-box-model": { + "version": "1.2.1", + "requires": { + "tiny-invariant": "^1.0.6" + } + }, "css-has-pseudo": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", - "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", "dev": true, "requires": { "postcss": "^7.0.6", @@ -22228,20 +41039,14 @@ "dependencies": { "cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -22250,8 +41055,6 @@ }, "postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { "cssesc": "^2.0.0", @@ -22261,10 +41064,85 @@ } } }, + "css-loader": { + "version": "3.6.0", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + }, + "json5": { + "version": "1.0.1", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "picocolors": { + "version": "0.2.1", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + }, + "schema-utils": { + "version": "2.7.1", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } + }, "css-prefers-color-scheme": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", - "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", "dev": true, "requires": { "postcss": "^7.0.5" @@ -22272,14 +41150,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -22288,46 +41162,66 @@ } } }, - "css-selector-parser": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", - "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==" + "css-select": { + "version": "4.3.0", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-unit-converter": { + "version": "1.1.2" + }, + "css-what": { + "version": "6.1.0", + "dev": true }, "cssdb": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", - "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", "dev": true }, "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + "version": "3.0.0" + }, + "cssfontparser": { + "version": "1.2.1", + "dev": true }, "cssom": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + "dev": true }, "cssstyle": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, "requires": { "cssom": "~0.3.6" }, "dependencies": { "cssom": { "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + "dev": true } } }, "csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "version": "3.1.1" + }, + "currently-unhandled": { + "version": "0.4.1", + "dev": true, + "optional": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "1.0.1", + "devOptional": true }, "d": { "version": "1.0.1", @@ -22338,15 +41232,61 @@ "type": "^1.0.1" } }, + "d3-array": { + "version": "2.12.1", + "requires": { + "internmap": "^1.0.0" + } + }, + "d3-color": { + "version": "2.0.0" + }, + "d3-format": { + "version": "2.0.0" + }, + "d3-interpolate": { + "version": "2.0.1", + "requires": { + "d3-color": "1 - 2" + } + }, + "d3-path": { + "version": "2.0.0" + }, + "d3-scale": { + "version": "3.3.0", + "requires": { + "d3-array": "^2.3.0", + "d3-format": "1 - 2", + "d3-interpolate": "1.2.0 - 2", + "d3-time": "^2.1.1", + "d3-time-format": "2 - 3" + } + }, + "d3-shape": { + "version": "2.1.0", + "requires": { + "d3-path": "1 - 2" + } + }, + "d3-time": { + "version": "2.1.1", + "requires": { + "d3-array": "2" + } + }, + "d3-time-format": { + "version": "3.0.0", + "requires": { + "d3-time": "1 - 2" + } + }, "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + "version": "1.0.8" }, "data-urls": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, "requires": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", @@ -22354,117 +41294,148 @@ } }, "date-fns": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.10.0.tgz", - "integrity": "sha512-EhfEKevYGWhWlZbNeplfhIU/+N+x0iCIx7VzKlXma2EdQyznVlZhCptXUY+BegNpPW2kjdx15Rvq503YcXXrcA==" + "version": "2.10.0" }, "dayjs": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.5.tgz", - "integrity": "sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==" + "version": "1.11.5" + }, + "debounce-promise": { + "version": "3.1.2" }, "debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2" + } } }, "decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true + "dev": true, + "optional": true }, "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" + "version": "10.4.1", + "dev": true + }, + "decimal.js-light": { + "version": "2.5.1" }, "decode-named-character-reference": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "requires": { "character-entities": "^2.0.0" - }, - "dependencies": { - "character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" - } } }, + "decode-uri-component": { + "version": "0.2.0", + "devOptional": true + }, "dedent": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true }, "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "version": "0.1.4" }, "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + "version": "4.2.2" + }, + "default-browser-id": { + "version": "1.0.4", + "dev": true, + "optional": true, + "requires": { + "bplist-parser": "^0.1.0", + "meow": "^3.1.0", + "untildify": "^2.0.0" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "dev": true }, "define-properties": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "requires": { "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, + "define-property": { + "version": "2.0.2", + "devOptional": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==" + "version": "1.0.0" }, "delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + "dev": true }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + "delegate": { + "version": "3.2.0" + }, + "delegates": { + "version": "1.0.0" + }, + "depd": { + "version": "2.0.0", + "dev": true }, "dequal": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", - "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==" + "version": "2.0.2" + }, + "des.js": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.2.0", + "dev": true }, "detab": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", - "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", "requires": { "repeat-string": "^1.5.4" } }, "detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, "detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + "version": "1.1.0" + }, + "detect-package-manager": { + "version": "2.0.1", + "dev": true, + "requires": { + "execa": "^5.1.1" + } + }, + "detect-port": { + "version": "1.5.1", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "4" + } }, "detective": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", - "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", "requires": { "acorn-node": "^1.8.2", "defined": "^1.0.0", @@ -22472,525 +41443,314 @@ } }, "diacritics-map": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz", - "integrity": "sha512-3omnDTYrGigU0i4cJjvaKwD52B8aoqyX/NEIkukFFkogBemsIbhSa1O414fpTp5nuszJG6lvQ5vBvDVNCbSsaQ==" + "version": "0.1.0" }, "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + "version": "1.2.2" }, "diff": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "devOptional": true }, "diff-sequences": { "version": "25.2.6", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", - "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", "dev": true }, + "diffie-hellman": { + "version": "5.0.3", + "devOptional": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "devOptional": true + } + } + }, "dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "requires": { "path-type": "^4.0.0" } }, "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "version": "1.1.3" }, - "docs": { - "version": "file:apps/temp-docs", + "dnd-core": { + "version": "14.0.1", "requires": { - "@apollo/client": "^3.6.6", - "@mdx-js/loader": "^1.6.22", - "@mdx-js/react": "^1.6.22", - "@next/mdx": "^12.0.4", - "@supabase/ui": "v0.37.0-alpha.50", - "@tailwindcss/typography": "^0.4.1", - "@types/node": "^17.0.12", - "@types/react": "17.0.39", - "common": "*", - "config": "*", - "eslint": "8.9.0", - "graphql": "^16.5.0", - "gray-matter": "^4.0.3", - "markdown-toc": "^1.2.0", - "next": "12.1.0", - "next-mdx-remote": "^3.0.8", - "next-themes": "0.0.15", - "next-transpile-modules": "9.0.0", - "react": "17.0.2", - "react-copy-to-clipboard": "^5.0.2", - "react-dom": "17.0.2", - "react-markdown": "^8.0.3", - "react-syntax-highlighter": "^15.3.1", - "remark": "^14.0.2", - "remark-html": "^15.0.0", - "remark-mdx": "^2.0.0-rc.2", - "remark-prism": "^1.3.6", - "tsconfig": "*", - "typescript": "^4.5.3" - }, - "dependencies": { - "@mdx-js/react": { - "version": "1.6.22", - "requires": {} - }, - "@next/mdx": { - "version": "12.1.5", - "requires": {} - }, - "@tailwindcss/typography": { - "version": "0.4.1", - "requires": { - "lodash.castarray": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0" - } - }, - "@types/node": { - "version": "17.0.27", - "dev": true - }, - "bail": { - "version": "2.0.2" - }, - "ccount": { - "version": "2.0.1" - }, - "character-entities-html4": { - "version": "2.1.0" - }, - "character-entities-legacy": { - "version": "3.0.0" - }, - "comma-separated-tokens": { - "version": "2.0.2" - }, - "find-up": { - "version": "5.0.0", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "hast-util-is-element": { - "version": "2.1.2", - "requires": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0" - } - }, - "hast-util-sanitize": { - "version": "4.0.0", - "requires": { - "@types/hast": "^2.0.0" - } - }, - "hast-util-to-html": { - "version": "8.0.3", - "requires": { - "@types/hast": "^2.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-is-element": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "html-void-elements": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.2", - "unist-util-is": "^5.0.0" - } - }, - "html-void-elements": { - "version": "2.0.1" - }, - "is-plain-obj": { - "version": "4.0.0" - }, - "locate-path": { - "version": "6.0.0", - "requires": { - "p-locate": "^5.0.0" - } - }, - "longest-streak": { - "version": "3.0.1" - }, - "mdast-util-definitions": { - "version": "5.1.0", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^3.0.0" - }, - "dependencies": { - "unist-util-visit": { - "version": "3.1.0", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^4.0.0" - } - }, - "unist-util-visit-parents": { - "version": "4.1.1", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - } - } - }, - "mdast-util-to-hast": { - "version": "12.1.1", - "requires": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/mdurl": "^1.0.0", - "mdast-util-definitions": "^5.0.0", - "mdurl": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "unist-builder": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - } - }, - "mdast-util-to-markdown": { - "version": "1.3.0", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" - } - }, - "mdast-util-to-string": { - "version": "3.1.0" - }, - "next-mdx-remote": { - "version": "3.0.8", - "requires": { - "@mdx-js/mdx": "^1.6.22", - "@mdx-js/react": "^1.6.22", - "esbuild": "^0.12.9", - "pkg-dir": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "requires": { - "p-limit": "^3.0.2" - } - }, - "pkg-dir": { - "version": "5.0.0", - "requires": { - "find-up": "^5.0.0" - } - }, - "property-information": { - "version": "6.1.1" - }, - "remark": { - "version": "14.0.2", - "requires": { - "@types/mdast": "^3.0.0", - "remark-parse": "^10.0.0", - "remark-stringify": "^10.0.0", - "unified": "^10.0.0" - } - }, - "remark-html": { - "version": "15.0.1", - "requires": { - "@types/mdast": "^3.0.0", - "hast-util-sanitize": "^4.0.0", - "hast-util-to-html": "^8.0.0", - "mdast-util-to-hast": "^12.0.0", - "unified": "^10.0.0" - } - }, - "remark-mdx": { - "version": "2.1.1", - "requires": { - "mdast-util-mdx": "^2.0.0", - "micromark-extension-mdxjs": "^1.0.0" - } - }, - "remark-parse": { - "version": "10.0.1", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - } - }, - "remark-stringify": { - "version": "10.0.2", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0", - "unified": "^10.0.0" - } - }, - "space-separated-tokens": { - "version": "2.0.1" - }, - "stringify-entities": { - "version": "4.0.2", - "requires": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - } - }, - "trough": { - "version": "2.1.0" - }, - "unified": { - "version": "10.1.2", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "unist-builder": { - "version": "3.0.0", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-generated": { - "version": "2.0.0" - }, - "unist-util-is": { - "version": "5.1.1" - }, - "unist-util-position": { - "version": "4.0.3", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-stringify-position": { - "version": "3.0.2", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-visit": { - "version": "4.1.0", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - } - }, - "unist-util-visit-parents": { - "version": "5.1.0", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - }, - "vfile": { - "version": "5.3.2", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.1.2", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - }, - "zwitch": { - "version": "2.0.2" - } + "@react-dnd/asap": "^4.0.0", + "@react-dnd/invariant": "^2.0.0", + "redux": "^4.1.1" } }, "doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "requires": { "esutils": "^2.0.2" } }, + "dom-accessibility-api": { + "version": "0.5.14", + "dev": true + }, + "dom-converter": { + "version": "0.2.0", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, "dom-helpers": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", "requires": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, + "dom-serializer": { + "version": "1.4.1", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "dom-walk": { + "version": "0.1.2", + "dev": true + }, "dom7": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz", - "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", "requires": { "ssr-window": "^3.0.0-alpha.1" } }, + "domain-browser": { + "version": "1.2.0", + "devOptional": true + }, + "domelementtype": { + "version": "2.3.0", + "dev": true + }, "domexception": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, "requires": { "webidl-conversions": "^5.0.0" }, "dependencies": { "webidl-conversions": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + "dev": true } } }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true - }, - "ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "domhandler": { + "version": "4.3.1", "dev": true, "requires": { - "jake": "^10.8.5" + "domelementtype": "^2.2.0" } }, + "domutils": { + "version": "2.8.0", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-case": { + "version": "3.0.4", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dotenv": { + "version": "8.6.0", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "dev": true + }, + "duplexer": { + "version": "0.1.2" + }, + "duplexify": { + "version": "3.7.1", + "devOptional": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ee-first": { + "version": "1.1.1", + "dev": true + }, "electron-to-chromium": { - "version": "1.4.217", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.217.tgz", - "integrity": "sha512-iX8GbAMij7cOtJPZo02CClpaPMWjvN5meqXiJXkBgwvraNWTNH0Z7F9tkznI34JRPtWASoPM/xWamq3oNb49GA==" + "version": "1.4.275" + }, + "elliptic": { + "version": "6.5.4", + "devOptional": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "devOptional": true + } + } }, "emittery": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", "dev": true }, "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "version": "9.2.2" }, "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + "version": "3.0.0" + }, + "encodeurl": { + "version": "1.0.2", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "devOptional": true, + "requires": { + "once": "^1.4.0" + } + }, + "endent": { + "version": "2.1.0", + "dev": true, + "requires": { + "dedent": "^0.7.0", + "fast-json-parse": "^1.0.3", + "objectorarray": "^1.0.5" + } }, "enhanced-resolve": { "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "devOptional": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" + }, + "dependencies": { + "tapable": { + "version": "2.2.1" + } } }, "enquirer": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, "requires": { "ansi-colors": "^4.1.1" } }, + "entities": { + "version": "2.2.0", + "dev": true + }, + "errno": { + "version": "0.1.8", + "devOptional": true, + "requires": { + "prr": "~1.0.1" + } + }, "error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, + "error-stack-parser": { + "version": "2.1.4", + "dev": true, + "requires": { + "stackframe": "^1.3.4" + } + }, "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.20.4", "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", "string.prototype.trimend": "^1.0.5", "string.prototype.trimstart": "^1.0.5", "unbox-primitive": "^1.0.2" } }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "devOptional": true, - "peer": true + "es-array-method-boxes-properly": { + "version": "1.0.0", + "dev": true + }, + "es-get-iterator": { + "version": "1.1.2", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + } }, "es-shim-unscopables": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", "requires": { "has": "^1.0.3" } }, "es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -23007,6 +41767,10 @@ "next-tick": "^1.1.0" } }, + "es5-shim": { + "version": "4.6.7", + "dev": true + }, "es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", @@ -23017,6 +41781,10 @@ "es6-symbol": "^3.1.1" } }, + "es6-shim": { + "version": "0.35.6", + "dev": true + }, "es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", @@ -23026,262 +41794,238 @@ "ext": "^1.1.2" } }, - "esbuild": { - "version": "0.12.29", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.29.tgz", - "integrity": "sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==" - }, "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "version": "3.1.1" }, "escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "dev": true }, "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "version": "1.0.5" }, "escodegen": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, "requires": { "esprima": "^4.0.1", "estraverse": "^5.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "requires": { - "prelude-ls": "~1.1.2" - } - } } }, "eslint": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.9.0.tgz", - "integrity": "sha512-PB09IGwv4F4b0/atrbcMFboF/giawbBLVC7fyDamk5Wtey4Jh2K+rYaBhCAbUyEI4QzB1ly09Uglc9iCtFaG2Q==", + "version": "7.32.0", "requires": { - "@eslint/eslintrc": "^1.1.0", - "@humanwhocodes/config-array": "^0.9.2", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.3.2", + "debug": "^4.0.1", "doctrine": "^3.0.0", + "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", + "glob-parent": "^5.1.2", "globals": "^13.6.0", - "ignore": "^5.2.0", + "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "0.4.3", "requires": { "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } }, "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.5.0", "requires": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", "minimatch": "^3.0.4" } }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" + "ajv": { + "version": "6.12.6", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "color-convert": { + "version": "2.0.1", "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "color-name": "~1.1.4" } }, + "color-name": { + "version": "1.1.4" + }, + "escape-string-regexp": { + "version": "4.0.0" + }, "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "version": "2.1.0", "requires": { - "eslint-visitor-keys": "^2.0.0" + "eslint-visitor-keys": "^1.1.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + "version": "1.3.0" } } }, "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" + "version": "2.1.0" }, "espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "version": "7.3.1", "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0" + } } }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "version": "5.1.2", "requires": { - "is-glob": "^4.0.3" + "is-glob": "^4.0.1" } }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "globals": { + "version": "13.17.0", "requires": { - "argparse": "^2.0.1" + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0" + }, + "ignore": { + "version": "4.0.6" + }, + "json-schema-traverse": { + "version": "0.4.1" + }, + "optionator": { + "version": "0.9.1", + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "semver": { + "version": "7.3.8", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "requires": { + "has-flag": "^4.0.0" } } } }, - "eslint-config-next": { - "version": "12.2.5", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-12.2.5.tgz", - "integrity": "sha512-SOowilkqPzW6DxKp3a3SYlrfPi5Ajs9MIzp9gVfUDxxH9QFM5ElkR1hX5m/iICJuvCbWgQqFBiA3mCMozluniw==", + "eslint-config-custom": { + "version": "0.0.0", + "dev": true, "requires": { - "@next/eslint-plugin-next": "12.2.5", + "eslint-config-next": "^12.0.8", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-react": "7.28.0" + } + }, + "eslint-config-next": { + "version": "12.3.1", + "requires": { + "@next/eslint-plugin-next": "12.3.1", "@rushstack/eslint-patch": "^1.1.3", "@typescript-eslint/parser": "^5.21.0", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^2.7.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.29.4", + "eslint-plugin-react": "^7.31.7", "eslint-plugin-react-hooks": "^4.5.0" }, "dependencies": { "doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { "esutils": "^2.0.2" } }, "eslint-plugin-react": { - "version": "7.30.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", - "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", + "version": "7.31.8", "requires": { "array-includes": "^3.1.5", "array.prototype.flatmap": "^1.3.0", @@ -23299,15 +42043,8 @@ "string.prototype.matchall": "^4.0.7" } }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, "resolve": { "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "requires": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -23318,14 +42055,10 @@ }, "eslint-config-prettier": { "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", - "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", "requires": {} }, "eslint-import-resolver-node": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "requires": { "debug": "^3.2.7", "resolve": "^1.20.0" @@ -23333,8 +42066,6 @@ "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "requires": { "ms": "^2.1.1" } @@ -23343,8 +42074,6 @@ }, "eslint-import-resolver-typescript": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-2.7.1.tgz", - "integrity": "sha512-00UbgGwV8bSgUv34igBDbTOtKhqoRMy9bFjNehT40bXg6585PNIct8HhXZ0SybqB9rWtXj9crcku8ndDn/gIqQ==", "requires": { "debug": "^4.3.4", "glob": "^7.2.0", @@ -23355,16 +42084,12 @@ }, "eslint-module-utils": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "requires": { "debug": "^3.2.7" }, "dependencies": { "debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "requires": { "ms": "^2.1.1" } @@ -23373,8 +42098,6 @@ }, "eslint-plugin-import": { "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", "requires": { "array-includes": "^3.1.4", "array.prototype.flat": "^1.2.5", @@ -23393,31 +42116,23 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } }, "doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { "esutils": "^2.0.2" } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "version": "2.0.0" } } }, "eslint-plugin-jsx-a11y": { "version": "6.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", - "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", "requires": { "@babel/runtime": "^7.18.9", "aria-query": "^4.2.2", @@ -23432,12 +42147,19 @@ "language-tags": "^1.0.5", "minimatch": "^3.1.2", "semver": "^6.3.0" + }, + "dependencies": { + "aria-query": { + "version": "4.2.2", + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + } } }, "eslint-plugin-react": { "version": "7.28.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz", - "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==", "requires": { "array-includes": "^3.1.4", "array.prototype.flatmap": "^1.2.5", @@ -23457,21 +42179,12 @@ "dependencies": { "doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { "esutils": "^2.0.2" } }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, "resolve": { "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "requires": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -23482,119 +42195,151 @@ }, "eslint-plugin-react-hooks": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "requires": {} }, "eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "devOptional": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" + }, + "dependencies": { + "estraverse": { + "version": "4.3.0" + } } }, "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "version": "3.0.0", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "version": "2.1.0", "dev": true } } }, "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true + "version": "3.3.0" }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "version": "9.4.0", "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" }, "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "acorn": { + "version": "8.8.0", "dev": true } } }, "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "version": "4.0.1" }, "esquery": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "requires": { "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - } } }, "esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "requires": { "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - } } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "devOptional": true + "version": "5.3.0" + }, + "estree-to-babel": { + "version": "3.2.1", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.6", + "@babel/types": "^7.2.0", + "c8": "^7.6.0" + } + }, + "estree-util-attach-comments": { + "version": "2.1.0", + "requires": { + "@types/estree": "^1.0.0" + }, + "dependencies": { + "@types/estree": { + "version": "1.0.0" + } + } + }, + "estree-util-build-jsx": { + "version": "2.2.0", + "requires": { + "@types/estree-jsx": "^1.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "estree-walker": "^3.0.0" + } + }, + "estree-util-is-identifier-name": { + "version": "2.0.1" + }, + "estree-util-to-js": { + "version": "1.1.0", + "requires": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "dependencies": { + "source-map": { + "version": "0.7.4" + } + } + }, + "estree-util-visit": { + "version": "1.2.0", + "requires": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^2.0.0" + } + }, + "estree-walker": { + "version": "3.0.1" }, "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "version": "2.0.3" + }, + "etag": { + "version": "1.8.1", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7" }, "events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "devOptional": true + }, + "evp_bytestokey": { + "version": "1.0.3", "devOptional": true, - "peer": true + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.3.6", + "dev": true }, "execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", @@ -23608,24 +42353,99 @@ "strip-final-newline": "^2.0.0" } }, + "exenv": { + "version": "1.2.2" + }, "exit": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true }, + "expand-brackets": { + "version": "2.1.4", + "devOptional": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "devOptional": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "devOptional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "devOptional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "devOptional": true + }, + "ms": { + "version": "2.0.0", + "devOptional": true + } + } + }, "expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", "requires": { "fill-range": "^2.1.0" }, "dependencies": { "fill-range": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "requires": { "is-number": "^2.1.0", "isobject": "^2.0.0", @@ -23635,14 +42455,10 @@ } }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "version": "1.0.0" }, "isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "requires": { "isarray": "1.0.0" } @@ -23651,22 +42467,146 @@ }, "expect": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", "dev": true, "requires": { "@jest/types": "^27.5.1", "jest-get-type": "^27.5.1", "jest-matcher-utils": "^27.5.1", "jest-message-util": "^27.5.1" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "express": { + "version": "4.18.1", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.5.0", + "dev": true + }, + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "dev": true + }, + "qs": { + "version": "6.10.3", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "safe-buffer": { + "version": "5.2.1", + "dev": true + } } }, "ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "requires": { - "type": "^2.5.0" + "type": "^2.7.2" }, "dependencies": { "type": { @@ -23677,189 +42617,386 @@ } }, "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "version": "3.0.2" }, "extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "requires": { "is-extendable": "^0.1.0" } }, - "faker": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", - "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==", - "dev": true + "extglob": { + "version": "2.0.4", + "devOptional": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "devOptional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } }, "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==" + "version": "3.1.3" + }, + "fast-equals": { + "version": "2.0.4" }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "requires": { + "is-glob": "^4.0.1" + } + } } }, + "fast-json-parse": { + "version": "1.0.3", + "dev": true + }, "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "version": "2.1.0" }, "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "version": "2.0.6" }, "fastq": { "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "requires": { "reusify": "^1.0.4" } }, "fault": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", "requires": { "format": "^0.2.0" } }, "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", "dev": true, "requires": { "bser": "2.1.1" } }, + "fetch-retry": { + "version": "5.0.3", + "dev": true + }, + "figgy-pudding": { + "version": "3.5.2", + "devOptional": true + }, "file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "requires": { "flat-cache": "^3.0.4" } }, "file-loader": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", "dev": true, "requires": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" + } + }, + "file-saver": { + "version": "2.0.5" + }, + "file-system-cache": { + "version": "1.1.0", + "dev": true, + "requires": { + "fs-extra": "^10.1.0", + "ramda": "^0.28.0" }, "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "fs-extra": { + "version": "10.1.0", "dev": true, "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" } } } }, - "filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "file-uri-to-path": { + "version": "1.0.0", "dev": true, - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } + "optional": true }, "fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "requires": { "to-regex-range": "^5.0.1" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "finalhandler": { + "version": "1.2.0", "dev": true, "requires": { - "locate-path": "^5.0.0", + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "devOptional": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "devOptional": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "devOptional": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "devOptional": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "devOptional": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "devOptional": true + }, + "pkg-dir": { + "version": "3.0.0", + "devOptional": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "find-up": { + "version": "5.0.0", + "dev": true, + "requires": { + "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" } }, "flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==" + "version": "3.2.7" }, "flatten": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", "dev": true }, + "flush-write-stream": { + "version": "1.1.1", + "devOptional": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "focus-lock": { + "version": "0.8.1", + "dev": true, + "requires": { + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "dev": true + } + } + }, "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "dev": true + "version": "1.15.2" }, "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" + "version": "1.0.2" + }, + "foreground-child": { + "version": "2.0.0", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + } + }, + "fork-ts-checker-webpack-plugin": { + "version": "6.5.2", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "dev": true, + "requires": {} + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "cosmiconfig": { + "version": "6.0.0", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + }, + "schema-utils": { + "version": "2.7.0", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "semver": { + "version": "7.3.8", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } }, "form-data": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -23867,14 +43004,10 @@ } }, "format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==" + "version": "0.2.2" }, "formik": { "version": "2.2.9", - "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", - "integrity": "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==", "requires": { "deepmerge": "^2.1.1", "hoist-non-react-statics": "^3.3.0", @@ -23886,258 +43019,82 @@ }, "dependencies": { "deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" + "version": "2.2.1" }, "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "version": "1.14.1" } } }, - "forum": { - "version": "file:apps/temp-community-forum", - "requires": { - "@octokit/graphql": "^4.8.0", - "@types/node": "^17.0.12", - "@types/react": "17.0.37", - "common": "*", - "config": "*", - "eslint": "7.32.0", - "next": "12.0.8", - "next-transpile-modules": "9.0.0", - "react": "17.0.2", - "react-dom": "17.0.2", - "tsconfig": "*", - "typescript": "^4.5.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/types": { - "version": "7.15.0", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@types/node": { - "version": "17.0.27" - }, - "@types/react": { - "version": "17.0.37", - "dev": true, - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "colorette": { - "version": "1.4.0" - }, - "convert-source-map": { - "version": "1.7.0", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "emojis-list": { - "version": "2.1.0" - }, - "eslint": { - "version": "7.32.0", - "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - } - }, - "jest-worker": { - "version": "27.0.0-next.5", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", - "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "json5": { - "version": "1.0.1", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.2.3", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "next": { - "version": "12.0.8", - "requires": { - "@next/env": "12.0.8", - "@next/react-refresh-utils": "12.0.8", - "@next/swc-android-arm64": "12.0.8", - "@next/swc-darwin-arm64": "12.0.8", - "@next/swc-darwin-x64": "12.0.8", - "@next/swc-linux-arm-gnueabihf": "12.0.8", - "@next/swc-linux-arm64-gnu": "12.0.8", - "@next/swc-linux-arm64-musl": "12.0.8", - "@next/swc-linux-x64-gnu": "12.0.8", - "@next/swc-linux-x64-musl": "12.0.8", - "@next/swc-win32-arm64-msvc": "12.0.8", - "@next/swc-win32-ia32-msvc": "12.0.8", - "@next/swc-win32-x64-msvc": "12.0.8", - "caniuse-lite": "^1.0.30001283", - "jest-worker": "27.0.0-next.5", - "node-fetch": "2.6.1", - "postcss": "8.2.15", - "react-is": "17.0.2", - "react-refresh": "0.8.3", - "stream-browserify": "3.0.0", - "styled-jsx": "5.0.0-beta.6", - "use-subscription": "1.5.1" - }, - "dependencies": { - "source-map": { - "version": "0.7.3" - }, - "styled-jsx": { - "version": "5.0.0-beta.6", - "requires": { - "@babel/plugin-syntax-jsx": "7.14.5", - "@babel/types": "7.15.0", - "convert-source-map": "1.7.0", - "loader-utils": "1.2.3", - "source-map": "0.7.3", - "string-hash": "1.1.3", - "stylis": "3.5.4", - "stylis-rule-sheet": "0.0.10" - } - } - } - }, - "node-fetch": { - "version": "2.6.1" - }, - "postcss": { - "version": "8.2.15", - "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map": "^0.6.1" - } - }, - "semver": { - "version": "7.3.7", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } + "forwarded": { + "version": "0.2.0", + "dev": true }, "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + "version": "4.2.0" + }, + "fragment-cache": { + "version": "0.2.1", + "devOptional": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "dev": true + }, + "from2": { + "version": "2.3.0", + "devOptional": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "9.1.0", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "dev": true + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "devOptional": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } }, "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "version": "1.0.0" }, "fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.1" }, "function.prototype.name": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -24146,30 +43103,61 @@ } }, "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" + "version": "1.0.1" }, "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" + "version": "1.2.3" + }, + "gauge": { + "version": "2.7.4", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "generate-password": { + "version": "1.7.0" }, "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "version": "1.0.0-beta.2" }, "get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "version": "1.1.3", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -24177,40 +43165,37 @@ } }, "get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" + "version": "1.0.1" }, "get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, + "get-stdin": { + "version": "4.0.1", + "dev": true, + "optional": true + }, "get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, "get-symbol-description": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", "requires": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" } }, + "get-value": { + "version": "2.0.6", + "devOptional": true + }, "github-slugger": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", - "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==" + "version": "1.4.0" }, "glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -24221,39 +43206,42 @@ } }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" + } + }, + "glob-promise": { + "version": "3.4.0", + "dev": true, + "requires": { + "@types/glob": "*" } }, "glob-to-regexp": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "devOptional": true, - "peer": true + "dev": true + }, + "global": { + "version": "4.4.0", + "dev": true, + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } }, "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "11.12.0" + }, + "globalthis": { + "version": "1.0.3", + "dev": true, "requires": { - "type-fest": "^0.20.2" - }, - "dependencies": { - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - } + "define-properties": "^1.1.3" } }, "globby": { "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", "requires": { "array-union": "^3.0.1", "dir-glob": "^3.0.1", @@ -24263,41 +43251,30 @@ "slash": "^4.0.0" }, "dependencies": { - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + "version": "4.0.0" } } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "devOptional": true + "goober": { + "version": "2.1.11", + "requires": {} }, - "graphql": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.5.0.tgz", - "integrity": "sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA==" - }, - "graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "good-listener": { + "version": "1.2.2", "requires": { - "tslib": "^2.1.0" + "delegate": "^3.1.2" } }, + "graceful-fs": { + "version": "4.2.10" + }, + "grapheme-splitter": { + "version": "1.0.4", + "dev": true + }, "gray-matter": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", "requires": { "js-yaml": "^3.13.1", "kind-of": "^6.0.2", @@ -24307,57 +43284,151 @@ }, "gulp-header": { "version": "1.8.12", - "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz", - "integrity": "sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==", "requires": { "concat-with-sourcemaps": "*", "lodash.template": "^4.4.0", "through2": "^2.0.0" } }, + "gzip-size": { + "version": "6.0.0", + "requires": { + "duplexer": "^0.1.2" + } + }, + "handlebars": { + "version": "4.7.7", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, "has": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { "function-bind": "^1.1.1" } }, "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" + "version": "1.0.2" }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "version": "3.0.0" + }, + "has-glob": { + "version": "1.0.0", + "dev": true, + "requires": { + "is-glob": "^3.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } }, "has-property-descriptors": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", "requires": { "get-intrinsic": "^1.1.1" } }, "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "version": "1.0.3" }, "has-tostringtag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "requires": { "has-symbols": "^1.0.2" } }, + "has-unicode": { + "version": "2.0.1" + }, + "has-value": { + "version": "1.0.0", + "devOptional": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "devOptional": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "devOptional": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "devOptional": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "devOptional": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "devOptional": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, "hast-to-hyperscript": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", - "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", "requires": { "@types/unist": "^2.0.3", "comma-separated-tokens": "^1.0.0", @@ -24366,12 +43437,27 @@ "style-to-object": "^0.3.0", "unist-util-is": "^4.0.0", "web-namespaces": "^1.0.0" + }, + "dependencies": { + "comma-separated-tokens": { + "version": "1.0.8" + }, + "property-information": { + "version": "5.6.0", + "requires": { + "xtend": "^4.0.0" + } + }, + "space-separated-tokens": { + "version": "1.1.5" + }, + "unist-util-is": { + "version": "4.1.0" + } } }, "hast-util-from-parse5": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", - "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", "requires": { "@types/parse5": "^5.0.0", "hastscript": "^6.0.0", @@ -24379,32 +43465,65 @@ "vfile": "^4.0.0", "vfile-location": "^3.2.0", "web-namespaces": "^1.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5" + }, + "property-information": { + "version": "5.6.0", + "requires": { + "xtend": "^4.0.0" + } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "requires": { + "@types/unist": "^2.0.2" + } + }, + "vfile": { + "version": "4.2.1", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-location": { + "version": "3.2.0" + }, + "vfile-message": { + "version": "2.0.4", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + } } }, "hast-util-has-property": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz", - "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==" + "version": "2.0.0" }, "hast-util-heading-rank": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-1.0.1.tgz", - "integrity": "sha512-P6Hq7RCky9syMevlrN90QWpqWDXCxwIVOfQR2rK6P4GpY4bqjKEuCzoWSRORZ7vz+VgRpLnXimh+mkwvVFjbyQ==" + "version": "2.1.0", + "requires": { + "@types/hast": "^2.0.0" + } }, "hast-util-is-element": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", - "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==" + "version": "2.1.2", + "requires": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0" + } }, "hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" + "version": "2.2.5" }, "hast-util-raw": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", - "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", "requires": { "@types/hast": "^2.0.0", "hast-util-from-parse5": "^6.0.0", @@ -24418,142 +43537,283 @@ "zwitch": "^1.0.0" }, "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "html-void-elements": { + "version": "1.0.5" + }, + "is-buffer": { + "version": "2.0.5" + }, + "unist-util-position": { + "version": "3.1.0" + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "requires": { + "@types/unist": "^2.0.2" + } + }, + "vfile": { + "version": "4.2.1", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-message": { + "version": "2.0.4", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + }, + "zwitch": { + "version": "1.0.5" } } }, "hast-util-sanitize": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-2.0.3.tgz", - "integrity": "sha512-RILqWHmzU0Anmfw1KEP41LbCsJuJUVM0lQWAbTDk9+0bWqzRFXDaMdqIoRocLlOfR5NfcWyhFfZw/mGsuftwYA==", + "version": "4.0.0", "requires": { - "xtend": "^4.0.0" + "@types/hast": "^2.0.0" + } + }, + "hast-util-to-estree": { + "version": "2.1.0", + "requires": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "estree-util-attach-comments": "^2.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "mdast-util-mdx-expression": "^1.0.0", + "mdast-util-mdxjs-esm": "^1.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.3.0", + "unist-util-position": "^4.0.0", + "zwitch": "^2.0.0" + }, + "dependencies": { + "@types/estree": { + "version": "1.0.0" + } } }, "hast-util-to-html": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-6.1.0.tgz", - "integrity": "sha512-IlC+LG2HGv0Y8js3wqdhg9O2sO4iVpRDbHOPwXd7qgeagpGsnY49i8yyazwqS35RA35WCzrBQE/n0M6GG/ewxA==", + "version": "8.0.3", "requires": { - "ccount": "^1.0.0", - "comma-separated-tokens": "^1.0.1", - "hast-util-is-element": "^1.0.0", - "hast-util-whitespace": "^1.0.0", - "html-void-elements": "^1.0.0", - "property-information": "^5.2.0", - "space-separated-tokens": "^1.0.0", - "stringify-entities": "^2.0.0", - "unist-util-is": "^3.0.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "hast-util-whitespace": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz", - "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==" - }, - "unist-util-is": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", - "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" - } + "@types/hast": "^2.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "html-void-elements": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.2", + "unist-util-is": "^5.0.0" } }, "hast-util-to-parse5": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", - "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", "requires": { "hast-to-hyperscript": "^9.0.0", "property-information": "^5.0.0", "web-namespaces": "^1.0.0", "xtend": "^4.0.0", "zwitch": "^1.0.0" + }, + "dependencies": { + "property-information": { + "version": "5.6.0", + "requires": { + "xtend": "^4.0.0" + } + }, + "zwitch": { + "version": "1.0.5" + } } }, "hast-util-to-string": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz", - "integrity": "sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==" + "version": "2.0.0", + "requires": { + "@types/hast": "^2.0.0" + } }, "hast-util-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", - "integrity": "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==" + "version": "2.0.0" }, "hastscript": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", "requires": { "@types/hast": "^2.0.0", "comma-separated-tokens": "^1.0.0", "hast-util-parse-selector": "^2.0.0", "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0" - } - }, - "highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" }, "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "comma-separated-tokens": { + "version": "1.0.8" + }, + "property-information": { + "version": "5.6.0", + "requires": { + "xtend": "^4.0.0" + } + }, + "space-separated-tokens": { + "version": "1.1.5" } } }, + "he": { + "version": "1.2.0", + "dev": true + }, + "highlight.js": { + "version": "10.7.3" + }, + "hmac-drbg": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "requires": { + "react-is": "^16.7.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "dev": true + }, "html-encoding-sniffer": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, "requires": { "whatwg-encoding": "^1.0.5" } }, + "html-entities": { + "version": "2.3.3", + "dev": true + }, "html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-minifier-terser": { + "version": "5.1.1", + "dev": true, + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "dev": true + } + } + }, + "html-tags": { + "version": "3.2.0", "dev": true }, "html-to-image": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/html-to-image/-/html-to-image-1.10.1.tgz", - "integrity": "sha512-gFXnnC3HyPKlcmP3kPJ7ffOWJ4kUL3YqssrqVJ4LsczIzEvFyxa6mJKaQfew646raOUrwbKs9KrjcNb9zJ35gQ==" + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/html-to-image/-/html-to-image-1.10.8.tgz", + "integrity": "sha512-t+JyFJwKDCp4ZwBp4iC/wqw0meQDDc77Qs8OFl5P7RGlIP3LQMvwpD7VXxqQfC7/TfC+GKYlFP6WDYfXTmXHfw==" }, "html-void-elements": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==" + "version": "2.0.1" + }, + "html-webpack-plugin": { + "version": "4.5.2", + "dev": true, + "requires": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "htmlparser2": { + "version": "6.1.0", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "http-errors": { + "version": "2.0.0", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } }, "http-proxy-agent": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, "requires": { "@tootallnate/once": "1", "agent-base": "6", "debug": "4" } }, + "https-browserify": { + "version": "1.0.0", + "devOptional": true + }, "https-proxy-agent": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "requires": { "agent-base": "6", "debug": "4" @@ -24561,238 +43821,331 @@ }, "human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, "iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, + "icss-utils": { + "version": "4.1.1", + "dev": true, + "requires": { + "postcss": "^7.0.14" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "ieee754": { + "version": "1.2.1", + "devOptional": true + }, + "iferr": { + "version": "0.1.5", + "devOptional": true + }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true + "version": "5.2.0" + }, + "immediate": { + "version": "3.0.6" + }, + "immutability-helper": { + "version": "3.1.1" }, "immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", - "optional": true, - "peer": true + "version": "4.1.0" }, "import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "dependencies": { "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "version": "4.0.0" } } }, "import-local": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } } }, "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + "version": "0.1.4" + }, + "indent-string": { + "version": "4.0.0", + "dev": true }, "indexes-of": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", "dev": true }, + "infer-owner": { + "version": "1.0.4", + "devOptional": true + }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "version": "2.0.4" }, "inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + "version": "0.1.1" }, "internal-slot": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "requires": { "get-intrinsic": "^1.1.0", "has": "^1.0.3", "side-channel": "^1.0.4" } }, + "internmap": { + "version": "1.0.1" + }, + "interpret": { + "version": "2.2.0", + "dev": true + }, "invariant": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { "loose-envify": "^1.0.0" } }, + "ip": { + "version": "2.0.0", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "dev": true + }, + "is-absolute-url": { + "version": "3.0.3", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "devOptional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + "version": "1.0.4" }, "is-alphanumerical": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "requires": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" } }, + "is-arguments": { + "version": "1.1.1", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, "is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, "is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "requires": { "has-bigints": "^1.0.1" } }, "is-binary-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "requires": { "binary-extensions": "^2.0.0" } }, "is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + "version": "1.1.6" }, "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + "version": "1.2.7" + }, + "is-ci": { + "version": "2.0.0", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "dev": true + } + } }, "is-core-module": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "requires": { "has": "^1.0.3" } }, + "is-data-descriptor": { + "version": "1.0.0", + "devOptional": true, + "requires": { + "kind-of": "^6.0.0" + } + }, "is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "requires": { "has-tostringtag": "^1.0.0" } }, "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + "version": "1.0.4" + }, + "is-descriptor": { + "version": "1.0.2", + "devOptional": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-docker": { + "version": "2.2.1", + "dev": true + }, + "is-dom": { + "version": "1.1.0", + "dev": true, + "requires": { + "is-object": "^1.0.1", + "is-window": "^1.0.2" + } }, "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + "version": "0.1.1" }, "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "version": "2.1.1" + }, + "is-finite": { + "version": "1.1.0", + "dev": true, + "optional": true }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "3.0.0" + }, + "is-function": { + "version": "1.0.2", "dev": true }, "is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true }, "is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" } }, "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + "version": "1.0.4" + }, + "is-map": { + "version": "2.0.2", + "dev": true }, "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" + "version": "2.0.2" }, "is-number": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", "requires": { "kind-of": "^3.0.2" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "requires": { "is-buffer": "^1.1.5" } @@ -24801,109 +44154,126 @@ }, "is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "requires": { "has-tostringtag": "^1.0.0" } }, + "is-object": { + "version": "1.0.2", + "dev": true + }, "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + "version": "2.1.0" }, "is-plain-object": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + "dev": true }, "is-potential-custom-element-name": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + "dev": true + }, + "is-reference": { + "version": "3.0.0", + "requires": { + "@types/estree": "*" + } }, "is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, + "is-retry-allowed": { + "version": "2.2.0" + }, + "is-set": { + "version": "2.0.2", + "dev": true + }, "is-shared-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "requires": { "call-bind": "^1.0.2" } }, "is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "requires": { "has-tostringtag": "^1.0.0" } }, "is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "requires": { "has-symbols": "^1.0.2" } }, "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "version": "1.0.0" + }, + "is-utf8": { + "version": "0.2.1", + "dev": true, + "optional": true }, "is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "requires": { "call-bind": "^1.0.2" } }, "is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" + "version": "1.0.4" + }, + "is-window": { + "version": "1.0.2", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "devOptional": true }, "is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" + "version": "1.0.4" + }, + "is-wsl": { + "version": "2.2.0", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "2.0.5", + "dev": true }, "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "version": "2.0.0" }, "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + "version": "3.0.1" + }, + "isomorphic-unfetch": { + "version": "3.1.0", + "dev": true, + "requires": { + "node-fetch": "^2.6.1", + "unfetch": "^4.2.0" + } }, "istanbul-lib-coverage": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "version": "5.2.1", "dev": true, "requires": { "@babel/core": "^7.12.3", @@ -24915,19 +44285,35 @@ }, "istanbul-lib-report": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "requires": { "debug": "^4.1.1", @@ -24937,42 +44323,26 @@ }, "istanbul-reports": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, - "jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "iterate-iterator": { + "version": "1.0.2", + "dev": true + }, + "iterate-value": { + "version": "1.0.2", "dev": true, "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - } + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" } }, "jest": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", "dev": true, "requires": { "@jest/core": "^27.5.1", @@ -24980,21 +44350,100 @@ "jest-cli": "^27.5.1" } }, + "jest-allure2-adapter": { + "version": "0.3.11", + "dev": true, + "requires": { + "@types/allure-js-commons": "^0.0.1", + "@types/node": "^10.1.2", + "@types/strip-ansi": "^5.2.0", + "allure-js-commons": "^2.0.0-beta.9", + "strip-ansi": "^6.0.0", + "uuid-by-string": "^3.0.2" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "dev": true + } + } + }, + "jest-canvas-mock": { + "version": "2.4.0", + "dev": true, + "requires": { + "cssfontparser": "^1.2.1", + "moo-color": "^1.0.2" + } + }, "jest-changed-files": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", "dev": true, "requires": { "@jest/types": "^27.5.1", "execa": "^5.0.0", "throat": "^6.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-circus": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", "dev": true, "requires": { "@jest/environment": "^27.5.1", @@ -25018,22 +44467,77 @@ "throat": "^6.0.1" }, "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-cli": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", "dev": true, "requires": { "@jest/core": "^27.5.1", @@ -25050,22 +44554,77 @@ "yargs": "^16.2.0" }, "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-config": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", "dev": true, "requires": { "@babel/core": "^7.8.0", @@ -25094,52 +44653,162 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "@jest/types": { + "version": "27.5.1", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" } - } - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-regex-util": { + "version": "27.5.1", + "dev": true + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "25.5.0", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "@jest/types": { + "version": "25.5.0", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-get-type": { + "version": "25.2.6", + "dev": true + }, + "pretty-format": { + "version": "25.5.0", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-docblock": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", "dev": true, "requires": { "detect-newline": "^3.0.0" @@ -25147,8 +44816,6 @@ }, "jest-each": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", "dev": true, "requires": { "@jest/types": "^27.5.1", @@ -25158,22 +44825,77 @@ "pretty-format": "^27.5.1" }, "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-environment-jsdom": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", "dev": true, "requires": { "@jest/environment": "^27.5.1", @@ -25183,12 +44905,79 @@ "jest-mock": "^27.5.1", "jest-util": "^27.5.1", "jsdom": "^16.6.0" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-environment-node": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", "dev": true, "requires": { "@jest/environment": "^27.5.1", @@ -25197,39 +44986,125 @@ "@types/node": "*", "jest-mock": "^27.5.1", "jest-util": "^27.5.1" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-get-type": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "dev": true }, "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "version": "26.6.2", "dev": true, "requires": { - "@jest/types": "^27.5.1", + "@jest/types": "^26.6.2", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", "walker": "^1.0.7" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-jasmine2": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", "dev": true, "requires": { "@jest/environment": "^27.5.1", @@ -25251,22 +45126,77 @@ "throat": "^6.0.1" }, "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-leak-detector": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", "dev": true, "requires": { "jest-get-type": "^27.5.1", @@ -25275,8 +45205,6 @@ }, "jest-matcher-utils": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", "dev": true, "requires": { "chalk": "^4.0.0", @@ -25285,22 +45213,61 @@ "pretty-format": "^27.5.1" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "diff-sequences": { + "version": "27.5.1", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-diff": { + "version": "27.5.1", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-message-util": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", @@ -25314,45 +45281,139 @@ "stack-utils": "^2.0.3" }, "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-mock": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", "dev": true, "requires": { "@jest/types": "^27.5.1", "@types/node": "*" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-pnp-resolver": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", "dev": true, "requires": {} }, "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "version": "26.0.0", "dev": true }, "jest-resolve": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", "dev": true, "requires": { "@jest/types": "^27.5.1", @@ -25367,33 +45428,178 @@ "slash": "^3.0.0" }, "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-haste-map": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-regex-util": { + "version": "27.5.1", + "dev": true + }, + "jest-serializer": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-resolve-dependencies": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", "dev": true, "requires": { "@jest/types": "^27.5.1", "jest-regex-util": "^27.5.1", "jest-snapshot": "^27.5.1" + }, + "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-regex-util": { + "version": "27.5.1", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "jest-runner": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", "dev": true, "requires": { "@jest/console": "^27.5.1", @@ -25419,22 +45625,129 @@ "throat": "^6.0.1" }, "dependencies": { + "@jest/transform": { + "version": "27.5.1", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-haste-map": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-regex-util": { + "version": "27.5.1", + "dev": true + }, + "jest-serializer": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-runtime": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", "dev": true, "requires": { "@jest/environment": "^27.5.1", @@ -25461,32 +45774,137 @@ "strip-bom": "^4.0.0" }, "dependencies": { + "@jest/transform": { + "version": "27.5.1", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-haste-map": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-regex-util": { + "version": "27.5.1", + "dev": true + }, + "jest-serializer": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "version": "26.6.2", "dev": true, "requires": { "@types/node": "*", - "graceful-fs": "^4.2.9" + "graceful-fs": "^4.2.4" } }, "jest-snapshot": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", "dev": true, "requires": { "@babel/core": "^7.7.2", @@ -25513,57 +45931,201 @@ "semver": "^7.3.2" }, "dependencies": { + "@jest/transform": { + "version": "27.5.1", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "diff-sequences": { + "version": "27.5.1", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-diff": { + "version": "27.5.1", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-haste-map": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-regex-util": { + "version": "27.5.1", + "dev": true + }, + "jest-serializer": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", "dev": true, "requires": { "lru-cache": "^6.0.0" } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "version": "26.6.2", "dev": true, "requires": { - "@jest/types": "^27.5.1", + "@jest/types": "^26.6.2", "@types/node": "*", "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" }, "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-validate": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", "dev": true, "requires": { "@jest/types": "^27.5.1", @@ -25574,22 +46136,69 @@ "pretty-format": "^27.5.1" }, "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.3.0", + "dev": true + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "jest-watcher": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", "dev": true, "requires": { "@jest/test-result": "^27.5.1", @@ -25601,49 +46210,121 @@ "string-length": "^4.0.1" }, "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } - } - } - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "devOptional": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "devOptional": true, + "version": "7.2.0", + "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, + "jest-worker": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "join-component": { + "version": "1.1.0" + }, + "js-md5": { + "version": "0.7.3", + "dev": true + }, + "js-sdsl": { + "version": "4.1.5", + "dev": true + }, + "js-sha1": { + "version": "0.6.0", + "dev": true + }, + "js-string-escape": { + "version": "1.0.1", + "dev": true + }, "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "version": "4.0.0" }, "js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -25651,8 +46332,7 @@ }, "jsdom": { "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, "requires": { "abab": "^2.0.5", "acorn": "^8.2.4", @@ -25685,113 +46365,120 @@ "dependencies": { "acorn": { "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" + "dev": true }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "ws": { + "version": "7.5.9", + "dev": true, + "requires": {} } } }, "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "version": "2.5.2" + }, + "json-logic-js": { + "version": "2.0.2" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "devOptional": true }, "json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "devOptional": true + "dev": true }, "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "version": "1.0.0" }, "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + "version": "1.0.1" }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "version": "2.2.1" + }, + "jsonfile": { + "version": "6.1.0", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } }, "jsx-ast-utils": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "requires": { "array-includes": "^3.1.5", "object.assign": "^4.1.3" } }, + "junk": { + "version": "3.1.0", + "dev": true + }, "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "version": "6.0.3" }, "kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "klona": { + "version": "2.0.5", "dev": true }, "language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + "version": "0.3.22" }, "language-tags": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "requires": { "language-subtag-registry": "~0.3.2" } }, "lazy-cache": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", - "integrity": "sha512-7vp2Acd2+Kz4XkzxGxaB1FWOi8KjWIWsgdfD5MCb86DWvlLqhRPM+d6Pro3iNEL5VT9mstz5hKAlcd+QR6H3aA==", "requires": { "set-getter": "^0.1.0" } }, + "lazy-universal-dotenv": { + "version": "3.0.1", + "dev": true, + "requires": { + "@babel/runtime": "^7.5.0", + "app-root-dir": "^1.0.2", + "core-js": "^3.0.4", + "dotenv": "^8.0.0", + "dotenv-expand": "^5.1.0" + } + }, "leven": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, "levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, + "lie": { + "version": "3.1.1", + "requires": { + "immediate": "~3.0.5" + } + }, "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==" + "version": "2.0.6" }, "lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "list-item": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz", - "integrity": "sha512-S3D0WZ4J6hyM8o5SNKWaMYB1ALSacPZ2nHGEuCjmHZ+dc03gFeNZoNDcqfcnO4vDhTZmNrqrpYZCdXsRh22bzw==", "requires": { "expand-range": "^1.8.1", "extend-shallow": "^2.0.1", @@ -25799,77 +46486,100 @@ "repeat-string": "^1.5.2" } }, + "load-json-file": { + "version": "1.1.0", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "dev": true, + "optional": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "dev": true, + "optional": true + }, + "strip-bom": { + "version": "2.0.0", + "dev": true, + "optional": true, + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "devOptional": true, - "peer": true + "version": "2.4.0", + "devOptional": true }, "loader-utils": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" } }, + "localforage": { + "version": "1.10.0", + "requires": { + "lie": "3.1.1" + } + }, "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "version": "6.0.0", "dev": true, "requires": { - "p-locate": "^4.1.0" + "p-locate": "^5.0.0" } }, "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.21" }, "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + "version": "4.17.21" }, "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==" + "version": "3.0.0" }, "lodash.castarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", - "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==" + "version": "4.4.0" }, "lodash.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "dev": true + }, + "lodash.isequal": { + "version": "4.5.0" }, "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + "version": "4.0.6" + }, + "lodash.isstring": { + "version": "4.0.1" }, "lodash.memoize": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + "version": "4.6.2" }, "lodash.template": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "requires": { "lodash._reinterpolate": "^3.0.0", "lodash.templatesettings": "^4.0.0" @@ -25877,99 +46587,132 @@ }, "lodash.templatesettings": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "requires": { "lodash._reinterpolate": "^3.0.0" } }, "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true + "version": "4.4.2" }, "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + "version": "4.5.0" }, "longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" + "version": "3.0.1" }, "loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lottie-react": { + "version": "2.3.1", + "requires": { + "lottie-web": "^5.9.4" + } + }, + "lottie-web": { + "version": "5.9.6" + }, + "loud-rejection": { + "version": "1.6.0", + "dev": true, + "optional": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, "lowlight": { "version": "1.20.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", - "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", "requires": { "fault": "^1.0.0", "highlight.js": "~10.7.0" } }, + "lru_map": { + "version": "0.3.3" + }, "lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { "yallist": "^4.0.0" } }, + "lz-string": { + "version": "1.4.4", + "dev": true + }, "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, + "version": "2.1.0", + "devOptional": true, "requires": { - "semver": "^6.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "devOptional": true + } } }, "make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "devOptional": true }, "makeerror": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "requires": { "tmpl": "1.0.5" } }, + "map-cache": { + "version": "0.2.2", + "devOptional": true + }, + "map-obj": { + "version": "1.0.1", + "dev": true, + "optional": true + }, + "map-or-similar": { + "version": "1.5.0", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "devOptional": true, + "requires": { + "object-visit": "^1.0.0" + } + }, "markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" + "version": "1.0.4" + }, + "markdown-extensions": { + "version": "1.1.1" }, "markdown-link": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz", - "integrity": "sha512-TurLymbyLyo+kAUUAV9ggR9EPcDjP/ctlv9QAFiqUH7c+t6FlsbivPo9OKTU8xdOx9oNd2drW/Fi5RRElQbUqA==" + "version": "0.1.1" }, "markdown-table": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", "requires": { "repeat-string": "^1.0.0" } }, "markdown-toc": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz", - "integrity": "sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg==", "requires": { "concat-stream": "^1.5.2", "diacritics-map": "^0.1.0", @@ -25987,8 +46730,6 @@ "dependencies": { "gray-matter": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz", - "integrity": "sha512-vbmvP1Fe/fxuT2QuLVcqb2BfK7upGhhbLIt9/owWEvPYrZZEkelLcq2HqzxosV+PQ67dUFLaAeNpH7C4hhICAA==", "requires": { "ansi-red": "^0.1.1", "coffee-script": "^1.12.4", @@ -26000,45 +46741,75 @@ } }, "marked": { - "version": "4.0.18", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.18.tgz", - "integrity": "sha512-wbLDJ7Zh0sqA0Vdg6aqlbT+yPxqLblpAZh1mK2+AO2twQkPywvvqQNfEPVwSSRjZ7dZcdeVBIAgiO7MMp3Dszw==" + "version": "4.1.1" }, "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" + "version": "1.0.4" + }, + "md5": { + "version": "2.3.0", + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "md5.js": { + "version": "1.3.5", + "devOptional": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } }, "mdast-squeeze-paragraphs": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", "requires": { "unist-util-remove": "^2.0.0" } }, "mdast-util-definitions": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", "requires": { "unist-util-visit": "^2.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "4.1.0" + }, + "unist-util-visit": { + "version": "2.0.3", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.1.1", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + } } }, "mdast-util-find-and-replace": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz", - "integrity": "sha512-9cKl33Y21lyckGzpSmEQnIDjEfeeWelN5s1kUW1LwdB0Fkuq2u+4GdqcGEygYxJE8GVqCl0741bYXHgamfWAZA==", + "version": "2.2.1", "requires": { - "escape-string-regexp": "^4.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "5.0.0" + } } }, "mdast-util-from-markdown": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", - "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", "requires": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -26052,155 +46823,329 @@ "micromark-util-types": "^1.0.0", "unist-util-stringify-position": "^3.0.0", "uvu": "^0.5.0" + } + }, + "mdast-util-gfm": { + "version": "2.0.1", + "requires": { + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + } + }, + "mdast-util-gfm-autolink-literal": { + "version": "1.0.2", + "requires": { + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + } + }, + "mdast-util-gfm-footnote": { + "version": "1.0.1", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" + } + }, + "mdast-util-gfm-strikethrough": { + "version": "1.0.1", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + } + }, + "mdast-util-gfm-table": { + "version": "1.0.6", + "requires": { + "@types/mdast": "^3.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.3.0" }, "dependencies": { - "mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" + "markdown-table": { + "version": "3.0.2" + } + } + }, + "mdast-util-gfm-task-list-item": { + "version": "1.0.1", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + } + }, + "mdast-util-mdx": { + "version": "2.0.0", + "requires": { + "mdast-util-mdx-expression": "^1.0.0", + "mdast-util-mdx-jsx": "^2.0.0", + "mdast-util-mdxjs-esm": "^1.0.0" + } + }, + "mdast-util-mdx-expression": { + "version": "1.3.1", + "requires": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + } + }, + "mdast-util-mdx-jsx": { + "version": "2.1.0", + "requires": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-to-markdown": "^1.3.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-remove-position": "^4.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "dependencies": { + "character-entities-legacy": { + "version": "3.0.0" }, - "micromark": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", - "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", + "character-reference-invalid": { + "version": "2.0.1" + }, + "is-alphabetical": { + "version": "2.0.1" + }, + "is-alphanumerical": { + "version": "2.0.1", "requires": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" } }, - "unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", + "is-decimal": { + "version": "2.0.1" + }, + "is-hexadecimal": { + "version": "2.0.1" + }, + "parse-entities": { + "version": "4.0.0", "requires": { - "@types/unist": "^2.0.0" + "@types/unist": "^2.0.0", + "character-entities": "^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" } } } }, - "mdast-util-gfm": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz", - "integrity": "sha512-NNkhDx/qYcuOWB7xHUGWZYVXvjPFFd6afg6/e2g+SV4r9q5XUcCbV4Wfa3DLYIiD+xAEZc6K4MGaE/m0KDcPwQ==", + "mdast-util-mdxjs-esm": { + "version": "1.3.0", "requires": { - "mdast-util-gfm-autolink-literal": "^0.1.0", - "mdast-util-gfm-strikethrough": "^0.2.0", - "mdast-util-gfm-table": "^0.1.0", - "mdast-util-gfm-task-list-item": "^0.1.0", - "mdast-util-to-markdown": "^0.6.1" - } - }, - "mdast-util-gfm-autolink-literal": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-0.1.3.tgz", - "integrity": "sha512-GjmLjWrXg1wqMIO9+ZsRik/s7PLwTaeCHVB7vRxUwLntZc8mzmTsLVr6HW1yLokcnhfURsn5zmSVdi3/xWWu1A==", - "requires": { - "ccount": "^1.0.0", - "mdast-util-find-and-replace": "^1.1.0", - "micromark": "^2.11.3" - } - }, - "mdast-util-gfm-strikethrough": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz", - "integrity": "sha512-5OQLXpt6qdbttcDG/UxYY7Yjj3e8P7X16LzvpX8pIQPYJ/C2Z1qFGMmcw+1PZMUM3Z8wt8NRfYTvCni93mgsgA==", - "requires": { - "mdast-util-to-markdown": "^0.6.0" - } - }, - "mdast-util-gfm-table": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz", - "integrity": "sha512-j4yDxQ66AJSBwGkbpFEp9uG/LS1tZV3P33fN1gkyRB2LoRL+RR3f76m0HPHaby6F4Z5xr9Fv1URmATlRRUIpRQ==", - "requires": { - "markdown-table": "^2.0.0", - "mdast-util-to-markdown": "~0.6.0" - } - }, - "mdast-util-gfm-task-list-item": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz", - "integrity": "sha512-/d51FFIfPsSmCIRNp7E6pozM9z1GYPIkSy1urQ8s/o4TC22BZ7DqfHFWiqBD23bc7J3vV1Fc9O4QIHBlfuit8A==", - "requires": { - "mdast-util-to-markdown": "~0.6.0" + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" } }, "mdast-util-to-hast": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", - "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "version": "12.2.4", "requires": { + "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "mdast-util-definitions": "^4.0.0", - "mdurl": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" + "mdast-util-definitions": "^5.0.0", + "micromark-util-sanitize-uri": "^1.1.0", + "trim-lines": "^3.0.0", + "unist-builder": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "dependencies": { + "mdast-util-definitions": { + "version": "5.1.1", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + } + } } }, "mdast-util-to-markdown": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", - "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", + "version": "1.3.0", "requires": { + "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", - "longest-streak": "^2.0.0", - "mdast-util-to-string": "^2.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.0.0", - "zwitch": "^1.0.0" + "longest-streak": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" } }, "mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" + "version": "3.1.0" }, "mdurl": { + "version": "1.0.1" + }, + "media-typer": { + "version": "0.3.0", + "dev": true + }, + "memfs": { + "version": "3.4.7", + "dev": true, + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "memoize-one": { + "version": "5.2.1" + }, + "memoizerific": { + "version": "1.11.3", + "dev": true, + "requires": { + "map-or-similar": "^1.5.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "devOptional": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "dev": true, + "optional": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "dev": true, + "optional": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "dev": true, + "optional": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "dev": true, + "optional": true + }, + "read-pkg": { + "version": "1.1.0", + "dev": true, + "optional": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "dev": true, + "optional": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + } + } + }, + "merge-descriptors": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + "dev": true }, "merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "dev": true }, "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "version": "1.4.1" + }, + "methods": { + "version": "1.1.2", + "dev": true + }, + "microevent.ts": { + "version": "0.1.1", + "dev": true }, "micromark": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", - "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "version": "3.1.0", "requires": { + "@types/debug": "^4.0.0", "debug": "^4.0.0", - "parse-entities": "^2.0.0" + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" } }, "micromark-core-commonmark": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", "requires": { "decode-named-character-reference": "^1.0.0", "micromark-factory-destination": "^1.0.0", @@ -26221,59 +47166,143 @@ } }, "micromark-extension-gfm": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz", - "integrity": "sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A==", + "version": "2.0.1", "requires": { - "micromark": "~2.11.0", - "micromark-extension-gfm-autolink-literal": "~0.5.0", - "micromark-extension-gfm-strikethrough": "~0.6.5", - "micromark-extension-gfm-table": "~0.4.0", - "micromark-extension-gfm-tagfilter": "~0.3.0", - "micromark-extension-gfm-task-list-item": "~0.3.0" + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" } }, "micromark-extension-gfm-autolink-literal": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz", - "integrity": "sha512-ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==", + "version": "1.0.3", "requires": { - "micromark": "~2.11.3" + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-extension-gfm-footnote": { + "version": "1.0.4", + "requires": { + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "micromark-extension-gfm-strikethrough": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz", - "integrity": "sha512-PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==", + "version": "1.0.4", "requires": { - "micromark": "~2.11.0" + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "micromark-extension-gfm-table": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz", - "integrity": "sha512-hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==", + "version": "1.0.5", "requires": { - "micromark": "~2.11.0" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "micromark-extension-gfm-tagfilter": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz", - "integrity": "sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==" + "version": "1.0.1", + "requires": { + "micromark-util-types": "^1.0.0" + } }, "micromark-extension-gfm-task-list-item": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz", - "integrity": "sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==", + "version": "1.0.3", "requires": { - "micromark": "~2.11.0" + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-extension-mdx-expression": { + "version": "1.0.3", + "requires": { + "micromark-factory-mdx-expression": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-events-to-acorn": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-extension-mdx-jsx": { + "version": "1.0.3", + "requires": { + "@types/acorn": "^4.0.0", + "estree-util-is-identifier-name": "^2.0.0", + "micromark-factory-mdx-expression": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0", + "vfile-message": "^3.0.0" + } + }, + "micromark-extension-mdx-md": { + "version": "1.0.0", + "requires": { + "micromark-util-types": "^1.0.0" + } + }, + "micromark-extension-mdxjs": { + "version": "1.0.0", + "requires": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^1.0.0", + "micromark-extension-mdx-jsx": "^1.0.0", + "micromark-extension-mdx-md": "^1.0.0", + "micromark-extension-mdxjs-esm": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "dependencies": { + "acorn": { + "version": "8.8.0" + } + } + }, + "micromark-extension-mdxjs-esm": { + "version": "1.0.3", + "requires": { + "micromark-core-commonmark": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-events-to-acorn": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-position-from-estree": "^1.1.0", + "uvu": "^0.5.0", + "vfile-message": "^3.0.0" } }, "micromark-factory-destination": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", "requires": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -26282,8 +47311,6 @@ }, "micromark-factory-label": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", "requires": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -26291,10 +47318,21 @@ "uvu": "^0.5.0" } }, + "micromark-factory-mdx-expression": { + "version": "1.0.6", + "requires": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-events-to-acorn": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-position-from-estree": "^1.0.0", + "uvu": "^0.5.0", + "vfile-message": "^3.0.0" + } + }, "micromark-factory-space": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", "requires": { "micromark-util-character": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -26302,8 +47340,6 @@ }, "micromark-factory-title": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", "requires": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -26314,8 +47350,6 @@ }, "micromark-factory-whitespace": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", "requires": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -26325,8 +47359,6 @@ }, "micromark-util-character": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", "requires": { "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -26334,16 +47366,12 @@ }, "micromark-util-chunked": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", "requires": { "micromark-util-symbol": "^1.0.0" } }, "micromark-util-classify-character": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", "requires": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -26352,8 +47380,6 @@ }, "micromark-util-combine-extensions": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", "requires": { "micromark-util-chunked": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -26361,16 +47387,12 @@ }, "micromark-util-decode-numeric-character-reference": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", "requires": { "micromark-util-symbol": "^1.0.0" } }, "micromark-util-decode-string": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", "requires": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -26379,35 +47401,42 @@ } }, "micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==" + "version": "1.0.1" + }, + "micromark-util-events-to-acorn": { + "version": "1.2.0", + "requires": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "estree-util-visit": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0", + "vfile-location": "^4.0.0", + "vfile-message": "^3.0.0" + }, + "dependencies": { + "@types/estree": { + "version": "1.0.0" + } + } }, "micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==" + "version": "1.1.0" }, "micromark-util-normalize-identifier": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", "requires": { "micromark-util-symbol": "^1.0.0" } }, "micromark-util-resolve-all": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", "requires": { "micromark-util-types": "^1.0.0" } }, "micromark-util-sanitize-uri": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", - "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", + "version": "1.1.0", "requires": { "micromark-util-character": "^1.0.0", "micromark-util-encode": "^1.0.0", @@ -26416,8 +47445,6 @@ }, "micromark-util-subtokenize": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", "requires": { "micromark-util-chunked": "^1.0.0", "micromark-util-symbol": "^1.0.0", @@ -26426,65 +47453,136 @@ } }, "micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==" + "version": "1.0.1" }, "micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==" + "version": "1.0.2" }, "micromatch": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "requires": { "braces": "^3.0.2", "picomatch": "^2.3.1" } }, + "miller-rabin": { + "version": "4.0.1", + "devOptional": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "devOptional": true + } + } + }, + "mime": { + "version": "1.6.0", + "dev": true + }, "mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "dev": true }, "mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "requires": { "mime-db": "1.52.0" } }, "mimic-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "min-document": { + "version": "2.19.0", + "dev": true, + "requires": { + "dom-walk": "^0.1.0" + } + }, + "min-indent": { + "version": "1.0.1", "dev": true }, "mini-svg-data-uri": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", - "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==" + "version": "1.4.4" + }, + "minimalistic-assert": { + "version": "1.0.1", + "devOptional": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "devOptional": true }, "minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.6" + }, + "minipass": { + "version": "3.3.4", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "devOptional": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } }, "mixin-deep": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -26492,186 +47590,188 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { "is-plain-object": "^2.0.4" } }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" } } } }, - "mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==" + "mkdirp": { + "version": "0.5.6", + "requires": { + "minimist": "^1.2.6" + } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "mobx": { + "version": "6.6.2" }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + "mobx-react-lite": { + "version": "3.4.0", + "requires": {} }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "devOptional": true, + "monaco-editor": { + "version": "0.34.0", "peer": true }, - "next": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/next/-/next-12.1.0.tgz", - "integrity": "sha512-s885kWvnIlxsUFHq9UGyIyLiuD0G3BUC/xrH0CEnH5lHEWkwQcHOORgbDF0hbrW9vr/7am4ETfX4A7M6DjrE7Q==", + "moo-color": { + "version": "1.0.3", + "dev": true, "requires": { - "@next/env": "12.1.0", - "@next/swc-android-arm64": "12.1.0", - "@next/swc-darwin-arm64": "12.1.0", - "@next/swc-darwin-x64": "12.1.0", - "@next/swc-linux-arm-gnueabihf": "12.1.0", - "@next/swc-linux-arm64-gnu": "12.1.0", - "@next/swc-linux-arm64-musl": "12.1.0", - "@next/swc-linux-x64-gnu": "12.1.0", - "@next/swc-linux-x64-musl": "12.1.0", - "@next/swc-win32-arm64-msvc": "12.1.0", - "@next/swc-win32-ia32-msvc": "12.1.0", - "@next/swc-win32-x64-msvc": "12.1.0", - "caniuse-lite": "^1.0.30001283", - "postcss": "8.4.5", - "styled-jsx": "5.0.0", - "use-subscription": "1.5.1" + "color-name": "^1.1.4" }, "dependencies": { - "@next/env": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.0.tgz", - "integrity": "sha512-nrIgY6t17FQ9xxwH3jj0a6EOiQ/WDHUos35Hghtr+SWN/ntHIQ7UpuvSi0vaLzZVHQWaDupKI+liO5vANcDeTQ==" - }, - "@next/swc-android-arm64": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.0.tgz", - "integrity": "sha512-/280MLdZe0W03stA69iL+v6I+J1ascrQ6FrXBlXGCsGzrfMaGr7fskMa0T5AhQIVQD4nA/46QQWxG//DYuFBcA==", - "optional": true - }, - "@next/swc-darwin-arm64": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.0.tgz", - "integrity": "sha512-R8vcXE2/iONJ1Unf5Ptqjk6LRW3bggH+8drNkkzH4FLEQkHtELhvcmJwkXcuipyQCsIakldAXhRbZmm3YN1vXg==", - "optional": true - }, - "@next/swc-darwin-x64": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.0.tgz", - "integrity": "sha512-ieAz0/J0PhmbZBB8+EA/JGdhRHBogF8BWaeqR7hwveb6SYEIJaDNQy0I+ZN8gF8hLj63bEDxJAs/cEhdnTq+ug==", - "optional": true - }, - "@next/swc-linux-arm-gnueabihf": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.0.tgz", - "integrity": "sha512-njUd9hpl6o6A5d08dC0cKAgXKCzm5fFtgGe6i0eko8IAdtAPbtHxtpre3VeSxdZvuGFh+hb0REySQP9T1ttkog==", - "optional": true - }, - "@next/swc-linux-arm64-gnu": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.0.tgz", - "integrity": "sha512-OqangJLkRxVxMhDtcb7Qn1xjzFA3s50EIxY7mljbSCLybU+sByPaWAHY4px97ieOlr2y4S0xdPKkQ3BCAwyo6Q==", - "optional": true - }, - "@next/swc-linux-arm64-musl": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.0.tgz", - "integrity": "sha512-hB8cLSt4GdmOpcwRe2UzI5UWn6HHO/vLkr5OTuNvCJ5xGDwpPXelVkYW/0+C3g5axbDW2Tym4S+MQCkkH9QfWA==", - "optional": true - }, - "@next/swc-linux-x64-gnu": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.0.tgz", - "integrity": "sha512-OKO4R/digvrVuweSw/uBM4nSdyzsBV5EwkUeeG4KVpkIZEe64ZwRpnFB65bC6hGwxIBnTv5NMSnJ+0K/WmG78A==", - "optional": true - }, - "@next/swc-linux-x64-musl": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.0.tgz", - "integrity": "sha512-JohhgAHZvOD3rQY7tlp7NlmvtvYHBYgY0x5ZCecUT6eCCcl9lv6iV3nfu82ErkxNk1H893fqH0FUpznZ/H3pSw==", - "optional": true - }, - "@next/swc-win32-arm64-msvc": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.0.tgz", - "integrity": "sha512-T/3gIE6QEfKIJ4dmJk75v9hhNiYZhQYAoYm4iVo1TgcsuaKLFa+zMPh4056AHiG6n9tn2UQ1CFE8EoybEsqsSw==", - "optional": true - }, - "@next/swc-win32-ia32-msvc": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.0.tgz", - "integrity": "sha512-iwnKgHJdqhIW19H9PRPM9j55V6RdcOo6rX+5imx832BCWzkDbyomWnlzBfr6ByUYfhohb8QuH4hSGEikpPqI0Q==", - "optional": true - }, - "@next/swc-win32-x64-msvc": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.0.tgz", - "integrity": "sha512-aBvcbMwuanDH4EMrL2TthNJy+4nP59Bimn8egqv6GHMVj0a44cU6Au4PjOhLNqEh9l+IpRGBqMTzec94UdC5xg==", - "optional": true - }, - "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "color-name": { + "version": "1.1.4", + "dev": true + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "devOptional": true, "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" + "glob": "^7.1.3" } } } }, - "next-mdx-remote": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/next-mdx-remote/-/next-mdx-remote-2.1.4.tgz", - "integrity": "sha512-HHJasFVgPGjWXW3tWC37NCvHcQUOjJgVUMdwxgVbshwgtDLrGmupNkist/iamDLlvVibU52B9rqM9VAWofq7cA==", + "mri": { + "version": "1.2.0" + }, + "mrmime": { + "version": "1.0.1" + }, + "ms": { + "version": "2.1.3" + }, + "nan": { + "version": "2.16.0", + "dev": true, + "optional": true + }, + "nanoclone": { + "version": "0.2.1" + }, + "nanoid": { + "version": "3.3.4" + }, + "nanomatch": { + "version": "1.2.13", + "devOptional": true, "requires": { - "@babel/core": "^7.12.10", - "@babel/preset-env": "^7.12.11", - "@babel/preset-react": "^7.12.10", - "@babel/preset-typescript": "^7.12.7", - "@mdx-js/mdx": "^1.6.22", - "@mdx-js/react": "^1.6.22" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { - "@mdx-js/react": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", - "requires": {} + "extend-shallow": { + "version": "3.0.2", + "devOptional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "requires": { + "isobject": "^3.0.1" + } } } }, + "natural-compare": { + "version": "1.4.0" + }, + "negotiator": { + "version": "0.6.3", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "devOptional": true + }, + "nested-error-stacks": { + "version": "2.1.1", + "dev": true + }, + "next": { + "version": "12.3.1", + "resolved": "https://registry.npmjs.org/next/-/next-12.3.1.tgz", + "integrity": "sha512-l7bvmSeIwX5lp07WtIiP9u2ytZMv7jIeB8iacR28PuUEFG5j0HGAPnMqyG5kbZNBG2H7tRsrQ4HCjuMOPnANZw==", + "requires": { + "@next/env": "12.3.1", + "@next/swc-android-arm-eabi": "12.3.1", + "@next/swc-android-arm64": "12.3.1", + "@next/swc-darwin-arm64": "12.3.1", + "@next/swc-darwin-x64": "12.3.1", + "@next/swc-freebsd-x64": "12.3.1", + "@next/swc-linux-arm-gnueabihf": "12.3.1", + "@next/swc-linux-arm64-gnu": "12.3.1", + "@next/swc-linux-arm64-musl": "12.3.1", + "@next/swc-linux-x64-gnu": "12.3.1", + "@next/swc-linux-x64-musl": "12.3.1", + "@next/swc-win32-arm64-msvc": "12.3.1", + "@next/swc-win32-ia32-msvc": "12.3.1", + "@next/swc-win32-x64-msvc": "12.3.1", + "@swc/helpers": "0.4.11", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.14", + "styled-jsx": "5.0.7", + "use-sync-external-store": "1.2.0" + }, + "dependencies": { + "postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + } + } + }, + "next-compose-plugins": { + "version": "2.2.1" + }, "next-seo": { "version": "4.29.0", - "resolved": "https://registry.npmjs.org/next-seo/-/next-seo-4.29.0.tgz", - "integrity": "sha512-xmwzcz4uHaYJ8glbuhs6FSBQ7z3irmdPYdJJ5saWm72Uy3o+mPKGaPCXQetTCE6/xxVnpoDV4yFtFlEjUcljSg==", - "requires": {} - }, - "next-themes": { - "version": "0.0.15", - "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.0.15.tgz", - "integrity": "sha512-LTmtqYi03c4gMTJmWwVK9XkHL7h0/+XrtR970Ujvtu3s0kZNeJN24aJsi4rkZOI8i19+qq6f8j+8Duwy5jqcrQ==", "requires": {} }, "next-tick": { @@ -26681,36 +47781,44 @@ }, "next-transpile-modules": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/next-transpile-modules/-/next-transpile-modules-9.0.0.tgz", - "integrity": "sha512-VCNFOazIAnXn1hvgYYSTYMnoWgKgwlYh4lm1pKbSfiB3kj5ZYLcKVhfh3jkPOg1cnd9DP+pte9yCUocdPEUBTQ==", - "dev": true, "requires": { "enhanced-resolve": "^5.7.0", "escalade": "^3.1.1" } }, + "nice-try": { + "version": "1.0.5", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-dir": { + "version": "0.1.17", + "dev": true, + "requires": { + "minimatch": "^3.0.2" + } + }, "node-fetch": { "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "requires": { "whatwg-url": "^5.0.0" }, "dependencies": { "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "version": "0.0.3" }, "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "version": "3.0.1" }, "whatwg-url": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -26719,80 +47827,192 @@ } }, "node-gyp-build": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==" + "version": "4.5.0" }, "node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, + "node-libs-browser": { + "version": "2.2.1", + "devOptional": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "devOptional": true + }, + "stream-browserify": { + "version": "2.0.2", + "devOptional": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + } + } + }, "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "version": "2.0.6" }, "nodemailer": { - "version": "6.7.8", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.8.tgz", - "integrity": "sha512-2zaTFGqZixVmTxpJRCFC+Vk5eGRd/fYtvIR+dl5u9QXLTQWGIf48x/JXvo58g9sa0bU6To04XUv554Paykum3g==" + "version": "6.8.0" + }, + "normalize-package-data": { + "version": "2.5.0", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "dev": true + } + } }, "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "version": "3.0.0" }, "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + "version": "0.1.2" }, "npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { "path-key": "^3.0.0" } }, + "npmlog": { + "version": "4.1.2", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "2.1.1", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, "num2fraction": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", "dev": true }, + "number-is-nan": { + "version": "1.0.1" + }, "nwsapi": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.1.tgz", - "integrity": "sha512-JYOWTeFoS0Z93587vRJgASD5Ut11fYl5NyihP3KrYBvMe1FRRs6RN7m20SA/16GM4P6hTnZjT+UmDOt38UeXNg==" + "version": "2.2.2", + "dev": true }, "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "version": "4.1.1" + }, + "object-copy": { + "version": "0.1.0", + "devOptional": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "devOptional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "devOptional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "devOptional": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } }, "object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + "version": "3.0.0" }, "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "version": "1.12.2" }, "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "version": "1.1.1" + }, + "object-visit": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "isobject": "^3.0.0" + } }, "object.assign": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.3.tgz", - "integrity": "sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==", + "version": "4.1.4", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -26802,8 +48022,6 @@ }, "object.entries": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -26812,18 +48030,24 @@ }, "object.fromentries": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1" } }, + "object.getownpropertydescriptors": { + "version": "2.1.4", + "dev": true, + "requires": { + "array.prototype.reduce": "^1.0.4", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.1" + } + }, "object.hasown": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", "requires": { "define-properties": "^1.1.4", "es-abstract": "^1.19.5" @@ -26831,103 +48055,223 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "requires": { "isobject": "^3.0.1" } }, "object.values": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1" } }, + "objectorarray": { + "version": "1.0.5", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "dev": true + }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "requires": { "wrappy": "1" } }, "onetime": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, - "openapi-types": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.0.0.tgz", - "integrity": "sha512-6Wd9k8nmGQHgCbehZCP6wwWcfXcvinhybUTBatuhjRsCxUIujuYFZc9QnGeae75CyHASewBtxs0HX/qwREReUw==", - "dev": true - }, - "optimism": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", - "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", - "requires": { - "@wry/context": "^0.6.0", - "@wry/trie": "^0.3.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "open": { + "version": "8.4.0", "dev": true, "requires": { - "p-try": "^2.0.0" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "openapi-types": { + "version": "9.3.1" + }, + "opener": { + "version": "1.5.2" + }, + "optionator": { + "version": "0.8.3", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "dependencies": { + "levn": { + "version": "0.3.0", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "prelude-ls": { + "version": "1.1.2", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "os-browserify": { + "version": "0.3.0", + "devOptional": true + }, + "os-homedir": { + "version": "1.0.2", + "dev": true, + "optional": true + }, + "p-all": { + "version": "2.1.0", + "dev": true, + "requires": { + "p-map": "^2.0.0" + }, + "dependencies": { + "p-map": { + "version": "2.1.0", + "dev": true + } + } + }, + "p-event": { + "version": "4.2.0", + "dev": true, + "requires": { + "p-timeout": "^3.1.0" + } + }, + "p-filter": { + "version": "2.1.0", + "dev": true, + "requires": { + "p-map": "^2.0.0" + }, + "dependencies": { + "p-map": { + "version": "2.1.0", + "dev": true + } + } + }, + "p-finally": { + "version": "1.0.0" + }, + "p-limit": { + "version": "3.1.0", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "version": "5.0.0", "dev": true, "requires": { - "p-limit": "^2.2.0" + "p-limit": "^3.0.2" + } + }, + "p-map": { + "version": "3.0.0", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-queue": { + "version": "6.6.2", + "requires": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "requires": { + "p-finally": "^1.0.0" } }, "p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "devOptional": true + }, + "packet-reader": { + "version": "1.0.0" + }, + "pako": { + "version": "1.0.11", + "devOptional": true + }, + "papaparse": { + "version": "5.3.2" + }, + "parallel-transform": { + "version": "1.2.0", + "devOptional": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "3.0.4", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } }, "parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "requires": { "callsites": "^3.0.0" } }, + "parse-asn1": { + "version": "5.1.6", + "devOptional": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, "parse-entities": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "requires": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", @@ -26935,12 +48279,15 @@ "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" + }, + "dependencies": { + "character-entities": { + "version": "1.2.4" + } } }, "parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -26950,69 +48297,170 @@ } }, "parse-numeric-range": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + "version": "1.3.0" + }, + "parse5": { + "version": "6.0.1" + }, + "parseurl": { + "version": "1.3.3", + "dev": true + }, + "pascal-case": { + "version": "3.1.2", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "pascalcase": { + "version": "0.1.1", + "devOptional": true + }, + "path-browserify": { + "version": "0.0.1", + "devOptional": true + }, + "path-dirname": { + "version": "1.0.2", + "dev": true }, "path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "dev": true }, "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "version": "1.0.1" }, "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "version": "3.1.1" }, "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "version": "1.0.7" + }, + "path-to-regexp": { + "version": "6.2.1" }, "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "version": "4.0.0" + }, + "pbkdf2": { + "version": "3.1.2", + "devOptional": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "periscopic": { + "version": "3.0.4", + "requires": { + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "pg": { + "version": "8.8.0", + "requires": { + "buffer-writer": "2.0.0", + "packet-reader": "1.0.0", + "pg-connection-string": "^2.5.0", + "pg-pool": "^3.5.2", + "pg-protocol": "^1.5.0", + "pg-types": "^2.1.0", + "pgpass": "1.x" + } + }, + "pg-connection-string": { + "version": "2.5.0" + }, + "pg-format": { + "version": "1.0.4" + }, + "pg-int8": { + "version": "1.0.1" + }, + "pg-pool": { + "version": "3.5.2", + "requires": {} + }, + "pg-protocol": { + "version": "1.5.0" + }, + "pg-types": { + "version": "2.2.0", + "requires": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + } + }, + "pgpass": { + "version": "1.0.5", + "requires": { + "split2": "^4.1.0" + } }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.0" }, "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "version": "2.3.1" }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + "version": "4.0.1", + "devOptional": true + }, + "pinkie": { + "version": "2.0.4", + "dev": true, + "optional": true + }, + "pinkie-promise": { + "version": "2.0.1", + "dev": true, + "optional": true, + "requires": { + "pinkie": "^2.0.0" + } }, "pirates": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", "dev": true }, "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "version": "5.0.0", "dev": true, "requires": { - "find-up": "^4.0.0" + "find-up": "^5.0.0" } }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "polished": { + "version": "4.2.2", + "dev": true, + "requires": { + "@babel/runtime": "^7.17.8" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "devOptional": true + }, "postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "version": "8.4.17", "requires": { "nanoid": "^3.3.4", "picocolors": "^1.0.0", @@ -27021,8 +48469,6 @@ }, "postcss-attribute-case-insensitive": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", - "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", "dev": true, "requires": { "postcss": "^7.0.2", @@ -27031,14 +48477,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27049,8 +48491,6 @@ }, "postcss-color-functional-notation": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", - "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", "dev": true, "requires": { "postcss": "^7.0.2", @@ -27059,14 +48499,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27077,8 +48513,6 @@ }, "postcss-color-gray": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", - "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", "dev": true, "requires": { "@csstools/convert-colors": "^1.4.0", @@ -27088,14 +48522,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27106,8 +48536,6 @@ }, "postcss-color-hex-alpha": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", - "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", "dev": true, "requires": { "postcss": "^7.0.14", @@ -27116,14 +48544,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27134,8 +48558,6 @@ }, "postcss-color-mod-function": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", - "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", "dev": true, "requires": { "@csstools/convert-colors": "^1.4.0", @@ -27145,14 +48567,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27163,8 +48581,6 @@ }, "postcss-color-rebeccapurple": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", - "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", "dev": true, "requires": { "postcss": "^7.0.2", @@ -27173,14 +48589,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27191,8 +48603,6 @@ }, "postcss-custom-media": { "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", - "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", "dev": true, "requires": { "postcss": "^7.0.14" @@ -27200,14 +48610,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27218,8 +48624,6 @@ }, "postcss-custom-properties": { "version": "8.0.11", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", - "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", "dev": true, "requires": { "postcss": "^7.0.17", @@ -27228,14 +48632,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27246,8 +48646,6 @@ }, "postcss-custom-selectors": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", - "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", "dev": true, "requires": { "postcss": "^7.0.2", @@ -27256,20 +48654,14 @@ "dependencies": { "cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27278,8 +48670,6 @@ }, "postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { "cssesc": "^2.0.0", @@ -27291,8 +48681,6 @@ }, "postcss-dir-pseudo-class": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", - "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", "dev": true, "requires": { "postcss": "^7.0.2", @@ -27301,20 +48689,14 @@ "dependencies": { "cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27323,8 +48705,6 @@ }, "postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { "cssesc": "^2.0.0", @@ -27336,8 +48716,6 @@ }, "postcss-double-position-gradients": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", - "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", "dev": true, "requires": { "postcss": "^7.0.5", @@ -27346,14 +48724,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27364,8 +48738,6 @@ }, "postcss-env-function": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", - "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", "dev": true, "requires": { "postcss": "^7.0.2", @@ -27374,14 +48746,31 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-flexbugs-fixes": { + "version": "4.2.1", + "dev": true, + "requires": { + "postcss": "^7.0.26" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "dev": true + }, + "postcss": { + "version": "7.0.39", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27392,8 +48781,6 @@ }, "postcss-focus-visible": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", - "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", "dev": true, "requires": { "postcss": "^7.0.2" @@ -27401,14 +48788,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27419,8 +48802,6 @@ }, "postcss-focus-within": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", - "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", "dev": true, "requires": { "postcss": "^7.0.2" @@ -27428,14 +48809,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27446,8 +48823,6 @@ }, "postcss-font-variant": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", - "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", "dev": true, "requires": { "postcss": "^7.0.2" @@ -27455,14 +48830,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27473,8 +48844,6 @@ }, "postcss-gap-properties": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", - "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", "dev": true, "requires": { "postcss": "^7.0.2" @@ -27482,14 +48851,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27500,8 +48865,6 @@ }, "postcss-image-set-function": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", - "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", "dev": true, "requires": { "postcss": "^7.0.2", @@ -27510,14 +48873,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27528,8 +48887,6 @@ }, "postcss-import": { "version": "14.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", - "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", "requires": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -27538,8 +48895,6 @@ }, "postcss-initial": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", - "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", "dev": true, "requires": { "postcss": "^7.0.2" @@ -27547,14 +48902,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27565,16 +48916,12 @@ }, "postcss-js": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", "requires": { "camelcase-css": "^2.0.1" } }, "postcss-lab-function": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", - "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", "dev": true, "requires": { "@csstools/convert-colors": "^1.4.0", @@ -27584,14 +48931,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27602,17 +48945,33 @@ }, "postcss-load-config": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", - "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", "requires": { "lilconfig": "^2.0.5", "yaml": "^1.10.2" } }, + "postcss-loader": { + "version": "4.3.0", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "semver": { + "version": "7.3.8", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "postcss-logical": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", - "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", "dev": true, "requires": { "postcss": "^7.0.2" @@ -27620,14 +48979,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27638,8 +48993,6 @@ }, "postcss-media-minmax": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", - "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", "dev": true, "requires": { "postcss": "^7.0.2" @@ -27647,14 +49000,99 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "dev": true, + "requires": { + "postcss": "^7.0.5" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "dev": true + }, + "postcss": { + "version": "7.0.39", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27665,16 +49103,12 @@ }, "postcss-nested": { "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", "requires": { "postcss-selector-parser": "^6.0.6" } }, "postcss-nesting": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", - "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", "dev": true, "requires": { "postcss": "^7.0.2" @@ -27682,14 +49116,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27700,8 +49130,6 @@ }, "postcss-overflow-shorthand": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", - "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", "dev": true, "requires": { "postcss": "^7.0.2" @@ -27709,14 +49137,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27727,8 +49151,6 @@ }, "postcss-page-break": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", - "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", "dev": true, "requires": { "postcss": "^7.0.2" @@ -27736,14 +49158,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27754,8 +49172,6 @@ }, "postcss-place": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", - "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", "dev": true, "requires": { "postcss": "^7.0.2", @@ -27764,14 +49180,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27782,8 +49194,6 @@ }, "postcss-preset-env": { "version": "6.7.1", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.1.tgz", - "integrity": "sha512-rlRkgX9t0v2On33n7TK8pnkcYOATGQSv48J2RS8GsXhqtg+xk6AummHP88Y5mJo0TLJelBjePvSjScTNkj3+qw==", "dev": true, "requires": { "autoprefixer": "^9.6.1", @@ -27827,8 +49237,6 @@ "dependencies": { "autoprefixer": { "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", "dev": true, "requires": { "browserslist": "^4.12.0", @@ -27842,14 +49250,10 @@ }, "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27860,8 +49264,6 @@ }, "postcss-pseudo-class-any-link": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", - "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", "dev": true, "requires": { "postcss": "^7.0.2", @@ -27870,20 +49272,14 @@ "dependencies": { "cssesc": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27892,8 +49288,6 @@ }, "postcss-selector-parser": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { "cssesc": "^2.0.0", @@ -27905,8 +49299,6 @@ }, "postcss-replace-overflow-wrap": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", - "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", "dev": true, "requires": { "postcss": "^7.0.2" @@ -27914,14 +49306,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27932,8 +49320,6 @@ }, "postcss-selector-matches": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", - "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -27942,14 +49328,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27960,8 +49342,6 @@ }, "postcss-selector-not": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", - "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", "dev": true, "requires": { "balanced-match": "^1.0.0", @@ -27970,14 +49350,10 @@ "dependencies": { "picocolors": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", "dev": true }, "postcss": { "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", "dev": true, "requires": { "picocolors": "^0.2.1", @@ -27988,22 +49364,16 @@ }, "postcss-selector-parser": { "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "version": "4.2.0" }, "postcss-values-parser": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", "dev": true, "requires": { "flatten": "^1.0.2", @@ -28011,28 +49381,42 @@ "uniq": "^1.0.1" } }, + "postgres": { + "version": "3.3.1", + "dev": true + }, + "postgres-array": { + "version": "2.0.0" + }, + "postgres-bytea": { + "version": "1.0.0" + }, + "postgres-date": { + "version": "1.0.7" + }, + "postgres-interval": { + "version": "1.2.0", + "requires": { + "xtend": "^4.0.0" + } + }, "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + "version": "1.2.1" }, "prettier": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", "dev": true }, - "prettier-plugin-tailwindcss": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.13.tgz", - "integrity": "sha512-/EKQURUrxLu66CMUg4+1LwGdxnz8of7IDvrSLqEtDqhLH61SAlNNUSr90UTvZaemujgl3OH/VHg+fyGltrNixw==", + "pretty-error": { + "version": "2.1.2", "dev": true, - "requires": {} + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } }, "pretty-format": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, "requires": { "ansi-regex": "^5.0.1", @@ -28042,32 +49426,62 @@ "dependencies": { "ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + }, + "react-is": { + "version": "17.0.2", "dev": true } } }, + "pretty-hrtime": { + "version": "1.0.3", + "dev": true + }, + "prism-react-renderer": { + "version": "1.3.5", + "requires": {} + }, "prismjs": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz", - "integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==" + "version": "1.29.0" + }, + "process": { + "version": "0.11.10", + "devOptional": true }, "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "version": "2.0.1" }, "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true + "version": "2.0.3" + }, + "promise-inflight": { + "version": "1.0.1", + "devOptional": true + }, + "promise.allsettled": { + "version": "1.0.5", + "dev": true, + "requires": { + "array.prototype.map": "^1.0.4", + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "iterate-value": "^1.0.2" + } + }, + "promise.prototype.finally": { + "version": "3.1.3", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } }, "prompts": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "requires": { "kleur": "^3.0.3", @@ -28076,48 +49490,126 @@ }, "prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } } }, + "properties": { + "version": "1.2.1", + "dev": true + }, + "property-expr": { + "version": "2.0.5" + }, "property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "version": "6.1.1" + }, + "proxy-addr": { + "version": "2.0.7", + "dev": true, "requires": { - "xtend": "^4.0.0" + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" } }, + "proxy-compare": { + "version": "2.0.2" + }, + "proxy-from-env": { + "version": "1.1.0" + }, + "prr": { + "version": "1.0.1", + "devOptional": true + }, "psl": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "devOptional": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "devOptional": true + } + } + }, + "pump": { + "version": "3.0.0", + "devOptional": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "devOptional": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "devOptional": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1" + }, + "qs": { + "version": "6.11.0", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "querystring": { + "version": "0.2.0", + "devOptional": true + }, + "querystring-es3": { + "version": "0.2.1", + "devOptional": true + }, + "querystringify": { + "version": "2.2.0", + "dev": true }, "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "version": "1.2.3" }, "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" + "version": "5.1.1" + }, + "raf-schd": { + "version": "4.0.3" + }, + "ramda": { + "version": "0.28.0", + "dev": true }, "randomatic": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "requires": { "is-number": "^4.0.0", "kind-of": "^6.0.0", @@ -28125,70 +49617,249 @@ }, "dependencies": { "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + "version": "4.0.0" } } }, "randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "devOptional": true, - "peer": true, "requires": { "safe-buffer": "^5.1.0" } }, + "randomfill": { + "version": "1.0.4", + "devOptional": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "dev": true + }, + "raw-body": { + "version": "2.5.1", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "dev": true + } + } + }, + "raw-loader": { + "version": "4.0.2", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, "react": { "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" } }, + "react-beautiful-dnd": { + "version": "13.1.1", + "requires": { + "@babel/runtime": "^7.9.2", + "css-box-model": "^1.2.0", + "memoize-one": "^5.1.1", + "raf-schd": "^4.0.2", + "react-redux": "^7.2.0", + "redux": "^4.0.4", + "use-memo-one": "^1.1.1" + } + }, + "react-contexify": { + "version": "5.0.0", + "requires": { + "clsx": "^1.1.1" + }, + "dependencies": { + "clsx": { + "version": "1.2.1" + } + } + }, "react-copy-to-clipboard": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz", - "integrity": "sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==", "requires": { "copy-to-clipboard": "^3.3.1", "prop-types": "^15.8.1" } }, + "react-csv": { + "version": "2.2.2" + }, + "react-datepicker": { + "version": "4.8.0", + "requires": { + "@popperjs/core": "^2.9.2", + "classnames": "^2.2.6", + "date-fns": "^2.24.0", + "prop-types": "^15.7.2", + "react-onclickoutside": "^6.12.0", + "react-popper": "^2.2.5" + }, + "dependencies": { + "date-fns": { + "version": "2.29.3" + } + } + }, + "react-dnd": { + "version": "14.0.5", + "requires": { + "@react-dnd/invariant": "^2.0.0", + "@react-dnd/shallowequal": "^2.0.0", + "dnd-core": "14.0.1", + "fast-deep-equal": "^3.1.3", + "hoist-non-react-statics": "^3.3.2" + } + }, + "react-dnd-html5-backend": { + "version": "14.1.0", + "requires": { + "dnd-core": "14.0.1" + } + }, + "react-docgen": { + "version": "5.4.3", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@babel/generator": "^7.12.11", + "@babel/runtime": "^7.7.6", + "ast-types": "^0.14.2", + "commander": "^2.19.0", + "doctrine": "^3.0.0", + "estree-to-babel": "^3.1.0", + "neo-async": "^2.6.1", + "node-dir": "^0.1.10", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "dev": true + } + } + }, + "react-docgen-typescript": { + "version": "2.2.2", + "dev": true, + "requires": {} + }, "react-dom": { "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "scheduler": "^0.20.2" } }, + "react-draggable": { + "version": "4.4.5", + "requires": { + "clsx": "^1.1.1", + "prop-types": "^15.8.1" + }, + "dependencies": { + "clsx": { + "version": "1.2.1" + } + } + }, + "react-element-to-jsx-string": { + "version": "14.3.4", + "dev": true, + "requires": { + "@base2/pretty-print-object": "1.0.1", + "is-plain-object": "5.0.0", + "react-is": "17.0.2" + }, + "dependencies": { + "react-is": { + "version": "17.0.2", + "dev": true + } + } + }, "react-fast-compare": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + "version": "2.0.4" + }, + "react-feather": { + "version": "2.0.10", + "requires": { + "prop-types": "^15.7.2" + } + }, + "react-from-dom": { + "version": "0.6.2", + "requires": {} }, "react-ga": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-3.3.1.tgz", - "integrity": "sha512-4Vc0W5EvXAXUN/wWyxvsAKDLLgtJ3oLmhYYssx+YzphJpejtOst6cbIHCIyF50Fdxuf5DDKqRYny24yJ2y7GFQ==", "requires": {} }, + "react-grid-layout": { + "version": "1.3.4", + "requires": { + "clsx": "^1.1.1", + "lodash.isequal": "^4.0.0", + "prop-types": "^15.8.1", + "react-draggable": "^4.0.0", + "react-resizable": "^3.0.4" + }, + "dependencies": { + "clsx": { + "version": "1.2.1" + } + } + }, + "react-hot-toast": { + "version": "2.3.0", + "requires": { + "goober": "^2.1.10" + } + }, + "react-inlinesvg": { + "version": "2.3.0", + "requires": { + "exenv": "^1.2.2", + "react-from-dom": "^0.6.0" + } + }, + "react-inspector": { + "version": "5.1.1", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "is-dom": "^1.0.0", + "prop-types": "^15.0.0" + } + }, "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "version": "16.13.1" + }, + "react-lifecycles-compat": { + "version": "3.0.4" }, "react-markdown": { "version": "8.0.3", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.3.tgz", - "integrity": "sha512-We36SfqaKoVNpN1QqsZwWSv/OZt5J15LNgTLWynwAN5b265hrQrsjMtlRNwUvS+YyR3yDM8HpTNc4pK9H/Gc0A==", "requires": { "@types/hast": "^2.0.0", "@types/prop-types": "^15.0.0", @@ -28208,54 +49879,30 @@ }, "dependencies": { "bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" + "version": "2.0.2" }, - "comma-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz", - "integrity": "sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==" + "is-buffer": { + "version": "2.0.5" }, "is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" - }, - "property-information": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz", - "integrity": "sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==" + "version": "4.1.0" }, "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "version": "18.2.0" }, "remark-parse": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", - "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-from-markdown": "^1.0.0", "unified": "^10.0.0" } }, - "space-separated-tokens": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", - "integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==" - }, "trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" + "version": "2.1.0" }, "unified": { "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", "requires": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -28265,70 +49912,51 @@ "trough": "^2.0.0", "vfile": "^5.0.0" } - }, - "unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" - }, - "unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-visit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz", - "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - } - }, - "unist-util-visit-parents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", - "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - }, - "vfile": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.4.tgz", - "integrity": "sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } + } + } + }, + "react-merge-refs": { + "version": "1.1.0", + "dev": true + }, + "react-onclickoutside": { + "version": "6.12.2", + "requires": {} + }, + "react-popper": { + "version": "2.3.0", + "requires": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + }, + "dependencies": { + "react-fast-compare": { + "version": "3.2.0" + } + } + }, + "react-redux": { + "version": "7.2.9", + "requires": { + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "dependencies": { + "react-is": { + "version": "17.0.2" } } }, "react-refresh": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", - "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" + "version": "0.11.0", + "dev": true }, "react-remove-scroll": { "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", "requires": { "react-remove-scroll-bar": "^2.3.3", "react-style-singleton": "^2.2.1", @@ -28339,17 +49967,59 @@ }, "react-remove-scroll-bar": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.3.tgz", - "integrity": "sha512-i9GMNWwpz8XpUpQ6QlevUtFjHGqnPG4Hxs+wlIJntu/xcsZVEpJcIV71K3ZkqNy2q3GfgvkD7y6t/Sv8ofYSbw==", "requires": { "react-style-singleton": "^2.2.1", "tslib": "^2.0.0" } }, + "react-resizable": { + "version": "3.0.4", + "requires": { + "prop-types": "15.x", + "react-draggable": "^4.0.3" + } + }, + "react-resize-detector": { + "version": "6.7.8", + "requires": { + "@types/resize-observer-browser": "^0.1.6", + "lodash": "^4.17.21", + "resize-observer-polyfill": "^1.5.1" + } + }, + "react-smooth": { + "version": "2.0.1", + "requires": { + "fast-equals": "^2.0.0", + "react-transition-group": "2.9.0" + }, + "dependencies": { + "dom-helpers": { + "version": "3.4.0", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "react-transition-group": { + "version": "2.9.0", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + } + } + }, + "react-split": { + "version": "2.0.14", + "requires": { + "prop-types": "^15.5.7", + "split.js": "^1.6.0" + } + }, "react-style-singleton": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", "requires": { "get-nonce": "^1.0.0", "invariant": "^2.2.4", @@ -28358,8 +50028,6 @@ }, "react-syntax-highlighter": { "version": "15.5.0", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz", - "integrity": "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==", "requires": { "@babel/runtime": "^7.3.1", "highlight.js": "^10.4.1", @@ -28370,24 +50038,31 @@ }, "react-tooltip": { "version": "4.2.21", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-4.2.21.tgz", - "integrity": "sha512-zSLprMymBDowknr0KVDiJ05IjZn9mQhhg4PRsqln0OZtURAJ1snt1xi5daZfagsh6vfsziZrc9pErPTDY1ACig==", "requires": { "prop-types": "^15.7.2", "uuid": "^7.0.3" }, "dependencies": { "uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" + "version": "7.0.3" + } + } + }, + "react-tracked": { + "version": "1.7.5", + "requires": { + "proxy-compare": "2.0.2", + "use-context-selector": "1.3.9" + }, + "dependencies": { + "use-context-selector": { + "version": "1.3.9", + "requires": {} } } }, "react-transition-group": { "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "requires": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -28395,18 +50070,94 @@ "prop-types": "^15.6.2" } }, + "react-virtualized-auto-sizer": { + "version": "1.0.7", + "requires": {} + }, + "react-window": { + "version": "1.8.7", + "requires": { + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" + } + }, + "react-window-infinite-loader": { + "version": "1.0.8", + "requires": {} + }, "read-cache": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "requires": { "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0" + } + } + }, + "read-pkg": { + "version": "5.2.0", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "type-fest": { + "version": "0.8.1", + "dev": true + } } }, "readable-stream": { "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -28418,24 +50169,88 @@ }, "dependencies": { "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "version": "1.0.0" } } }, "readdirp": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "requires": { "picomatch": "^2.2.1" } }, + "recharts": { + "version": "2.1.6", + "requires": { + "@types/d3-interpolate": "^2.0.0", + "@types/d3-scale": "^3.0.0", + "@types/d3-shape": "^2.0.0", + "classnames": "^2.2.5", + "d3-interpolate": "^2.0.0", + "d3-scale": "^3.0.0", + "d3-shape": "^2.0.0", + "eventemitter3": "^4.0.1", + "lodash": "^4.17.19", + "react-is": "^16.10.2", + "react-resize-detector": "^6.6.3", + "react-smooth": "^2.0.0", + "recharts-scale": "^0.4.4", + "reduce-css-calc": "^2.1.8" + } + }, + "recharts-scale": { + "version": "0.4.5", + "requires": { + "decimal.js-light": "^2.4.1" + } + }, + "redent": { + "version": "1.0.0", + "dev": true, + "optional": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "dev": true, + "optional": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "dev": true, + "optional": true, + "requires": { + "get-stdin": "^4.0.1" + } + } + } + }, + "reduce-css-calc": { + "version": "2.1.8", + "requires": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1" + } + } + }, + "redux": { + "version": "4.2.0", + "requires": { + "@babel/runtime": "^7.9.2" + } + }, "refractor": { "version": "3.6.0", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", - "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", "requires": { "hastscript": "^6.0.0", "parse-entities": "^2.0.0", @@ -28443,42 +50258,65 @@ }, "dependencies": { "prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==" + "version": "1.27.0" } } }, "regenerate": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "dev": true }, "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "dev": true, "requires": { "regenerate": "^1.4.2" } }, "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.9" }, "regenerator-transform": { "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, "requires": { "@babel/runtime": "^7.8.4" } }, + "regex-not": { + "version": "1.0.2", + "devOptional": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "devOptional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, "regexp.prototype.flags": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -28486,372 +50324,63 @@ } }, "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + "version": "3.2.0" }, "regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", + "version": "5.2.1", + "dev": true, "requires": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.0.0" } }, "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + "version": "0.7.1", + "dev": true }, "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "dev": true, "requires": { "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + "dev": true } } }, "rehype-slug": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-4.0.1.tgz", - "integrity": "sha512-KIlJALf9WfHFF21icwTd2yI2IP+RQRweaxH9ChVGQwRYy36+hiomG4ZSe0yQRyCt+D/vE39LbAcOI/h4O4GPhA==", - "requires": { - "github-slugger": "^1.1.1", - "hast-util-has-property": "^1.0.0", - "hast-util-heading-rank": "^1.0.0", - "hast-util-to-string": "^1.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "remark": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", - "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", - "requires": { - "remark-parse": "^9.0.0", - "remark-stringify": "^9.0.0", - "unified": "^9.1.0" - }, - "dependencies": { - "mdast-util-from-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", - "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "remark-parse": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", - "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", - "requires": { - "mdast-util-from-markdown": "^0.8.0" - } - } - } - }, - "remark-footnotes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", - "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==" - }, - "remark-gfm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz", - "integrity": "sha512-KfexHJCiqvrdBZVbQ6RopMZGwaXz6wFJEfByIuEwGf0arvITHjiKKZ1dpXujjH9KZdm1//XJQwgfnJ3lmXaDPA==", - "requires": { - "mdast-util-gfm": "^0.1.0", - "micromark-extension-gfm": "^0.3.0" - } - }, - "remark-html": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-10.0.0.tgz", - "integrity": "sha512-TbSQuedRFjAhXSk1NAbfaTqDK0jKAjfgn82D2ZYFFT8XpJ80uwXc8yVwK/Tl2eqboTMPxzNzCIss4kIucE5M8w==", - "requires": { - "hast-util-sanitize": "^2.0.0", - "hast-util-to-html": "^6.0.0", - "mdast-util-to-hast": "^6.0.0", - "xtend": "^4.0.1" - }, - "dependencies": { - "mdast-util-definitions": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz", - "integrity": "sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==", - "requires": { - "unist-util-visit": "^1.0.0" - } - }, - "mdast-util-to-hast": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-6.0.2.tgz", - "integrity": "sha512-GjcOimC9qHI0yNFAQdBesrZXzUkRdFleQlcoU8+TVNfDW6oLUazUx8MgUoTaUyCJzBOnE5AOgqhpURrSlf0QwQ==", - "requires": { - "collapse-white-space": "^1.0.0", - "detab": "^2.0.0", - "mdast-util-definitions": "^1.2.0", - "mdurl": "^1.0.1", - "trim": "0.0.1", - "trim-lines": "^1.0.0", - "unist-builder": "^1.0.1", - "unist-util-generated": "^1.1.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^1.1.0", - "xtend": "^4.0.1" - } - }, - "unist-builder": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-1.0.4.tgz", - "integrity": "sha512-v6xbUPP7ILrT15fHGrNyHc1Xda8H3xVhP7/HAIotHOhVPjH5dCXA097C3Rry1Q2O+HbOLCao4hfPB+EYEjHgVg==", - "requires": { - "object-assign": "^4.1.0" - } - }, - "unist-util-is": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", - "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" - }, - "unist-util-visit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", - "requires": { - "unist-util-visit-parents": "^2.0.0" - } - }, - "unist-util-visit-parents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", - "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", - "requires": { - "unist-util-is": "^3.0.0" - } - } - } - }, - "remark-mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", - "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", - "requires": { - "@babel/core": "7.12.9", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-syntax-jsx": "7.12.1", - "@mdx-js/util": "1.6.22", - "is-alphabetical": "1.0.4", - "remark-parse": "8.0.3", - "unified": "9.2.0" - }, - "dependencies": { - "@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" - }, - "unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - } - } - } - }, - "remark-parse": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", - "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", - "requires": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - } - }, - "remark-prism": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/remark-prism/-/remark-prism-1.3.6.tgz", - "integrity": "sha512-yYSXJ2MEK2DeD9UKDKFkQPcVqRx6aX2FYD1kE27ScogpZ/BBO8MoOO6gf/AKqfXvKGnP51wqvDEBmPseypgaug==", - "requires": { - "classnames": "^2.3.1", - "css-selector-parser": "^1.4.1", - "escape-html": "^1.0.3", - "jsdom": "^16.5.3", - "parse-numeric-range": "^1.2.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "prismjs": "^1.23.0", - "unist-util-map": "^2.0.1" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "requires": { - "parse5": "^6.0.1" - } - } - } - }, - "remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", + "version": "5.0.1", "requires": { "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" + "github-slugger": "^1.1.1", + "hast-util-has-property": "^2.0.0", + "hast-util-heading-rank": "^2.0.0", + "hast-util-to-string": "^2.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" }, "dependencies": { "bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" + "version": "2.0.2" + }, + "is-buffer": { + "version": "2.0.5" }, "is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" - }, - "mdast-util-definitions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz", - "integrity": "sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - } - }, - "mdast-util-to-hast": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.2.0.tgz", - "integrity": "sha512-YDwT5KhGzLgPpSnQhAlK1+WpCW4gsPmNNAxUNMkMTDhxQyPp2eX86WOelnKnLKEvSpfxqJbPbInHFkefXZBhEA==", - "requires": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/mdurl": "^1.0.0", - "mdast-util-definitions": "^5.0.0", - "mdurl": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "trim-lines": "^3.0.0", - "unist-builder": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - } - }, - "trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" + "version": "4.1.0" }, "trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" + "version": "2.1.0" }, "unified": { "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", "requires": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -28861,139 +50390,339 @@ "trough": "^2.0.0", "vfile": "^5.0.0" } - }, - "unist-builder": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.0.tgz", - "integrity": "sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-generated": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", - "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==" + } + } + }, + "relateurl": { + "version": "0.2.7", + "dev": true + }, + "remark-external-links": { + "version": "8.0.0", + "dev": true, + "requires": { + "extend": "^3.0.0", + "is-absolute-url": "^3.0.0", + "mdast-util-definitions": "^4.0.0", + "space-separated-tokens": "^1.0.0", + "unist-util-visit": "^2.0.0" + }, + "dependencies": { + "space-separated-tokens": { + "version": "1.1.5", + "dev": true }, "unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" - }, - "unist-util-position": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", - "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "requires": { - "@types/unist": "^2.0.0" - } + "version": "4.1.0", + "dev": true }, "unist-util-visit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz", - "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==", + "version": "2.0.3", + "dev": true, "requires": { "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" } }, "unist-util-visit-parents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", - "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", + "version": "3.1.1", + "dev": true, "requires": { "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "unist-util-is": "^4.0.0" } + } + } + }, + "remark-footnotes": { + "version": "2.0.0" + }, + "remark-gfm": { + "version": "3.0.1", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", + "unified": "^10.0.0" + }, + "dependencies": { + "bail": { + "version": "2.0.2" }, - "vfile": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.4.tgz", - "integrity": "sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==", + "is-buffer": { + "version": "2.0.5" + }, + "is-plain-obj": { + "version": "4.1.0" + }, + "trough": { + "version": "2.1.0" + }, + "unified": { + "version": "10.1.2", "requires": { "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" } + } + } + }, + "remark-html": { + "version": "15.0.1", + "requires": { + "@types/mdast": "^3.0.0", + "hast-util-sanitize": "^4.0.0", + "hast-util-to-html": "^8.0.0", + "mdast-util-to-hast": "^12.0.0", + "unified": "^10.0.0" + }, + "dependencies": { + "bail": { + "version": "2.0.2" }, - "vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", + "is-buffer": { + "version": "2.0.5" + }, + "is-plain-obj": { + "version": "4.1.0" + }, + "trough": { + "version": "2.1.0" + }, + "unified": { + "version": "10.1.2", "requires": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + } + } + } + }, + "remark-mdx": { + "version": "2.1.4", + "requires": { + "mdast-util-mdx": "^2.0.0", + "micromark-extension-mdxjs": "^1.0.0" + } + }, + "remark-parse": { + "version": "9.0.0", + "requires": { + "mdast-util-from-markdown": "^0.8.0" + }, + "dependencies": { + "mdast-util-from-markdown": { + "version": "0.8.5", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + }, + "mdast-util-to-string": { + "version": "2.0.0" + }, + "micromark": { + "version": "2.11.4", + "requires": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "requires": { + "@types/unist": "^2.0.2" + } + } + } + }, + "remark-rehype": { + "version": "10.1.0", + "requires": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-to-hast": "^12.1.0", + "unified": "^10.0.0" + }, + "dependencies": { + "bail": { + "version": "2.0.2" + }, + "is-buffer": { + "version": "2.0.5" + }, + "is-plain-obj": { + "version": "4.1.0" + }, + "trough": { + "version": "2.1.0" + }, + "unified": { + "version": "10.1.2", + "requires": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + } + } + } + }, + "remark-slug": { + "version": "6.1.0", + "dev": true, + "requires": { + "github-slugger": "^1.0.0", + "mdast-util-to-string": "^1.0.0", + "unist-util-visit": "^2.0.0" + }, + "dependencies": { + "mdast-util-to-string": { + "version": "1.1.0", + "dev": true + }, + "unist-util-is": { + "version": "4.1.0", + "dev": true + }, + "unist-util-visit": { + "version": "2.0.3", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.1.1", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" } } } }, "remark-squeeze-paragraphs": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", "requires": { "mdast-squeeze-paragraphs": "^4.0.0" } }, "remark-stringify": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", - "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", "requires": { "mdast-util-to-markdown": "^0.6.0" + }, + "dependencies": { + "longest-streak": { + "version": "2.0.4" + }, + "mdast-util-to-markdown": { + "version": "0.6.5", + "requires": { + "@types/unist": "^2.0.0", + "longest-streak": "^2.0.0", + "mdast-util-to-string": "^2.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.0.0", + "zwitch": "^1.0.0" + } + }, + "mdast-util-to-string": { + "version": "2.0.0" + }, + "zwitch": { + "version": "1.0.5" + } } }, "remarkable": { "version": "1.7.4", - "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz", - "integrity": "sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==", "requires": { "argparse": "^1.0.10", "autolinker": "~0.28.0" } }, + "remove-trailing-separator": { + "version": "1.1.0", + "dev": true + }, + "remove-trailing-slash": { + "version": "0.1.1" + }, + "renderkid": { + "version": "2.0.7", + "dev": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" + "version": "1.1.4" }, "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" + "version": "1.6.1" + }, + "repeating": { + "version": "2.0.1", + "dev": true, + "optional": true, + "requires": { + "is-finite": "^1.0.0" + } }, "require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true }, "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==", + "version": "2.0.2" + }, + "requires-port": { + "version": "1.0.0", "dev": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "resize-observer-polyfill": { + "version": "1.5.1" }, "resolve": { "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "requires": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -29002,8 +50731,6 @@ }, "resolve-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { "resolve-from": "^5.0.0" @@ -29011,61 +50738,277 @@ }, "resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve-url": { + "version": "0.2.1", + "devOptional": true + }, "resolve.exports": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", "dev": true }, + "ret": { + "version": "0.1.15", + "devOptional": true + }, "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "version": "1.0.4" }, "rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" } }, + "ripemd160": { + "version": "2.0.2", + "devOptional": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rsvp": { + "version": "4.8.5", + "dev": true + }, "run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "requires": { "queue-microtask": "^1.2.2" } }, + "run-queue": { + "version": "1.0.3", + "devOptional": true, + "requires": { + "aproba": "^1.1.1" + } + }, "sade": { "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "requires": { "mri": "^1.1.0" } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.1.2" + }, + "safe-regex": { + "version": "1.1.0", + "devOptional": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } }, "safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "devOptional": true + }, + "sane": { + "version": "4.1.0", + "dev": true, + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "braces": { + "version": "2.3.2", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "cross-spawn": { + "version": "6.0.5", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "fill-range": { + "version": "4.0.0", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "get-stream": { + "version": "4.1.0", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-extendable": { + "version": "1.0.1", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "normalize-path": { + "version": "2.1.1", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "npm-run-path": { + "version": "2.0.2", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "path-key": { + "version": "2.0.1", + "dev": true + }, + "semver": { + "version": "5.7.1", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "which": { + "version": "1.3.1", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } }, "sass": { - "version": "1.54.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.4.tgz", - "integrity": "sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==", - "optional": true, - "peer": true, + "version": "1.55.0", "requires": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -29074,76 +51017,195 @@ }, "saxes": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, "requires": { "xmlchars": "^2.2.0" } }, "scheduler": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1" } }, + "schema-utils": { + "version": "3.1.1", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + } + } + }, "section-matter": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", "requires": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" } }, + "select": { + "version": "1.1.2" + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "6.3.0" + }, + "send": { + "version": "0.18.0", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "dev": true + } + } + } + } }, "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "devOptional": true, - "peer": true, + "version": "5.0.1", + "dev": true, "requires": { "randombytes": "^2.1.0" } }, + "serve-favicon": { + "version": "2.5.0", + "dev": true, + "requires": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "dev": true + }, + "safe-buffer": { + "version": "5.1.1", + "dev": true + } + } + }, + "serve-static": { + "version": "1.15.0", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "version": "2.0.0" }, "set-getter": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.1.tgz", - "integrity": "sha512-9sVWOy+gthr+0G9DzqqLaYNA7+5OKkSmcqjL9cBpDEaZrr3ShQlyX2cZ/O/ozE41oxn/Tt0LGEM/w4Rub3A3gw==", "requires": { "to-object-path": "^0.3.0" } }, + "set-value": { + "version": "2.0.1", + "devOptional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "devOptional": true + }, + "setprototypeof": { + "version": "1.2.0", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "devOptional": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "version": "3.0.0" }, "side-channel": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -29151,72 +51213,284 @@ } }, "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "version": "3.0.7" + }, + "sirv": { + "version": "1.0.19", + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + } }, "sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "version": "3.0.0" }, "slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, "requires": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + } } }, + "snapdragon": { + "version": "0.8.2", + "devOptional": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "devOptional": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "devOptional": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "devOptional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "devOptional": true + }, + "ms": { + "version": "2.0.0", + "devOptional": true + }, + "source-map": { + "version": "0.5.7", + "devOptional": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "devOptional": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "devOptional": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "devOptional": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-list-map": { + "version": "2.0.1", + "devOptional": true + }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "version": "0.6.1" }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + "version": "1.0.2" + }, + "source-map-resolve": { + "version": "0.5.3", + "devOptional": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } }, "source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "devOptional": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, + "source-map-url": { + "version": "0.4.1", + "devOptional": true + }, "space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" + "version": "2.0.1" + }, + "spdx-correct": { + "version": "3.1.1", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.12", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "devOptional": true, + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "devOptional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "split.js": { + "version": "1.6.5" + }, + "split2": { + "version": "4.1.0" }, "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "version": "1.0.3" + }, + "sqlstring": { + "version": "2.3.3" }, "ssr-window": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", - "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" + "version": "3.0.0" + }, + "ssri": { + "version": "8.0.1", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "dev": true }, "stack-utils": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" @@ -29224,65 +51498,156 @@ "dependencies": { "escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true } } }, - "state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" + "stackframe": { + "version": "1.3.4", + "dev": true }, - "stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "state-local": { + "version": "1.0.7" + }, + "state-toggle": { + "version": "1.0.3" + }, + "static-extend": { + "version": "0.1.2", + "devOptional": true, "requires": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "define-property": { + "version": "0.2.5", + "devOptional": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "is-descriptor": "^0.1.0" } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "devOptional": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "devOptional": true } } }, + "statuses": { + "version": "2.0.1", + "dev": true + }, + "store2": { + "version": "2.14.2", + "dev": true + }, + "storybook-dark-mode": { + "version": "1.1.2", + "dev": true, + "requires": { + "@storybook/addons": "^6.0.0", + "@storybook/api": "^6.0.0", + "@storybook/components": "^6.0.0", + "@storybook/core-events": "^6.0.0", + "@storybook/theming": "^6.0.0", + "fast-deep-equal": "^3.0.0", + "global": "^4.4.0", + "memoizerific": "^1.11.3" + } + }, + "stream-each": { + "version": "1.2.3", + "devOptional": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "devOptional": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "devOptional": true + }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" } }, - "string-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", - "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==" - }, "string-length": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "requires": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, + "string-width": { + "version": "4.2.3", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0" + } + } + }, "string.prototype.matchall": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -29294,10 +51659,26 @@ "side-channel": "^1.0.4" } }, + "string.prototype.padend": { + "version": "3.1.3", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "string.prototype.padstart": { + "version": "3.1.3", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, "string.prototype.trimend": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -29306,8 +51687,6 @@ }, "string.prototype.trimstart": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -29315,93 +51694,519 @@ } }, "stringify-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-2.0.0.tgz", - "integrity": "sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==", + "version": "4.0.3", "requires": { - "character-entities-html4": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.2", - "is-hexadecimal": "^1.0.0" + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "dependencies": { + "character-entities-legacy": { + "version": "3.0.0" + } } }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" } }, "strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==" + "version": "1.0.0" }, "strip-color": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz", - "integrity": "sha512-p9LsUieSjWNNAxVCXLeilaDlmuUOrDS5/dF9znM1nZc7EGX5+zEFC0bEevsNIaldjlks+2jns5Siz6F9iK6jwA==" + "version": "0.1.0" + }, + "strip-eof": { + "version": "1.0.0", + "dev": true }, "strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, + "strip-indent": { + "version": "3.0.0", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "version": "3.1.1" + }, + "studio": { + "version": "file:studio", + "requires": { + "@babel/core": "^7.17.5", + "@headlessui/react": "^1.4.1", + "@monaco-editor/react": "^4.3.1", + "@next/bundle-analyzer": "^12.0.4", + "@radix-ui/react-portal": "^0.1.1", + "@radix-ui/react-tooltip": "^0.1.6", + "@scaleleap/pg-format": "^1.0.0", + "@sentry/browser": "^6.15.0", + "@sentry/nextjs": "^6.17.4", + "@storybook/addon-actions": "^6.4.19", + "@storybook/addon-essentials": "^6.4.19", + "@storybook/addon-interactions": "^6.4.19", + "@storybook/addon-links": "^6.4.19", + "@storybook/react": "^6.4.19", + "@storybook/testing-library": "^0.0.9", + "@stripe/react-stripe-js": "^1.7.0", + "@stripe/stripe-js": "^1.25.0", + "@supabase/postgres-meta": "^0.26.1", + "@supabase/react-data-grid": "^7.1.0-beta.7", + "@supabase/shared-types": "^0.1.29", + "@supabase/supabase-js": "^2.0.0", + "@tailwindcss/typography": "^0.5.2", + "@testing-library/dom": "^8.11.1", + "@testing-library/react": "^12.1.2", + "@testing-library/user-event": "^13.5.0", + "@types/crypto-js": "^4.0.2", + "@types/file-saver": "^2.0.2", + "@types/json-logic-js": "^1.2.1", + "@types/lodash": "^4.14.172", + "@types/markdown-table": "^3.0.0", + "@types/papaparse": "^5.3.1", + "@types/react": "17.0.11", + "@types/react-beautiful-dnd": "^13.1.2", + "@types/react-csv": "^1.1.2", + "@types/react-datepicker": "^4.3.4", + "@types/react-dom": "^17.0.11", + "@types/react-grid-layout": "^1.3.0", + "@types/react-virtualized-auto-sizer": "^1.0.1", + "@types/react-window": "^1.8.5", + "@types/react-window-infinite-loader": "^1.0.5", + "@types/semver": "^7.3.9", + "@types/sqlstring": "^2.3.0", + "@types/uuid": "^8.3.4", + "@types/zxcvbn": "^4.4.1", + "ajv": "^8.6.3", + "analytics-node": "^3.5.0", + "autoprefixer": "10.4.2", + "awesome-debounce-promise": "^2.1.0", + "babel-loader": "^8.2.3", + "clipboard": "^2.0.8", + "common": "*", + "config": "*", + "configcat-js": "^5.6.0", + "crypto-js": "^4.1.1", + "dayjs": "^1.11.0", + "file-saver": "^2.0.5", + "generate-password": "^1.7.0", + "html-to-image": "^1.10.8", + "immutability-helper": "^3.1.1", + "jest": "^27.4.0", + "jest-canvas-mock": "^2.3.1", + "json-logic-js": "^2.0.2", + "lodash": "^4.17.21", + "lottie-react": "^2.2.1", + "markdown-table": "=2.0.0", + "mobx": "^6.3.2", + "mobx-react-lite": "^3.2.0", + "next": "12.0.9", + "next-compose-plugins": "^2.2.1", + "next-transpile-modules": "^9.0.0", + "openapi-types": "^9.1.0", + "p-queue": "^6.6.2", + "papaparse": "^5.3.1", + "parse-numeric-range": "^1.3.0", + "path-to-regexp": "^6.2.0", + "postcss": "^8.4.6", + "prettier": "^2.7.1", + "prism-react-renderer": "^1.2.1", + "react": "^17.0.2", + "react-beautiful-dnd": "^13.1.0", + "react-contexify": "^5.0.0", + "react-csv": "^2.0.3", + "react-datepicker": "^4.8.0", + "react-dnd": "^14.0.3", + "react-dnd-html5-backend": "^14.0.1", + "react-dom": "^17.0.2", + "react-grid-layout": "^1.3.0", + "react-hot-toast": "2.3.0", + "react-inlinesvg": "^2.3.0", + "react-markdown": "^8.0.3", + "react-split": "^2.0.13", + "react-tracked": "1.7.5", + "react-virtualized-auto-sizer": "^1.0.6", + "react-window": "^1.8.6", + "react-window-infinite-loader": "^1.0.7", + "recharts": "2.1.6", + "sass": "^1.43.4", + "scheduler": "^0.20.2", + "semver": "^6.3.0", + "sqlstring": "^2.3.2", + "storybook-dark-mode": "^1.0.4", + "swr": "^1.2.1", + "tailwindcss": "^3.0.22", + "ts-jest": "^27.0.7", + "typescript": "4.3.4", + "ui": "*", + "uniforms-bootstrap4": "^3.6.2", + "uniforms-bridge-json-schema": "^3.6.2", + "uuid": "^8.3.2", + "yup": "^0.32.11", + "zxcvbn": "^4.4.2" + }, + "dependencies": { + "@next/env": { + "version": "12.0.9" + }, + "@next/swc-darwin-x64": { + "version": "12.0.9", + "optional": true + }, + "@tailwindcss/typography": { + "version": "0.5.7", + "dev": true, + "requires": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + } + }, + "@types/react": { + "version": "17.0.11", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "autoprefixer": { + "version": "10.4.2", + "dev": true, + "requires": { + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001297", + "fraction.js": "^4.1.2", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "next": { + "version": "12.0.9", + "requires": { + "@next/env": "12.0.9", + "@next/swc-android-arm64": "12.0.9", + "@next/swc-darwin-arm64": "12.0.9", + "@next/swc-darwin-x64": "12.0.9", + "@next/swc-linux-arm-gnueabihf": "12.0.9", + "@next/swc-linux-arm64-gnu": "12.0.9", + "@next/swc-linux-arm64-musl": "12.0.9", + "@next/swc-linux-x64-gnu": "12.0.9", + "@next/swc-linux-x64-musl": "12.0.9", + "@next/swc-win32-arm64-msvc": "12.0.9", + "@next/swc-win32-ia32-msvc": "12.0.9", + "@next/swc-win32-x64-msvc": "12.0.9", + "caniuse-lite": "^1.0.30001283", + "postcss": "8.4.5", + "styled-jsx": "5.0.0", + "use-subscription": "1.5.1" + }, + "dependencies": { + "postcss": { + "version": "8.4.5", + "requires": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + } + }, + "styled-jsx": { + "version": "5.0.0", + "requires": {} + } + } + }, + "swr": { + "version": "1.3.0", + "requires": {} + }, + "typescript": { + "version": "4.3.4", + "dev": true + } + } + }, + "style-loader": { + "version": "1.3.0", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "dev": true, + "requires": {} + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } + } }, "style-to-object": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", "requires": { "inline-style-parser": "0.1.1" } }, "styled-jsx": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz", - "integrity": "sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.7.tgz", + "integrity": "sha512-b3sUzamS086YLRuvnaDigdAewz1/EFYlHpYBP5mZovKEdQQOIIYq8lApylub3HHZ6xFjV051kkGU7cudJmrXEA==", "requires": {} }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "supabase-tests": { + "version": "file:tests", "requires": { - "has-flag": "^4.0.0" + "@faker-js/faker": "^6.1.2", + "@supabase/supabase-js": "^2.0.0", + "@testdeck/jest": "^0.2.0", + "@types/jest": "^27.4.0", + "@types/node": "^17.0.24", + "@typescript-eslint/eslint-plugin": "^5.10.0", + "@typescript-eslint/parser": "^5.10.0", + "allure-commandline": "^2.17.2", + "allure-js-commons": "^2.0.0-beta.14", + "cross-fetch": "^3.1.5", + "eslint": "^8.7.0", + "jest": "^27.4.7", + "jest-allure2-adapter": "^0.3.11", + "postgres": "^3.0.5", + "ts-jest": "^27.1.3", + "ts-node": "^10.7.0", + "typescript": "^4.6.3" + }, + "dependencies": { + "@humanwhocodes/config-array": { + "version": "0.10.7", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "ajv": { + "version": "6.12.6", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "dev": true + }, + "eslint": { + "version": "8.24.0", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.2", + "@humanwhocodes/config-array": "^0.10.5", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + } + }, + "eslint-scope": { + "version": "7.1.1", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "globals": { + "version": "13.17.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "dev": true, + "requires": { + "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" + } + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "dev": true + }, + "optionator": { + "version": "0.9.1", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "requires": { + "has-flag": "^3.0.0" } }, "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "version": "2.3.0", "dev": true, "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "version": "1.0.0" }, "swiper": { "version": "6.8.4", - "resolved": "https://registry.npmjs.org/swiper/-/swiper-6.8.4.tgz", - "integrity": "sha512-O+buF9Q+sMA0H7luMS8R59hCaJKlpo8PXhQ6ZYu6Rn2v9OsFd4d1jmrv14QvxtQpKAvL/ZiovEeANI/uDGet7g==", "requires": { "dom7": "^3.0.0", "ssr-window": "^3.0.0" @@ -29409,76 +52214,40 @@ }, "swr": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/swr/-/swr-0.5.7.tgz", - "integrity": "sha512-Jh1Efgu8nWZV9rU4VLUMzBzcwaZgi4znqbVXvAtUy/0JzSiN6bNjLaJK8vhY/Rtp7a83dosz5YuehfBNwC/ZoQ==", "requires": { "dequal": "2.0.2" } }, - "symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" - }, "symbol-tree": { "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + "dev": true + }, + "symbol.prototype.description": { + "version": "1.0.5", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-symbol-description": "^1.0.0", + "has-symbols": "^1.0.2", + "object.getownpropertydescriptors": "^2.1.2" + } + }, + "synchronous-promise": { + "version": "2.0.16", + "dev": true }, "table": { "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "dev": true, "requires": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "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==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } } }, "tailwindcss": { "version": "3.1.8", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz", - "integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==", "requires": { "arg": "^5.0.2", "chokidar": "^3.5.3", @@ -29504,31 +52273,58 @@ "resolve": "^1.22.1" }, "dependencies": { - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "requires": { - "is-glob": "^4.0.3" - } + "color-name": { + "version": "1.1.4" } } }, "tailwindcss-radix": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tailwindcss-radix/-/tailwindcss-radix-1.6.0.tgz", - "integrity": "sha512-5oBgGCVGsITMiUVlc6Euj4kt03l8htLJxVT9AXbkFxcJiXLtQxJriFq/8R+3s63OKit/ynCVdkqvlnW6H7iG1g==" + "version": "1.6.0" }, "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "1.1.3", "devOptional": true }, + "tar": { + "version": "6.1.11", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "dev": true + } + } + }, + "telejson": { + "version": "6.0.8", + "dev": true, + "requires": { + "@types/is-function": "^1.0.0", + "global": "^4.4.0", + "is-function": "^1.0.2", + "is-regex": "^1.1.2", + "is-symbol": "^1.0.3", + "isobject": "^4.0.0", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3" + }, + "dependencies": { + "isobject": { + "version": "4.0.0", + "dev": true + } + } + }, "terminal-link": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", @@ -29536,66 +52332,131 @@ } }, "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "4.8.1", "devOptional": true, - "peer": true, "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map-support": "~0.5.20" + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" }, "dependencies": { - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "devOptional": true, - "peer": true - }, "commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "devOptional": true, - "peer": true + "devOptional": true } } }, "terser-webpack-plugin": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.4.tgz", - "integrity": "sha512-SmnkUhBxLDcBfTIeaq+ZqJXLVEyXxSaNcCeSezECdKjfkMrTTnPvapBILylYwyEvHFZAn2cJ8dtiXel5XnfOfQ==", - "devOptional": true, - "peer": true, + "version": "4.2.3", + "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.14", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" }, "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "devOptional": true, - "peer": true, + "acorn": { + "version": "8.8.0", + "dev": true + }, + "commander": { + "version": "2.20.3", + "dev": true + }, + "find-cache-dir": { + "version": "3.3.2", + "dev": true, "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "pkg-dir": { + "version": "4.2.0", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "terser": { + "version": "5.15.1", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" } } } }, "test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "requires": { "@istanbuljs/schema": "^0.1.2", @@ -29604,158 +52465,167 @@ } }, "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "version": "0.2.0" }, "throat": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", "dev": true }, "through2": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, + "timers-browserify": { + "version": "2.0.12", + "devOptional": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tiny-emitter": { + "version": "2.1.0" + }, + "tiny-invariant": { + "version": "1.3.1" + }, "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + "version": "1.0.3" }, "tmpl": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, + "to-arraybuffer": { + "version": "1.0.1", + "devOptional": true + }, "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + "version": "2.0.0" }, "to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "requires": { "kind-of": "^3.0.2" }, "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "requires": { "is-buffer": "^1.1.5" } } } }, + "to-regex": { + "version": "3.0.2", + "devOptional": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "devOptional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "requires": { "is-number": "^7.0.0" }, "dependencies": { "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "version": "7.0.0" } } }, "toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" + "version": "1.0.6" + }, + "toidentifier": { + "version": "1.0.1", + "dev": true }, "toml": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", - "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==" + "version": "2.3.6" + }, + "toposort": { + "version": "2.0.2" + }, + "totalist": { + "version": "1.1.0" }, "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.2", + "dev": true, "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "version": "0.2.0", + "dev": true } } }, "tr46": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, "requires": { "punycode": "^2.1.1" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - } } }, "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==" + "version": "0.0.1" }, "trim-lines": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-1.1.3.tgz", - "integrity": "sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA==" + "version": "3.0.1" + }, + "trim-newlines": { + "version": "1.0.0", + "dev": true, + "optional": true }, "trim-trailing-lines": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", - "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==" + "version": "1.1.4" }, "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + "version": "1.0.5" }, - "ts-invariant": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", - "requires": { - "tslib": "^2.1.0" - } + "ts-dedent": { + "version": "2.2.0", + "dev": true }, "ts-jest": { "version": "27.1.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.5.tgz", - "integrity": "sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA==", "dev": true, "requires": { "bs-logger": "0.x", @@ -29768,46 +52638,124 @@ "yargs-parser": "20.x" }, "dependencies": { + "@jest/types": { + "version": "27.5.1", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + } + }, + "@types/yargs": { + "version": "16.0.4", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "dev": true + }, + "jest-util": { + "version": "27.5.1", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", "dev": true, "requires": { "lru-cache": "^6.0.0" } + }, + "supports-color": { + "version": "7.2.0", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "version": "10.9.1", "devOptional": true, "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "source-map-support": "^0.5.17", + "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "dependencies": { + "acorn": { + "version": "8.8.0", + "devOptional": true + }, + "acorn-walk": { + "version": "8.2.0", + "devOptional": true + }, "arg": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "devOptional": true } } }, + "ts-pnp": { + "version": "1.2.0", + "dev": true + }, "tsconfig": { "version": "file:packages/tsconfig" }, "tsconfig-paths": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", "requires": { "@types/json5": "^0.0.29", "json5": "^1.0.1", @@ -29817,374 +52765,58 @@ "dependencies": { "json5": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { "minimist": "^1.2.0" } }, "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + "version": "3.0.0" } } }, "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "version": "2.4.0" }, "tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "requires": { "tslib": "^1.8.1" }, "dependencies": { "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "version": "1.14.1" } } }, + "tty-browserify": { + "version": "0.0.0", + "devOptional": true + }, "turbo": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo/-/turbo-1.4.3.tgz", - "integrity": "sha512-g08eD2HdO/XW5xGHnXr0cXGiWnrgFBI6pN/3u0EOTeerKAsWIZU0ZrpSnl3whRtImeBB/gQu7Eu1waM2VOxzgw==", + "version": "1.4.7", "dev": true, "requires": { - "turbo-android-arm64": "1.4.3", - "turbo-darwin-64": "1.4.3", - "turbo-darwin-arm64": "1.4.3", - "turbo-freebsd-64": "1.4.3", - "turbo-freebsd-arm64": "1.4.3", - "turbo-linux-32": "1.4.3", - "turbo-linux-64": "1.4.3", - "turbo-linux-arm": "1.4.3", - "turbo-linux-arm64": "1.4.3", - "turbo-linux-mips64le": "1.4.3", - "turbo-linux-ppc64le": "1.4.3", - "turbo-windows-32": "1.4.3", - "turbo-windows-64": "1.4.3", - "turbo-windows-arm64": "1.4.3" + "turbo-android-arm64": "1.4.7", + "turbo-darwin-64": "1.4.7", + "turbo-darwin-arm64": "1.4.7", + "turbo-freebsd-64": "1.4.7", + "turbo-freebsd-arm64": "1.4.7", + "turbo-linux-32": "1.4.7", + "turbo-linux-64": "1.4.7", + "turbo-linux-arm": "1.4.7", + "turbo-linux-arm64": "1.4.7", + "turbo-linux-mips64le": "1.4.7", + "turbo-linux-ppc64le": "1.4.7", + "turbo-windows-32": "1.4.7", + "turbo-windows-64": "1.4.7", + "turbo-windows-arm64": "1.4.7" } }, - "turbo-android-arm64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-android-arm64/-/turbo-android-arm64-1.4.3.tgz", - "integrity": "sha512-ZUvdoEHJkTkOFOO9PKWYrdONDBVqkNsvwEMufTVf07RXgqmbXDPkznzT4hcQm6xXyqWqJdjgSAMdlm+2nNE1Og==", - "dev": true, - "optional": true - }, "turbo-darwin-64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-1.4.3.tgz", - "integrity": "sha512-gapoVm5qbu2TJS4lJ6fM3o2eAkLyXSxHihw/4NRAYmwHCH3at1/cIAnRcctB/HLL3ZaB/p3HKb8mnI7k6xNHOw==", + "version": "1.4.7", "dev": true, "optional": true }, - "turbo-darwin-arm64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-1.4.3.tgz", - "integrity": "sha512-XUe6FTsHamEH7FfNslYYO04yecAaguhZuwW4kE9B/BAP8MUYsmVqONauLPyE/YqM6pf2K0xwVe+RlEGf53CWbg==", - "dev": true, - "optional": true - }, - "turbo-freebsd-64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-freebsd-64/-/turbo-freebsd-64-1.4.3.tgz", - "integrity": "sha512-1CAjXmDClgMXdWZXreUfAbGBB2WB9TZHfJIdsgnDqt4fIcFGChknzYqc+Fj3tGHAczMpinGjBbWIzFuxOq/ofQ==", - "dev": true, - "optional": true - }, - "turbo-freebsd-arm64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-freebsd-arm64/-/turbo-freebsd-arm64-1.4.3.tgz", - "integrity": "sha512-j5C7j/vwabPKpr5d6YlLgHGHBZCOcXj3HdkBshDHTQ0wghH0NuCUUaesYxI3wva/4/Ec0dhIrb20Laa/HMxXLA==", - "dev": true, - "optional": true - }, - "turbo-linux-32": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-32/-/turbo-linux-32-1.4.3.tgz", - "integrity": "sha512-vnc+StXIoQEnxIU43j7rEz/J+v+RV4dbUdUolBq0k9gkUV8KMCcqPkIa753K47E2KLNGKXMaYDI6AHQX1GAQZg==", - "dev": true, - "optional": true - }, - "turbo-linux-64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-1.4.3.tgz", - "integrity": "sha512-KAUeIa8Ejt6BLrBGbVurlrjDxqh62tu75D4cqKqKfzWspcbEtmdqlV6qthXfm8SlzGSNuQXX0+qXEWds2FIZXg==", - "dev": true, - "optional": true - }, - "turbo-linux-arm": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-arm/-/turbo-linux-arm-1.4.3.tgz", - "integrity": "sha512-zZNoHUK5ioFyxAngh8tHe763Dzb22ne3LJkaZn0ExkFHJtWClWv536lPcDuQPpIH9W9iz5OwPKtN32DNpNwk8A==", - "dev": true, - "optional": true - }, - "turbo-linux-arm64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-1.4.3.tgz", - "integrity": "sha512-rzB7w+RHCQkKr8aDxxozv/IzdN976CYyBiRocSf9QGU73uyAg8pCo3i0MiENSRjDC+tUbdbu2lEUwGXf9ziB9Q==", - "dev": true, - "optional": true - }, - "turbo-linux-mips64le": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-mips64le/-/turbo-linux-mips64le-1.4.3.tgz", - "integrity": "sha512-Ztr1BM5NiUsHWjB7zpkP2RpRDA/fjbLaCbkyfyGlLmVkrSkh05NFBD03IWs2LSLy/wb6vRpL3MQ4FKcb97Tn8w==", - "dev": true, - "optional": true - }, - "turbo-linux-ppc64le": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-linux-ppc64le/-/turbo-linux-ppc64le-1.4.3.tgz", - "integrity": "sha512-tJaFJWxwfy/iLd69VHZj6JcXy9hO8LQ+ZUOna/p/wiy5WrFVgEYlD+4gfECfRZ+52EIelMgXl97vACaN1WMhLw==", - "dev": true, - "optional": true - }, - "turbo-windows-32": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-windows-32/-/turbo-windows-32-1.4.3.tgz", - "integrity": "sha512-w9LyYd+DW3PYFXu9vQiie5lfdqmVIKLV0h181C49hempkIXfgQAosXfaugYWDwBc0GEBoBIQB0vGQKE7gt5nzA==", - "dev": true, - "optional": true - }, - "turbo-windows-64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-1.4.3.tgz", - "integrity": "sha512-qPCqemxxOrXyqqig3fVQozRkOwo5oJSsQ3FTZE5YlNu2NwwWvY1mC0X4WTZIDsbj4oHqr0riqC7RGKbjQm1IIQ==", - "dev": true, - "optional": true - }, - "turbo-windows-arm64": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-1.4.3.tgz", - "integrity": "sha512-djnOOBjw33AnUx2SR6TMOpDr3nKLnVD+HcZvnQz70HyE331AKWjBoEE4rtUOteLAfViWAp3afbiljFSOnbU00Q==", - "dev": true, - "optional": true - }, - "tutorials": { - "version": "file:apps/temp-community-tutorials", - "requires": { - "@types/node": "^17.0.12", - "@types/react": "17.0.37", - "common": "*", - "config": "*", - "eslint": "7.32.0", - "next": "12.0.8", - "next-transpile-modules": "9.0.0", - "react": "17.0.2", - "react-dom": "17.0.2", - "tsconfig": "*", - "typescript": "^4.5.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.14.5", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/types": { - "version": "7.15.0", - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@types/node": { - "version": "17.0.27" - }, - "@types/react": { - "version": "17.0.37", - "dev": true, - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "colorette": { - "version": "1.4.0" - }, - "convert-source-map": { - "version": "1.7.0", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "emojis-list": { - "version": "2.1.0" - }, - "eslint": { - "version": "7.32.0", - "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - } - }, - "jest-worker": { - "version": "27.0.0-next.5", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.0-next.5.tgz", - "integrity": "sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "json5": { - "version": "1.0.1", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.2.3", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "next": { - "version": "12.0.8", - "requires": { - "@next/env": "12.0.8", - "@next/react-refresh-utils": "12.0.8", - "@next/swc-android-arm64": "12.0.8", - "@next/swc-darwin-arm64": "12.0.8", - "@next/swc-darwin-x64": "12.0.8", - "@next/swc-linux-arm-gnueabihf": "12.0.8", - "@next/swc-linux-arm64-gnu": "12.0.8", - "@next/swc-linux-arm64-musl": "12.0.8", - "@next/swc-linux-x64-gnu": "12.0.8", - "@next/swc-linux-x64-musl": "12.0.8", - "@next/swc-win32-arm64-msvc": "12.0.8", - "@next/swc-win32-ia32-msvc": "12.0.8", - "@next/swc-win32-x64-msvc": "12.0.8", - "caniuse-lite": "^1.0.30001283", - "jest-worker": "27.0.0-next.5", - "node-fetch": "2.6.1", - "postcss": "8.2.15", - "react-is": "17.0.2", - "react-refresh": "0.8.3", - "stream-browserify": "3.0.0", - "styled-jsx": "5.0.0-beta.6", - "use-subscription": "1.5.1" - }, - "dependencies": { - "source-map": { - "version": "0.7.3" - }, - "styled-jsx": { - "version": "5.0.0-beta.6", - "requires": { - "@babel/plugin-syntax-jsx": "7.14.5", - "@babel/types": "7.15.0", - "convert-source-map": "1.7.0", - "loader-utils": "1.2.3", - "source-map": "0.7.3", - "string-hash": "1.1.3", - "stylis": "3.5.4", - "stylis-rule-sheet": "0.0.10" - } - } - } - }, - "node-fetch": { - "version": "2.6.1" - }, - "postcss": { - "version": "8.2.15", - "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map": "^0.6.1" - } - }, - "semver": { - "version": "7.3.7", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, "type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", @@ -30192,40 +52824,89 @@ }, "type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "requires": { "prelude-ls": "^1.2.1" } }, "type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, + "type-fest": { + "version": "0.20.2" + }, + "type-is": { + "version": "1.6.18", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + "version": "0.0.6" }, "typedarray-to-buffer": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "requires": { "is-typedarray": "^1.0.0" } }, "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" + "version": "4.8.4" + }, + "uglify-js": { + "version": "3.17.3", + "dev": true, + "optional": true + }, + "ui": { + "version": "file:packages/ui", + "requires": { + "@headlessui/react": "^1.0.0", + "@mertasan/tailwindcss-variables": "^2.0.1", + "@radix-ui/colors": "^0.1.8", + "@radix-ui/react-accordion": "^0.1.5", + "@radix-ui/react-collapsible": "^0.1.5", + "@radix-ui/react-context-menu": "^0.1.0", + "@radix-ui/react-dialog": "^0.1.5", + "@radix-ui/react-dropdown-menu": "^0.1.4", + "@radix-ui/react-popover": "^0.1.0", + "@radix-ui/react-portal": "^0.1.3", + "@radix-ui/react-tabs": "^0.1.0", + "@tailwindcss/forms": "^0.4.0", + "@tailwindcss/typography": "^0.5.0", + "@types/react": "^17.0.37", + "@types/react-dom": "^17.0.11", + "autoprefixer": "^10.4.2", + "deepmerge": "^4.2.2", + "formik": "^2.2.9", + "lodash": "^4.17.20", + "postcss": "^8.4.5", + "prop-types": "^15.7.2", + "react-feather": "^2.0.10", + "tailwindcss": "^3.0.15", + "tailwindcss-radix": "^1.6.0", + "typescript": "4.3.4" + }, + "dependencies": { + "@tailwindcss/typography": { + "version": "0.5.7", + "requires": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + } + }, + "typescript": { + "version": "4.3.4", + "dev": true + } + } }, "unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "requires": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -30233,10 +52914,12 @@ "which-boxed-primitive": "^1.0.2" } }, + "unfetch": { + "version": "4.2.0", + "dev": true + }, "unherit": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", "requires": { "inherits": "^2.0.0", "xtend": "^4.0.0" @@ -30244,13 +52927,11 @@ }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + "dev": true }, "unicode-match-property-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, "requires": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -30258,18 +52939,14 @@ }, "unicode-match-property-value-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" + "version": "2.1.0", + "dev": true }, "unified": { "version": "9.2.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", - "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", "requires": { "bail": "^1.0.0", "extend": "^3.0.0", @@ -30277,95 +52954,213 @@ "is-plain-obj": "^2.0.0", "trough": "^1.0.0", "vfile": "^4.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5" + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "requires": { + "@types/unist": "^2.0.2" + } + }, + "vfile": { + "version": "4.2.1", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-message": { + "version": "2.0.4", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + } + } + }, + "uniforms": { + "version": "3.10.1", + "requires": { + "invariant": "^2.0.0", + "lodash": "^4.0.0", + "tslib": "^2.2.0" + } + }, + "uniforms-bootstrap4": { + "version": "3.10.1", + "requires": { + "classnames": "^2.0.0", + "invariant": "^2.0.0", + "lodash": "^4.0.0", + "tslib": "^2.2.0", + "uniforms": "^3.10.1", + "warning": "^4.0.0" + } + }, + "uniforms-bridge-json-schema": { + "version": "3.10.1", + "requires": { + "invariant": "^2.0.0", + "lodash": "^4.0.0", + "tslib": "^2.2.0", + "uniforms": "^3.10.1" + } + }, + "union-value": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" } }, "uniq": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", "dev": true }, - "unist-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", - "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==" - }, - "unist-util-generated": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", - "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==" - }, - "unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==" - }, - "unist-util-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-map/-/unist-util-map-2.0.1.tgz", - "integrity": "sha512-VdNvk4BQUUU9Rgr8iUOvclHa/iN9O+6Dt66FKij8l9OVezGG37gGWCPU5KSax1R2degqXFvl3kWTkvzL79e9tQ==", + "unique-filename": { + "version": "1.1.1", + "devOptional": true, "requires": { - "@types/mdast": "^3.0.0", - "object-assign": "^4.0.0" + "unique-slug": "^2.0.0" } }, + "unique-slug": { + "version": "2.0.2", + "devOptional": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unist-builder": { + "version": "3.0.0", + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-generated": { + "version": "2.0.0" + }, + "unist-util-is": { + "version": "5.1.1" + }, "unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" + "version": "4.0.3", + "requires": { + "@types/unist": "^2.0.0" + } + }, + "unist-util-position-from-estree": { + "version": "1.1.1", + "requires": { + "@types/unist": "^2.0.0" + } }, "unist-util-remove": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", - "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", "requires": { "unist-util-is": "^4.0.0" + }, + "dependencies": { + "unist-util-is": { + "version": "4.1.0" + } } }, "unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "version": "4.0.1", "requires": { - "unist-util-visit": "^2.0.0" + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" } }, "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "version": "3.0.2", "requires": { - "@types/unist": "^2.0.2" + "@types/unist": "^2.0.0" } }, "unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "version": "4.1.1", "requires": { "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" } }, "unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "version": "5.1.1", "requires": { "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" + "unist-util-is": "^5.0.0" } }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + "universalify": { + "version": "2.0.0", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "devOptional": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "devOptional": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "devOptional": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "devOptional": true + }, + "isarray": { + "version": "1.0.0", + "devOptional": true + } + } + }, + "untildify": { + "version": "2.1.0", + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0" + } + }, + "upath": { + "version": "1.2.0", + "dev": true, + "optional": true }, "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "version": "1.0.10", "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -30373,37 +53168,65 @@ }, "uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "requires": { "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "devOptional": true + }, + "url": { + "version": "0.11.0", + "devOptional": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" }, "dependencies": { "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "version": "1.3.2", + "devOptional": true } } }, + "url-loader": { + "version": "4.1.1", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + } + }, + "url-parse": { + "version": "1.5.10", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "devOptional": true + }, "use-callback-ref": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", - "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", "requires": { "tslib": "^2.0.0" } }, "use-debounce": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-7.0.1.tgz", - "integrity": "sha512-fOrzIw2wstbAJuv8PC9Vg4XgwyTLEOdq4y/Z3IhVl8DAE4svRcgyEUvrEXu+BMNgMoc3YND6qLT61kkgEKXh7Q==", + "requires": {} + }, + "use-memo-one": { + "version": "1.1.3", "requires": {} }, "use-sidecar": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", "requires": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -30411,34 +53234,71 @@ }, "use-subscription": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", - "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", "requires": { "object-assign": "^4.1.1" } }, + "use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "requires": {} + }, "utf-8-validate": { "version": "5.0.9", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz", - "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==", "requires": { "node-gyp-build": "^4.3.0" } }, + "util": { + "version": "0.11.1", + "devOptional": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "devOptional": true + } + } + }, "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "version": "1.0.2" + }, + "util.promisify": { + "version": "1.0.0", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "dev": true }, "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "version": "8.3.2" + }, + "uuid-browser": { + "version": "3.1.0", + "dev": true + }, + "uuid-by-string": { + "version": "3.0.7", + "dev": true, + "requires": { + "js-md5": "^0.7.3", + "js-sha1": "^0.6.0" + } }, "uvu": { "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", "requires": { "dequal": "^2.0.0", "diff": "^5.0.0", @@ -30447,26 +53307,22 @@ }, "dependencies": { "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==" + "version": "5.1.0" }, "kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==" + "version": "4.1.5" } } }, "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + "version": "2.3.0" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "devOptional": true }, "v8-to-istanbul": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -30476,151 +53332,741 @@ "dependencies": { "source-map": { "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "dev": true } } }, + "validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "dev": true + }, "vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "version": "5.3.5", "requires": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.5" + } } }, "vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==" - }, - "vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "version": "4.0.1", "requires": { "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "vfile": "^5.0.0" } }, + "vfile-matter": { + "version": "3.0.1", + "requires": { + "@types/js-yaml": "^4.0.0", + "is-buffer": "^2.0.0", + "js-yaml": "^4.0.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1" + }, + "is-buffer": { + "version": "2.0.5" + }, + "js-yaml": { + "version": "4.1.0", + "requires": { + "argparse": "^2.0.1" + } + } + } + }, + "vfile-message": { + "version": "3.1.2", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "devOptional": true + }, "w3c-hr-time": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, "requires": { "browser-process-hrtime": "^1.0.0" } }, "w3c-xmlserializer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, "requires": { "xml-name-validator": "^3.0.0" } }, "walker": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "requires": { "makeerror": "1.0.12" } }, + "warning": { + "version": "4.0.3", + "requires": { + "loose-envify": "^1.0.0" + } + }, "watchpack": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "devOptional": true, - "peer": true, + "dev": true, "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" } }, - "web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" - }, - "webpack": { - "version": "5.74.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", - "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", - "devOptional": true, - "peer": true, + "watchpack-chokidar2": { + "version": "2.0.1", + "dev": true, + "optional": true, "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "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": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" + "chokidar": "^2.1.8" }, "dependencies": { - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "devOptional": true, - "peer": true - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "devOptional": true, - "peer": true, - "requires": {} - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "devOptional": true, - "peer": true, + "anymatch": { + "version": "2.0.0", + "dev": true, + "optional": true, "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.13", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-extendable": { + "version": "1.0.1", + "dev": true, + "optional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "dev": true, + "optional": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "micromatch": { + "version": "3.1.10", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "dev": true, + "optional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "readdirp": { + "version": "2.2.1", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } } } }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "web-namespaces": { + "version": "1.1.4" + }, + "webidl-conversions": { + "version": "6.1.0", + "dev": true + }, + "webpack": { + "version": "4.46.0", "devOptional": true, - "peer": true + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "devOptional": true + }, + "ajv": { + "version": "6.12.6", + "devOptional": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "devOptional": true, + "requires": {} + }, + "braces": { + "version": "2.3.2", + "devOptional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "cacache": { + "version": "12.0.4", + "devOptional": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "devOptional": true + }, + "enhanced-resolve": { + "version": "4.5.0", + "devOptional": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "devOptional": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "eslint-scope": { + "version": "4.0.3", + "devOptional": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "devOptional": true + }, + "fill-range": { + "version": "4.0.0", + "devOptional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "is-extendable": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-number": { + "version": "3.0.0", + "devOptional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "devOptional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "devOptional": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-wsl": { + "version": "1.1.0", + "devOptional": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "devOptional": true + }, + "json5": { + "version": "1.0.1", + "devOptional": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "devOptional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "devOptional": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "micromatch": { + "version": "3.1.10", + "devOptional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "devOptional": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + } + } + }, + "rimraf": { + "version": "2.7.1", + "devOptional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "devOptional": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "devOptional": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "ssri": { + "version": "6.0.2", + "devOptional": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "devOptional": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "devOptional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "watchpack": { + "version": "1.7.5", + "devOptional": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "y18n": { + "version": "4.0.3", + "devOptional": true + }, + "yallist": { + "version": "3.1.1", + "devOptional": true + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.3.0", + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^6.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "acorn": { + "version": "8.8.0" + }, + "acorn-walk": { + "version": "8.2.0" + }, + "ansi-styles": { + "version": "4.3.0", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4" + }, + "has-flag": { + "version": "4.0.0" + }, + "supports-color": { + "version": "7.2.0", + "requires": { + "has-flag": "^4.0.0" + } + }, + "ws": { + "version": "7.5.9", + "requires": {} + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.6.0", + "dev": true + } + } + }, + "webpack-filter-warnings-plugin": { + "version": "1.2.1", + "dev": true, + "requires": {} + }, + "webpack-hot-middleware": { + "version": "2.25.2", + "dev": true, + "requires": { + "ansi-html-community": "0.0.8", + "html-entities": "^2.1.0", + "strip-ansi": "^6.0.0" + } + }, + "webpack-log": { + "version": "2.0.0", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.4", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "dev": true + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "devOptional": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "webpack-virtual-modules": { + "version": "0.2.2", + "dev": true, + "requires": { + "debug": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } }, "websocket": { "version": "1.0.34", @@ -30652,21 +54098,18 @@ }, "whatwg-encoding": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, "requires": { "iconv-lite": "0.4.24" } }, "whatwg-mimetype": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + "dev": true }, "whatwg-url": { "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, "requires": { "lodash": "^4.7.0", "tr46": "^2.1.0", @@ -30675,16 +54118,12 @@ }, "which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "requires": { "isexe": "^2.0.0" } }, "which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -30693,26 +54132,74 @@ "is-symbol": "^1.0.3" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true + "wide-align": { + "version": "1.1.5", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "widest-line": { + "version": "3.1.0", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } }, "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "version": "1.2.3" + }, + "wordwrap": { + "version": "1.0.0", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "devOptional": true, + "requires": { + "errno": "~0.1.7" + } + }, + "worker-rpc": { + "version": "0.1.1", + "dev": true, + "requires": { + "microevent.ts": "~0.1.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "dev": true + } + } }, "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "version": "1.0.2" }, "write-file-atomic": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { "imurmurhash": "^0.1.4", @@ -30722,9 +54209,8 @@ } }, "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "8.9.0", + "dev": true, "requires": {} }, "www": { @@ -30734,18 +54220,20 @@ "@mdx-js/loader": "^1.6.22", "@mdx-js/react": "^1.6.22", "@next/mdx": "^10.0.7", - "@supabase/supabase-js": "^1.6.0", + "@supabase/auth-ui-react": "^0.1.6", + "@supabase/supabase-js": "^2.0.0", "@supabase/ui": "v0.37.0-alpha.80", "@tailwindcss/typography": "^0.5.2", "@types/classnames": "^2.3.1", "@types/jest": "^25.2.2", "@types/marked": "^4.0.3", + "@types/mdx-js__react": "^1.5.5", "@types/node": "^14.0.1", "@types/nodemailer": "^6.4.4", "@types/parse-numeric-range": "^0.0.1", - "@types/react": "^16.9.35", + "@types/react": "17.0.11", "@types/react-copy-to-clipboard": "^4.3.0", - "@types/react-dom": "^16.9.8", + "@types/react-dom": "^17.0.11", "@types/react-syntax-highlighter": "^13.5.2", "autoprefixer": "^10.4.2", "classnames": "^2.3.1", @@ -30757,28 +54245,28 @@ "markdown-toc": "^1.2.0", "marked": "^4.0.12", "next": "latest", - "next-mdx-remote": "^2.1.3", + "next-mdx-remote": "^4.1.0", "next-seo": "^4.20.0", "nodemailer": "^6.7.3", "parse-numeric-range": "^1.3.0", - "postcss": "^8.4.7", + "postcss": "^8.4.16", "postcss-preset-env": "^6.7.0", "prettier": "^2.2.1", "react": "^17.0.2", "react-copy-to-clipboard": "^5.0.2", "react-dom": "^17.0.2", "react-ga": "^3.3.0", - "react-markdown": "^5.0.3", + "react-markdown": "^8.0.3", "react-syntax-highlighter": "^15.5.0", "react-tooltip": "^4.2.17", "react-transition-group": "^4.4.1", - "rehype-slug": "^4.0.1", + "rehype-slug": "^5.0.1", "remark": "^13.0.0", - "remark-gfm": "^1.0.0", - "remark-html": "10.0.0", + "remark-gfm": "^3.0.1", + "remark-html": "^15.0.1", "swiper": "^6.5.0", "swr": "^0.5.4", - "tailwindcss": "^3.0.23", + "tailwindcss": "^3.1.8", "typescript": "^4.0.3", "use-debounce": "^7.0.1", "uuid": "^8.3.2" @@ -30786,8 +54274,6 @@ "dependencies": { "@jest/types": { "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", - "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -30800,6 +54286,10 @@ "version": "1.6.22", "requires": {} }, + "@next/mdx": { + "version": "10.2.3", + "requires": {} + }, "@supabase/ui": { "version": "0.37.0-alpha.80", "requires": { @@ -30827,6 +54317,23 @@ "tailwindcss-radix": "^1.6.0" } }, + "@tailwindcss/typography": { + "version": "0.5.7", + "requires": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, "@types/jest": { "version": "25.2.3", "dev": true, @@ -30835,56 +54342,64 @@ "pretty-format": "^25.2.1" } }, + "@types/node": { + "version": "14.18.31", + "dev": true + }, "@types/react": { - "version": "16.14.25", + "version": "17.0.11", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, + "ansi-styles": { + "version": "4.3.0", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, - "jest-diff": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", - "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "color-convert": { + "version": "2.0.1", "dev": true, "requires": { - "chalk": "^3.0.0", - "diff-sequences": "^25.2.6", - "jest-get-type": "^25.2.6", - "pretty-format": "^25.5.0" + "color-name": "~1.1.4" } }, - "jest-get-type": { - "version": "25.2.6", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", - "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "color-name": { + "version": "1.1.4", "dev": true }, - "mdast-add-list-metadata": { - "version": "1.0.1", - "requires": { - "unist-util-visit-parents": "1.1.2" - } + "has-flag": { + "version": "4.0.0", + "dev": true }, - "mdast-util-from-markdown": { - "version": "0.8.5", + "next-mdx-remote": { + "version": "4.1.0", "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-to-string": "^2.0.0", - "micromark": "~2.11.0", - "parse-entities": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" + "@mdx-js/mdx": "^2.0.0", + "@mdx-js/react": "^2.0.0", + "vfile": "^5.3.0", + "vfile-matter": "^3.0.1" + }, + "dependencies": { + "@mdx-js/react": { + "version": "2.1.4", + "requires": { + "@types/mdx": "^2.0.0", + "@types/react": ">=16" + } + } } }, "pretty-format": { @@ -30897,54 +54412,43 @@ "react-is": "^16.12.0" } }, - "react-is": { - "version": "16.13.1" - }, - "react-markdown": { - "version": "5.0.3", + "remark": { + "version": "13.0.0", "requires": { - "@types/mdast": "^3.0.3", - "@types/unist": "^2.0.3", - "html-to-react": "^1.3.4", - "mdast-add-list-metadata": "1.0.1", - "prop-types": "^15.7.2", - "react-is": "^16.8.6", "remark-parse": "^9.0.0", - "unified": "^9.0.0", - "unist-util-visit": "^2.0.0", - "xtend": "^4.0.1" + "remark-stringify": "^9.0.0", + "unified": "^9.1.0" } }, - "remark-parse": { - "version": "9.0.0", + "supports-color": { + "version": "7.2.0", + "dev": true, "requires": { - "mdast-util-from-markdown": "^0.8.0" + "has-flag": "^4.0.0" } - }, - "unist-util-visit-parents": { - "version": "1.1.2" } } }, + "x-default-browser": { + "version": "0.4.0", + "dev": true, + "requires": { + "default-browser-id": "^1.0.4" + } + }, "xml-name-validator": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + "dev": true }, "xmlchars": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + "dev": true }, "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "version": "4.0.2" }, "y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yaeti": { @@ -30953,19 +54457,13 @@ "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==" }, "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "version": "4.0.0" }, "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "version": "1.10.2" }, "yargs": { "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { "cliui": "^7.0.2", @@ -30975,61 +54473,37 @@ "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } } }, "yargs-parser": { "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true }, "yn": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "devOptional": true }, "yocto-queue": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "dev": true }, - "zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "zen-observable-ts": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", + "yup": { + "version": "0.32.11", "requires": { - "zen-observable": "0.8.15" + "@babel/runtime": "^7.15.4", + "@types/lodash": "^4.14.175", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "nanoclone": "^0.2.1", + "property-expr": "^2.0.4", + "toposort": "^2.0.2" } }, "zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" + "version": "2.0.2" + }, + "zxcvbn": { + "version": "4.4.2" } } } diff --git a/package.json b/package.json index 3ac87535fc8..7235aae7e7f 100644 --- a/package.json +++ b/package.json @@ -6,16 +6,16 @@ "license": "Apache-2.0", "private": true, "workspaces": [ - "apps/temp-community-forum", - "apps/temp-community-tutorials", - "apps/temp-docs", "apps/www", + "studio", + "tests", "packages/*" ], "scripts": { "build": "turbo run build", "dev": "turbo run dev --parallel", "dev:reference": "turbo run dev --filter=reference --parallel", + "dev:studio": "turbo run dev --filter=studio --parallel", "lint": "turbo run lint", "format": "prettier --write \"apps/**/*.{js,jsx,ts,tsx,css,md,json}\"", "docker:dev": "cd docker && docker-compose -f docker-compose.yml -f ./dev/docker-compose.dev.yml up --renew-anon-volumes", @@ -23,30 +23,16 @@ "docker:down": "cd docker && docker-compose -f docker-compose.yml -f ./dev/docker-compose.dev.yml down --remove-orphans", "docker:remove": "cd docker && docker-compose -f docker-compose.yml -f ./dev/docker-compose.dev.yml rm -vfs", "test": "jest", + "test:studio": "turbo run test --filter=studio", "perf:kong": "ab -t 5 -c 20 -T application/json http://localhost:8000/", "perf:meta": "ab -t 5 -c 20 -T application/json http://localhost:5555/tables" }, "devDependencies": { - "@babel/core": "^7.16.0", - "@babel/preset-env": "^7.16.4", - "@babel/preset-typescript": "^7.16.0", - "@supabase/supabase-js": "^1.35.3", - "@types/jest": "^27.0.3", - "@types/node": "^14.14.14", - "autoprefixer": "^10.4.4", - "axios": "^0.24.0", - "babel-jest": "^27.3.1", - "dotenv": "^10.0.0", - "faker": "^5.5.3", - "jest": "^27.3.1", - "postcss": "^8.4.12", - "prettier": "^2.6.2", - "prettier-plugin-tailwindcss": "^0.1.8", - "tailwindcss": "^3.0.24", - "ts-jest": "^27.0.7", - "ts-node": "^9.1.1", - "turbo": "latest", - "typescript": "^4.5.2" + "eslint": "^7.32.0", + "eslint-config-custom": "*", + "prettier": "^2.5.1", + "turbo": "1.4.7", + "ts-jest": "^27.0.7" }, "repository": { "type": "git", diff --git a/packages/config/package.json b/packages/config/package.json index f485d47f053..62e639d2cac 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -15,6 +15,7 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-react": "7.28.0", "mini-svg-data-uri": "^1.4.4", - "tailwindcss-radix": "^2.0.0" + "tailwindcss-radix": "^2.0.0", + "@tailwindcss/typography": "^0.5.2" } } diff --git a/packages/config/tailwind.config.js b/packages/config/tailwind.config.js index 9c2ef8f0cee..7032d04e011 100644 --- a/packages/config/tailwind.config.js +++ b/packages/config/tailwind.config.js @@ -16,10 +16,10 @@ module.exports = ui({ mode: 'JIT', content: [ '../../packages/common/**/*.{ts,tsx}', - './src/**/*.{ts,tsx}', + './src/**/*.{ts,tsx,mdx}', './components/**/*.tsx', './layouts/**/*.tsx', - './pages/**/*.tsx', + './pages/**/*.{tsx,mdx}', './_blog/*.mdx', // purge styles from supabase ui theme '../../node_modules/@supabase/ui/dist/config/default-theme.js', @@ -52,7 +52,7 @@ module.exports = ui({ '--tw-prose-body': theme('colors.scale[1100]'), '--tw-prose-headings': theme('colors.scale[1200]'), '--tw-prose-lead': theme('colors.scale[1100]'), - '--tw-prose-links': theme('colors.brand[900]'), + '--tw-prose-links': theme('colors.scale[1100]'), '--tw-prose-bold': theme('colors.scale[1100]'), '--tw-prose-counters': theme('colors.scale[1100]'), '--tw-prose-bullets': theme('colors.scale[900]'), @@ -88,9 +88,6 @@ module.exports = ui({ p: { fontWeight: '400', }, - a: { - fontWeight: '400', - }, pre: { background: 'none', padding: 0, @@ -101,6 +98,31 @@ module.exports = ui({ borderRadius: '4px', overflow: 'hidden', }, + iframe: { + border: '1px solid ' + theme('borderColor.DEFAULT'), + borderRadius: theme('borderRadius.lg'), + }, + td: { + borderBottom: '1px solid ' + theme('colors.scale[400]'), + }, + code: { + fontWeight: '400', + padding: '0.2rem 0.4rem', + backgroundColor: theme('colors.scale[400]'), + border: '1px solid ' + theme('colors.scale[500]'), + borderRadius: theme('borderRadius.lg'), + wordBreak: 'break-all', + }, + a: { + transition: 'box-shadow 0.1s ease-in-out', + paddingBottom: '2px', + textDecoration: 'none', + boxShadow: "theme('colors.brand[900]') 0px -3px 0px -1px inset", + }, + 'a:hover': { + boxShadow: "inset 0 -30px 0 -1px theme('colors.brand[900]')", + color: 'var(--tw-prose-headings)', + }, }, }, @@ -115,6 +137,7 @@ module.exports = ui({ }, a: { display: 'block', + marginBottom: '0.4rem', 'text-decoration': 'none', fontSize: '0.8rem', fontWeight: '200', diff --git a/packages/spec/index.ts b/packages/spec/index.ts deleted file mode 100644 index aaa81eaf322..00000000000 --- a/packages/spec/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import DocGenerator from './src/docs' - -const main = (command: string[], options: any) => { - handleInput(command[0], options) -} - -// Run everything -const argv = require('minimist')(process.argv.slice(2)) -main(argv['_'], argv) - -function handleInput(command: string, options: any) { - switch (command) { - case 'validate': - console.log('Not yet implemented') - break - - case 'gen': - DocGenerator(options) - break - - default: - console.log('Unrecognized command:', command) - break - } -} diff --git a/packages/spec/package-lock.json b/packages/spec/package-lock.json deleted file mode 100644 index 41eb5793d6b..00000000000 --- a/packages/spec/package-lock.json +++ /dev/null @@ -1,1430 +0,0 @@ -{ - "name": "@supabase/generator", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@supabase/generator", - "version": "0.0.0", - "license": "MIT", - "dependencies": { - "@apidevtools/swagger-cli": "^4.0.4" - }, - "devDependencies": { - "@types/lodash": "^4.14.182", - "ejs": "^3.1.8", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "openapi-types": "^12.0.0", - "ts-node": "^10.9.1" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz", - "integrity": "sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==", - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "js-yaml": "^3.13.1" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "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==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-cli": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-cli/-/swagger-cli-4.0.4.tgz", - "integrity": "sha512-hdDT3B6GLVovCsRZYDi3+wMcB1HfetTU20l2DC8zD3iFRNMC6QNAZG5fo/6PYeHWBEv7ri4MvnlKodhNB0nt7g==", - "dependencies": { - "@apidevtools/swagger-parser": "^10.0.1", - "chalk": "^4.1.0", - "js-yaml": "^3.14.0", - "yargs": "^15.4.1" - }, - "bin": { - "swagger-cli": "bin/swagger-cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-cli/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@apidevtools/swagger-cli/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "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==" - }, - "node_modules/@apidevtools/swagger-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.0.tgz", - "integrity": "sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "9.0.6", - "@apidevtools/openapi-schemas": "^2.1.0", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "ajv": "^8.6.3", - "ajv-draft-04": "^1.0.0", - "call-me-maybe": "^1.0.1" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "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==" - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "node_modules/@types/lodash": { - "version": "4.14.182", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", - "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.6.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz", - "integrity": "sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==", - "dev": true, - "peer": true - }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.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==", - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": 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==", - "dev": true - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", - "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "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==" - }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "dependencies": { - "minimatch": "^5.0.1" - } - }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true, - "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==" - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/openapi-types": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.0.0.tgz", - "integrity": "sha512-6Wd9k8nmGQHgCbehZCP6wwWcfXcvinhybUTBatuhjRsCxUIujuYFZc9QnGeae75CyHASewBtxs0HX/qwREReUw==" - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "dev": true, - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@apidevtools/json-schema-ref-parser": { - "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.6.tgz", - "integrity": "sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==", - "requires": { - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "js-yaml": "^3.13.1" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } - } - }, - "@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==" - }, - "@apidevtools/swagger-cli": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-cli/-/swagger-cli-4.0.4.tgz", - "integrity": "sha512-hdDT3B6GLVovCsRZYDi3+wMcB1HfetTU20l2DC8zD3iFRNMC6QNAZG5fo/6PYeHWBEv7ri4MvnlKodhNB0nt7g==", - "requires": { - "@apidevtools/swagger-parser": "^10.0.1", - "chalk": "^4.1.0", - "js-yaml": "^3.14.0", - "yargs": "^15.4.1" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } - } - }, - "@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==" - }, - "@apidevtools/swagger-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.0.tgz", - "integrity": "sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==", - "requires": { - "@apidevtools/json-schema-ref-parser": "9.0.6", - "@apidevtools/openapi-schemas": "^2.1.0", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "ajv": "^8.6.3", - "ajv-draft-04": "^1.0.0", - "call-me-maybe": "^1.0.1" - } - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@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==" - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "@types/lodash": { - "version": "4.14.182", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", - "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==", - "dev": true - }, - "@types/node": { - "version": "18.6.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz", - "integrity": "sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==", - "dev": true, - "peer": true - }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "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==", - "requires": {} - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha512-wCyFsDQkKPwwF8BDwOiWNx/9K45L/hvggQiDbve+viMNMQnWhrlYIuBk09offfwCRtCO9P6XwUttufzU11WCVw==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", - "dev": true, - "requires": { - "jake": "^10.8.5" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "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==" - }, - "filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "dev": true, - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "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==" - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "openapi-types": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.0.0.tgz", - "integrity": "sha512-6Wd9k8nmGQHgCbehZCP6wwWcfXcvinhybUTBatuhjRsCxUIujuYFZc9QnGeae75CyHASewBtxs0HX/qwREReUw==" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" - }, - "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==" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "dev": true, - "peer": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==" - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - } - } -} diff --git a/packages/spec/package.json b/packages/spec/package.json deleted file mode 100644 index 7dcdd9b9119..00000000000 --- a/packages/spec/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "@supabase/generator", - "version": "0.0.0", - "main": "./index.tsx", - "types": "./index.tsx", - "license": "MIT", - "scripts": { - "api:gen": "npm run api:gen:api", - "api:gen:api": "ts-node ./index.ts gen --type api --url https://api.supabase.com --input ../../spec/transforms/api_v0_openapi_deparsed.json --output ../../apps/reference/_api/usage.mdx", - "cli:gen": "npm run cli:gen:commands && npm run cli:gen:config", - "cli:gen:commands": "ts-node ./index.ts gen --type cli --input ../../spec/cli_v1_commands.yaml --output ../../apps/reference/_cli/generated/usage.mdx ", - "cli:gen:config": "ts-node ./index.ts gen --type config --input ../../spec/cli_v1_config.yaml --output ../../apps/reference/_cli/generated/config.mdx", - "gotrue:gen": "npm run gotrue:gen:config", - "gotrue:gen:config": "ts-node ./index.ts gen --type config --input ../../spec/gotrue_v1_config.yaml --output ../../apps/reference/_gotrue/config.mdx", - "storage:gen": "npm run storage:gen:api && npm run storage:gen:config", - "storage:gen:api": "ts-node ./index.ts gen --type api --input ../../spec/transforms/storage_v0_openapi_deparsed.json --output ../../apps/reference/_storage/generated/usage.mdx", - "storage:gen:config": "ts-node ./index.ts gen --type config --input ../../spec/storage_v1_config.yaml --output ../../apps/reference/_storage/generated/config.mdx", - "supabase-js:gen": "npm run supabase-js:gen:sdk", - "supabase-js:gen:sdk": "ts-node ./index.ts gen --type sdk --input ../../spec/supabase_js_v1_sdk.yaml --output ../../apps/reference/_supabase_js/usage.mdx", - "supabase-dart:gen": "npm run supabase-dart:gen:sdk", - "supabase-dart:gen:sdk": "ts-node ./index.ts gen --type sdk --input ../../spec/supabase_dart_sdk.yaml --output ../../apps/reference/_supabase_dart/usage.mdx " - }, - "devDependencies": { - "@apidevtools/swagger-cli": "^4.0.4", - "@types/lodash": "^4.14.182", - "ejs": "^3.1.8", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "openapi-types": "^12.0.0", - "ts-node": "^10.9.1" - }, - "prettier": { - "semi": false, - "singleQuote": true - } -} diff --git a/packages/spec/src/docs/helpers.ts b/packages/spec/src/docs/helpers.ts deleted file mode 100644 index 49b8fcd851e..00000000000 --- a/packages/spec/src/docs/helpers.ts +++ /dev/null @@ -1,41 +0,0 @@ -import fs from 'fs' -import _ from 'lodash' - -export const slugify = (text: string) => { - return text - .toString() - .toLowerCase() - .replace(/[. )(]/g, '-') // Replace spaces and brackets - - .replace(/[^\w\-]+/g, '') // Remove all non-word chars - .replace(/\-\-+/g, '-') // Replace multiple - with single - - .replace(/^-+/, '') // Trim - from start of text - .replace(/-+$/, '') // Trim - from end of text -} - -// Uppercase the first letter of a string -export const toTitle = (text: string) => { - return text.charAt(0).toUpperCase() + text.slice(1) -} - -/** - * writeToDisk() - */ -export const writeToDisk = (fileName: string, content: any) => { - return new Promise((resolve, reject) => { - fs.writeFile(fileName, content, (err: any) => { - if (err) return reject(err) - else return resolve(true) - }) - }) -} - -/** - * Convert Object to Array of values - */ -export const toArrayWithKey = (obj: object, keyAs: string) => - _.values( - _.mapValues(obj, (value: any, key: string) => { - value[keyAs] = key - return value - }) - ) diff --git a/packages/spec/src/docs/index.ts b/packages/spec/src/docs/index.ts deleted file mode 100644 index f73c186bbed..00000000000 --- a/packages/spec/src/docs/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import ApiGenerator from './api' -import CliGenerator from './cli' -import ConfigGenerator from './config' -import SdkGenerator from './sdk' - -export default async function DocGenerator({ - input, - output, - type, - url, -}: { - input: string - output: string - type: 'cli' | 'config' | 'sdk' | 'api' - url?: string -}) { - switch (type) { - case 'api': - await ApiGenerator(input, output, url || '') - break - - case 'cli': - await CliGenerator(input, output) - break - - case 'config': - await ConfigGenerator(input, output) - break - - case 'sdk': - await SdkGenerator(input, output) - break - - default: - await console.log('Unrecognized type: ', type) - break - } - return 'Done' -} diff --git a/packages/spec/src/docs/templates/ApiTemplate.ts b/packages/spec/src/docs/templates/ApiTemplate.ts deleted file mode 100644 index d13ec720b05..00000000000 --- a/packages/spec/src/docs/templates/ApiTemplate.ts +++ /dev/null @@ -1,104 +0,0 @@ -const template = ` ---- -id: usage -slug: /usage -title: Usage -toc_max_heading_level: 3 ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - - - -<%- info.description %> - - - - -<% sections.forEach(function(section){ %> - -## <%- section.title %> {#<%= section.id %>} - -<%- section.description %> - -<% section.operations.forEach(function(operation){ %> - - - -### <%- operation.summary %> {#<%- operation.operationId %>} - -\`\`\` -<%- operation.operation.toUpperCase() %> <%- operation.fullPath %> -\`\`\` - - - -<% if(operation.parameters && operation.parameters.length){ %> -#### Parameters - -
    -<% operation.parameters.forEach(function(parameter){ %> -
  • -

    - - <%- parameter.name %> - - - <%- parameter.required ? 'required' : 'optional' %> - - - <%- parameter.type %> - -

    -
    - <%- parameter.description %> -
    -
  • -<% }); %> -
-<% }; %> - - - -<% if(operation.requestBody?.content && operation.requestBody?.content['application/json']){ %> -#### Body - -\`\`\`json -<%- JSON.stringify(operation.requestBody?.content['application/json'], null, 2) %> -\`\`\` -<% }; %> - - - -#### Responses - - -<% operation.responseList.forEach(function(response){ %> - - -<%- response.description %> - - - -<% if(response?.content && response?.content['application/json']){ %> -\`\`\`json -<%- JSON.stringify(response.content['application/json'], null, 2) %> -\`\`\` -<% }; %> - - - - -<% }); %> - - -
-<% }); %> -<% }); %> - - -`.trim() - -export default template diff --git a/packages/ui/config.js b/packages/ui/config.js new file mode 100644 index 00000000000..e760ba29c43 --- /dev/null +++ b/packages/ui/config.js @@ -0,0 +1,221 @@ +const deepMerge = require('deepmerge') +const customFormsPlugin = require('@tailwindcss/forms') + +const colors = { + transparent: 'transparent', + white: '#ffffff', + black: '#000000', + gray: { + '50': '#f9fafb', + '100': '#f4f5f7', + '200': '#e5e7eb', + '300': '#d5d6d7', + '400': '#9e9e9e', + '500': '#707275', + '600': '#4c4f52', + '700': '#24262d', + '800': '#1a1c23', + '900': '#121317', + // default values from Tailwind UI palette + // '300': '#d2d6dc', + // '400': '#9fa6b2', + // '500': '#6b7280', + // '600': '#4b5563', + // '700': '#374151', + // '800': '#252f3f', + // '900': '#161e2e', + }, + 'cool-gray': { + '50': '#fbfdfe', + '100': '#f1f5f9', + '200': '#e2e8f0', + '300': '#cfd8e3', + '400': '#97a6ba', + '500': '#64748b', + '600': '#475569', + '700': '#364152', + '800': '#27303f', + '900': '#1a202e', + }, + red: { + '50': '#fdf2f2', + '100': '#fde8e8', + '200': '#fbd5d5', + '300': '#f8b4b4', + '400': '#f98080', + '500': '#f05252', + '600': '#e02424', + '700': '#c81e1e', + '800': '#9b1c1c', + '900': '#771d1d', + }, + orange: { + '50': '#fff8f1', + '100': '#feecdc', + '200': '#fcd9bd', + '300': '#fdba8c', + '400': '#ff8a4c', + '500': '#ff5a1f', + '600': '#d03801', + '700': '#b43403', + '800': '#8a2c0d', + '900': '#771d1d', + }, + yellow: { + '50': '#fdfdea', + '100': '#fdf6b2', + '200': '#fce96a', + '300': '#faca15', + '400': '#e3a008', + '500': '#c27803', + '600': '#9f580a', + '700': '#8e4b10', + '800': '#723b13', + '900': '#633112', + }, + green: { + '50': '#f3faf7', + '100': '#def7ec', + '200': '#bcf0da', + '300': '#84e1bc', + '400': '#31c48d', + '500': '#0e9f6e', + '600': '#057a55', + '700': '#046c4e', + '800': '#03543f', + '900': '#014737', + }, + teal: { + '50': '#edfafa', + '100': '#d5f5f6', + '200': '#afecef', + '300': '#7edce2', + '400': '#16bdca', + '500': '#0694a2', + '600': '#047481', + '700': '#036672', + '800': '#05505c', + '900': '#014451', + }, + blue: { + '50': '#ebf5ff', + '100': '#e1effe', + '200': '#c3ddfd', + '300': '#a4cafe', + '400': '#76a9fa', + '500': '#3f83f8', + '600': '#1c64f2', + '700': '#1a56db', + '800': '#1e429f', + '900': '#233876', + }, + indigo: { + '50': '#f0f5ff', + '100': '#e5edff', + '200': '#cddbfe', + '300': '#b4c6fc', + '400': '#8da2fb', + '500': '#6875f5', + '600': '#5850ec', + '700': '#5145cd', + '800': '#42389d', + '900': '#362f78', + }, + purple: { + '50': '#f6f5ff', + '100': '#edebfe', + '200': '#dcd7fe', + '300': '#cabffd', + '400': '#ac94fa', + '500': '#9061f9', + '600': '#7e3af2', + '700': '#6c2bd9', + '800': '#5521b5', + '900': '#4a1d96', + }, + pink: { + '50': '#fdf2f8', + '100': '#fce8f3', + '200': '#fad1e8', + '300': '#f8b4d9', + '400': '#f17eb8', + '500': '#e74694', + '600': '#d61f69', + '700': '#bf125d', + '800': '#99154b', + '900': '#751a3d', + }, +} + +const backgroundOpacity = (theme) => ({ + '10': '0.1', + ...theme('opacity'), +}) + +const maxHeight = (theme) => ({ + '0': '0', + xl: '36rem', + ...theme('spacing'), +}) + +const windmillConfig = { + darkMode: 'class', + purge: { + content: [ + 'node_modules/@supabase/ui/theme/defaultTheme.js', + // 'node_modules/@supabase/ui/dist/index.js', + ], + }, + theme: { + colors, + backgroundOpacity, + maxHeight, + }, + variants: { + backgroundOpacity: ['responsive', 'hover', 'focus', 'dark'], + backgroundColor: ['responsive', 'hover', 'focus', 'active', 'odd', 'dark'], + display: ['responsive', 'dark'], + textColor: [ + 'responsive', + 'focus', + 'focus-within', + 'hover', + 'active', + 'dark', + ], + placeholderColor: ['responsive', 'focus', 'dark'], + borderColor: ['responsive', 'hover', 'focus', 'dark'], + divideColor: ['responsive', 'dark'], + boxShadow: ['responsive', 'hover', 'focus', 'dark'], + margin: ['responsive', 'last'], + }, + plugins: [customFormsPlugin], +} + +function arrayMergeFn(destinationArray, sourceArray) { + return destinationArray.concat(sourceArray).reduce((acc, cur) => { + if (acc.includes(cur)) return acc + return [...acc, cur] + }, []) +} + +/** + * Merge Windmill and Tailwind CSS configurations + * @param {object} tailwindConfig - Tailwind config object + * @return {object} new config object + */ +export function wrapper(tailwindConfig) { + let purge + if (Array.isArray(tailwindConfig.purge)) { + purge = { + content: tailwindConfig.purge, + } + } else { + purge = tailwindConfig.purge + } + return deepMerge({ ...tailwindConfig, purge }, windmillConfig, { + arrayMerge: arrayMergeFn, + }) +} + +// module.exports = wrapper diff --git a/packages/ui/default-colors.js b/packages/ui/default-colors.js new file mode 100644 index 00000000000..16352a83344 --- /dev/null +++ b/packages/ui/default-colors.js @@ -0,0 +1,90 @@ +module.exports = { + brand: { + brand1: 'hsla(153, 80%, 99%, 1)', + brand2: 'hsla(148, 88%, 97%, 1)', + brand3: 'hsla(148, 76%, 95%, 1)', + brand4: 'hsla(148, 68%, 92%, 1)', + brand5: 'hsla(148, 59%, 88%, 1)', + brand6: 'hsla(149, 43%, 82%, 1)', + brand7: 'hsla(149, 43%, 69%, 1)', + brand8: 'hsla(154, 55%, 45%, 1)', + brand9: 'hsla(153, 60%, 53%, 1)', + brand10: 'hsla(153, 50%, 50%, 1)', + brand11: 'hsla(153, 50%, 34%, 1)', + brand12: 'hsla(153, 40%, 12%, 1)', + }, + brandDark: { + brand1: 'hsla(153, 75%, 6%, 1)', + brand2: 'hsla(153, 73%, 7%, 1)', + brand3: 'hsla(154, 69%, 9%, 1)', + brand4: 'hsla(154, 67%, 11%, 1)', + brand5: 'hsla(154, 66%, 13%, 1)', + brand6: 'hsla(154, 64%, 17%, 1)', + brand7: 'hsla(154, 62%, 22%, 1)', + brand8: 'hsla(153, 60%, 28%, 1)', + brand9: 'hsla(153, 60%, 53%, 1)', + brand10: 'hsla(153, 60%, 70%, 1)', + brand11: 'hsla(153, 60%, 50%, 1)', + brand12: 'hsla(153, 60%, 95%, 1)', + }, + contrast: { + 'brand-hiContrast': 'var(--colors-brand-9)', + 'brand-loContrast': 'var(--colors-brand-4)', + }, + scale: { + scale1: 'var(--colors-slate1)', + scale2: 'var(--colors-slate2)', + scale3: 'var(--colors-slate3)', + scale4: 'var(--colors-slate4)', + scale5: 'var(--colors-slate5)', + scale6: 'var(--colors-slate6)', + scale7: 'var(--colors-slate7)', + scale8: 'var(--colors-slate8)', + scale9: 'var(--colors-slate9)', + scale10: 'var(--colors-slate10)', + scale11: 'var(--colors-slate11)', + scale12: 'var(--colors-slate12)', + }, + scaleA: { + scaleA1: 'var(--colors-slatea1)', + scaleA2: 'var(--colors-slatea2)', + scaleA3: 'var(--colors-slatea3)', + scaleA4: 'var(--colors-slatea4)', + scaleA5: 'var(--colors-slatea5)', + scaleA6: 'var(--colors-slatea6)', + scaleA7: 'var(--colors-slatea7)', + scaleA8: 'var(--colors-slatea8)', + scaleA9: 'var(--colors-slatea9)', + scaleA10: 'var(--colors-slatea10)', + scaleA11: 'var(--colors-slatea11)', + scaleA12: 'var(--colors-slatea12)', + }, + scaleDark: { + scale1: 'var(--colors-gray1)', + scale2: 'var(--colors-gray2)', + scale3: 'var(--colors-gray3)', + scale4: 'var(--colors-gray4)', + scale5: 'var(--colors-gray5)', + scale6: 'var(--colors-gray6)', + scale7: 'var(--colors-gray7)', + scale8: 'var(--colors-gray8)', + scale9: 'var(--colors-gray9)', + scale10: 'var(--colors-gray10)', + scale11: 'var(--colors-gray11)', + scale12: 'var(--colors-gray12)', + }, + scaleADark: { + scaleA1: 'var(--colors-graya1)', + scaleA2: 'var(--colors-graya2)', + scaleA3: 'var(--colors-graya3)', + scaleA4: 'var(--colors-graya4)', + scaleA5: 'var(--colors-graya5)', + scaleA6: 'var(--colors-graya6)', + scaleA7: 'var(--colors-graya7)', + scaleA8: 'var(--colors-graya8)', + scaleA9: 'var(--colors-graya9)', + scaleA10: 'var(--colors-graya10)', + scaleA11: 'var(--colors-graya11)', + scaleA12: 'var(--colors-graya12)', + }, +} diff --git a/packages/ui/index.tsx b/packages/ui/index.tsx new file mode 100644 index 00000000000..1bf276ae8d8 --- /dev/null +++ b/packages/ui/index.tsx @@ -0,0 +1,352 @@ +import * as React from 'react' + +// // GENERAL + +export * from './src/components/Button' +export * from './src/components/Icon' +export * from './src/components/Icon/IconContext' +// export * from './src/components/Image' + +// DISPLAYS + +export * from './src/components/Card' +export * from './src/components/Badge' +export * from './src/components/Tabs' +export * from './src/components/Alert' +export * from './src/components/Accordion' +export * from './src/components/Collapsible' +// export * from './src/components/Breadcrumb' + +// NAV + +export * from './src/components/Menu' + +// OVERLAYS + +export * from './src/components/Modal' +export * from './src/components/SidePanel' +export * from './src/components/Dropdown' +export * from './src/components/ContextMenu' +export * from './src/components/Popover' +// export * from './src/components/Toast' + +// UTILITIES + +export * from './src/components/Space' +export * from './src/components/Loading' +export * from './src/components/Divider' +export * from './src/components/ThemeProvider' + +// DATA ENTRY + +export * from './src/components/Select' +export * from './src/components/Listbox' +export * from './src/components/Checkbox' +export * from './src/components/Input' +export * from './src/components/InputNumber' +export * from './src/components/Radio' +export * from './src/components/Toggle' +export * from './src/components/Upload' +export * from './src/components/Form' + +// config + +// export { default as Config } from './../ui.config' + +// ARCHIVE + +// export * from './src/components/Textarea' + +// AUTH + +// export * from './src/components/Auth' + +// ICONS + +// export icons +export * from './src/components/Icon/icons/IconActivity' +export * from './src/components/Icon/icons/IconAirplay' +export * from './src/components/Icon/icons/IconAlertCircle' +export * from './src/components/Icon/icons/IconAlertOctagon' +export * from './src/components/Icon/icons/IconAlertTriangle' +export * from './src/components/Icon/icons/IconAlignCenter' +export * from './src/components/Icon/icons/IconAlignJustify' +export * from './src/components/Icon/icons/IconAlignLeft' +export * from './src/components/Icon/icons/IconAlignRight' +export * from './src/components/Icon/icons/IconAnchor' +export * from './src/components/Icon/icons/IconAperture' +export * from './src/components/Icon/icons/IconArchive' +export * from './src/components/Icon/icons/IconArrowDownCircle' +export * from './src/components/Icon/icons/IconArrowDownLeft' +export * from './src/components/Icon/icons/IconArrowDownRight' +export * from './src/components/Icon/icons/IconArrowDown' +export * from './src/components/Icon/icons/IconArrowLeftCircle' +export * from './src/components/Icon/icons/IconArrowLeft' +export * from './src/components/Icon/icons/IconArrowRightCircle' +export * from './src/components/Icon/icons/IconArrowRight' +export * from './src/components/Icon/icons/IconArrowUpCircle' +export * from './src/components/Icon/icons/IconArrowUpLeft' +export * from './src/components/Icon/icons/IconArrowUpRight' +export * from './src/components/Icon/icons/IconArrowUp' +export * from './src/components/Icon/icons/IconAtSign' +export * from './src/components/Icon/icons/IconAward' +export * from './src/components/Icon/icons/IconBarChart2' +export * from './src/components/Icon/icons/IconBarChart' +export * from './src/components/Icon/icons/IconBatteryCharging' +export * from './src/components/Icon/icons/IconBattery' +export * from './src/components/Icon/icons/IconBellOff' +export * from './src/components/Icon/icons/IconBell' +export * from './src/components/Icon/icons/IconBluetooth' +export * from './src/components/Icon/icons/IconBold' +export * from './src/components/Icon/icons/IconBookOpen' +export * from './src/components/Icon/icons/IconBook' +export * from './src/components/Icon/icons/IconBookmark' +export * from './src/components/Icon/icons/IconBox' +export * from './src/components/Icon/icons/IconBriefcase' +export * from './src/components/Icon/icons/IconCalendar' +export * from './src/components/Icon/icons/IconCameraOff' +export * from './src/components/Icon/icons/IconCamera' +export * from './src/components/Icon/icons/IconCast' +export * from './src/components/Icon/icons/IconCheckCircle' +export * from './src/components/Icon/icons/IconCheckSquare' +export * from './src/components/Icon/icons/IconCheck' +export * from './src/components/Icon/icons/IconChevronDown' +export * from './src/components/Icon/icons/IconChevronLeft' +export * from './src/components/Icon/icons/IconChevronRight' +export * from './src/components/Icon/icons/IconChevronUp' +export * from './src/components/Icon/icons/IconChevronsDown' +export * from './src/components/Icon/icons/IconChevronsLeft' +export * from './src/components/Icon/icons/IconChevronsRight' +export * from './src/components/Icon/icons/IconChevronsUp' +export * from './src/components/Icon/icons/IconChrome' +export * from './src/components/Icon/icons/IconCircle' +export * from './src/components/Icon/icons/IconClipboard' +export * from './src/components/Icon/icons/IconClock' +export * from './src/components/Icon/icons/IconCloudDrizzle' +export * from './src/components/Icon/icons/IconCloudLightning' +export * from './src/components/Icon/icons/IconCloudOff' +export * from './src/components/Icon/icons/IconCloudRain' +export * from './src/components/Icon/icons/IconCloudSnow' +export * from './src/components/Icon/icons/IconCloud' +export * from './src/components/Icon/icons/IconCode' +export * from './src/components/Icon/icons/IconCodepen' +export * from './src/components/Icon/icons/IconCodesandbox' +export * from './src/components/Icon/icons/IconCoffee' +export * from './src/components/Icon/icons/IconColumns' +export * from './src/components/Icon/icons/IconCommand' +export * from './src/components/Icon/icons/IconCompass' +export * from './src/components/Icon/icons/IconCopy' +export * from './src/components/Icon/icons/IconCornerDownLeft' +export * from './src/components/Icon/icons/IconCornerDownRight' +export * from './src/components/Icon/icons/IconCornerLeftDown' +export * from './src/components/Icon/icons/IconCornerLeftUp' +export * from './src/components/Icon/icons/IconCornerRightDown' +export * from './src/components/Icon/icons/IconCornerRightUp' +export * from './src/components/Icon/icons/IconCornerUpLeft' +export * from './src/components/Icon/icons/IconCornerUpRight' +export * from './src/components/Icon/icons/IconCpu' +export * from './src/components/Icon/icons/IconCreditCard' +export * from './src/components/Icon/icons/IconCrop' +export * from './src/components/Icon/icons/IconCrosshair' +export * from './src/components/Icon/icons/IconDatabase' +export * from './src/components/Icon/icons/IconDelete' +export * from './src/components/Icon/icons/IconDisc' +export * from './src/components/Icon/icons/IconDivideCircle' +export * from './src/components/Icon/icons/IconDivideSquare' +export * from './src/components/Icon/icons/IconDivide' +export * from './src/components/Icon/icons/IconDollarSign' +export * from './src/components/Icon/icons/IconDownloadCloud' +export * from './src/components/Icon/icons/IconDownload' +export * from './src/components/Icon/icons/IconDribbble' +export * from './src/components/Icon/icons/IconDroplet' +export * from './src/components/Icon/icons/IconEdit2' +export * from './src/components/Icon/icons/IconEdit3' +export * from './src/components/Icon/icons/IconEdit' +export * from './src/components/Icon/icons/IconExternalLink' +export * from './src/components/Icon/icons/IconEyeOff' +export * from './src/components/Icon/icons/IconEye' +export * from './src/components/Icon/icons/IconFacebook' +export * from './src/components/Icon/icons/IconFastForward' +export * from './src/components/Icon/icons/IconFeather' +export * from './src/components/Icon/icons/IconFigma' +export * from './src/components/Icon/icons/IconFileMinus' +export * from './src/components/Icon/icons/IconFilePlus' +export * from './src/components/Icon/icons/IconFileText' +export * from './src/components/Icon/icons/IconFile' +export * from './src/components/Icon/icons/IconFilm' +export * from './src/components/Icon/icons/IconFilter' +export * from './src/components/Icon/icons/IconFlag' +export * from './src/components/Icon/icons/IconFolderMinus' +export * from './src/components/Icon/icons/IconFolderPlus' +export * from './src/components/Icon/icons/IconFolder' +export * from './src/components/Icon/icons/IconFramer' +export * from './src/components/Icon/icons/IconFrown' +export * from './src/components/Icon/icons/IconGift' +export * from './src/components/Icon/icons/IconGitBranch' +export * from './src/components/Icon/icons/IconGitCommit' +export * from './src/components/Icon/icons/IconGitMerge' +export * from './src/components/Icon/icons/IconGitPullRequest' +export * from './src/components/Icon/icons/IconGitHub' +export * from './src/components/Icon/icons/IconGitlab' +export * from './src/components/Icon/icons/IconGlobe' +export * from './src/components/Icon/icons/IconGrid' +export * from './src/components/Icon/icons/IconHardDrive' +export * from './src/components/Icon/icons/IconHash' +export * from './src/components/Icon/icons/IconHeadphones' +export * from './src/components/Icon/icons/IconHeart' +export * from './src/components/Icon/icons/IconHelpCircle' +export * from './src/components/Icon/icons/IconHexagon' +export * from './src/components/Icon/icons/IconHome' +export * from './src/components/Icon/icons/IconImage' +export * from './src/components/Icon/icons/IconInbox' +export * from './src/components/Icon/icons/IconInfo' +export * from './src/components/Icon/icons/IconInstagram' +export * from './src/components/Icon/icons/IconItalic' +export * from './src/components/Icon/icons/IconKey' +export * from './src/components/Icon/icons/IconLayers' +export * from './src/components/Icon/icons/IconLayout' +export * from './src/components/Icon/icons/IconLifeBuoy' +export * from './src/components/Icon/icons/IconLink2' +export * from './src/components/Icon/icons/IconLink' +export * from './src/components/Icon/icons/IconLinkedin' +export * from './src/components/Icon/icons/IconList' +export * from './src/components/Icon/icons/IconLoader' +export * from './src/components/Icon/icons/IconLock' +export * from './src/components/Icon/icons/IconLogIn' +export * from './src/components/Icon/icons/IconLogOut' +export * from './src/components/Icon/icons/IconMail' +export * from './src/components/Icon/icons/IconMapPin' +export * from './src/components/Icon/icons/IconMap' +export * from './src/components/Icon/icons/IconMaximize2' +export * from './src/components/Icon/icons/IconMaximize' +export * from './src/components/Icon/icons/IconMeh' +export * from './src/components/Icon/icons/IconMenu' +export * from './src/components/Icon/icons/IconMessageCircle' +export * from './src/components/Icon/icons/IconMessageSquare' +export * from './src/components/Icon/icons/IconMicOff' +export * from './src/components/Icon/icons/IconMic' +export * from './src/components/Icon/icons/IconMinimize2' +export * from './src/components/Icon/icons/IconMinimize' +export * from './src/components/Icon/icons/IconMinusCircle' +export * from './src/components/Icon/icons/IconMinusSquare' +export * from './src/components/Icon/icons/IconMinus' +export * from './src/components/Icon/icons/IconMonitor' +export * from './src/components/Icon/icons/IconMoon' +export * from './src/components/Icon/icons/IconMoreHorizontal' +export * from './src/components/Icon/icons/IconMoreVertical' +export * from './src/components/Icon/icons/IconMousePointer' +export * from './src/components/Icon/icons/IconMove' +export * from './src/components/Icon/icons/IconMusic' +export * from './src/components/Icon/icons/IconNavigation2' +export * from './src/components/Icon/icons/IconNavigation' +export * from './src/components/Icon/icons/IconOctagon' +export * from './src/components/Icon/icons/IconPackage' +export * from './src/components/Icon/icons/IconPaperclip' +export * from './src/components/Icon/icons/IconPauseCircle' +export * from './src/components/Icon/icons/IconPause' +export * from './src/components/Icon/icons/IconPenTool' +export * from './src/components/Icon/icons/IconPercent' +export * from './src/components/Icon/icons/IconPhoneCall' +export * from './src/components/Icon/icons/IconPhoneForwarded' +export * from './src/components/Icon/icons/IconPhoneIncoming' +export * from './src/components/Icon/icons/IconPhoneMissed' +export * from './src/components/Icon/icons/IconPhoneOff' +export * from './src/components/Icon/icons/IconPhoneOutgoing' +export * from './src/components/Icon/icons/IconPhone' +export * from './src/components/Icon/icons/IconPieChart' +export * from './src/components/Icon/icons/IconPlayCircle' +export * from './src/components/Icon/icons/IconPlay' +export * from './src/components/Icon/icons/IconPlusCircle' +export * from './src/components/Icon/icons/IconPlusSquare' +export * from './src/components/Icon/icons/IconPlus' +export * from './src/components/Icon/icons/IconPocket' +export * from './src/components/Icon/icons/IconPower' +export * from './src/components/Icon/icons/IconPrinter' +export * from './src/components/Icon/icons/IconRadio' +export * from './src/components/Icon/icons/IconRefreshCcw' +export * from './src/components/Icon/icons/IconRefreshCw' +export * from './src/components/Icon/icons/IconRepeat' +export * from './src/components/Icon/icons/IconRewind' +export * from './src/components/Icon/icons/IconRotateCcw' +export * from './src/components/Icon/icons/IconRotateCw' +export * from './src/components/Icon/icons/IconRss' +export * from './src/components/Icon/icons/IconSave' +export * from './src/components/Icon/icons/IconScissors' +export * from './src/components/Icon/icons/IconSearch' +export * from './src/components/Icon/icons/IconSend' +export * from './src/components/Icon/icons/IconServer' +export * from './src/components/Icon/icons/IconSettings' +export * from './src/components/Icon/icons/IconShare2' +export * from './src/components/Icon/icons/IconShare' +export * from './src/components/Icon/icons/IconShieldOff' +export * from './src/components/Icon/icons/IconShield' +export * from './src/components/Icon/icons/IconShoppingBag' +export * from './src/components/Icon/icons/IconShoppingCart' +export * from './src/components/Icon/icons/IconShuffle' +export * from './src/components/Icon/icons/IconSidebar' +export * from './src/components/Icon/icons/IconSkipBack' +export * from './src/components/Icon/icons/IconSkipForward' +export * from './src/components/Icon/icons/IconSlack' +export * from './src/components/Icon/icons/IconSlash' +export * from './src/components/Icon/icons/IconSliders' +export * from './src/components/Icon/icons/IconSmartphone' +export * from './src/components/Icon/icons/IconSmile' +export * from './src/components/Icon/icons/IconSpeaker' +export * from './src/components/Icon/icons/IconSquare' +export * from './src/components/Icon/icons/IconStar' +export * from './src/components/Icon/icons/IconStopCircle' +export * from './src/components/Icon/icons/IconSun' +export * from './src/components/Icon/icons/IconSunrise' +export * from './src/components/Icon/icons/IconSunset' +export * from './src/components/Icon/icons/IconTablet' +export * from './src/components/Icon/icons/IconTag' +export * from './src/components/Icon/icons/IconTarget' +export * from './src/components/Icon/icons/IconTerminal' +export * from './src/components/Icon/icons/IconThermometer' +export * from './src/components/Icon/icons/IconThumbsDown' +export * from './src/components/Icon/icons/IconThumbsUp' +export * from './src/components/Icon/icons/IconToggleLeft' +export * from './src/components/Icon/icons/IconToggleRight' +export * from './src/components/Icon/icons/IconTool' +export * from './src/components/Icon/icons/IconTrash2' +export * from './src/components/Icon/icons/IconTrash' +export * from './src/components/Icon/icons/IconTrello' +export * from './src/components/Icon/icons/IconTrendingDown' +export * from './src/components/Icon/icons/IconTrendingUp' +export * from './src/components/Icon/icons/IconTriangle' +export * from './src/components/Icon/icons/IconTruck' +export * from './src/components/Icon/icons/IconTv' +export * from './src/components/Icon/icons/IconTwitch' +export * from './src/components/Icon/icons/IconTwitter' +export * from './src/components/Icon/icons/IconType' +export * from './src/components/Icon/icons/IconUmbrella' +export * from './src/components/Icon/icons/IconUnderline' +export * from './src/components/Icon/icons/IconUnlock' +export * from './src/components/Icon/icons/IconUploadCloud' +export * from './src/components/Icon/icons/IconUpload' +export * from './src/components/Icon/icons/IconUserCheck' +export * from './src/components/Icon/icons/IconUserMinus' +export * from './src/components/Icon/icons/IconUserPlus' +export * from './src/components/Icon/icons/IconUserX' +export * from './src/components/Icon/icons/IconUser' +export * from './src/components/Icon/icons/IconUsers' +export * from './src/components/Icon/icons/IconVideoOff' +export * from './src/components/Icon/icons/IconVideo' +export * from './src/components/Icon/icons/IconVoicemail' +export * from './src/components/Icon/icons/IconVolume1' +export * from './src/components/Icon/icons/IconVolume2' +export * from './src/components/Icon/icons/IconVolumeX' +export * from './src/components/Icon/icons/IconVolume' +export * from './src/components/Icon/icons/IconWatch' +export * from './src/components/Icon/icons/IconWifiOff' +export * from './src/components/Icon/icons/IconWifi' +export * from './src/components/Icon/icons/IconWind' +export * from './src/components/Icon/icons/IconXCircle' +export * from './src/components/Icon/icons/IconXOctagon' +export * from './src/components/Icon/icons/IconXSquare' +export * from './src/components/Icon/icons/IconX' +export * from './src/components/Icon/icons/IconYoutube' +export * from './src/components/Icon/icons/IconZapOff' +export * from './src/components/Icon/icons/IconZap' +export * from './src/components/Icon/icons/IconZoomIn' +export * from './src/components/Icon/icons/IconZoomOut' diff --git a/packages/ui/internals/icons.js b/packages/ui/internals/icons.js new file mode 100644 index 00000000000..07a7f0e5539 --- /dev/null +++ b/packages/ui/internals/icons.js @@ -0,0 +1,288 @@ +export default { + IconActivity: 'src/components/Icon/icons/IconActivity/index.tsx', + IconAirplay: 'src/components/Icon/icons/IconAirplay/index.tsx', + IconAlertCircle: 'src/components/Icon/icons/IconAlertCircle/index.tsx', + IconAlertOctagon: 'src/components/Icon/icons/IconAlertOctagon/index.tsx', + IconAlertTriangle: 'src/components/Icon/icons/IconAlertTriangle/index.tsx', + IconAlignCenter: 'src/components/Icon/icons/IconAlignCenter/index.tsx', + IconAlignJustify: 'src/components/Icon/icons/IconAlignJustify/index.tsx', + IconAlignLeft: 'src/components/Icon/icons/IconAlignLeft/index.tsx', + IconAlignRight: 'src/components/Icon/icons/IconAlignRight/index.tsx', + IconAnchor: 'src/components/Icon/icons/IconAnchor/index.tsx', + IconAperture: 'src/components/Icon/icons/IconAperture/index.tsx', + IconArchive: 'src/components/Icon/icons/IconArchive/index.tsx', + IconArrowDownCircle: 'src/components/Icon/icons/IconArrowDownCircle/index.tsx', + IconArrowDownLeft: 'src/components/Icon/icons/IconArrowDownLeft/index.tsx', + IconArrowDownRight: 'src/components/Icon/icons/IconArrowDownRight/index.tsx', + IconArrowDown: 'src/components/Icon/icons/IconArrowDown/index.tsx', + IconArrowLeftCircle: 'src/components/Icon/icons/IconArrowLeftCircle/index.tsx', + IconArrowLeft: 'src/components/Icon/icons/IconArrowLeft/index.tsx', + IconArrowRightCircle: 'src/components/Icon/icons/IconArrowRightCircle/index.tsx', + IconArrowRight: 'src/components/Icon/icons/IconArrowRight/index.tsx', + IconArrowUpCircle: 'src/components/Icon/icons/IconArrowUpCircle/index.tsx', + IconArrowUpLeft: 'src/components/Icon/icons/IconArrowUpLeft/index.tsx', + IconArrowUpRight: 'src/components/Icon/icons/IconArrowUpRight/index.tsx', + IconArrowUp: 'src/components/Icon/icons/IconArrowUp/index.tsx', + IconAtSign: 'src/components/Icon/icons/IconAtSign/index.tsx', + IconAward: 'src/components/Icon/icons/IconAward/index.tsx', + IconBarChart2: 'src/components/Icon/icons/IconBarChart2/index.tsx', + IconBarChart: 'src/components/Icon/icons/IconBarChart/index.tsx', + IconBatteryCharging: 'src/components/Icon/icons/IconBatteryCharging/index.tsx', + IconBattery: 'src/components/Icon/icons/IconBattery/index.tsx', + IconBellOff: 'src/components/Icon/icons/IconBellOff/index.tsx', + IconBell: 'src/components/Icon/icons/IconBell/index.tsx', + IconBluetooth: 'src/components/Icon/icons/IconBluetooth/index.tsx', + IconBold: 'src/components/Icon/icons/IconBold/index.tsx', + IconBookOpen: 'src/components/Icon/icons/IconBookOpen/index.tsx', + IconBook: 'src/components/Icon/icons/IconBook/index.tsx', + IconBookmark: 'src/components/Icon/icons/IconBookmark/index.tsx', + IconBox: 'src/components/Icon/icons/IconBox/index.tsx', + IconBriefcase: 'src/components/Icon/icons/IconBriefcase/index.tsx', + IconCalendar: 'src/components/Icon/icons/IconCalendar/index.tsx', + IconCameraOff: 'src/components/Icon/icons/IconCameraOff/index.tsx', + IconCamera: 'src/components/Icon/icons/IconCamera/index.tsx', + IconCast: 'src/components/Icon/icons/IconCast/index.tsx', + IconCheckCircle: 'src/components/Icon/icons/IconCheckCircle/index.tsx', + IconCheckSquare: 'src/components/Icon/icons/IconCheckSquare/index.tsx', + IconCheck: 'src/components/Icon/icons/IconCheck/index.tsx', + IconChevronDown: 'src/components/Icon/icons/IconChevronDown/index.tsx', + IconChevronLeft: 'src/components/Icon/icons/IconChevronLeft/index.tsx', + IconChevronRight: 'src/components/Icon/icons/IconChevronRight/index.tsx', + IconChevronUp: 'src/components/Icon/icons/IconChevronUp/index.tsx', + IconChevronsDown: 'src/components/Icon/icons/IconChevronsDown/index.tsx', + IconChevronsLeft: 'src/components/Icon/icons/IconChevronsLeft/index.tsx', + IconChevronsRight: 'src/components/Icon/icons/IconChevronsRight/index.tsx', + IconChevronsUp: 'src/components/Icon/icons/IconChevronsUp/index.tsx', + IconChrome: 'src/components/Icon/icons/IconChrome/index.tsx', + IconCircle: 'src/components/Icon/icons/IconCircle/index.tsx', + IconClipboard: 'src/components/Icon/icons/IconClipboard/index.tsx', + IconClock: 'src/components/Icon/icons/IconClock/index.tsx', + IconCloudDrizzle: 'src/components/Icon/icons/IconCloudDrizzle/index.tsx', + IconCloudLightning: 'src/components/Icon/icons/IconCloudLightning/index.tsx', + IconCloudOff: 'src/components/Icon/icons/IconCloudOff/index.tsx', + IconCloudRain: 'src/components/Icon/icons/IconCloudRain/index.tsx', + IconCloudSnow: 'src/components/Icon/icons/IconCloudSnow/index.tsx', + IconCloud: 'src/components/Icon/icons/IconCloud/index.tsx', + IconCode: 'src/components/Icon/icons/IconCode/index.tsx', + IconCodepen: 'src/components/Icon/icons/IconCodepen/index.tsx', + IconCodesandbox: 'src/components/Icon/icons/IconCodesandbox/index.tsx', + IconCoffee: 'src/components/Icon/icons/IconCoffee/index.tsx', + IconColumns: 'src/components/Icon/icons/IconColumns/index.tsx', + IconCommand: 'src/components/Icon/icons/IconCommand/index.tsx', + IconCompass: 'src/components/Icon/icons/IconCompass/index.tsx', + IconCopy: 'src/components/Icon/icons/IconCopy/index.tsx', + IconCornerDownLeft: 'src/components/Icon/icons/IconCornerDownLeft/index.tsx', + IconCornerDownRight: 'src/components/Icon/icons/IconCornerDownRight/index.tsx', + IconCornerLeftDown: 'src/components/Icon/icons/IconCornerLeftDown/index.tsx', + IconCornerLeftUp: 'src/components/Icon/icons/IconCornerLeftUp/index.tsx', + IconCornerRightDown: 'src/components/Icon/icons/IconCornerRightDown/index.tsx', + IconCornerRightUp: 'src/components/Icon/icons/IconCornerRightUp/index.tsx', + IconCornerUpLeft: 'src/components/Icon/icons/IconCornerUpLeft/index.tsx', + IconCornerUpRight: 'src/components/Icon/icons/IconCornerUpRight/index.tsx', + IconCpu: 'src/components/Icon/icons/IconCpu/index.tsx', + IconCreditCard: 'src/components/Icon/icons/IconCreditCard/index.tsx', + IconCrop: 'src/components/Icon/icons/IconCrop/index.tsx', + IconCrosshair: 'src/components/Icon/icons/IconCrosshair/index.tsx', + IconDatabase: 'src/components/Icon/icons/IconDatabase/index.tsx', + IconDelete: 'src/components/Icon/icons/IconDelete/index.tsx', + IconDisc: 'src/components/Icon/icons/IconDisc/index.tsx', + IconDivideCircle: 'src/components/Icon/icons/IconDivideCircle/index.tsx', + IconDivideSquare: 'src/components/Icon/icons/IconDivideSquare/index.tsx', + IconDivide: 'src/components/Icon/icons/IconDivide/index.tsx', + IconDollarSign: 'src/components/Icon/icons/IconDollarSign/index.tsx', + IconDownloadCloud: 'src/components/Icon/icons/IconDownloadCloud/index.tsx', + IconDownload: 'src/components/Icon/icons/IconDownload/index.tsx', + IconDribbble: 'src/components/Icon/icons/IconDribbble/index.tsx', + IconDroplet: 'src/components/Icon/icons/IconDroplet/index.tsx', + IconEdit2: 'src/components/Icon/icons/IconEdit2/index.tsx', + IconEdit3: 'src/components/Icon/icons/IconEdit3/index.tsx', + IconEdit: 'src/components/Icon/icons/IconEdit/index.tsx', + IconExternalLink: 'src/components/Icon/icons/IconExternalLink/index.tsx', + IconEyeOff: 'src/components/Icon/icons/IconEyeOff/index.tsx', + IconEye: 'src/components/Icon/icons/IconEye/index.tsx', + IconFacebook: 'src/components/Icon/icons/IconFacebook/index.tsx', + IconFastForward: 'src/components/Icon/icons/IconFastForward/index.tsx', + IconFeather: 'src/components/Icon/icons/IconFeather/index.tsx', + IconFigma: 'src/components/Icon/icons/IconFigma/index.tsx', + IconFileMinus: 'src/components/Icon/icons/IconFileMinus/index.tsx', + IconFilePlus: 'src/components/Icon/icons/IconFilePlus/index.tsx', + IconFileText: 'src/components/Icon/icons/IconFileText/index.tsx', + IconFile: 'src/components/Icon/icons/IconFile/index.tsx', + IconFilm: 'src/components/Icon/icons/IconFilm/index.tsx', + IconFilter: 'src/components/Icon/icons/IconFilter/index.tsx', + IconFlag: 'src/components/Icon/icons/IconFlag/index.tsx', + IconFolderMinus: 'src/components/Icon/icons/IconFolderMinus/index.tsx', + IconFolderPlus: 'src/components/Icon/icons/IconFolderPlus/index.tsx', + IconFolder: 'src/components/Icon/icons/IconFolder/index.tsx', + IconFramer: 'src/components/Icon/icons/IconFramer/index.tsx', + IconFrown: 'src/components/Icon/icons/IconFrown/index.tsx', + IconGift: 'src/components/Icon/icons/IconGift/index.tsx', + IconGitBranch: 'src/components/Icon/icons/IconGitBranch/index.tsx', + IconGitCommit: 'src/components/Icon/icons/IconGitCommit/index.tsx', + IconGitMerge: 'src/components/Icon/icons/IconGitMerge/index.tsx', + IconGitPullRequest: 'src/components/Icon/icons/IconGitPullRequest/index.tsx', + IconGitHub: 'src/components/Icon/icons/IconGitHub/index.tsx', + IconGitlab: 'src/components/Icon/icons/IconGitlab/index.tsx', + IconGlobe: 'src/components/Icon/icons/IconGlobe/index.tsx', + IconGrid: 'src/components/Icon/icons/IconGrid/index.tsx', + IconHardDrive: 'src/components/Icon/icons/IconHardDrive/index.tsx', + IconHash: 'src/components/Icon/icons/IconHash/index.tsx', + IconHeadphones: 'src/components/Icon/icons/IconHeadphones/index.tsx', + IconHeart: 'src/components/Icon/icons/IconHeart/index.tsx', + IconHelpCircle: 'src/components/Icon/icons/IconHelpCircle/index.tsx', + IconHexagon: 'src/components/Icon/icons/IconHexagon/index.tsx', + IconHome: 'src/components/Icon/icons/IconHome/index.tsx', + IconImage: 'src/components/Icon/icons/IconImage/index.tsx', + IconInbox: 'src/components/Icon/icons/IconInbox/index.tsx', + IconInfo: 'src/components/Icon/icons/IconInfo/index.tsx', + IconInstagram: 'src/components/Icon/icons/IconInstagram/index.tsx', + IconItalic: 'src/components/Icon/icons/IconItalic/index.tsx', + IconKey: 'src/components/Icon/icons/IconKey/index.tsx', + IconLayers: 'src/components/Icon/icons/IconLayers/index.tsx', + IconLayout: 'src/components/Icon/icons/IconLayout/index.tsx', + IconLifeBuoy: 'src/components/Icon/icons/IconLifeBuoy/index.tsx', + IconLink2: 'src/components/Icon/icons/IconLink2/index.tsx', + IconLink: 'src/components/Icon/icons/IconLink/index.tsx', + IconLinkedin: 'src/components/Icon/icons/IconLinkedin/index.tsx', + IconList: 'src/components/Icon/icons/IconList/index.tsx', + IconLoader: 'src/components/Icon/icons/IconLoader/index.tsx', + IconLock: 'src/components/Icon/icons/IconLock/index.tsx', + IconLogIn: 'src/components/Icon/icons/IconLogIn/index.tsx', + IconLogOut: 'src/components/Icon/icons/IconLogOut/index.tsx', + IconMail: 'src/components/Icon/icons/IconMail/index.tsx', + IconMapPin: 'src/components/Icon/icons/IconMapPin/index.tsx', + IconMap: 'src/components/Icon/icons/IconMap/index.tsx', + IconMaximize2: 'src/components/Icon/icons/IconMaximize2/index.tsx', + IconMaximize: 'src/components/Icon/icons/IconMaximize/index.tsx', + IconMeh: 'src/components/Icon/icons/IconMeh/index.tsx', + IconMenu: 'src/components/Icon/icons/IconMenu/index.tsx', + IconMessageCircle: 'src/components/Icon/icons/IconMessageCircle/index.tsx', + IconMessageSquare: 'src/components/Icon/icons/IconMessageSquare/index.tsx', + IconMicOff: 'src/components/Icon/icons/IconMicOff/index.tsx', + IconMic: 'src/components/Icon/icons/IconMic/index.tsx', + IconMinimize2: 'src/components/Icon/icons/IconMinimize2/index.tsx', + IconMinimize: 'src/components/Icon/icons/IconMinimize/index.tsx', + IconMinusCircle: 'src/components/Icon/icons/IconMinusCircle/index.tsx', + IconMinusSquare: 'src/components/Icon/icons/IconMinusSquare/index.tsx', + IconMinus: 'src/components/Icon/icons/IconMinus/index.tsx', + IconMonitor: 'src/components/Icon/icons/IconMonitor/index.tsx', + IconMoon: 'src/components/Icon/icons/IconMoon/index.tsx', + IconMoreHorizontal: 'src/components/Icon/icons/IconMoreHorizontal/index.tsx', + IconMoreVertical: 'src/components/Icon/icons/IconMoreVertical/index.tsx', + IconMousePointer: 'src/components/Icon/icons/IconMousePointer/index.tsx', + IconMove: 'src/components/Icon/icons/IconMove/index.tsx', + IconMusic: 'src/components/Icon/icons/IconMusic/index.tsx', + IconNavigation2: 'src/components/Icon/icons/IconNavigation2/index.tsx', + IconNavigation: 'src/components/Icon/icons/IconNavigation/index.tsx', + IconOctagon: 'src/components/Icon/icons/IconOctagon/index.tsx', + IconPackage: 'src/components/Icon/icons/IconPackage/index.tsx', + IconPaperclip: 'src/components/Icon/icons/IconPaperclip/index.tsx', + IconPauseCircle: 'src/components/Icon/icons/IconPauseCircle/index.tsx', + IconPause: 'src/components/Icon/icons/IconPause/index.tsx', + IconPenTool: 'src/components/Icon/icons/IconPenTool/index.tsx', + IconPercent: 'src/components/Icon/icons/IconPercent/index.tsx', + IconPhoneCall: 'src/components/Icon/icons/IconPhoneCall/index.tsx', + IconPhoneForwarded: 'src/components/Icon/icons/IconPhoneForwarded/index.tsx', + IconPhoneIncoming: 'src/components/Icon/icons/IconPhoneIncoming/index.tsx', + IconPhoneMissed: 'src/components/Icon/icons/IconPhoneMissed/index.tsx', + IconPhoneOff: 'src/components/Icon/icons/IconPhoneOff/index.tsx', + IconPhoneOutgoing: 'src/components/Icon/icons/IconPhoneOutgoing/index.tsx', + IconPhone: 'src/components/Icon/icons/IconPhone/index.tsx', + IconPieChart: 'src/components/Icon/icons/IconPieChart/index.tsx', + IconPlayCircle: 'src/components/Icon/icons/IconPlayCircle/index.tsx', + IconPlay: 'src/components/Icon/icons/IconPlay/index.tsx', + IconPlusCircle: 'src/components/Icon/icons/IconPlusCircle/index.tsx', + IconPlusSquare: 'src/components/Icon/icons/IconPlusSquare/index.tsx', + IconPlus: 'src/components/Icon/icons/IconPlus/index.tsx', + IconPocket: 'src/components/Icon/icons/IconPocket/index.tsx', + IconPower: 'src/components/Icon/icons/IconPower/index.tsx', + IconPrinter: 'src/components/Icon/icons/IconPrinter/index.tsx', + IconRadio: 'src/components/Icon/icons/IconRadio/index.tsx', + IconRefreshCcw: 'src/components/Icon/icons/IconRefreshCcw/index.tsx', + IconRefreshCw: 'src/components/Icon/icons/IconRefreshCw/index.tsx', + IconRepeat: 'src/components/Icon/icons/IconRepeat/index.tsx', + IconRewind: 'src/components/Icon/icons/IconRewind/index.tsx', + IconRotateCcw: 'src/components/Icon/icons/IconRotateCcw/index.tsx', + IconRotateCw: 'src/components/Icon/icons/IconRotateCw/index.tsx', + IconRss: 'src/components/Icon/icons/IconRss/index.tsx', + IconSave: 'src/components/Icon/icons/IconSave/index.tsx', + IconScissors: 'src/components/Icon/icons/IconScissors/index.tsx', + IconSearch: 'src/components/Icon/icons/IconSearch/index.tsx', + IconSend: 'src/components/Icon/icons/IconSend/index.tsx', + IconServer: 'src/components/Icon/icons/IconServer/index.tsx', + IconSettings: 'src/components/Icon/icons/IconSettings/index.tsx', + IconShare2: 'src/components/Icon/icons/IconShare2/index.tsx', + IconShare: 'src/components/Icon/icons/IconShare/index.tsx', + IconShieldOff: 'src/components/Icon/icons/IconShieldOff/index.tsx', + IconShield: 'src/components/Icon/icons/IconShield/index.tsx', + IconShoppingBag: 'src/components/Icon/icons/IconShoppingBag/index.tsx', + IconShoppingCart: 'src/components/Icon/icons/IconShoppingCart/index.tsx', + IconShuffle: 'src/components/Icon/icons/IconShuffle/index.tsx', + IconSidebar: 'src/components/Icon/icons/IconSidebar/index.tsx', + IconSkipBack: 'src/components/Icon/icons/IconSkipBack/index.tsx', + IconSkipForward: 'src/components/Icon/icons/IconSkipForward/index.tsx', + IconSlack: 'src/components/Icon/icons/IconSlack/index.tsx', + IconSlash: 'src/components/Icon/icons/IconSlash/index.tsx', + IconSliders: 'src/components/Icon/icons/IconSliders/index.tsx', + IconSmartphone: 'src/components/Icon/icons/IconSmartphone/index.tsx', + IconSmile: 'src/components/Icon/icons/IconSmile/index.tsx', + IconSpeaker: 'src/components/Icon/icons/IconSpeaker/index.tsx', + IconSquare: 'src/components/Icon/icons/IconSquare/index.tsx', + IconStar: 'src/components/Icon/icons/IconStar/index.tsx', + IconStopCircle: 'src/components/Icon/icons/IconStopCircle/index.tsx', + IconSun: 'src/components/Icon/icons/IconSun/index.tsx', + IconSunrise: 'src/components/Icon/icons/IconSunrise/index.tsx', + IconSunset: 'src/components/Icon/icons/IconSunset/index.tsx', + IconTablet: 'src/components/Icon/icons/IconTablet/index.tsx', + IconTag: 'src/components/Icon/icons/IconTag/index.tsx', + IconTarget: 'src/components/Icon/icons/IconTarget/index.tsx', + IconTerminal: 'src/components/Icon/icons/IconTerminal/index.tsx', + IconThermometer: 'src/components/Icon/icons/IconThermometer/index.tsx', + IconThumbsDown: 'src/components/Icon/icons/IconThumbsDown/index.tsx', + IconThumbsUp: 'src/components/Icon/icons/IconThumbsUp/index.tsx', + IconToggleLeft: 'src/components/Icon/icons/IconToggleLeft/index.tsx', + IconToggleRight: 'src/components/Icon/icons/IconToggleRight/index.tsx', + IconTool: 'src/components/Icon/icons/IconTool/index.tsx', + IconTrash2: 'src/components/Icon/icons/IconTrash2/index.tsx', + IconTrash: 'src/components/Icon/icons/IconTrash/index.tsx', + IconTrello: 'src/components/Icon/icons/IconTrello/index.tsx', + IconTrendingDown: 'src/components/Icon/icons/IconTrendingDown/index.tsx', + IconTrendingUp: 'src/components/Icon/icons/IconTrendingUp/index.tsx', + IconTriangle: 'src/components/Icon/icons/IconTriangle/index.tsx', + IconTruck: 'src/components/Icon/icons/IconTruck/index.tsx', + IconTv: 'src/components/Icon/icons/IconTv/index.tsx', + IconTwitch: 'src/components/Icon/icons/IconTwitch/index.tsx', + IconTwitter: 'src/components/Icon/icons/IconTwitter/index.tsx', + IconType: 'src/components/Icon/icons/IconType/index.tsx', + IconUmbrella: 'src/components/Icon/icons/IconUmbrella/index.tsx', + IconUnderline: 'src/components/Icon/icons/IconUnderline/index.tsx', + IconUnlock: 'src/components/Icon/icons/IconUnlock/index.tsx', + IconUploadCloud: 'src/components/Icon/icons/IconUploadCloud/index.tsx', + IconUpload: 'src/components/Icon/icons/IconUpload/index.tsx', + IconUserCheck: 'src/components/Icon/icons/IconUserCheck/index.tsx', + IconUserMinus: 'src/components/Icon/icons/IconUserMinus/index.tsx', + IconUserPlus: 'src/components/Icon/icons/IconUserPlus/index.tsx', + IconUserX: 'src/components/Icon/icons/IconUserX/index.tsx', + IconUser: 'src/components/Icon/icons/IconUser/index.tsx', + IconUsers: 'src/components/Icon/icons/IconUsers/index.tsx', + IconVideoOff: 'src/components/Icon/icons/IconVideoOff/index.tsx', + IconVideo: 'src/components/Icon/icons/IconVideo/index.tsx', + IconVoicemail: 'src/components/Icon/icons/IconVoicemail/index.tsx', + IconVolume1: 'src/components/Icon/icons/IconVolume1/index.tsx', + IconVolume2: 'src/components/Icon/icons/IconVolume2/index.tsx', + IconVolumeX: 'src/components/Icon/icons/IconVolumeX/index.tsx', + IconVolume: 'src/components/Icon/icons/IconVolume/index.tsx', + IconWatch: 'src/components/Icon/icons/IconWatch/index.tsx', + IconWifiOff: 'src/components/Icon/icons/IconWifiOff/index.tsx', + IconWifi: 'src/components/Icon/icons/IconWifi/index.tsx', + IconWind: 'src/components/Icon/icons/IconWind/index.tsx', + IconXCircle: 'src/components/Icon/icons/IconXCircle/index.tsx', + IconXOctagon: 'src/components/Icon/icons/IconXOctagon/index.tsx', + IconXSquare: 'src/components/Icon/icons/IconXSquare/index.tsx', + IconX: 'src/components/Icon/icons/IconX/index.tsx', + IconYoutube: 'src/components/Icon/icons/IconYoutube/index.tsx', + IconZapOff: 'src/components/Icon/icons/IconZapOff/index.tsx', + IconZap: 'src/components/Icon/icons/IconZap/index.tsx', + IconZoomIn: 'src/components/Icon/icons/IconZoomIn/index.tsx', + IconZoomOut: 'src/components/Icon/icons/IconZoomOut/index.tsx' +} \ No newline at end of file diff --git a/packages/ui/internals/icons.json b/packages/ui/internals/icons.json new file mode 100644 index 00000000000..992be561d20 --- /dev/null +++ b/packages/ui/internals/icons.json @@ -0,0 +1,1146 @@ +{ + "Activity": { + "name": "Activity", + "path": "react-feather/dist/icons/activity" + }, + "Airplay": { + "name": "Airplay", + "path": "react-feather/dist/icons/airplay" + }, + "AlertCircle": { + "name": "AlertCircle", + "path": "react-feather/dist/icons/alert-circle" + }, + "AlertOctagon": { + "name": "AlertOctagon", + "path": "react-feather/dist/icons/alert-octagon" + }, + "AlertTriangle": { + "name": "AlertTriangle", + "path": "react-feather/dist/icons/alert-triangle" + }, + "AlignCenter": { + "name": "AlignCenter", + "path": "react-feather/dist/icons/align-center" + }, + "AlignJustify": { + "name": "AlignJustify", + "path": "react-feather/dist/icons/align-justify" + }, + "AlignLeft": { + "name": "AlignLeft", + "path": "react-feather/dist/icons/align-left" + }, + "AlignRight": { + "name": "AlignRight", + "path": "react-feather/dist/icons/align-right" + }, + "Anchor": { + "name": "Anchor", + "path": "react-feather/dist/icons/anchor" + }, + "Aperture": { + "name": "Aperture", + "path": "react-feather/dist/icons/aperture" + }, + "Archive": { + "name": "Archive", + "path": "react-feather/dist/icons/archive" + }, + "ArrowDownCircle": { + "name": "ArrowDownCircle", + "path": "react-feather/dist/icons/arrow-down-circle" + }, + "ArrowDownLeft": { + "name": "ArrowDownLeft", + "path": "react-feather/dist/icons/arrow-down-left" + }, + "ArrowDownRight": { + "name": "ArrowDownRight", + "path": "react-feather/dist/icons/arrow-down-right" + }, + "ArrowDown": { + "name": "ArrowDown", + "path": "react-feather/dist/icons/arrow-down" + }, + "ArrowLeftCircle": { + "name": "ArrowLeftCircle", + "path": "react-feather/dist/icons/arrow-left-circle" + }, + "ArrowLeft": { + "name": "ArrowLeft", + "path": "react-feather/dist/icons/arrow-left" + }, + "ArrowRightCircle": { + "name": "ArrowRightCircle", + "path": "react-feather/dist/icons/arrow-right-circle" + }, + "ArrowRight": { + "name": "ArrowRight", + "path": "react-feather/dist/icons/arrow-right" + }, + "ArrowUpCircle": { + "name": "ArrowUpCircle", + "path": "react-feather/dist/icons/arrow-up-circle" + }, + "ArrowUpLeft": { + "name": "ArrowUpLeft", + "path": "react-feather/dist/icons/arrow-up-left" + }, + "ArrowUpRight": { + "name": "ArrowUpRight", + "path": "react-feather/dist/icons/arrow-up-right" + }, + "ArrowUp": { + "name": "ArrowUp", + "path": "react-feather/dist/icons/arrow-up" + }, + "AtSign": { + "name": "AtSign", + "path": "react-feather/dist/icons/at-sign" + }, + "Award": { + "name": "Award", + "path": "react-feather/dist/icons/award" + }, + "BarChart2": { + "name": "BarChart2", + "path": "react-feather/dist/icons/bar-chart-2" + }, + "BarChart": { + "name": "BarChart", + "path": "react-feather/dist/icons/bar-chart" + }, + "BatteryCharging": { + "name": "BatteryCharging", + "path": "react-feather/dist/icons/battery-charging" + }, + "Battery": { + "name": "Battery", + "path": "react-feather/dist/icons/battery" + }, + "BellOff": { + "name": "BellOff", + "path": "react-feather/dist/icons/bell-off" + }, + "Bell": { + "name": "Bell", + "path": "react-feather/dist/icons/bell" + }, + "Bluetooth": { + "name": "Bluetooth", + "path": "react-feather/dist/icons/bluetooth" + }, + "Bold": { + "name": "Bold", + "path": "react-feather/dist/icons/bold" + }, + "BookOpen": { + "name": "BookOpen", + "path": "react-feather/dist/icons/book-open" + }, + "Book": { + "name": "Book", + "path": "react-feather/dist/icons/book" + }, + "Bookmark": { + "name": "Bookmark", + "path": "react-feather/dist/icons/bookmark" + }, + "Box": { + "name": "Box", + "path": "react-feather/dist/icons/box" + }, + "Briefcase": { + "name": "Briefcase", + "path": "react-feather/dist/icons/briefcase" + }, + "Calendar": { + "name": "Calendar", + "path": "react-feather/dist/icons/calendar" + }, + "CameraOff": { + "name": "CameraOff", + "path": "react-feather/dist/icons/camera-off" + }, + "Camera": { + "name": "Camera", + "path": "react-feather/dist/icons/camera" + }, + "Cast": { + "name": "Cast", + "path": "react-feather/dist/icons/cast" + }, + "CheckCircle": { + "name": "CheckCircle", + "path": "react-feather/dist/icons/check-circle" + }, + "CheckSquare": { + "name": "CheckSquare", + "path": "react-feather/dist/icons/check-square" + }, + "Check": { + "name": "Check", + "path": "react-feather/dist/icons/check" + }, + "ChevronDown": { + "name": "ChevronDown", + "path": "react-feather/dist/icons/chevron-down" + }, + "ChevronLeft": { + "name": "ChevronLeft", + "path": "react-feather/dist/icons/chevron-left" + }, + "ChevronRight": { + "name": "ChevronRight", + "path": "react-feather/dist/icons/chevron-right" + }, + "ChevronUp": { + "name": "ChevronUp", + "path": "react-feather/dist/icons/chevron-up" + }, + "ChevronsDown": { + "name": "ChevronsDown", + "path": "react-feather/dist/icons/chevrons-down" + }, + "ChevronsLeft": { + "name": "ChevronsLeft", + "path": "react-feather/dist/icons/chevrons-left" + }, + "ChevronsRight": { + "name": "ChevronsRight", + "path": "react-feather/dist/icons/chevrons-right" + }, + "ChevronsUp": { + "name": "ChevronsUp", + "path": "react-feather/dist/icons/chevrons-up" + }, + "Chrome": { + "name": "Chrome", + "path": "react-feather/dist/icons/chrome" + }, + "Circle": { + "name": "Circle", + "path": "react-feather/dist/icons/circle" + }, + "Clipboard": { + "name": "Clipboard", + "path": "react-feather/dist/icons/clipboard" + }, + "Clock": { + "name": "Clock", + "path": "react-feather/dist/icons/clock" + }, + "CloudDrizzle": { + "name": "CloudDrizzle", + "path": "react-feather/dist/icons/cloud-drizzle" + }, + "CloudLightning": { + "name": "CloudLightning", + "path": "react-feather/dist/icons/cloud-lightning" + }, + "CloudOff": { + "name": "CloudOff", + "path": "react-feather/dist/icons/cloud-off" + }, + "CloudRain": { + "name": "CloudRain", + "path": "react-feather/dist/icons/cloud-rain" + }, + "CloudSnow": { + "name": "CloudSnow", + "path": "react-feather/dist/icons/cloud-snow" + }, + "Cloud": { + "name": "Cloud", + "path": "react-feather/dist/icons/cloud" + }, + "Code": { + "name": "Code", + "path": "react-feather/dist/icons/code" + }, + "Codepen": { + "name": "Codepen", + "path": "react-feather/dist/icons/codepen" + }, + "Codesandbox": { + "name": "Codesandbox", + "path": "react-feather/dist/icons/codesandbox" + }, + "Coffee": { + "name": "Coffee", + "path": "react-feather/dist/icons/coffee" + }, + "Columns": { + "name": "Columns", + "path": "react-feather/dist/icons/columns" + }, + "Command": { + "name": "Command", + "path": "react-feather/dist/icons/command" + }, + "Compass": { + "name": "Compass", + "path": "react-feather/dist/icons/compass" + }, + "Copy": { + "name": "Copy", + "path": "react-feather/dist/icons/copy" + }, + "CornerDownLeft": { + "name": "CornerDownLeft", + "path": "react-feather/dist/icons/corner-down-left" + }, + "CornerDownRight": { + "name": "CornerDownRight", + "path": "react-feather/dist/icons/corner-down-right" + }, + "CornerLeftDown": { + "name": "CornerLeftDown", + "path": "react-feather/dist/icons/corner-left-down" + }, + "CornerLeftUp": { + "name": "CornerLeftUp", + "path": "react-feather/dist/icons/corner-left-up" + }, + "CornerRightDown": { + "name": "CornerRightDown", + "path": "react-feather/dist/icons/corner-right-down" + }, + "CornerRightUp": { + "name": "CornerRightUp", + "path": "react-feather/dist/icons/corner-right-up" + }, + "CornerUpLeft": { + "name": "CornerUpLeft", + "path": "react-feather/dist/icons/corner-up-left" + }, + "CornerUpRight": { + "name": "CornerUpRight", + "path": "react-feather/dist/icons/corner-up-right" + }, + "Cpu": { + "name": "Cpu", + "path": "react-feather/dist/icons/cpu" + }, + "CreditCard": { + "name": "CreditCard", + "path": "react-feather/dist/icons/credit-card" + }, + "Crop": { + "name": "Crop", + "path": "react-feather/dist/icons/crop" + }, + "Crosshair": { + "name": "Crosshair", + "path": "react-feather/dist/icons/crosshair" + }, + "Database": { + "name": "Database", + "path": "react-feather/dist/icons/database" + }, + "Delete": { + "name": "Delete", + "path": "react-feather/dist/icons/delete" + }, + "Disc": { + "name": "Disc", + "path": "react-feather/dist/icons/disc" + }, + "DivideCircle": { + "name": "DivideCircle", + "path": "react-feather/dist/icons/divide-circle" + }, + "DivideSquare": { + "name": "DivideSquare", + "path": "react-feather/dist/icons/divide-square" + }, + "Divide": { + "name": "Divide", + "path": "react-feather/dist/icons/divide" + }, + "DollarSign": { + "name": "DollarSign", + "path": "react-feather/dist/icons/dollar-sign" + }, + "DownloadCloud": { + "name": "DownloadCloud", + "path": "react-feather/dist/icons/download-cloud" + }, + "Download": { + "name": "Download", + "path": "react-feather/dist/icons/download" + }, + "Dribbble": { + "name": "Dribbble", + "path": "react-feather/dist/icons/dribbble" + }, + "Droplet": { + "name": "Droplet", + "path": "react-feather/dist/icons/droplet" + }, + "Edit2": { + "name": "Edit2", + "path": "react-feather/dist/icons/edit-2" + }, + "Edit3": { + "name": "Edit3", + "path": "react-feather/dist/icons/edit-3" + }, + "Edit": { + "name": "Edit", + "path": "react-feather/dist/icons/edit" + }, + "ExternalLink": { + "name": "ExternalLink", + "path": "react-feather/dist/icons/external-link" + }, + "EyeOff": { + "name": "EyeOff", + "path": "react-feather/dist/icons/eye-off" + }, + "Eye": { + "name": "Eye", + "path": "react-feather/dist/icons/eye" + }, + "Facebook": { + "name": "Facebook", + "path": "react-feather/dist/icons/facebook" + }, + "FastForward": { + "name": "FastForward", + "path": "react-feather/dist/icons/fast-forward" + }, + "Feather": { + "name": "Feather", + "path": "react-feather/dist/icons/feather" + }, + "Figma": { + "name": "Figma", + "path": "react-feather/dist/icons/figma" + }, + "FileMinus": { + "name": "FileMinus", + "path": "react-feather/dist/icons/file-minus" + }, + "FilePlus": { + "name": "FilePlus", + "path": "react-feather/dist/icons/file-plus" + }, + "FileText": { + "name": "FileText", + "path": "react-feather/dist/icons/file-text" + }, + "File": { + "name": "File", + "path": "react-feather/dist/icons/file" + }, + "Film": { + "name": "Film", + "path": "react-feather/dist/icons/film" + }, + "Filter": { + "name": "Filter", + "path": "react-feather/dist/icons/filter" + }, + "Flag": { + "name": "Flag", + "path": "react-feather/dist/icons/flag" + }, + "FolderMinus": { + "name": "FolderMinus", + "path": "react-feather/dist/icons/folder-minus" + }, + "FolderPlus": { + "name": "FolderPlus", + "path": "react-feather/dist/icons/folder-plus" + }, + "Folder": { + "name": "Folder", + "path": "react-feather/dist/icons/folder" + }, + "Framer": { + "name": "Framer", + "path": "react-feather/dist/icons/framer" + }, + "Frown": { + "name": "Frown", + "path": "react-feather/dist/icons/frown" + }, + "Gift": { + "name": "Gift", + "path": "react-feather/dist/icons/gift" + }, + "GitBranch": { + "name": "GitBranch", + "path": "react-feather/dist/icons/git-branch" + }, + "GitCommit": { + "name": "GitCommit", + "path": "react-feather/dist/icons/git-commit" + }, + "GitMerge": { + "name": "GitMerge", + "path": "react-feather/dist/icons/git-merge" + }, + "GitPullRequest": { + "name": "GitPullRequest", + "path": "react-feather/dist/icons/git-pull-request" + }, + "GitHub": { + "name": "GitHub", + "path": "react-feather/dist/icons/github" + }, + "Gitlab": { + "name": "Gitlab", + "path": "react-feather/dist/icons/gitlab" + }, + "Globe": { + "name": "Globe", + "path": "react-feather/dist/icons/globe" + }, + "Grid": { + "name": "Grid", + "path": "react-feather/dist/icons/grid" + }, + "HardDrive": { + "name": "HardDrive", + "path": "react-feather/dist/icons/hard-drive" + }, + "Hash": { + "name": "Hash", + "path": "react-feather/dist/icons/hash" + }, + "Headphones": { + "name": "Headphones", + "path": "react-feather/dist/icons/headphones" + }, + "Heart": { + "name": "Heart", + "path": "react-feather/dist/icons/heart" + }, + "HelpCircle": { + "name": "HelpCircle", + "path": "react-feather/dist/icons/help-circle" + }, + "Hexagon": { + "name": "Hexagon", + "path": "react-feather/dist/icons/hexagon" + }, + "Home": { + "name": "Home", + "path": "react-feather/dist/icons/home" + }, + "Image": { + "name": "Image", + "path": "react-feather/dist/icons/image" + }, + "Inbox": { + "name": "Inbox", + "path": "react-feather/dist/icons/inbox" + }, + "Info": { + "name": "Info", + "path": "react-feather/dist/icons/info" + }, + "Instagram": { + "name": "Instagram", + "path": "react-feather/dist/icons/instagram" + }, + "Italic": { + "name": "Italic", + "path": "react-feather/dist/icons/italic" + }, + "Key": { + "name": "Key", + "path": "react-feather/dist/icons/key" + }, + "Layers": { + "name": "Layers", + "path": "react-feather/dist/icons/layers" + }, + "Layout": { + "name": "Layout", + "path": "react-feather/dist/icons/layout" + }, + "LifeBuoy": { + "name": "LifeBuoy", + "path": "react-feather/dist/icons/life-buoy" + }, + "Link2": { + "name": "Link2", + "path": "react-feather/dist/icons/link-2" + }, + "Link": { + "name": "Link", + "path": "react-feather/dist/icons/link" + }, + "Linkedin": { + "name": "Linkedin", + "path": "react-feather/dist/icons/linkedin" + }, + "List": { + "name": "List", + "path": "react-feather/dist/icons/list" + }, + "Loader": { + "name": "Loader", + "path": "react-feather/dist/icons/loader" + }, + "Lock": { + "name": "Lock", + "path": "react-feather/dist/icons/lock" + }, + "LogIn": { + "name": "LogIn", + "path": "react-feather/dist/icons/log-in" + }, + "LogOut": { + "name": "LogOut", + "path": "react-feather/dist/icons/log-out" + }, + "Mail": { + "name": "Mail", + "path": "react-feather/dist/icons/mail" + }, + "MapPin": { + "name": "MapPin", + "path": "react-feather/dist/icons/map-pin" + }, + "Map": { + "name": "Map", + "path": "react-feather/dist/icons/map" + }, + "Maximize2": { + "name": "Maximize2", + "path": "react-feather/dist/icons/maximize-2" + }, + "Maximize": { + "name": "Maximize", + "path": "react-feather/dist/icons/maximize" + }, + "Meh": { + "name": "Meh", + "path": "react-feather/dist/icons/meh" + }, + "Menu": { + "name": "Menu", + "path": "react-feather/dist/icons/menu" + }, + "MessageCircle": { + "name": "MessageCircle", + "path": "react-feather/dist/icons/message-circle" + }, + "MessageSquare": { + "name": "MessageSquare", + "path": "react-feather/dist/icons/message-square" + }, + "MicOff": { + "name": "MicOff", + "path": "react-feather/dist/icons/mic-off" + }, + "Mic": { + "name": "Mic", + "path": "react-feather/dist/icons/mic" + }, + "Minimize2": { + "name": "Minimize2", + "path": "react-feather/dist/icons/minimize-2" + }, + "Minimize": { + "name": "Minimize", + "path": "react-feather/dist/icons/minimize" + }, + "MinusCircle": { + "name": "MinusCircle", + "path": "react-feather/dist/icons/minus-circle" + }, + "MinusSquare": { + "name": "MinusSquare", + "path": "react-feather/dist/icons/minus-square" + }, + "Minus": { + "name": "Minus", + "path": "react-feather/dist/icons/minus" + }, + "Monitor": { + "name": "Monitor", + "path": "react-feather/dist/icons/monitor" + }, + "Moon": { + "name": "Moon", + "path": "react-feather/dist/icons/moon" + }, + "MoreHorizontal": { + "name": "MoreHorizontal", + "path": "react-feather/dist/icons/more-horizontal" + }, + "MoreVertical": { + "name": "MoreVertical", + "path": "react-feather/dist/icons/more-vertical" + }, + "MousePointer": { + "name": "MousePointer", + "path": "react-feather/dist/icons/mouse-pointer" + }, + "Move": { + "name": "Move", + "path": "react-feather/dist/icons/move" + }, + "Music": { + "name": "Music", + "path": "react-feather/dist/icons/music" + }, + "Navigation2": { + "name": "Navigation2", + "path": "react-feather/dist/icons/navigation-2" + }, + "Navigation": { + "name": "Navigation", + "path": "react-feather/dist/icons/navigation" + }, + "Octagon": { + "name": "Octagon", + "path": "react-feather/dist/icons/octagon" + }, + "Package": { + "name": "Package", + "path": "react-feather/dist/icons/package" + }, + "Paperclip": { + "name": "Paperclip", + "path": "react-feather/dist/icons/paperclip" + }, + "PauseCircle": { + "name": "PauseCircle", + "path": "react-feather/dist/icons/pause-circle" + }, + "Pause": { + "name": "Pause", + "path": "react-feather/dist/icons/pause" + }, + "PenTool": { + "name": "PenTool", + "path": "react-feather/dist/icons/pen-tool" + }, + "Percent": { + "name": "Percent", + "path": "react-feather/dist/icons/percent" + }, + "PhoneCall": { + "name": "PhoneCall", + "path": "react-feather/dist/icons/phone-call" + }, + "PhoneForwarded": { + "name": "PhoneForwarded", + "path": "react-feather/dist/icons/phone-forwarded" + }, + "PhoneIncoming": { + "name": "PhoneIncoming", + "path": "react-feather/dist/icons/phone-incoming" + }, + "PhoneMissed": { + "name": "PhoneMissed", + "path": "react-feather/dist/icons/phone-missed" + }, + "PhoneOff": { + "name": "PhoneOff", + "path": "react-feather/dist/icons/phone-off" + }, + "PhoneOutgoing": { + "name": "PhoneOutgoing", + "path": "react-feather/dist/icons/phone-outgoing" + }, + "Phone": { + "name": "Phone", + "path": "react-feather/dist/icons/phone" + }, + "PieChart": { + "name": "PieChart", + "path": "react-feather/dist/icons/pie-chart" + }, + "PlayCircle": { + "name": "PlayCircle", + "path": "react-feather/dist/icons/play-circle" + }, + "Play": { + "name": "Play", + "path": "react-feather/dist/icons/play" + }, + "PlusCircle": { + "name": "PlusCircle", + "path": "react-feather/dist/icons/plus-circle" + }, + "PlusSquare": { + "name": "PlusSquare", + "path": "react-feather/dist/icons/plus-square" + }, + "Plus": { + "name": "Plus", + "path": "react-feather/dist/icons/plus" + }, + "Pocket": { + "name": "Pocket", + "path": "react-feather/dist/icons/pocket" + }, + "Power": { + "name": "Power", + "path": "react-feather/dist/icons/power" + }, + "Printer": { + "name": "Printer", + "path": "react-feather/dist/icons/printer" + }, + "Radio": { + "name": "Radio", + "path": "react-feather/dist/icons/radio" + }, + "RefreshCcw": { + "name": "RefreshCcw", + "path": "react-feather/dist/icons/refresh-ccw" + }, + "RefreshCw": { + "name": "RefreshCw", + "path": "react-feather/dist/icons/refresh-cw" + }, + "Repeat": { + "name": "Repeat", + "path": "react-feather/dist/icons/repeat" + }, + "Rewind": { + "name": "Rewind", + "path": "react-feather/dist/icons/rewind" + }, + "RotateCcw": { + "name": "RotateCcw", + "path": "react-feather/dist/icons/rotate-ccw" + }, + "RotateCw": { + "name": "RotateCw", + "path": "react-feather/dist/icons/rotate-cw" + }, + "Rss": { + "name": "Rss", + "path": "react-feather/dist/icons/rss" + }, + "Save": { + "name": "Save", + "path": "react-feather/dist/icons/save" + }, + "Scissors": { + "name": "Scissors", + "path": "react-feather/dist/icons/scissors" + }, + "Search": { + "name": "Search", + "path": "react-feather/dist/icons/search" + }, + "Send": { + "name": "Send", + "path": "react-feather/dist/icons/send" + }, + "Server": { + "name": "Server", + "path": "react-feather/dist/icons/server" + }, + "Settings": { + "name": "Settings", + "path": "react-feather/dist/icons/settings" + }, + "Share2": { + "name": "Share2", + "path": "react-feather/dist/icons/share-2" + }, + "Share": { + "name": "Share", + "path": "react-feather/dist/icons/share" + }, + "ShieldOff": { + "name": "ShieldOff", + "path": "react-feather/dist/icons/shield-off" + }, + "Shield": { + "name": "Shield", + "path": "react-feather/dist/icons/shield" + }, + "ShoppingBag": { + "name": "ShoppingBag", + "path": "react-feather/dist/icons/shopping-bag" + }, + "ShoppingCart": { + "name": "ShoppingCart", + "path": "react-feather/dist/icons/shopping-cart" + }, + "Shuffle": { + "name": "Shuffle", + "path": "react-feather/dist/icons/shuffle" + }, + "Sidebar": { + "name": "Sidebar", + "path": "react-feather/dist/icons/sidebar" + }, + "SkipBack": { + "name": "SkipBack", + "path": "react-feather/dist/icons/skip-back" + }, + "SkipForward": { + "name": "SkipForward", + "path": "react-feather/dist/icons/skip-forward" + }, + "Slack": { + "name": "Slack", + "path": "react-feather/dist/icons/slack" + }, + "Slash": { + "name": "Slash", + "path": "react-feather/dist/icons/slash" + }, + "Sliders": { + "name": "Sliders", + "path": "react-feather/dist/icons/sliders" + }, + "Smartphone": { + "name": "Smartphone", + "path": "react-feather/dist/icons/smartphone" + }, + "Smile": { + "name": "Smile", + "path": "react-feather/dist/icons/smile" + }, + "Speaker": { + "name": "Speaker", + "path": "react-feather/dist/icons/speaker" + }, + "Square": { + "name": "Square", + "path": "react-feather/dist/icons/square" + }, + "Star": { + "name": "Star", + "path": "react-feather/dist/icons/star" + }, + "StopCircle": { + "name": "StopCircle", + "path": "react-feather/dist/icons/stop-circle" + }, + "Sun": { + "name": "Sun", + "path": "react-feather/dist/icons/sun" + }, + "Sunrise": { + "name": "Sunrise", + "path": "react-feather/dist/icons/sunrise" + }, + "Sunset": { + "name": "Sunset", + "path": "react-feather/dist/icons/sunset" + }, + "Tablet": { + "name": "Tablet", + "path": "react-feather/dist/icons/tablet" + }, + "Tag": { + "name": "Tag", + "path": "react-feather/dist/icons/tag" + }, + "Target": { + "name": "Target", + "path": "react-feather/dist/icons/target" + }, + "Terminal": { + "name": "Terminal", + "path": "react-feather/dist/icons/terminal" + }, + "Thermometer": { + "name": "Thermometer", + "path": "react-feather/dist/icons/thermometer" + }, + "ThumbsDown": { + "name": "ThumbsDown", + "path": "react-feather/dist/icons/thumbs-down" + }, + "ThumbsUp": { + "name": "ThumbsUp", + "path": "react-feather/dist/icons/thumbs-up" + }, + "ToggleLeft": { + "name": "ToggleLeft", + "path": "react-feather/dist/icons/toggle-left" + }, + "ToggleRight": { + "name": "ToggleRight", + "path": "react-feather/dist/icons/toggle-right" + }, + "Tool": { + "name": "Tool", + "path": "react-feather/dist/icons/tool" + }, + "Trash2": { + "name": "Trash2", + "path": "react-feather/dist/icons/trash-2" + }, + "Trash": { + "name": "Trash", + "path": "react-feather/dist/icons/trash" + }, + "Trello": { + "name": "Trello", + "path": "react-feather/dist/icons/trello" + }, + "TrendingDown": { + "name": "TrendingDown", + "path": "react-feather/dist/icons/trending-down" + }, + "TrendingUp": { + "name": "TrendingUp", + "path": "react-feather/dist/icons/trending-up" + }, + "Triangle": { + "name": "Triangle", + "path": "react-feather/dist/icons/triangle" + }, + "Truck": { + "name": "Truck", + "path": "react-feather/dist/icons/truck" + }, + "Tv": { + "name": "Tv", + "path": "react-feather/dist/icons/tv" + }, + "Twitch": { + "name": "Twitch", + "path": "react-feather/dist/icons/twitch" + }, + "Twitter": { + "name": "Twitter", + "path": "react-feather/dist/icons/twitter" + }, + "Type": { + "name": "Type", + "path": "react-feather/dist/icons/type" + }, + "Umbrella": { + "name": "Umbrella", + "path": "react-feather/dist/icons/umbrella" + }, + "Underline": { + "name": "Underline", + "path": "react-feather/dist/icons/underline" + }, + "Unlock": { + "name": "Unlock", + "path": "react-feather/dist/icons/unlock" + }, + "UploadCloud": { + "name": "UploadCloud", + "path": "react-feather/dist/icons/upload-cloud" + }, + "Upload": { + "name": "Upload", + "path": "react-feather/dist/icons/upload" + }, + "UserCheck": { + "name": "UserCheck", + "path": "react-feather/dist/icons/user-check" + }, + "UserMinus": { + "name": "UserMinus", + "path": "react-feather/dist/icons/user-minus" + }, + "UserPlus": { + "name": "UserPlus", + "path": "react-feather/dist/icons/user-plus" + }, + "UserX": { + "name": "UserX", + "path": "react-feather/dist/icons/user-x" + }, + "User": { + "name": "User", + "path": "react-feather/dist/icons/user" + }, + "Users": { + "name": "Users", + "path": "react-feather/dist/icons/users" + }, + "VideoOff": { + "name": "VideoOff", + "path": "react-feather/dist/icons/video-off" + }, + "Video": { + "name": "Video", + "path": "react-feather/dist/icons/video" + }, + "Voicemail": { + "name": "Voicemail", + "path": "react-feather/dist/icons/voicemail" + }, + "Volume1": { + "name": "Volume1", + "path": "react-feather/dist/icons/volume-1" + }, + "Volume2": { + "name": "Volume2", + "path": "react-feather/dist/icons/volume-2" + }, + "VolumeX": { + "name": "VolumeX", + "path": "react-feather/dist/icons/volume-x" + }, + "Volume": { + "name": "Volume", + "path": "react-feather/dist/icons/volume" + }, + "Watch": { + "name": "Watch", + "path": "react-feather/dist/icons/watch" + }, + "WifiOff": { + "name": "WifiOff", + "path": "react-feather/dist/icons/wifi-off" + }, + "Wifi": { + "name": "Wifi", + "path": "react-feather/dist/icons/wifi" + }, + "Wind": { + "name": "Wind", + "path": "react-feather/dist/icons/wind" + }, + "XCircle": { + "name": "XCircle", + "path": "react-feather/dist/icons/x-circle" + }, + "XOctagon": { + "name": "XOctagon", + "path": "react-feather/dist/icons/x-octagon" + }, + "XSquare": { + "name": "XSquare", + "path": "react-feather/dist/icons/x-square" + }, + "X": { + "name": "X", + "path": "react-feather/dist/icons/x" + }, + "Youtube": { + "name": "Youtube", + "path": "react-feather/dist/icons/youtube" + }, + "ZapOff": { + "name": "ZapOff", + "path": "react-feather/dist/icons/zap-off" + }, + "Zap": { + "name": "Zap", + "path": "react-feather/dist/icons/zap" + }, + "ZoomIn": { + "name": "ZoomIn", + "path": "react-feather/dist/icons/zoom-in" + }, + "ZoomOut": { + "name": "ZoomOut", + "path": "react-feather/dist/icons/zoom-out" + } +} diff --git a/packages/ui/internals/populate-icons.js b/packages/ui/internals/populate-icons.js new file mode 100644 index 00000000000..aaf6be2da22 --- /dev/null +++ b/packages/ui/internals/populate-icons.js @@ -0,0 +1,77 @@ +const fs = require('fs') +const util = require('util') +var icons = require('./icons.json') //with path + +let iconList = {} +let importList = [] + +// +// create icon .tsx files +// + +Object.values(icons).map((icon) => { + iconList[`Icon${icon.name}`] = `src/components/Icon/icons/Icon${icon.name}/index.tsx` + importList.push(`export * as Icon${icon.name} from './Icon${icon.name}'`) + + var dir = `src/components/Icon/icons/Icon${icon.name}` + + fs.mkdir(dir, { recursive: true }, (err) => { + if (err) throw err + }) + + fs.writeFile( + `${dir}/index.tsx`, + `export { default as Icon${icon.name} } from './Icon${icon.name}'`, + function (err) { + if (err) return console.log(err) + } + ) + + fs.writeFile( + `${dir}/Icon${icon.name}.tsx`, + `// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ${icon.name} } from 'react-feather' + import IconBase from './../../IconBase' + + function Icon${icon.name}(props: any) { + return + } + + export default Icon${icon.name} + `, + function (err) { + if (err) return console.log(err) + // console.log(`${icon.name} > ${icon.path}`) + } + ) +}) + +// +// create export file for icons +// + +fs.writeFile( + `src/components/Icon/icons/index.tsx`, + `// export icons +${importList + .map((icon) => { + return `${icon}\n` + }) + .join('')}`, + function (err) { + if (err) return console.log(err) + // console.log(`wrote file for rollup`) + } +) + +// +// create input destinations for rollup +// + +fs.writeFile(`internals/icons.js`, `export default ${util.inspect(iconList)}`, function (err) { + if (err) return console.log(err) + // console.log(`wrote file for rollup`) +}) diff --git a/packages/ui/package.json b/packages/ui/package.json new file mode 100644 index 00000000000..1e1490587d6 --- /dev/null +++ b/packages/ui/package.json @@ -0,0 +1,39 @@ +{ + "name": "ui", + "version": "0.0.0", + "main": "./index.tsx", + "types": "./index.tsx", + "license": "MIT", + "scripts": { + "build:icons": "node --experimental-modules internals/populate-icons.js" + }, + "dependencies": { + "@headlessui/react": "^1.0.0", + "@mertasan/tailwindcss-variables": "^2.0.1", + "@radix-ui/colors": "^0.1.8", + "@radix-ui/react-accordion": "^0.1.5", + "@radix-ui/react-collapsible": "^0.1.5", + "@radix-ui/react-context-menu": "^0.1.0", + "@radix-ui/react-dialog": "^0.1.5", + "@radix-ui/react-dropdown-menu": "^0.1.4", + "@radix-ui/react-popover": "^0.1.0", + "@radix-ui/react-portal": "^0.1.3", + "@radix-ui/react-tabs": "^0.1.0", + "@tailwindcss/forms": "^0.4.0", + "@tailwindcss/typography": "^0.5.0", + "autoprefixer": "^10.4.2", + "deepmerge": "^4.2.2", + "formik": "^2.2.9", + "lodash": "^4.17.20", + "postcss": "^8.4.5", + "prop-types": "^15.7.2", + "react-feather": "^2.0.10", + "tailwindcss": "^3.0.15", + "tailwindcss-radix": "^1.6.0" + }, + "devDependencies": { + "@types/react": "^17.0.37", + "@types/react-dom": "^17.0.11", + "typescript": "4.3.4" + } +} diff --git a/packages/ui/postcss.config.js b/packages/ui/postcss.config.js new file mode 100644 index 00000000000..29c447cb54b --- /dev/null +++ b/packages/ui/postcss.config.js @@ -0,0 +1 @@ +module.exports = require('config/postcss.config') diff --git a/packages/ui/radix-colors.js b/packages/ui/radix-colors.js new file mode 100644 index 00000000000..51e5115c33c --- /dev/null +++ b/packages/ui/radix-colors.js @@ -0,0 +1,1349 @@ +export const radix_light = { + '--colors-gray1': 'hsl(0 0% 99%)', + '--colors-gray2': 'hsl(0 0% 97.3%)', + '--colors-gray3': 'hsl(0 0% 95.1%)', + '--colors-gray4': 'hsl(0 0% 93%)', + '--colors-gray5': 'hsl(0 0% 90.9%)', + '--colors-gray6': 'hsl(0 0% 88.7%)', + '--colors-gray7': 'hsl(0 0% 85.8%)', + '--colors-gray8': 'hsl(0 0% 78%)', + '--colors-gray9': 'hsl(0 0% 56.1%)', + '--colors-gray10': 'hsl(0 0% 52.3%)', + '--colors-gray11': 'hsl(0 0% 43.5%)', + '--colors-gray12': 'hsl(0 0% 9%)', + '--colors-mauve1': 'hsl(300 20% 99%)', + '--colors-mauve2': 'hsl(300 7.7% 97.5%)', + '--colors-mauve3': 'hsl(294 5.5% 95.3%)', + '--colors-mauve4': 'hsl(289 4.7% 93.3%)', + '--colors-mauve5': 'hsl(283 4.4% 91.3%)', + '--colors-mauve6': 'hsl(278 4.1% 89.1%)', + '--colors-mauve7': 'hsl(271 3.9% 86.3%)', + '--colors-mauve8': 'hsl(255 3.7% 78.8%)', + '--colors-mauve9': 'hsl(252 4% 57.3%)', + '--colors-mauve10': 'hsl(253 3.5% 53.5%)', + '--colors-mauve11': 'hsl(252 4% 44.8%)', + '--colors-mauve12': 'hsl(260 25% 11%)', + '--colors-slate1': 'hsl(206 30% 98.8%)', + '--colors-slate2': 'hsl(210 16.7% 97.6%)', + '--colors-slate3': 'hsl(209 13.3% 95.3%)', + '--colors-slate4': 'hsl(209 12.2% 93.2%)', + '--colors-slate5': 'hsl(208 11.7% 91.1%)', + '--colors-slate6': 'hsl(208 11.3% 88.9%)', + '--colors-slate7': 'hsl(207 11.1% 85.9%)', + '--colors-slate8': 'hsl(205 10.7% 78%)', + '--colors-slate9': 'hsl(206 6% 56.1%)', + '--colors-slate10': 'hsl(206 5.8% 52.3%)', + '--colors-slate11': 'hsl(206 6% 43.5%)', + '--colors-slate12': 'hsl(206 24% 9%)', + '--colors-sage1': 'hsl(155 30% 98.8%)', + '--colors-sage2': 'hsl(150 16.7% 97.6%)', + '--colors-sage3': 'hsl(151 10.6% 95.2%)', + '--colors-sage4': 'hsl(151 8.8% 93%)', + '--colors-sage5': 'hsl(151 7.8% 90.8%)', + '--colors-sage6': 'hsl(152 7.2% 88.4%)', + '--colors-sage7': 'hsl(153 6.7% 85.3%)', + '--colors-sage8': 'hsl(154 6.1% 77.5%)', + '--colors-sage9': 'hsl(155 3.5% 55.5%)', + '--colors-sage10': 'hsl(154 2.8% 51.7%)', + '--colors-sage11': 'hsl(155 3% 43%)', + '--colors-sage12': 'hsl(155 24% 9%)', + '--colors-olive1': 'hsl(110 20% 99%)', + '--colors-olive2': 'hsl(120 16.7% 97.6%)', + '--colors-olive3': 'hsl(119 10.1% 95.2%)', + '--colors-olive4': 'hsl(118 8.1% 93%)', + '--colors-olive5': 'hsl(117 7.1% 90.8%)', + '--colors-olive6': 'hsl(115 6.4% 88.5%)', + '--colors-olive7': 'hsl(114 5.9% 85.4%)', + '--colors-olive8': 'hsl(110 5.2% 77.3%)', + '--colors-olive9': 'hsl(110 3.5% 55.5%)', + '--colors-olive10': 'hsl(111 2.8% 51.7%)', + '--colors-olive11': 'hsl(110 3% 43%)', + '--colors-olive12': 'hsl(110 25% 9.5%)', + '--colors-sand1': 'hsl(50 20% 99%)', + '--colors-sand2': 'hsl(60 7.7% 97.5%)', + '--colors-sand3': 'hsl(59 6.5% 95.1%)', + '--colors-sand4': 'hsl(58 6.1% 92.9%)', + '--colors-sand5': 'hsl(57 6% 90.7%)', + '--colors-sand6': 'hsl(56 5.9% 88.4%)', + '--colors-sand7': 'hsl(55 5.9% 85.2%)', + '--colors-sand8': 'hsl(51 6% 77.1%)', + '--colors-sand9': 'hsl(50 2% 55.7%)', + '--colors-sand10': 'hsl(55 1.7% 51.9%)', + '--colors-sand11': 'hsl(50 2% 43.1%)', + '--colors-sand12': 'hsl(50 6% 10%)', + '--colors-tomato1': 'hsl(10 100% 99.4%)', + '--colors-tomato2': 'hsl(8 100% 98.4%)', + '--colors-tomato3': 'hsl(8 100% 96.6%)', + '--colors-tomato4': 'hsl(8 100% 94.3%)', + '--colors-tomato5': 'hsl(8 92.8% 91%)', + '--colors-tomato6': 'hsl(9 84.7% 86.3%)', + '--colors-tomato7': 'hsl(10 77.3% 79.5%)', + '--colors-tomato8': 'hsl(10 71.6% 71%)', + '--colors-tomato9': 'hsl(10 78% 54%)', + '--colors-tomato10': 'hsl(10 71.5% 50%)', + '--colors-tomato11': 'hsl(10 82% 43.5%)', + '--colors-tomato12': 'hsl(10 50% 13.5%)', + '--colors-red1': 'hsl(359 100% 99.4%)', + '--colors-red2': 'hsl(359 100% 98.6%)', + '--colors-red3': 'hsl(360 100% 96.8%)', + '--colors-red4': 'hsl(360 97.9% 94.8%)', + '--colors-red5': 'hsl(360 90.2% 91.9%)', + '--colors-red6': 'hsl(360 81.7% 87.8%)', + '--colors-red7': 'hsl(359 74.2% 81.7%)', + '--colors-red8': 'hsl(359 69.5% 74.3%)', + '--colors-red9': 'hsl(358 75% 59%)', + '--colors-red10': 'hsl(358 69.4% 55.2%)', + '--colors-red11': 'hsl(358 65% 48.7%)', + '--colors-red12': 'hsl(354 50% 14.6%)', + '--colors-crimson1': 'hsl(332 100% 99.4%)', + '--colors-crimson2': 'hsl(330 100% 98.4%)', + '--colors-crimson3': 'hsl(331 85.6% 96.6%)', + '--colors-crimson4': 'hsl(331 78.1% 94.2%)', + '--colors-crimson5': 'hsl(332 72.1% 91.1%)', + '--colors-crimson6': 'hsl(333 67% 86.7%)', + '--colors-crimson7': 'hsl(335 63.5% 80.4%)', + '--colors-crimson8': 'hsl(336 62.3% 72.9%)', + '--colors-crimson9': 'hsl(336 80% 57.8%)', + '--colors-crimson10': 'hsl(336 73.7% 53.5%)', + '--colors-crimson11': 'hsl(336 75% 47.2%)', + '--colors-crimson12': 'hsl(340 65% 14.5%)', + '--colors-pink1': 'hsl(322 100% 99.4%)', + '--colors-pink2': 'hsl(323 100% 98.4%)', + '--colors-pink3': 'hsl(323 86.3% 96.5%)', + '--colors-pink4': 'hsl(323 78.7% 94.2%)', + '--colors-pink5': 'hsl(323 72.2% 91.1%)', + '--colors-pink6': 'hsl(323 66.3% 86.6%)', + '--colors-pink7': 'hsl(323 62% 80.1%)', + '--colors-pink8': 'hsl(323 60.3% 72.4%)', + '--colors-pink9': 'hsl(322 65% 54.5%)', + '--colors-pink10': 'hsl(322 63.9% 50.7%)', + '--colors-pink11': 'hsl(322 75% 46%)', + '--colors-pink12': 'hsl(320 70% 13.5%)', + '--colors-plum1': 'hsl(292 90% 99.4%)', + '--colors-plum2': 'hsl(300 100% 98.6%)', + '--colors-plum3': 'hsl(299 71.2% 96.4%)', + '--colors-plum4': 'hsl(299 62% 93.8%)', + '--colors-plum5': 'hsl(298 56.1% 90.5%)', + '--colors-plum6': 'hsl(296 51.3% 85.8%)', + '--colors-plum7': 'hsl(295 48.2% 78.9%)', + '--colors-plum8': 'hsl(292 47.7% 70.8%)', + '--colors-plum9': 'hsl(292 45% 51%)', + '--colors-plum10': 'hsl(292 50.2% 46.9%)', + '--colors-plum11': 'hsl(292 60% 42.5%)', + '--colors-plum12': 'hsl(291 66% 14%)', + '--colors-purple1': 'hsl(280 65% 99.4%)', + '--colors-purple2': 'hsl(276 100% 99%)', + '--colors-purple3': 'hsl(276 83.1% 97%)', + '--colors-purple4': 'hsl(275 76.4% 94.7%)', + '--colors-purple5': 'hsl(275 70.8% 91.8%)', + '--colors-purple6': 'hsl(274 65.4% 87.8%)', + '--colors-purple7': 'hsl(273 61% 81.7%)', + '--colors-purple8': 'hsl(272 60% 73.5%)', + '--colors-purple9': 'hsl(272 51% 54%)', + '--colors-purple10': 'hsl(272 46.8% 50.3%)', + '--colors-purple11': 'hsl(272 50% 45.8%)', + '--colors-purple12': 'hsl(272 66% 16%)', + '--colors-violet1': 'hsl(255 65% 99.4%)', + '--colors-violet2': 'hsl(252 100% 99%)', + '--colors-violet3': 'hsl(252 96.9% 97.4%)', + '--colors-violet4': 'hsl(252 91.5% 95.5%)', + '--colors-violet5': 'hsl(252 85.1% 93%)', + '--colors-violet6': 'hsl(252 77.8% 89.4%)', + '--colors-violet7': 'hsl(252 71% 83.7%)', + '--colors-violet8': 'hsl(252 68.6% 76.3%)', + '--colors-violet9': 'hsl(252 56% 57.5%)', + '--colors-violet10': 'hsl(251 48.1% 53.5%)', + '--colors-violet11': 'hsl(250 43% 48%)', + '--colors-violet12': 'hsl(254 60% 18.5%)', + '--colors-indigo1': 'hsl(225 60% 99.4%)', + '--colors-indigo2': 'hsl(223 100% 98.6%)', + '--colors-indigo3': 'hsl(223 98.4% 97.1%)', + '--colors-indigo4': 'hsl(223 92.9% 95%)', + '--colors-indigo5': 'hsl(224 87.1% 92%)', + '--colors-indigo6': 'hsl(224 81.9% 87.8%)', + '--colors-indigo7': 'hsl(225 77.4% 82.1%)', + '--colors-indigo8': 'hsl(226 75.4% 74.5%)', + '--colors-indigo9': 'hsl(226 70% 55.5%)', + '--colors-indigo10': 'hsl(226 58.6% 51.3%)', + '--colors-indigo11': 'hsl(226 55% 45%)', + '--colors-indigo12': 'hsl(226 62% 17%)', + '--colors-blue1': 'hsl(206 100% 99.2%)', + '--colors-blue2': 'hsl(210 100% 98%)', + '--colors-blue3': 'hsl(209 100% 96.5%)', + '--colors-blue4': 'hsl(210 98.8% 94%)', + '--colors-blue5': 'hsl(209 95% 90.1%)', + '--colors-blue6': 'hsl(209 81.2% 84.5%)', + '--colors-blue7': 'hsl(208 77.5% 76.9%)', + '--colors-blue8': 'hsl(206 81.9% 65.3%)', + '--colors-blue9': 'hsl(206 100% 50%)', + '--colors-blue10': 'hsl(208 100% 47.3%)', + '--colors-blue11': 'hsl(211 100% 43.2%)', + '--colors-blue12': 'hsl(211 100% 15%)', + '--colors-sky1': 'hsl(193 100% 98.8%)', + '--colors-sky2': 'hsl(193 100% 97.3%)', + '--colors-sky3': 'hsl(193 99% 94.7%)', + '--colors-sky4': 'hsl(193 91.4% 91.4%)', + '--colors-sky5': 'hsl(194 82% 86.6%)', + '--colors-sky6': 'hsl(194 74.1% 79.5%)', + '--colors-sky7': 'hsl(194 72.3% 69.6%)', + '--colors-sky8': 'hsl(193 77.9% 53.9%)', + '--colors-sky9': 'hsl(193 98% 70%)', + '--colors-sky10': 'hsl(193 87% 66.5%)', + '--colors-sky11': 'hsl(195 100% 31.5%)', + '--colors-sky12': 'hsl(195 100% 13%)', + '--colors-mint1': 'hsl(165 80% 98.8%)', + '--colors-mint2': 'hsl(164 88.2% 96.7%)', + '--colors-mint3': 'hsl(164 76.6% 93.3%)', + '--colors-mint4': 'hsl(165 68.8% 89.5%)', + '--colors-mint5': 'hsl(165 60.6% 84.5%)', + '--colors-mint6': 'hsl(165 53.5% 76.9%)', + '--colors-mint7': 'hsl(166 50.7% 66.1%)', + '--colors-mint8': 'hsl(168 52.8% 51%)', + '--colors-mint9': 'hsl(167 65% 66%)', + '--colors-mint10': 'hsl(167 59.3% 63.1%)', + '--colors-mint11': 'hsl(172 72% 28.5%)', + '--colors-mint12': 'hsl(172 70% 12%)', + '--colors-cyan1': 'hsl(185 60% 98.7%)', + '--colors-cyan2': 'hsl(185 73.3% 97.1%)', + '--colors-cyan3': 'hsl(186 70.2% 94.4%)', + '--colors-cyan4': 'hsl(186 63.8% 90.6%)', + '--colors-cyan5': 'hsl(187 58.3% 85.4%)', + '--colors-cyan6': 'hsl(188 54.6% 78.4%)', + '--colors-cyan7': 'hsl(189 53.7% 68.7%)', + '--colors-cyan8': 'hsl(189 60.3% 52.5%)', + '--colors-cyan9': 'hsl(190 95% 39%)', + '--colors-cyan10': 'hsl(191 91.2% 36.8%)', + '--colors-cyan11': 'hsl(192 85% 31%)', + '--colors-cyan12': 'hsl(192 88% 12.5%)', + '--colors-teal1': 'hsl(165 60% 98.8%)', + '--colors-teal2': 'hsl(169 64.7% 96.7%)', + '--colors-teal3': 'hsl(169 59.8% 94%)', + '--colors-teal4': 'hsl(169 53.1% 90.2%)', + '--colors-teal5': 'hsl(170 47.1% 85%)', + '--colors-teal6': 'hsl(170 42.6% 77.9%)', + '--colors-teal7': 'hsl(170 39.9% 68.1%)', + '--colors-teal8': 'hsl(172 42.1% 52.5%)', + '--colors-teal9': 'hsl(173 80% 36%)', + '--colors-teal10': 'hsl(173 83.4% 32.5%)', + '--colors-teal11': 'hsl(174 90% 25.2%)', + '--colors-teal12': 'hsl(170 50% 12.5%)', + '--colors-green1': 'hsl(136 50% 98.9%)', + '--colors-green2': 'hsl(138 62.5% 96.9%)', + '--colors-green3': 'hsl(139 55.2% 94.5%)', + '--colors-green4': 'hsl(140 48.7% 91%)', + '--colors-green5': 'hsl(141 43.7% 86%)', + '--colors-green6': 'hsl(143 40.3% 79%)', + '--colors-green7': 'hsl(146 38.5% 69%)', + '--colors-green8': 'hsl(151 40.2% 54.1%)', + '--colors-green9': 'hsl(151 55% 41.5%)', + '--colors-green10': 'hsl(152 57.5% 37.6%)', + '--colors-green11': 'hsl(153 67% 28.5%)', + '--colors-green12': 'hsl(155 40% 14%)', + '--colors-grass1': 'hsl(116 50% 98.9%)', + '--colors-grass2': 'hsl(120 60% 97.1%)', + '--colors-grass3': 'hsl(120 53.6% 94.8%)', + '--colors-grass4': 'hsl(121 47.5% 91.4%)', + '--colors-grass5': 'hsl(122 42.6% 86.5%)', + '--colors-grass6': 'hsl(124 39% 79.7%)', + '--colors-grass7': 'hsl(126 37.1% 70.2%)', + '--colors-grass8': 'hsl(131 38.1% 56.3%)', + '--colors-grass9': 'hsl(131 41% 46.5%)', + '--colors-grass10': 'hsl(132 43.1% 42.2%)', + '--colors-grass11': 'hsl(133 50% 32.5%)', + '--colors-grass12': 'hsl(130 30% 14.9%)', + '--colors-lime1': 'hsl(85 50% 98.7%)', + '--colors-lime2': 'hsl(85 66.7% 96.5%)', + '--colors-lime3': 'hsl(85 76% 92.3%)', + '--colors-lime4': 'hsl(84 75.3% 87.5%)', + '--colors-lime5': 'hsl(84 71.5% 81.9%)', + '--colors-lime6': 'hsl(82 65% 74.6%)', + '--colors-lime7': 'hsl(79 53.2% 61.8%)', + '--colors-lime8': 'hsl(76 61.7% 45.1%)', + '--colors-lime9': 'hsl(81 67% 50%)', + '--colors-lime10': 'hsl(80 68.3% 46.9%)', + '--colors-lime11': 'hsl(75 80% 26%)', + '--colors-lime12': 'hsl(78 70% 11.5%)', + '--colors-yellow1': 'hsl(60 54% 98.5%)', + '--colors-yellow2': 'hsl(52 100% 95.5%)', + '--colors-yellow3': 'hsl(55 100% 90.9%)', + '--colors-yellow4': 'hsl(54 100% 86.6%)', + '--colors-yellow5': 'hsl(52 97.9% 82%)', + '--colors-yellow6': 'hsl(50 89.4% 76.1%)', + '--colors-yellow7': 'hsl(47 80.4% 68%)', + '--colors-yellow8': 'hsl(48 100% 46.1%)', + '--colors-yellow9': 'hsl(53 92% 50%)', + '--colors-yellow10': 'hsl(50 100% 48.5%)', + '--colors-yellow11': 'hsl(42 100% 29%)', + '--colors-yellow12': 'hsl(40 55% 13.5%)', + '--colors-amber1': 'hsl(39 70% 99%)', + '--colors-amber2': 'hsl(40 100% 96.5%)', + '--colors-amber3': 'hsl(44 100% 91.7%)', + '--colors-amber4': 'hsl(43 100% 86.8%)', + '--colors-amber5': 'hsl(42 100% 81.8%)', + '--colors-amber6': 'hsl(38 99.7% 76.3%)', + '--colors-amber7': 'hsl(36 86.1% 67.1%)', + '--colors-amber8': 'hsl(35 85.2% 55.1%)', + '--colors-amber9': 'hsl(39 100% 57%)', + '--colors-amber10': 'hsl(35 100% 55.5%)', + '--colors-amber11': 'hsl(30 100% 34%)', + '--colors-amber12': 'hsl(20 80% 17%)', + '--colors-orange1': 'hsl(24 70% 99%)', + '--colors-orange2': 'hsl(24 83.3% 97.6%)', + '--colors-orange3': 'hsl(24 100% 95.3%)', + '--colors-orange4': 'hsl(25 100% 92.2%)', + '--colors-orange5': 'hsl(25 100% 88.2%)', + '--colors-orange6': 'hsl(25 100% 82.8%)', + '--colors-orange7': 'hsl(24 100% 75.3%)', + '--colors-orange8': 'hsl(24 94.5% 64.3%)', + '--colors-orange9': 'hsl(24 94% 50%)', + '--colors-orange10': 'hsl(24 100% 46.5%)', + '--colors-orange11': 'hsl(24 100% 37%)', + '--colors-orange12': 'hsl(15 60% 17%)', + '--colors-brown1': 'hsl(30 40% 99.1%)', + '--colors-brown2': 'hsl(30 50% 97.6%)', + '--colors-brown3': 'hsl(30 52.5% 94.6%)', + '--colors-brown4': 'hsl(30 53% 91.2%)', + '--colors-brown5': 'hsl(29 52.9% 86.8%)', + '--colors-brown6': 'hsl(29 52.5% 80.9%)', + '--colors-brown7': 'hsl(29 51.5% 72.8%)', + '--colors-brown8': 'hsl(28 50% 63.1%)', + '--colors-brown9': 'hsl(28 34% 51%)', + '--colors-brown10': 'hsl(27 31.8% 47.6%)', + '--colors-brown11': 'hsl(25 30% 41%)', + '--colors-brown12': 'hsl(20 30% 19%)', + '--colors-bronze1': 'hsl(15 30% 99.1%)', + '--colors-bronze2': 'hsl(17 63.6% 97.8%)', + '--colors-bronze3': 'hsl(17 42.1% 95.2%)', + '--colors-bronze4': 'hsl(17 35.2% 92.1%)', + '--colors-bronze5': 'hsl(17 31.5% 88.2%)', + '--colors-bronze6': 'hsl(17 29% 83%)', + '--colors-bronze7': 'hsl(17 26.9% 75.6%)', + '--colors-bronze8': 'hsl(17 25.1% 66.5%)', + '--colors-bronze9': 'hsl(17 20% 54%)', + '--colors-bronze10': 'hsl(17 18.1% 50.1%)', + '--colors-bronze11': 'hsl(15 20% 43.1%)', + '--colors-bronze12': 'hsl(12 22% 21.5%)', + '--colors-gold1': 'hsl(50 20% 99.1%)', + '--colors-gold2': 'hsl(47 52.9% 96.7%)', + '--colors-gold3': 'hsl(46 38.2% 93.7%)', + '--colors-gold4': 'hsl(44 32.7% 90.1%)', + '--colors-gold5': 'hsl(43 29.9% 85.7%)', + '--colors-gold6': 'hsl(41 28.3% 79.8%)', + '--colors-gold7': 'hsl(39 27.6% 71.9%)', + '--colors-gold8': 'hsl(36 27.2% 61.8%)', + '--colors-gold9': 'hsl(36 20% 49.5%)', + '--colors-gold10': 'hsl(36 19.8% 45.7%)', + '--colors-gold11': 'hsl(36 20% 39%)', + '--colors-gold12': 'hsl(36 16% 20%)', + '--colors-grayA1': 'hsl(0 0% 0% / 0.012)', + '--colors-grayA2': 'hsl(0 0% 0% / 0.027)', + '--colors-grayA3': 'hsl(0 0% 0% / 0.047)', + '--colors-grayA4': 'hsl(0 0% 0% / 0.071)', + '--colors-grayA5': 'hsl(0 0% 0% / 0.09)', + '--colors-grayA6': 'hsl(0 0% 0% / 0.114)', + '--colors-grayA7': 'hsl(0 0% 0% / 0.141)', + '--colors-grayA8': 'hsl(0 0% 0% / 0.22)', + '--colors-grayA9': 'hsl(0 0% 0% / 0.439)', + '--colors-grayA10': 'hsl(0 0% 0% / 0.478)', + '--colors-grayA11': 'hsl(0 0% 0% / 0.565)', + '--colors-grayA12': 'hsl(0 0% 0% / 0.91)', + '--colors-mauveA1': 'hsl(300 89.3% 18.3% / 0.012)', + '--colors-mauveA2': 'hsl(300 78.1% 9% / 0.028)', + '--colors-mauveA3': 'hsl(300 99.5% 7.7% / 0.051)', + '--colors-mauveA4': 'hsl(270 90.5% 6.1% / 0.071)', + '--colors-mauveA5': 'hsl(270 83% 5.2% / 0.091)', + '--colors-mauveA6': 'hsl(300 93.5% 3.7% / 0.114)', + '--colors-mauveA7': 'hsl(270 82.6% 3.3% / 0.142)', + '--colors-mauveA8': 'hsl(255 95.2% 3.7% / 0.22)', + '--colors-mauveA9': 'hsl(255 94.8% 3.7% / 0.444)', + '--colors-mauveA10': 'hsl(253 96.5% 3.8% / 0.483)', + '--colors-mauveA11': 'hsl(247 97.9% 3.2% / 0.569)', + '--colors-mauveA12': 'hsl(261 98.7% 3% / 0.918)', + '--colors-slateA1': 'hsl(210 92.6% 26.5% / 0.016)', + '--colors-slateA2': 'hsl(210 87.7% 16% / 0.028)', + '--colors-slateA3': 'hsl(210 98.8% 14.4% / 0.055)', + '--colors-slateA4': 'hsl(210 94.1% 11.1% / 0.075)', + '--colors-slateA5': 'hsl(216 91.1% 10.9% / 0.099)', + '--colors-slateA6': 'hsl(206 96.4% 11.3% / 0.126)', + '--colors-slateA7': 'hsl(210 99.1% 10.1% / 0.157)', + '--colors-slateA8': 'hsl(205 96.5% 10% / 0.244)', + '--colors-slateA9': 'hsl(206 98.8% 5.9% / 0.467)', + '--colors-slateA10': 'hsl(206 99.6% 5.4% / 0.506)', + '--colors-slateA11': 'hsl(206 97% 4.8% / 0.593)', + '--colors-slateA12': 'hsl(202 97% 2.4% / 0.934)', + '--colors-sageA1': 'hsl(150 92.6% 26.5% / 0.016)', + '--colors-sageA2': 'hsl(150 87.7% 16% / 0.028)', + '--colors-sageA3': 'hsl(160 98.4% 10.9% / 0.055)', + '--colors-sageA4': 'hsl(140 92.3% 8.5% / 0.075)', + '--colors-sageA5': 'hsl(160 86% 6.9% / 0.099)', + '--colors-sageA6': 'hsl(156 95.1% 8.2% / 0.126)', + '--colors-sageA7': 'hsl(156 98.6% 6.3% / 0.157)', + '--colors-sageA8': 'hsl(154 94.6% 6% / 0.24)', + '--colors-sageA9': 'hsl(154 98.7% 3% / 0.459)', + '--colors-sageA10': 'hsl(154 93.5% 2.9% / 0.499)', + '--colors-sageA11': 'hsl(154 95.2% 2.5% / 0.585)', + '--colors-sageA12': 'hsl(158 97% 2.4% / 0.934)', + '--colors-oliveA1': 'hsl(120 89.3% 18.3% / 0.012)', + '--colors-oliveA2': 'hsl(120 87.7% 16% / 0.028)', + '--colors-oliveA3': 'hsl(120 99.5% 7.7% / 0.051)', + '--colors-oliveA4': 'hsl(120 92.3% 8.5% / 0.075)', + '--colors-oliveA5': 'hsl(120 86% 6.9% / 0.099)', + '--colors-oliveA6': 'hsl(120 94.8% 6.8% / 0.122)', + '--colors-oliveA7': 'hsl(120 99.3% 5.2% / 0.153)', + '--colors-oliveA8': 'hsl(110 93.8% 5.2% / 0.24)', + '--colors-oliveA9': 'hsl(111 98.7% 3% / 0.459)', + '--colors-oliveA10': 'hsl(111 93.5% 2.9% / 0.499)', + '--colors-oliveA11': 'hsl(111 95.2% 2.5% / 0.585)', + '--colors-oliveA12': 'hsl(110 97.6% 2.6% / 0.93)', + '--colors-sandA1': 'hsl(60 89.3% 18.3% / 0.012)', + '--colors-sandA2': 'hsl(60 78.1% 9% / 0.028)', + '--colors-sandA3': 'hsl(60 99% 3.9% / 0.051)', + '--colors-sandA4': 'hsl(60 88.9% 5.9% / 0.075)', + '--colors-sandA5': 'hsl(60 86% 6.9% / 0.099)', + '--colors-sandA6': 'hsl(60 93.2% 5.2% / 0.122)', + '--colors-sandA7': 'hsl(60 98.3% 5.1% / 0.157)', + '--colors-sandA8': 'hsl(51 94.1% 6% / 0.244)', + '--colors-sandA9': 'hsl(60 99.8% 1.7% / 0.451)', + '--colors-sandA10': 'hsl(60 90.7% 1.8% / 0.491)', + '--colors-sandA11': 'hsl(45 93.7% 1.5% / 0.577)', + '--colors-sandA12': 'hsl(60 98% 0.7% / 0.906)', + '--colors-tomatoA1': 'hsl(0 100% 51% / 0.012)', + '--colors-tomatoA2': 'hsl(8 100% 51% / 0.032)', + '--colors-tomatoA3': 'hsl(7 100% 50.2% / 0.067)', + '--colors-tomatoA4': 'hsl(8 100% 50.1% / 0.114)', + '--colors-tomatoA5': 'hsl(7 99.5% 47.9% / 0.173)', + '--colors-tomatoA6': 'hsl(9 99.9% 46.2% / 0.255)', + '--colors-tomatoA7': 'hsl(10 99.8% 43.6% / 0.365)', + '--colors-tomatoA8': 'hsl(10 99.5% 41.8% / 0.499)', + '--colors-tomatoA9': 'hsl(10 99.9% 43.8% / 0.82)', + '--colors-tomatoA10': 'hsl(10 100% 41.8% / 0.859)', + '--colors-tomatoA11': 'hsl(10 99.9% 38.8% / 0.922)', + '--colors-tomatoA12': 'hsl(10 99% 7.4% / 0.934)', + '--colors-redA1': 'hsl(0 100% 51% / 0.012)', + '--colors-redA2': 'hsl(0 100% 51% / 0.032)', + '--colors-redA3': 'hsl(0 100% 50.2% / 0.063)', + '--colors-redA4': 'hsl(0 100% 50% / 0.102)', + '--colors-redA5': 'hsl(0 99.9% 47.5% / 0.153)', + '--colors-redA6': 'hsl(0 99.5% 44.9% / 0.224)', + '--colors-redA7': 'hsl(359 99.7% 42.7% / 0.318)', + '--colors-redA8': 'hsl(359 99.6% 41.1% / 0.436)', + '--colors-redA9': 'hsl(358 99.9% 42.9% / 0.718)', + '--colors-redA10': 'hsl(358 99.9% 41% / 0.761)', + '--colors-redA11': 'hsl(358 99.8% 38.3% / 0.832)', + '--colors-redA12': 'hsl(355 99.3% 7.9% / 0.926)', + '--colors-crimsonA1': 'hsl(340 100% 51% / 0.012)', + '--colors-crimsonA2': 'hsl(330 100% 51% / 0.032)', + '--colors-crimsonA3': 'hsl(332 99.1% 47.1% / 0.063)', + '--colors-crimsonA4': 'hsl(331 99.9% 44.3% / 0.102)', + '--colors-crimsonA5': 'hsl(333 99.9% 42.3% / 0.153)', + '--colors-crimsonA6': 'hsl(333 99.5% 40.5% / 0.224)', + '--colors-crimsonA7': 'hsl(335 99.7% 39.1% / 0.322)', + '--colors-crimsonA8': 'hsl(336 99.5% 38.5% / 0.44)', + '--colors-crimsonA9': 'hsl(336 99.9% 44.3% / 0.761)', + '--colors-crimsonA10': 'hsl(336 100% 42.5% / 0.808)', + '--colors-crimsonA11': 'hsl(336 99.8% 40.3% / 0.883)', + '--colors-crimsonA12': 'hsl(340 99% 10% / 0.95)', + '--colors-pinkA1': 'hsl(320 100% 51% / 0.012)', + '--colors-pinkA2': 'hsl(323 100% 51% / 0.032)', + '--colors-pinkA3': 'hsl(323 98.9% 47.3% / 0.067)', + '--colors-pinkA4': 'hsl(323 99.9% 44.3% / 0.102)', + '--colors-pinkA5': 'hsl(324 99.9% 42.3% / 0.153)', + '--colors-pinkA6': 'hsl(323 99.5% 39.6% / 0.224)', + '--colors-pinkA7': 'hsl(323 99.7% 38.5% / 0.322)', + '--colors-pinkA8': 'hsl(323 99.5% 37.7% / 0.444)', + '--colors-pinkA9': 'hsl(322 99.7% 39.3% / 0.75)', + '--colors-pinkA10': 'hsl(322 100% 39.1% / 0.808)', + '--colors-pinkA11': 'hsl(322 99.8% 39% / 0.887)', + '--colors-pinkA12': 'hsl(321 99.8% 10% / 0.961)', + '--colors-plumA1': 'hsl(280 100% 51% / 0.012)', + '--colors-plumA2': 'hsl(300 100% 51% / 0.028)', + '--colors-plumA3': 'hsl(300 99% 40.9% / 0.063)', + '--colors-plumA4': 'hsl(300 99.9% 38.5% / 0.102)', + '--colors-plumA5': 'hsl(298 98.2% 35.9% / 0.15)', + '--colors-plumA6': 'hsl(297 99.6% 33.7% / 0.216)', + '--colors-plumA7': 'hsl(295 99.7% 32.6% / 0.314)', + '--colors-plumA8': 'hsl(292 99.6% 32.4% / 0.432)', + '--colors-plumA9': 'hsl(292 99.9% 31% / 0.71)', + '--colors-plumA10': 'hsl(292 99.9% 30.8% / 0.765)', + '--colors-plumA11': 'hsl(292 99.8% 30.7% / 0.832)', + '--colors-plumA12': 'hsl(291 99.9% 9.7% / 0.953)', + '--colors-purpleA1': 'hsl(300 94.3% 34.6% / 0.012)', + '--colors-purpleA2': 'hsl(276 100% 51% / 0.02)', + '--colors-purpleA3': 'hsl(277 99.6% 46.5% / 0.055)', + '--colors-purpleA4': 'hsl(274 97.9% 44.3% / 0.095)', + '--colors-purpleA5': 'hsl(276 98.6% 42% / 0.142)', + '--colors-purpleA6': 'hsl(275 100% 39.2% / 0.2)', + '--colors-purpleA7': 'hsl(273 99.2% 38.2% / 0.295)', + '--colors-purpleA8': 'hsl(272 99.7% 37.6% / 0.424)', + '--colors-purpleA9': 'hsl(272 99.6% 34% / 0.695)', + '--colors-purpleA10': 'hsl(272 99.7% 32% / 0.73)', + '--colors-purpleA11': 'hsl(272 99.8% 29.7% / 0.773)', + '--colors-purpleA12': 'hsl(272 99.2% 11.3% / 0.946)', + '--colors-violetA1': 'hsl(270 94.3% 34.6% / 0.012)', + '--colors-violetA2': 'hsl(252 100% 51% / 0.02)', + '--colors-violetA3': 'hsl(254 100% 50% / 0.051)', + '--colors-violetA4': 'hsl(251 98.3% 48.2% / 0.087)', + '--colors-violetA5': 'hsl(252 99% 45.7% / 0.13)', + '--colors-violetA6': 'hsl(251 99.1% 44% / 0.189)', + '--colors-violetA7': 'hsl(252 99.5% 41.7% / 0.279)', + '--colors-violetA8': 'hsl(252 100% 40.7% / 0.4)', + '--colors-violetA9': 'hsl(252 99.9% 35.8% / 0.663)', + '--colors-violetA10': 'hsl(251 99.6% 32.5% / 0.691)', + '--colors-violetA11': 'hsl(250 99.8% 28.4% / 0.726)', + '--colors-violetA12': 'hsl(254 99.5% 11.9% / 0.926)', + '--colors-indigoA1': 'hsl(240 92.6% 26.5% / 0.008)', + '--colors-indigoA2': 'hsl(223 100% 51% / 0.028)', + '--colors-indigoA3': 'hsl(224 100% 50.1% / 0.059)', + '--colors-indigoA4': 'hsl(223 98% 48.5% / 0.099)', + '--colors-indigoA5': 'hsl(225 98.6% 46.4% / 0.15)', + '--colors-indigoA6': 'hsl(224 99.5% 44.9% / 0.224)', + '--colors-indigoA7': 'hsl(225 99.7% 43.9% / 0.318)', + '--colors-indigoA8': 'hsl(226 99.5% 43.1% / 0.448)', + '--colors-indigoA9': 'hsl(226 100% 41.2% / 0.757)', + '--colors-indigoA10': 'hsl(226 99.8% 37.1% / 0.773)', + '--colors-indigoA11': 'hsl(226 99.6% 31.1% / 0.797)', + '--colors-indigoA12': 'hsl(226 99.3% 11.4% / 0.938)', + '--colors-blueA1': 'hsl(210 100% 51% / 0.016)', + '--colors-blueA2': 'hsl(210 100% 51% / 0.04)', + '--colors-blueA3': 'hsl(210 100% 50.3% / 0.071)', + '--colors-blueA4': 'hsl(210 100% 50.1% / 0.118)', + '--colors-blueA5': 'hsl(208 99.1% 47.1% / 0.189)', + '--colors-blueA6': 'hsl(209 99.5% 45.3% / 0.283)', + '--colors-blueA7': 'hsl(208 99.9% 43.8% / 0.412)', + '--colors-blueA8': 'hsl(206 99.8% 45.1% / 0.632)', + '--colors-blueA9': 'hsl(206 100% 50% / 0.98)', + '--colors-blueA10': 'hsl(208 100% 47.2% / 0.98)', + '--colors-blueA11': 'hsl(212 100% 43% / 0.98)', + '--colors-blueA12': 'hsl(213 100% 14.4% / 0.98)', + '--colors-skyA1': 'hsl(190 100% 51% / 0.024)', + '--colors-skyA2': 'hsl(193 100% 50.1% / 0.055)', + '--colors-skyA3': 'hsl(193 100% 50.1% / 0.106)', + '--colors-skyA4': 'hsl(194 99.6% 47.7% / 0.165)', + '--colors-skyA5': 'hsl(194 99.2% 45.4% / 0.244)', + '--colors-skyA6': 'hsl(194 99.9% 42.3% / 0.357)', + '--colors-skyA7': 'hsl(194 99.8% 42.2% / 0.526)', + '--colors-skyA8': 'hsl(193 99.9% 43.8% / 0.82)', + '--colors-skyA9': 'hsl(193 99.7% 49.4% / 0.593)', + '--colors-skyA10': 'hsl(193 99.8% 46.6% / 0.628)', + '--colors-skyA11': 'hsl(196 100% 31.2% / 0.98)', + '--colors-skyA12': 'hsl(196 100% 12.2% / 0.98)', + '--colors-mintA1': 'hsl(168 95.4% 42.8% / 0.024)', + '--colors-mintA2': 'hsl(164 99.1% 47.1% / 0.063)', + '--colors-mintA3': 'hsl(164 99.3% 43.5% / 0.118)', + '--colors-mintA4': 'hsl(164 99.3% 41.3% / 0.177)', + '--colors-mintA5': 'hsl(165 99% 37.5% / 0.248)', + '--colors-mintA6': 'hsl(165 100% 35% / 0.353)', + '--colors-mintA7': 'hsl(166 99.9% 33.5% / 0.51)', + '--colors-mintA8': 'hsl(168 99.6% 34.6% / 0.75)', + '--colors-mintA9': 'hsl(167 99.9% 39.5% / 0.561)', + '--colors-mintA10': 'hsl(167 99.7% 37.4% / 0.589)', + '--colors-mintA11': 'hsl(172 99.8% 22.4% / 0.922)', + '--colors-mintA12': 'hsl(172 99.7% 8.8% / 0.965)', + '--colors-cyanA1': 'hsl(195 95.2% 41.2% / 0.02)', + '--colors-cyanA2': 'hsl(185 99.9% 42.3% / 0.051)', + '--colors-cyanA3': 'hsl(186 97.8% 42.2% / 0.095)', + '--colors-cyanA4': 'hsl(186 99.9% 38.5% / 0.153)', + '--colors-cyanA5': 'hsl(187 99.3% 36.6% / 0.232)', + '--colors-cyanA6': 'hsl(188 99.4% 35.4% / 0.334)', + '--colors-cyanA7': 'hsl(189 99.6% 35% / 0.483)', + '--colors-cyanA8': 'hsl(189 99.9% 37.6% / 0.761)', + '--colors-cyanA9': 'hsl(190 100% 37.8% / 0.98)', + '--colors-cyanA10': 'hsl(191 99.9% 34.6% / 0.969)', + '--colors-cyanA11': 'hsl(192 100% 27.6% / 0.953)', + '--colors-cyanA12': 'hsl(192 100% 11% / 0.98)', + '--colors-tealA1': 'hsl(165 95.2% 41.2% / 0.02)', + '--colors-tealA2': 'hsl(169 99.5% 39.4% / 0.055)', + '--colors-tealA3': 'hsl(167 97.6% 38.1% / 0.095)', + '--colors-tealA4': 'hsl(168 98.1% 34.6% / 0.15)', + '--colors-tealA5': 'hsl(170 99.4% 32.3% / 0.22)', + '--colors-tealA6': 'hsl(170 99.7% 30.1% / 0.314)', + '--colors-tealA7': 'hsl(170 99.3% 28.7% / 0.448)', + '--colors-tealA8': 'hsl(172 99.8% 29.7% / 0.675)', + '--colors-tealA9': 'hsl(173 99.8% 31.1% / 0.93)', + '--colors-tealA10': 'hsl(173 99.7% 28.7% / 0.946)', + '--colors-tealA11': 'hsl(174 99.8% 23.3% / 0.977)', + '--colors-tealA12': 'hsl(171 98.8% 6.8% / 0.938)', + '--colors-greenA1': 'hsl(140 94.9% 38.7% / 0.016)', + '--colors-greenA2': 'hsl(138 99.9% 38.5% / 0.051)', + '--colors-greenA3': 'hsl(139 97.7% 36.9% / 0.087)', + '--colors-greenA4': 'hsl(139 98.5% 32.7% / 0.134)', + '--colors-greenA5': 'hsl(141 100% 30.4% / 0.2)', + '--colors-greenA6': 'hsl(142 99% 28.9% / 0.295)', + '--colors-greenA7': 'hsl(146 99.5% 27.6% / 0.428)', + '--colors-greenA8': 'hsl(151 99.5% 28.8% / 0.644)', + '--colors-greenA9': 'hsl(151 99.9% 28% / 0.812)', + '--colors-greenA10': 'hsl(152 99.6% 25.8% / 0.84)', + '--colors-greenA11': 'hsl(153 99.9% 21% / 0.906)', + '--colors-greenA12': 'hsl(155 99.4% 6.2% / 0.918)', + '--colors-grassA1': 'hsl(120 94.9% 38.7% / 0.016)', + '--colors-grassA2': 'hsl(120 94.9% 38.7% / 0.048)', + '--colors-grassA3': 'hsl(120 98% 35.5% / 0.079)', + '--colors-grassA4': 'hsl(120 98.7% 31.5% / 0.126)', + '--colors-grassA5': 'hsl(122 98.5% 29.9% / 0.193)', + '--colors-grassA6': 'hsl(125 99.2% 27.9% / 0.283)', + '--colors-grassA7': 'hsl(125 99.9% 27% / 0.408)', + '--colors-grassA8': 'hsl(131 100% 27.6% / 0.604)', + '--colors-grassA9': 'hsl(131 99.7% 26.3% / 0.726)', + '--colors-grassA10': 'hsl(132 99.9% 24% / 0.761)', + '--colors-grassA11': 'hsl(133 99.5% 19.5% / 0.84)', + '--colors-grassA12': 'hsl(128 98% 4.9% / 0.895)', + '--colors-limeA1': 'hsl(80 93.8% 31.4% / 0.02)', + '--colors-limeA2': 'hsl(85 99.3% 40.2% / 0.059)', + '--colors-limeA3': 'hsl(84 98.7% 43.2% / 0.138)', + '--colors-limeA4': 'hsl(84 99.6% 43% / 0.22)', + '--colors-limeA5': 'hsl(85 99.8% 41.8% / 0.31)', + '--colors-limeA6': 'hsl(82 99.8% 39.3% / 0.42)', + '--colors-limeA7': 'hsl(79 99.7% 34.6% / 0.585)', + '--colors-limeA8': 'hsl(76 99.8% 33.7% / 0.828)', + '--colors-limeA9': 'hsl(81 99.8% 40.2% / 0.836)', + '--colors-limeA10': 'hsl(80 100% 37.6% / 0.851)', + '--colors-limeA11': 'hsl(75 99.5% 22% / 0.95)', + '--colors-limeA12': 'hsl(78 99.6% 8.4% / 0.965)', + '--colors-yellowA1': 'hsl(60 94.3% 34.6% / 0.024)', + '--colors-yellowA2': 'hsl(52 100% 50.4% / 0.091)', + '--colors-yellowA3': 'hsl(55 100% 50.2% / 0.181)', + '--colors-yellowA4': 'hsl(54 100% 50.1% / 0.267)', + '--colors-yellowA5': 'hsl(52 99.9% 49.5% / 0.357)', + '--colors-yellowA6': 'hsl(50 100% 47.4% / 0.451)', + '--colors-yellowA7': 'hsl(47 99.8% 44.6% / 0.577)', + '--colors-yellowA8': 'hsl(48 100% 46% / 0.98)', + '--colors-yellowA9': 'hsl(53 100% 48% / 0.961)', + '--colors-yellowA10': 'hsl(50 100% 48.4% / 0.98)', + '--colors-yellowA11': 'hsl(42 100% 28.6% / 0.98)', + '--colors-yellowA12': 'hsl(41 98.9% 8% / 0.942)', + '--colors-amberA1': 'hsl(40 94.9% 38.7% / 0.016)', + '--colors-amberA2': 'hsl(40 100% 50.3% / 0.071)', + '--colors-amberA3': 'hsl(44 100% 50.1% / 0.165)', + '--colors-amberA4': 'hsl(43 100% 50% / 0.263)', + '--colors-amberA5': 'hsl(42 100% 50% / 0.365)', + '--colors-amberA6': 'hsl(38 100% 50.1% / 0.475)', + '--colors-amberA7': 'hsl(36 99.9% 46.2% / 0.612)', + '--colors-amberA8': 'hsl(35 99.8% 46% / 0.832)', + '--colors-amberA9': 'hsl(39 100% 50% / 0.859)', + '--colors-amberA10': 'hsl(35 100% 50% / 0.891)', + '--colors-amberA11': 'hsl(29 100% 33.6% / 0.98)', + '--colors-amberA12': 'hsl(20 99.8% 14.1% / 0.965)', + '--colors-orangeA1': 'hsl(20 94.9% 38.7% / 0.016)', + '--colors-orangeA2': 'hsl(24 95.8% 46.5% / 0.044)', + '--colors-orangeA3': 'hsl(25 100% 50.5% / 0.095)', + '--colors-orangeA4': 'hsl(26 100% 50% / 0.157)', + '--colors-orangeA5': 'hsl(25 100% 50.1% / 0.236)', + '--colors-orangeA6': 'hsl(25 100% 50.1% / 0.346)', + '--colors-orangeA7': 'hsl(24 100% 50.1% / 0.495)', + '--colors-orangeA8': 'hsl(24 99.7% 48.7% / 0.695)', + '--colors-orangeA9': 'hsl(24 99.9% 48.4% / 0.969)', + '--colors-orangeA10': 'hsl(23 100% 46.4% / 0.98)', + '--colors-orangeA11': 'hsl(23 100% 36.8% / 0.98)', + '--colors-orangeA12': 'hsl(15 99.4% 11% / 0.934)', + '--colors-brownA1': 'hsl(30 94.3% 34.6% / 0.012)', + '--colors-brownA2': 'hsl(30 94.3% 34.6% / 0.036)', + '--colors-brownA3': 'hsl(30 97.7% 33.9% / 0.083)', + '--colors-brownA4': 'hsl(31 98.5% 34.2% / 0.134)', + '--colors-brownA5': 'hsl(29 100% 34.3% / 0.2)', + '--colors-brownA6': 'hsl(28 99.2% 34.6% / 0.291)', + '--colors-brownA7': 'hsl(29 99.8% 33.8% / 0.412)', + '--colors-brownA8': 'hsl(28 100% 33.3% / 0.553)', + '--colors-brownA9': 'hsl(28 99.9% 25.5% / 0.655)', + '--colors-brownA10': 'hsl(27 99.7% 22.4% / 0.675)', + '--colors-brownA11': 'hsl(25 99.8% 17.3% / 0.714)', + '--colors-brownA12': 'hsl(21 99.4% 6.6% / 0.867)', + '--colors-bronzeA1': 'hsl(0 89.3% 18.3% / 0.012)', + '--colors-bronzeA2': 'hsl(17 95.1% 40.1% / 0.036)', + '--colors-bronzeA3': 'hsl(18 98.3% 29.8% / 0.067)', + '--colors-bronzeA4': 'hsl(17 99.6% 26% / 0.106)', + '--colors-bronzeA5': 'hsl(19 99.6% 23.8% / 0.157)', + '--colors-bronzeA6': 'hsl(17 99.2% 22.5% / 0.22)', + '--colors-bronzeA7': 'hsl(18 99.7% 21.6% / 0.31)', + '--colors-bronzeA8': 'hsl(17 99.5% 20.2% / 0.42)', + '--colors-bronzeA9': 'hsl(18 99.9% 16.7% / 0.553)', + '--colors-bronzeA10': 'hsl(17 99.2% 15.4% / 0.589)', + '--colors-bronzeA11': 'hsl(15 99.9% 13.2% / 0.655)', + '--colors-bronzeA12': 'hsl(12 98.7% 5.7% / 0.832)', + '--colors-goldA1': 'hsl(60 89.3% 18.3% / 0.012)', + '--colors-goldA2': 'hsl(47 99.9% 34.6% / 0.051)', + '--colors-goldA3': 'hsl(45 97% 27.9% / 0.087)', + '--colors-goldA4': 'hsl(46 98% 25.4% / 0.134)', + '--colors-goldA5': 'hsl(43 98.4% 22.6% / 0.185)', + '--colors-goldA6': 'hsl(41 99.7% 22% / 0.259)', + '--colors-goldA7': 'hsl(38 99.8% 21.5% / 0.357)', + '--colors-goldA8': 'hsl(36 99.3% 21.5% / 0.487)', + '--colors-goldA9': 'hsl(36 99.9% 16.2% / 0.604)', + '--colors-goldA10': 'hsl(36 99.2% 14.6% / 0.636)', + '--colors-goldA11': 'hsl(35 99.1% 11.2% / 0.687)', + '--colors-goldA12': 'hsl(38 98% 3.8% / 0.832)', +} + +export const radix_dark = { + '--colors-gray1': 'hsl(0 0% 8.5%)', + '--colors-gray2': 'hsl(0 0% 11%)', + '--colors-gray3': 'hsl(0 0% 13.6%)', + '--colors-gray4': 'hsl(0 0% 15.8%)', + '--colors-gray5': 'hsl(0 0% 17.9%)', + '--colors-gray6': 'hsl(0 0% 20.5%)', + '--colors-gray7': 'hsl(0 0% 24.3%)', + '--colors-gray8': 'hsl(0 0% 31.2%)', + '--colors-gray9': 'hsl(0 0% 43.9%)', + '--colors-gray10': 'hsl(0 0% 49.4%)', + '--colors-gray11': 'hsl(0 0% 62.8%)', + '--colors-gray12': 'hsl(0 0% 93%)', + '--colors-mauve1': 'hsl(246 6% 9%)', + '--colors-mauve2': 'hsl(240 5.1% 11.6%)', + '--colors-mauve3': 'hsl(241 5% 14.3%)', + '--colors-mauve4': 'hsl(242 4.9% 16.5%)', + '--colors-mauve5': 'hsl(243 4.9% 18.8%)', + '--colors-mauve6': 'hsl(244 4.9% 21.5%)', + '--colors-mauve7': 'hsl(245 4.9% 25.4%)', + '--colors-mauve8': 'hsl(247 4.8% 32.5%)', + '--colors-mauve9': 'hsl(252 4% 45.2%)', + '--colors-mauve10': 'hsl(247 3.4% 50.7%)', + '--colors-mauve11': 'hsl(253 4% 63.7%)', + '--colors-mauve12': 'hsl(256 6% 93.2%)', + '--colors-slate1': 'hsl(200 7% 8.8%)', + '--colors-slate2': 'hsl(195 7.1% 11%)', + '--colors-slate3': 'hsl(197 6.8% 13.6%)', + '--colors-slate4': 'hsl(198 6.6% 15.8%)', + '--colors-slate5': 'hsl(199 6.4% 17.9%)', + '--colors-slate6': 'hsl(201 6.2% 20.5%)', + '--colors-slate7': 'hsl(203 6% 24.3%)', + '--colors-slate8': 'hsl(207 5.6% 31.6%)', + '--colors-slate9': 'hsl(206 6% 43.9%)', + '--colors-slate10': 'hsl(206 5.2% 49.5%)', + '--colors-slate11': 'hsl(206 6% 63%)', + '--colors-slate12': 'hsl(210 6% 93%)', + '--colors-sage1': 'hsl(155 7% 8.4%)', + '--colors-sage2': 'hsl(150 7.4% 10.6%)', + '--colors-sage3': 'hsl(150 6.7% 13.1%)', + '--colors-sage4': 'hsl(150 6.4% 15.3%)', + '--colors-sage5': 'hsl(150 6.1% 17.4%)', + '--colors-sage6': 'hsl(150 5.8% 19.9%)', + '--colors-sage7': 'hsl(150 5.5% 23.6%)', + '--colors-sage8': 'hsl(150 5.1% 30.6%)', + '--colors-sage9': 'hsl(155 6% 42.5%)', + '--colors-sage10': 'hsl(153 4.8% 48.2%)', + '--colors-sage11': 'hsl(155 5% 61.8%)', + '--colors-sage12': 'hsl(155 6% 93%)', + '--colors-olive1': 'hsl(110 5% 8.6%)', + '--colors-olive2': 'hsl(105 7.4% 10.6%)', + '--colors-olive3': 'hsl(106 6.4% 13.1%)', + '--colors-olive4': 'hsl(106 5.8% 15.3%)', + '--colors-olive5': 'hsl(107 5.3% 17.4%)', + '--colors-olive6': 'hsl(107 4.9% 19.9%)', + '--colors-olive7': 'hsl(108 4.4% 23.6%)', + '--colors-olive8': 'hsl(110 3.8% 30.6%)', + '--colors-olive9': 'hsl(110 6% 42.5%)', + '--colors-olive10': 'hsl(111 4.8% 48.2%)', + '--colors-olive11': 'hsl(110 5% 61.8%)', + '--colors-olive12': 'hsl(110 6% 93%)', + '--colors-sand1': 'hsl(61 2% 8.3%)', + '--colors-sand2': 'hsl(60 3.7% 10.6%)', + '--colors-sand3': 'hsl(58 3.7% 13.1%)', + '--colors-sand4': 'hsl(57 3.6% 15.3%)', + '--colors-sand5': 'hsl(56 3.7% 17.4%)', + '--colors-sand6': 'hsl(55 3.7% 19.9%)', + '--colors-sand7': 'hsl(53 3.7% 23.6%)', + '--colors-sand8': 'hsl(50 3.8% 30.6%)', + '--colors-sand9': 'hsl(50 4% 42.7%)', + '--colors-sand10': 'hsl(52 3.1% 48.3%)', + '--colors-sand11': 'hsl(50 4% 61.8%)', + '--colors-sand12': 'hsl(56 4% 92.8%)', + '--colors-tomato1': 'hsl(10 23% 9.4%)', + '--colors-tomato2': 'hsl(9 44.8% 11.4%)', + '--colors-tomato3': 'hsl(8 52% 15.3%)', + '--colors-tomato4': 'hsl(7 56.3% 18%)', + '--colors-tomato5': 'hsl(7 60.1% 20.6%)', + '--colors-tomato6': 'hsl(8 64.8% 24%)', + '--colors-tomato7': 'hsl(8 71.2% 29.1%)', + '--colors-tomato8': 'hsl(10 80.2% 35.7%)', + '--colors-tomato9': 'hsl(10 78% 54%)', + '--colors-tomato10': 'hsl(10 81.7% 59%)', + '--colors-tomato11': 'hsl(10 85% 62.8%)', + '--colors-tomato12': 'hsl(10 89% 96%)', + '--colors-red1': 'hsl(353 23% 9.8%)', + '--colors-red2': 'hsl(357 34.4% 12%)', + '--colors-red3': 'hsl(356 43.4% 16.4%)', + '--colors-red4': 'hsl(356 47.6% 19.2%)', + '--colors-red5': 'hsl(356 51.1% 21.9%)', + '--colors-red6': 'hsl(356 55.2% 25.9%)', + '--colors-red7': 'hsl(357 60.2% 31.8%)', + '--colors-red8': 'hsl(358 65% 40.4%)', + '--colors-red9': 'hsl(358 75% 59%)', + '--colors-red10': 'hsl(358 85.3% 64%)', + '--colors-red11': 'hsl(358 100% 69.5%)', + '--colors-red12': 'hsl(351 89% 96%)', + '--colors-crimson1': 'hsl(335 20% 9.6%)', + '--colors-crimson2': 'hsl(335 32.2% 11.6%)', + '--colors-crimson3': 'hsl(335 42.5% 16.5%)', + '--colors-crimson4': 'hsl(335 47.2% 19.3%)', + '--colors-crimson5': 'hsl(335 50.9% 21.8%)', + '--colors-crimson6': 'hsl(335 55.7% 25.3%)', + '--colors-crimson7': 'hsl(336 62.9% 30.8%)', + '--colors-crimson8': 'hsl(336 74.9% 39%)', + '--colors-crimson9': 'hsl(336 80% 57.8%)', + '--colors-crimson10': 'hsl(339 84.1% 62.6%)', + '--colors-crimson11': 'hsl(341 90% 67.3%)', + '--colors-crimson12': 'hsl(332 87% 96%)', + '--colors-pink1': 'hsl(318 25% 9.6%)', + '--colors-pink2': 'hsl(319 32.2% 11.6%)', + '--colors-pink3': 'hsl(319 41% 16%)', + '--colors-pink4': 'hsl(320 45.4% 18.7%)', + '--colors-pink5': 'hsl(320 49% 21.1%)', + '--colors-pink6': 'hsl(321 53.6% 24.4%)', + '--colors-pink7': 'hsl(321 61.1% 29.7%)', + '--colors-pink8': 'hsl(322 74.9% 37.5%)', + '--colors-pink9': 'hsl(322 65% 54.5%)', + '--colors-pink10': 'hsl(323 72.8% 59.2%)', + '--colors-pink11': 'hsl(325 90% 66.4%)', + '--colors-pink12': 'hsl(322 90% 95.8%)', + '--colors-plum1': 'hsl(301 20% 9.4%)', + '--colors-plum2': 'hsl(300 29.8% 11.2%)', + '--colors-plum3': 'hsl(298 34.4% 15.3%)', + '--colors-plum4': 'hsl(297 36.8% 18.3%)', + '--colors-plum5': 'hsl(296 38.5% 21.1%)', + '--colors-plum6': 'hsl(295 40.4% 24.7%)', + '--colors-plum7': 'hsl(294 42.7% 30.6%)', + '--colors-plum8': 'hsl(292 45.1% 40%)', + '--colors-plum9': 'hsl(292 45% 51%)', + '--colors-plum10': 'hsl(295 50% 55.4%)', + '--colors-plum11': 'hsl(300 60% 62%)', + '--colors-plum12': 'hsl(296 74% 95.7%)', + '--colors-purple1': 'hsl(284 20% 9.6%)', + '--colors-purple2': 'hsl(283 30% 11.8%)', + '--colors-purple3': 'hsl(281 37.5% 16.5%)', + '--colors-purple4': 'hsl(280 41.2% 20%)', + '--colors-purple5': 'hsl(279 43.8% 23.3%)', + '--colors-purple6': 'hsl(277 46.4% 27.5%)', + '--colors-purple7': 'hsl(275 49.3% 34.6%)', + '--colors-purple8': 'hsl(272 52.1% 45.9%)', + '--colors-purple9': 'hsl(272 51% 54%)', + '--colors-purple10': 'hsl(273 57.3% 59.1%)', + '--colors-purple11': 'hsl(275 80% 71%)', + '--colors-purple12': 'hsl(279 75% 95.7%)', + '--colors-violet1': 'hsl(250 20% 10.2%)', + '--colors-violet2': 'hsl(255 30.3% 12.9%)', + '--colors-violet3': 'hsl(253 37% 18.4%)', + '--colors-violet4': 'hsl(252 40.1% 22.5%)', + '--colors-violet5': 'hsl(252 42.2% 26.2%)', + '--colors-violet6': 'hsl(251 44.3% 31.1%)', + '--colors-violet7': 'hsl(250 46.8% 38.9%)', + '--colors-violet8': 'hsl(250 51.8% 51.2%)', + '--colors-violet9': 'hsl(252 56% 57.5%)', + '--colors-violet10': 'hsl(251 63.2% 63.2%)', + '--colors-violet11': 'hsl(250 95% 76.8%)', + '--colors-violet12': 'hsl(252 87% 96.4%)', + '--colors-indigo1': 'hsl(229 24% 10%)', + '--colors-indigo2': 'hsl(230 36.4% 12.9%)', + '--colors-indigo3': 'hsl(228 43.3% 17.5%)', + '--colors-indigo4': 'hsl(227 47.2% 21%)', + '--colors-indigo5': 'hsl(227 50% 24.1%)', + '--colors-indigo6': 'hsl(226 52.9% 28.2%)', + '--colors-indigo7': 'hsl(226 56% 34.5%)', + '--colors-indigo8': 'hsl(226 58.2% 44.1%)', + '--colors-indigo9': 'hsl(226 70% 55.5%)', + '--colors-indigo10': 'hsl(227 75.2% 61.6%)', + '--colors-indigo11': 'hsl(228 100% 75.9%)', + '--colors-indigo12': 'hsl(226 83% 96.3%)', + '--colors-blue1': 'hsl(212 35% 9.2%)', + '--colors-blue2': 'hsl(216 50% 11.8%)', + '--colors-blue3': 'hsl(214 59.4% 15.3%)', + '--colors-blue4': 'hsl(214 65.8% 17.9%)', + '--colors-blue5': 'hsl(213 71.2% 20.2%)', + '--colors-blue6': 'hsl(212 77.4% 23.1%)', + '--colors-blue7': 'hsl(211 85.1% 27.4%)', + '--colors-blue8': 'hsl(211 89.7% 34.1%)', + '--colors-blue9': 'hsl(206 100% 50%)', + '--colors-blue10': 'hsl(209 100% 60.6%)', + '--colors-blue11': 'hsl(210 100% 66.1%)', + '--colors-blue12': 'hsl(206 98% 95.8%)', + '--colors-sky1': 'hsl(205 45% 8.6%)', + '--colors-sky2': 'hsl(202 71.4% 9.6%)', + '--colors-sky3': 'hsl(201 74.6% 12.2%)', + '--colors-sky4': 'hsl(201 77.4% 14.4%)', + '--colors-sky5': 'hsl(200 80.3% 16.5%)', + '--colors-sky6': 'hsl(200 84.1% 18.9%)', + '--colors-sky7': 'hsl(199 90.2% 22.1%)', + '--colors-sky8': 'hsl(198 100% 26.1%)', + '--colors-sky9': 'hsl(193 98% 70%)', + '--colors-sky10': 'hsl(192 100% 77%)', + '--colors-sky11': 'hsl(192 85% 55.8%)', + '--colors-sky12': 'hsl(198 98% 95.8%)', + '--colors-mint1': 'hsl(173 50% 6.6%)', + '--colors-mint2': 'hsl(176 73% 7.3%)', + '--colors-mint3': 'hsl(175 79.3% 8.9%)', + '--colors-mint4': 'hsl(174 84.8% 10.3%)', + '--colors-mint5': 'hsl(174 90.2% 11.9%)', + '--colors-mint6': 'hsl(173 96% 13.8%)', + '--colors-mint7': 'hsl(172 100% 16.8%)', + '--colors-mint8': 'hsl(170 100% 21.4%)', + '--colors-mint9': 'hsl(167 65% 66%)', + '--colors-mint10': 'hsl(163 80% 77%)', + '--colors-mint11': 'hsl(167 70% 48%)', + '--colors-mint12': 'hsl(165 80% 94.8%)', + '--colors-cyan1': 'hsl(192 60% 7.2%)', + '--colors-cyan2': 'hsl(192 71.4% 8.2%)', + '--colors-cyan3': 'hsl(192 75.9% 10.8%)', + '--colors-cyan4': 'hsl(192 79.3% 12.8%)', + '--colors-cyan5': 'hsl(192 82.5% 14.6%)', + '--colors-cyan6': 'hsl(192 86.6% 16.9%)', + '--colors-cyan7': 'hsl(192 92.6% 20.1%)', + '--colors-cyan8': 'hsl(192 100% 24.5%)', + '--colors-cyan9': 'hsl(190 95% 39%)', + '--colors-cyan10': 'hsl(188 100% 40%)', + '--colors-cyan11': 'hsl(186 100% 42.2%)', + '--colors-cyan12': 'hsl(185 73% 93.2%)', + '--colors-teal1': 'hsl(168 48% 6.5%)', + '--colors-teal2': 'hsl(169 77.8% 7.1%)', + '--colors-teal3': 'hsl(170 76.1% 9.2%)', + '--colors-teal4': 'hsl(171 75.8% 11%)', + '--colors-teal5': 'hsl(171 75.7% 12.8%)', + '--colors-teal6': 'hsl(172 75.8% 15.1%)', + '--colors-teal7': 'hsl(172 76.7% 18.6%)', + '--colors-teal8': 'hsl(173 80.2% 23.7%)', + '--colors-teal9': 'hsl(173 80% 36%)', + '--colors-teal10': 'hsl(174 83.9% 38.2%)', + '--colors-teal11': 'hsl(174 90% 40.7%)', + '--colors-teal12': 'hsl(166 73% 93.1%)', + '--colors-green1': 'hsl(146 30% 7.4%)', + '--colors-green2': 'hsl(155 44.2% 8.4%)', + '--colors-green3': 'hsl(155 46.7% 10.9%)', + '--colors-green4': 'hsl(154 48.4% 12.9%)', + '--colors-green5': 'hsl(154 49.7% 14.9%)', + '--colors-green6': 'hsl(154 50.9% 17.6%)', + '--colors-green7': 'hsl(153 51.8% 21.8%)', + '--colors-green8': 'hsl(151 51.7% 28.4%)', + '--colors-green9': 'hsl(151 55% 41.5%)', + '--colors-green10': 'hsl(151 49.3% 46.5%)', + '--colors-green11': 'hsl(151 50% 53.2%)', + '--colors-green12': 'hsl(137 72% 94%)', + '--colors-grass1': 'hsl(146 30% 7.4%)', + '--colors-grass2': 'hsl(136 33.3% 8.8%)', + '--colors-grass3': 'hsl(137 36% 11.4%)', + '--colors-grass4': 'hsl(137 37.6% 13.7%)', + '--colors-grass5': 'hsl(136 38.7% 16%)', + '--colors-grass6': 'hsl(135 39.6% 19.1%)', + '--colors-grass7': 'hsl(134 40.3% 23.8%)', + '--colors-grass8': 'hsl(131 40.1% 30.8%)', + '--colors-grass9': 'hsl(131 41% 46.5%)', + '--colors-grass10': 'hsl(131 39% 52.1%)', + '--colors-grass11': 'hsl(131 43% 57.2%)', + '--colors-grass12': 'hsl(137 72% 94%)', + '--colors-lime1': 'hsl(75 55% 6%)', + '--colors-lime2': 'hsl(74 56.8% 7.3%)', + '--colors-lime3': 'hsl(78 50.2% 9.9%)', + '--colors-lime4': 'hsl(79 50.3% 12.1%)', + '--colors-lime5': 'hsl(79 52.6% 14.2%)', + '--colors-lime6': 'hsl(78 55.7% 16.7%)', + '--colors-lime7': 'hsl(77 59.7% 20.1%)', + '--colors-lime8': 'hsl(75 64.8% 24.5%)', + '--colors-lime9': 'hsl(81 67% 50%)', + '--colors-lime10': 'hsl(75 85% 60%)', + '--colors-lime11': 'hsl(81 70% 43.8%)', + '--colors-lime12': 'hsl(84 79% 92.6%)', + '--colors-yellow1': 'hsl(45 100% 5.5%)', + '--colors-yellow2': 'hsl(46 100% 6.7%)', + '--colors-yellow3': 'hsl(45 100% 8.7%)', + '--colors-yellow4': 'hsl(45 100% 10.4%)', + '--colors-yellow5': 'hsl(47 100% 12.1%)', + '--colors-yellow6': 'hsl(49 100% 14.3%)', + '--colors-yellow7': 'hsl(49 90.3% 18.4%)', + '--colors-yellow8': 'hsl(50 100% 22%)', + '--colors-yellow9': 'hsl(53 92% 50%)', + '--colors-yellow10': 'hsl(54 100% 68%)', + '--colors-yellow11': 'hsl(48 100% 47%)', + '--colors-yellow12': 'hsl(53 100% 91%)', + '--colors-amber1': 'hsl(36 100% 6.1%)', + '--colors-amber2': 'hsl(35 100% 7.6%)', + '--colors-amber3': 'hsl(32 100% 10.2%)', + '--colors-amber4': 'hsl(32 100% 12.4%)', + '--colors-amber5': 'hsl(33 100% 14.6%)', + '--colors-amber6': 'hsl(35 100% 17.1%)', + '--colors-amber7': 'hsl(35 91% 21.6%)', + '--colors-amber8': 'hsl(36 100% 25.5%)', + '--colors-amber9': 'hsl(39 100% 57%)', + '--colors-amber10': 'hsl(43 100% 64%)', + '--colors-amber11': 'hsl(39 90% 49.8%)', + '--colors-amber12': 'hsl(39 97% 93.2%)', + '--colors-orange1': 'hsl(30 70% 7.2%)', + '--colors-orange2': 'hsl(28 100% 8.4%)', + '--colors-orange3': 'hsl(26 91.1% 11.6%)', + '--colors-orange4': 'hsl(25 88.3% 14.1%)', + '--colors-orange5': 'hsl(24 87.6% 16.6%)', + '--colors-orange6': 'hsl(24 88.6% 19.8%)', + '--colors-orange7': 'hsl(24 92.4% 24%)', + '--colors-orange8': 'hsl(25 100% 29%)', + '--colors-orange9': 'hsl(24 94% 50%)', + '--colors-orange10': 'hsl(24 100% 58.5%)', + '--colors-orange11': 'hsl(24 100% 62.2%)', + '--colors-orange12': 'hsl(24 97% 93.2%)', + '--colors-brown1': 'hsl(22 15% 8.7%)', + '--colors-brown2': 'hsl(20 28.3% 10.4%)', + '--colors-brown3': 'hsl(20 28% 14%)', + '--colors-brown4': 'hsl(21 28.4% 16.5%)', + '--colors-brown5': 'hsl(22 28.7% 18.9%)', + '--colors-brown6': 'hsl(23 29% 22.3%)', + '--colors-brown7': 'hsl(25 29.5% 27.8%)', + '--colors-brown8': 'hsl(27 30.1% 35.9%)', + '--colors-brown9': 'hsl(28 34% 51%)', + '--colors-brown10': 'hsl(28 41.4% 55.8%)', + '--colors-brown11': 'hsl(28 60% 64.5%)', + '--colors-brown12': 'hsl(30 67% 94%)', + '--colors-bronze1': 'hsl(17 10% 8.8%)', + '--colors-bronze2': 'hsl(15 14.8% 10.6%)', + '--colors-bronze3': 'hsl(15 16.3% 14.3%)', + '--colors-bronze4': 'hsl(16 17.1% 17.2%)', + '--colors-bronze5': 'hsl(16 17.6% 19.6%)', + '--colors-bronze6': 'hsl(16 18.1% 22.9%)', + '--colors-bronze7': 'hsl(17 18.8% 28.8%)', + '--colors-bronze8': 'hsl(17 19.6% 38%)', + '--colors-bronze9': 'hsl(17 20% 54%)', + '--colors-bronze10': 'hsl(18 24% 59%)', + '--colors-bronze11': 'hsl(18 35% 68.5%)', + '--colors-bronze12': 'hsl(18 57% 94.1%)', + '--colors-gold1': 'hsl(44 9% 8.3%)', + '--colors-gold2': 'hsl(43 14.3% 9.6%)', + '--colors-gold3': 'hsl(42 15.5% 13%)', + '--colors-gold4': 'hsl(41 16.4% 15.6%)', + '--colors-gold5': 'hsl(41 16.9% 17.8%)', + '--colors-gold6': 'hsl(40 17.6% 20.8%)', + '--colors-gold7': 'hsl(38 18.5% 26.4%)', + '--colors-gold8': 'hsl(36 19.6% 35.1%)', + '--colors-gold9': 'hsl(36 20% 49.5%)', + '--colors-gold10': 'hsl(36 22.3% 54.5%)', + '--colors-gold11': 'hsl(35 30% 64%)', + '--colors-gold12': 'hsl(49 52% 93.8%)', + '--colors-grayA1': 'hsl(0 0% 100% / 0)', + '--colors-grayA2': 'hsl(0 0% 100% / 0.026)', + '--colors-grayA3': 'hsl(0 0% 100% / 0.056)', + '--colors-grayA4': 'hsl(0 0% 100% / 0.077)', + '--colors-grayA5': 'hsl(0 0% 100% / 0.103)', + '--colors-grayA6': 'hsl(0 0% 100% / 0.129)', + '--colors-grayA7': 'hsl(0 0% 100% / 0.172)', + '--colors-grayA8': 'hsl(0 0% 100% / 0.249)', + '--colors-grayA9': 'hsl(0 0% 100% / 0.386)', + '--colors-grayA10': 'hsl(0 0% 100% / 0.446)', + '--colors-grayA11': 'hsl(0 0% 100% / 0.592)', + '--colors-grayA12': 'hsl(0 0% 100% / 0.923)', + '--colors-mauveA1': 'hsl(0 0% 0% / 0)', + '--colors-mauveA2': 'hsl(240 76.7% 91.2% / 0.031)', + '--colors-mauveA3': 'hsl(240 86% 95.8% / 0.061)', + '--colors-mauveA4': 'hsl(240 91.8% 94.7% / 0.087)', + '--colors-mauveA5': 'hsl(240 91.5% 95.8% / 0.113)', + '--colors-mauveA6': 'hsl(240 92% 93.8% / 0.148)', + '--colors-mauveA7': 'hsl(240 94.8% 95.3% / 0.191)', + '--colors-mauveA8': 'hsl(249 98.1% 95.2% / 0.273)', + '--colors-mauveA9': 'hsl(248 97.6% 96.2% / 0.416)', + '--colors-mauveA10': 'hsl(248 95.5% 96.6% / 0.477)', + '--colors-mauveA11': 'hsl(250 98% 98% / 0.615)', + '--colors-mauveA12': 'hsl(240 93.9% 99.6% / 0.931)', + '--colors-slateA1': 'hsl(0 0% 0% / 0)', + '--colors-slateA2': 'hsl(181 98.9% 91.8% / 0.026)', + '--colors-slateA3': 'hsl(182 86.7% 91.4% / 0.057)', + '--colors-slateA4': 'hsl(209 86.7% 93.9% / 0.083)', + '--colors-slateA5': 'hsl(200 90.3% 93.4% / 0.109)', + '--colors-slateA6': 'hsl(209 95.3% 93.5% / 0.139)', + '--colors-slateA7': 'hsl(204 98.5% 93.9% / 0.182)', + '--colors-slateA8': 'hsl(209 94% 94.7% / 0.265)', + '--colors-slateA9': 'hsl(207 97.3% 94% / 0.412)', + '--colors-slateA10': 'hsl(209 99.4% 95.2% / 0.472)', + '--colors-slateA11': 'hsl(208 98.7% 96.8% / 0.615)', + '--colors-slateA12': 'hsl(211 86.7% 99.6% / 0.927)', + '--colors-sageA1': 'hsl(0 0% 0% / 0)', + '--colors-sageA2': 'hsl(123 94.4% 91.4% / 0.026)', + '--colors-sageA3': 'hsl(123 82.9% 91% / 0.057)', + '--colors-sageA4': 'hsl(124 97.9% 94.5% / 0.082)', + '--colors-sageA5': 'hsl(125 90% 95.2% / 0.104)', + '--colors-sageA6': 'hsl(142 95.1% 94.8% / 0.134)', + '--colors-sageA7': 'hsl(143 92.8% 95.7% / 0.173)', + '--colors-sageA8': 'hsl(146 94.7% 95.3% / 0.255)', + '--colors-sageA9': 'hsl(151 98.2% 94.4% / 0.397)', + '--colors-sageA10': 'hsl(148 99.5% 95.5% / 0.457)', + '--colors-sageA11': 'hsl(152 95.1% 97.3% / 0.6)', + '--colors-sageA12': 'hsl(149 93.3% 99.6% / 0.927)', + '--colors-oliveA1': 'hsl(0 0% 0% / 0)', + '--colors-oliveA2': 'hsl(91 97% 84% / 0.026)', + '--colors-oliveA3': 'hsl(101 87.4% 87.7% / 0.057)', + '--colors-oliveA4': 'hsl(92 91.8% 94.1% / 0.078)', + '--colors-oliveA5': 'hsl(101 92.6% 93.5% / 0.104)', + '--colors-oliveA6': 'hsl(102 91.1% 94.6% / 0.13)', + '--colors-oliveA7': 'hsl(102 92.5% 95.9% / 0.173)', + '--colors-oliveA8': 'hsl(107 100% 96.5% / 0.25)', + '--colors-oliveA9': 'hsl(110 98.3% 94.1% / 0.397)', + '--colors-oliveA10': 'hsl(109 99.6% 95.3% / 0.457)', + '--colors-oliveA11': 'hsl(113 95.3% 97.2% / 0.6)', + '--colors-oliveA12': 'hsl(120 93.5% 99.6% / 0.927)', + '--colors-sandA1': 'hsl(0 0% 0% / 0)', + '--colors-sandA2': 'hsl(60 89.8% 91.4% / 0.026)', + '--colors-sandA3': 'hsl(60 95.5% 92.5% / 0.056)', + '--colors-sandA4': 'hsl(60 75.6% 96.4% / 0.078)', + '--colors-sandA5': 'hsl(60 81.9% 95.2% / 0.104)', + '--colors-sandA6': 'hsl(41 87.6% 94.8% / 0.134)', + '--colors-sandA7': 'hsl(60 95.4% 96.2% / 0.172)', + '--colors-sandA8': 'hsl(49 93.5% 95.7% / 0.254)', + '--colors-sandA9': 'hsl(52 97.3% 96.2% / 0.391)', + '--colors-sandA10': 'hsl(52 97.8% 96.7% / 0.451)', + '--colors-sandA11': 'hsl(51 97% 97.8% / 0.597)', + '--colors-sandA12': 'hsl(60 88.7% 99.8% / 0.923)', + '--colors-tomatoA1': 'hsl(0 0% 0% / 0)', + '--colors-tomatoA2': 'hsl(5 100% 49.6% / 0.058)', + '--colors-tomatoA3': 'hsl(6 99.6% 54.9% / 0.133)', + '--colors-tomatoA4': 'hsl(6 99.2% 55.4% / 0.191)', + '--colors-tomatoA5': 'hsl(6 99.5% 55.8% / 0.244)', + '--colors-tomatoA6': 'hsl(7 99.7% 55.9% / 0.319)', + '--colors-tomatoA7': 'hsl(8 99.8% 54.8% / 0.434)', + '--colors-tomatoA8': 'hsl(10 99.8% 53.5% / 0.598)', + '--colors-tomatoA9': 'hsl(10 100% 59.7% / 0.885)', + '--colors-tomatoA10': 'hsl(10 100% 63.6% / 0.916)', + '--colors-tomatoA11': 'hsl(10 99.7% 66.4% / 0.939)', + '--colors-tomatoA12': 'hsl(12 100% 97.1% / 0.98)', + '--colors-redA1': 'hsl(0 0% 0% / 0)', + '--colors-redA2': 'hsl(5 98.5% 53.8% / 0.045)', + '--colors-redA3': 'hsl(359 99.1% 61.1% / 0.13)', + '--colors-redA4': 'hsl(358 98.8% 61% / 0.184)', + '--colors-redA5': 'hsl(357 99.6% 60.3% / 0.237)', + '--colors-redA6': 'hsl(358 99.6% 60.3% / 0.322)', + '--colors-redA7': 'hsl(357 100% 59.5% / 0.442)', + '--colors-redA8': 'hsl(358 99.8% 59.1% / 0.621)', + '--colors-redA9': 'hsl(358 100% 65.5% / 0.884)', + '--colors-redA10': 'hsl(358 100% 67.5% / 0.942)', + '--colors-redA11': 'hsl(358 100% 69.7% / 0.98)', + '--colors-redA12': 'hsl(352 100% 97.1% / 0.98)', + '--colors-crimsonA1': 'hsl(0 0% 0% / 0)', + '--colors-crimsonA2': 'hsl(336 96.8% 53.2% / 0.045)', + '--colors-crimsonA3': 'hsl(335 98.7% 59.3% / 0.138)', + '--colors-crimsonA4': 'hsl(336 99.1% 59.9% / 0.191)', + '--colors-crimsonA5': 'hsl(335 99.4% 59.4% / 0.244)', + '--colors-crimsonA6': 'hsl(335 99.4% 59.4% / 0.315)', + '--colors-crimsonA7': 'hsl(336 99.5% 57.8% / 0.439)', + '--colors-crimsonA8': 'hsl(336 99.9% 55.4% / 0.642)', + '--colors-crimsonA9': 'hsl(336 99.9% 62.8% / 0.903)', + '--colors-crimsonA10': 'hsl(339 99.9% 66.3% / 0.934)', + '--colors-crimsonA11': 'hsl(341 99.9% 69.5% / 0.965)', + '--colors-crimsonA12': 'hsl(327 100% 97.1% / 0.98)', + '--colors-pinkA1': 'hsl(0 0% 0% / 0)', + '--colors-pinkA2': 'hsl(320 98.1% 64.1% / 0.036)', + '--colors-pinkA3': 'hsl(320 99.1% 63.1% / 0.121)', + '--colors-pinkA4': 'hsl(320 99.5% 62.7% / 0.17)', + '--colors-pinkA5': 'hsl(319 99.7% 61.5% / 0.219)', + '--colors-pinkA6': 'hsl(322 99.4% 60.8% / 0.291)', + '--colors-pinkA7': 'hsl(321 99.6% 58.7% / 0.407)', + '--colors-pinkA8': 'hsl(322 99.7% 55.4% / 0.608)', + '--colors-pinkA9': 'hsl(322 100% 64.6% / 0.817)', + '--colors-pinkA10': 'hsl(323 100% 66.3% / 0.875)', + '--colors-pinkA11': 'hsl(325 99.9% 68.6% / 0.96)', + '--colors-pinkA12': 'hsl(314 100% 96.9% / 0.98)', + '--colors-plumA1': 'hsl(0 0% 0% / 0)', + '--colors-plumA2': 'hsl(300 96.4% 58.4% / 0.036)', + '--colors-plumA3': 'hsl(300 99.4% 67.1% / 0.102)', + '--colors-plumA4': 'hsl(295 99.8% 66.3% / 0.155)', + '--colors-plumA5': 'hsl(295 99.4% 67.1% / 0.204)', + '--colors-plumA6': 'hsl(294 99% 67.8% / 0.262)', + '--colors-plumA7': 'hsl(294 99.9% 67.7% / 0.363)', + '--colors-plumA8': 'hsl(292 99.8% 67.5% / 0.527)', + '--colors-plumA9': 'hsl(292 99.9% 69.2% / 0.695)', + '--colors-plumA10': 'hsl(295 99.9% 70.8% / 0.748)', + '--colors-plumA11': 'hsl(300 99.8% 72.9% / 0.828)', + '--colors-plumA12': 'hsl(300 100% 97.1% / 0.98)', + '--colors-purpleA1': 'hsl(0 0% 0% / 0)', + '--colors-purpleA2': 'hsl(280 96.5% 57.5% / 0.045)', + '--colors-purpleA3': 'hsl(279 98.7% 62.8% / 0.129)', + '--colors-purpleA4': 'hsl(279 99.1% 64% / 0.191)', + '--colors-purpleA5': 'hsl(278 99.8% 64.2% / 0.248)', + '--colors-purpleA6': 'hsl(276 99.6% 64.6% / 0.328)', + '--colors-purpleA7': 'hsl(274 99.9% 64.6% / 0.456)', + '--colors-purpleA8': 'hsl(272 99.7% 64.6% / 0.66)', + '--colors-purpleA9': 'hsl(272 99.9% 69.1% / 0.748)', + '--colors-purpleA10': 'hsl(273 100% 71.3% / 0.801)', + '--colors-purpleA11': 'hsl(275 99.9% 75.3% / 0.934)', + '--colors-purpleA12': 'hsl(286 100% 97.1% / 0.98)', + '--colors-violetA1': 'hsl(0 0% 0% / 0)', + '--colors-violetA2': 'hsl(258 98.2% 61% / 0.054)', + '--colors-violetA3': 'hsl(252 98.8% 65.8% / 0.148)', + '--colors-violetA4': 'hsl(253 99.7% 65.7% / 0.219)', + '--colors-violetA5': 'hsl(252 99.7% 66.4% / 0.286)', + '--colors-violetA6': 'hsl(251 99.7% 66.2% / 0.371)', + '--colors-violetA7': 'hsl(250 99.7% 66.3% / 0.514)', + '--colors-violetA8': 'hsl(250 99.7% 66.1% / 0.733)', + '--colors-violetA9': 'hsl(252 99.9% 70.3% / 0.786)', + '--colors-violetA10': 'hsl(251 99.9% 72.9% / 0.844)', + '--colors-violetA11': 'hsl(250 100% 77.9% / 0.98)', + '--colors-violetA12': 'hsl(254 100% 97.5% / 0.98)', + '--colors-indigoA1': 'hsl(0 0% 0% / 0)', + '--colors-indigoA2': 'hsl(234 97.4% 59.9% / 0.059)', + '--colors-indigoA3': 'hsl(228 99.2% 61.7% / 0.144)', + '--colors-indigoA4': 'hsl(227 99.7% 62% / 0.211)', + '--colors-indigoA5': 'hsl(227 99.2% 62.3% / 0.27)', + '--colors-indigoA6': 'hsl(226 99.9% 62.1% / 0.35)', + '--colors-indigoA7': 'hsl(226 99.9% 62% / 0.471)', + '--colors-indigoA8': 'hsl(226 99.9% 62.1% / 0.655)', + '--colors-indigoA9': 'hsl(226 99.9% 63.6% / 0.848)', + '--colors-indigoA10': 'hsl(227 99.8% 67.7% / 0.893)', + '--colors-indigoA11': 'hsl(227 100% 76.3% / 0.98)', + '--colors-indigoA12': 'hsl(226 100% 97.5% / 0.98)', + '--colors-blueA1': 'hsl(0 0% 0% / 0)', + '--colors-blueA2': 'hsl(221 97.8% 52.4% / 0.059)', + '--colors-blueA3': 'hsl(215 99.3% 54.2% / 0.135)', + '--colors-blueA4': 'hsl(215 99.3% 53.8% / 0.198)', + '--colors-blueA5': 'hsl(213 99.4% 52.8% / 0.252)', + '--colors-blueA6': 'hsl(212 99.9% 51.7% / 0.323)', + '--colors-blueA7': 'hsl(211 100% 50.7% / 0.435)', + '--colors-blueA8': 'hsl(211 99.8% 50.9% / 0.597)', + '--colors-blueA9': 'hsl(205 100% 50% / 0.98)', + '--colors-blueA10': 'hsl(208 100% 60.7% / 0.98)', + '--colors-blueA11': 'hsl(209 100% 66.3% / 0.98)', + '--colors-blueA12': 'hsl(196 100% 96.8% / 0.98)', + '--colors-skyA1': 'hsl(0 0% 0% / 0)', + '--colors-skyA2': 'hsl(208 100% 49.8% / 0.045)', + '--colors-skyA3': 'hsl(201 100% 49.8% / 0.099)', + '--colors-skyA4': 'hsl(201 100% 50% / 0.148)', + '--colors-skyA5': 'hsl(200 100% 49.8% / 0.198)', + '--colors-skyA6': 'hsl(199 100% 49.9% / 0.256)', + '--colors-skyA7': 'hsl(199 100% 49.9% / 0.337)', + '--colors-skyA8': 'hsl(199 100% 50% / 0.453)', + '--colors-skyA9': 'hsl(192 100% 70.8% / 0.98)', + '--colors-skyA10': 'hsl(190 100% 77.6% / 0.98)', + '--colors-skyA11': 'hsl(192 99.9% 59.6% / 0.924)', + '--colors-skyA12': 'hsl(189 100% 96.8% / 0.98)', + '--colors-mintA1': 'hsl(0 0% 0% / 0)', + '--colors-mintA2': 'hsl(180 100% 49.2% / 0.031)', + '--colors-mintA3': 'hsl(176 100% 49.7% / 0.07)', + '--colors-mintA4': 'hsl(173 100% 49.7% / 0.105)', + '--colors-mintA5': 'hsl(173 100% 49.8% / 0.144)', + '--colors-mintA6': 'hsl(172 100% 49.8% / 0.192)', + '--colors-mintA7': 'hsl(171 100% 49.9% / 0.266)', + '--colors-mintA8': 'hsl(169 100% 49.9% / 0.366)', + '--colors-mintA9': 'hsl(167 99.8% 75% / 0.87)', + '--colors-mintA10': 'hsl(163 99.9% 80.7% / 0.948)', + '--colors-mintA11': 'hsl(167 99.9% 58.7% / 0.796)', + '--colors-mintA12': 'hsl(169 100% 96.2% / 0.98)', + '--colors-cyanA1': 'hsl(0 0% 0% / 0)', + '--colors-cyanA2': 'hsl(196 100% 50% / 0.031)', + '--colors-cyanA3': 'hsl(192 98% 50.9% / 0.085)', + '--colors-cyanA4': 'hsl(194 99.6% 51.3% / 0.133)', + '--colors-cyanA5': 'hsl(192 99.5% 51.3% / 0.173)', + '--colors-cyanA6': 'hsl(193 99.7% 50.4% / 0.226)', + '--colors-cyanA7': 'hsl(192 100% 50% / 0.31)', + '--colors-cyanA8': 'hsl(193 100% 50% / 0.425)', + '--colors-cyanA9': 'hsl(190 99.8% 50.8% / 0.731)', + '--colors-cyanA10': 'hsl(188 100% 50% / 0.775)', + '--colors-cyanA11': 'hsl(186 100% 49.9% / 0.824)', + '--colors-cyanA12': 'hsl(185 99.8% 95.1% / 0.978)', + '--colors-tealA1': 'hsl(0 0% 0% / 0)', + '--colors-tealA2': 'hsl(171 100% 49.2% / 0.031)', + '--colors-tealA3': 'hsl(172 100% 49.7% / 0.07)', + '--colors-tealA4': 'hsl(175 100% 49.7% / 0.105)', + '--colors-tealA5': 'hsl(174 98.9% 50.1% / 0.14)', + '--colors-tealA6': 'hsl(174 100% 51.8% / 0.187)', + '--colors-tealA7': 'hsl(173 99.6% 53.2% / 0.257)', + '--colors-tealA8': 'hsl(174 99.6% 53.3% / 0.366)', + '--colors-tealA9': 'hsl(173 99.9% 54.6% / 0.609)', + '--colors-tealA10': 'hsl(174 99.9% 53.8% / 0.67)', + '--colors-tealA11': 'hsl(174 100% 52% / 0.748)', + '--colors-tealA12': 'hsl(166 98.6% 95% / 0.979)', + '--colors-greenA1': 'hsl(0 0% 0% / 0)', + '--colors-greenA2': 'hsl(169 100% 48.5% / 0.027)', + '--colors-greenA3': 'hsl(162 98.7% 57.9% / 0.07)', + '--colors-greenA4': 'hsl(158 98.6% 59.7% / 0.105)', + '--colors-greenA5': 'hsl(158 98.6% 60.7% / 0.14)', + '--colors-greenA6': 'hsl(156 99.9% 62% / 0.187)', + '--colors-greenA7': 'hsl(154 99.5% 63.1% / 0.257)', + '--colors-greenA8': 'hsl(152 99.7% 64.2% / 0.37)', + '--colors-greenA9': 'hsl(151 99.7% 63.8% / 0.605)', + '--colors-greenA10': 'hsl(152 99.9% 66.5% / 0.661)', + '--colors-greenA11': 'hsl(151 99.7% 69.2% / 0.74)', + '--colors-greenA12': 'hsl(137 100% 95.8% / 0.98)', + '--colors-grassA1': 'hsl(0 0% 0% / 0)', + '--colors-grassA2': 'hsl(107 97.2% 61.9% / 0.022)', + '--colors-grassA3': 'hsl(128 96.5% 69.8% / 0.066)', + '--colors-grassA4': 'hsl(130 100% 70.2% / 0.1)', + '--colors-grassA5': 'hsl(130 98.2% 69.1% / 0.14)', + '--colors-grassA6': 'hsl(132 99.9% 69.3% / 0.187)', + '--colors-grassA7': 'hsl(132 99.9% 69.8% / 0.261)', + '--colors-grassA8': 'hsl(130 99.6% 70.5% / 0.37)', + '--colors-grassA9': 'hsl(130 99.7% 70.6% / 0.618)', + '--colors-grassA10': 'hsl(131 100% 73.5% / 0.674)', + '--colors-grassA11': 'hsl(130 99.7% 75.6% / 0.731)', + '--colors-grassA12': 'hsl(137 100% 95.8% / 0.98)', + '--colors-limeA1': 'hsl(0 0% 0% / 0)', + '--colors-limeA2': 'hsl(75 96.4% 59.6% / 0.022)', + '--colors-limeA3': 'hsl(88 98% 70.4% / 0.061)', + '--colors-limeA4': 'hsl(81 97.8% 67.4% / 0.096)', + '--colors-limeA5': 'hsl(82 98.4% 65.6% / 0.135)', + '--colors-limeA6': 'hsl(79 99.7% 64.3% / 0.182)', + '--colors-limeA7': 'hsl(77 99.1% 62.1% / 0.252)', + '--colors-limeA8': 'hsl(75 100% 60% / 0.342)', + '--colors-limeA9': 'hsl(81 99.8% 59.7% / 0.819)', + '--colors-limeA10': 'hsl(75 99.8% 63.7% / 0.936)', + '--colors-limeA11': 'hsl(81 99.9% 58.7% / 0.719)', + '--colors-limeA12': 'hsl(83 100% 94.2% / 0.98)', + '--colors-yellowA1': 'hsl(0 0% 0% / 0)', + '--colors-yellowA2': 'hsl(49 100% 49.1% / 0.027)', + '--colors-yellowA3': 'hsl(45 100% 49.7% / 0.071)', + '--colors-yellowA4': 'hsl(46 100% 49.7% / 0.111)', + '--colors-yellowA5': 'hsl(47 100% 49.9% / 0.15)', + '--colors-yellowA6': 'hsl(51 100% 49.8% / 0.199)', + '--colors-yellowA7': 'hsl(51 99.8% 53.6% / 0.269)', + '--colors-yellowA8': 'hsl(51 100% 49.9% / 0.371)', + '--colors-yellowA9': 'hsl(53 100% 52% / 0.956)', + '--colors-yellowA10': 'hsl(56 100% 68.4% / 0.98)', + '--colors-yellowA11': 'hsl(48 100% 50% / 0.934)', + '--colors-yellowA12': 'hsl(60 100% 91.8% / 0.98)', + '--colors-amberA1': 'hsl(0 0% 0% / 0)', + '--colors-amberA2': 'hsl(31 100% 49.7% / 0.036)', + '--colors-amberA3': 'hsl(27 100% 49.9% / 0.094)', + '--colors-amberA4': 'hsl(29 100% 50% / 0.143)', + '--colors-amberA5': 'hsl(31 100% 50% / 0.192)', + '--colors-amberA6': 'hsl(35 100% 50% / 0.25)', + '--colors-amberA7': 'hsl(34 99.6% 52.9% / 0.331)', + '--colors-amberA8': 'hsl(36 100% 50% / 0.442)', + '--colors-amberA9': 'hsl(40 100% 57.2% / 0.98)', + '--colors-amberA10': 'hsl(44 100% 64.2% / 0.98)', + '--colors-amberA11': 'hsl(39 99.9% 52.7% / 0.938)', + '--colors-amberA12': 'hsl(45 100% 94.2% / 0.98)', + '--colors-orangeA1': 'hsl(0 0% 0% / 0)', + '--colors-orangeA2': 'hsl(13 100% 49.7% / 0.054)', + '--colors-orangeA3': 'hsl(20 100% 49.7% / 0.117)', + '--colors-orangeA4': 'hsl(23 100% 49.8% / 0.166)', + '--colors-orangeA5': 'hsl(23 99.4% 50.1% / 0.215)', + '--colors-orangeA6': 'hsl(23 99.8% 51.1% / 0.286)', + '--colors-orangeA7': 'hsl(23 99.7% 50.6% / 0.389)', + '--colors-orangeA8': 'hsl(24 100% 49.9% / 0.523)', + '--colors-orangeA9': 'hsl(24 99.9% 51.6% / 0.965)', + '--colors-orangeA10': 'hsl(25 100% 58.6% / 0.98)', + '--colors-orangeA11': 'hsl(24 100% 62.4% / 0.98)', + '--colors-orangeA12': 'hsl(26 100% 94.2% / 0.98)', + '--colors-brownA1': 'hsl(0 0% 0% / 0)', + '--colors-brownA2': 'hsl(22 99.6% 53.6% / 0.035)', + '--colors-brownA3': 'hsl(18 97.8% 69% / 0.088)', + '--colors-brownA4': 'hsl(21 98.2% 71% / 0.123)', + '--colors-brownA5': 'hsl(25 98.4% 72.1% / 0.158)', + '--colors-brownA6': 'hsl(25 98.7% 73.5% / 0.206)', + '--colors-brownA7': 'hsl(25 99% 74.6% / 0.289)', + '--colors-brownA8': 'hsl(28 99.2% 75.3% / 0.407)', + '--colors-brownA9': 'hsl(28 100% 74.8% / 0.642)', + '--colors-brownA10': 'hsl(28 99.9% 74.9% / 0.712)', + '--colors-brownA11': 'hsl(28 99.9% 74.9% / 0.843)', + '--colors-brownA12': 'hsl(32 98.2% 95.7% / 0.979)', + '--colors-bronzeA1': 'hsl(0 0% 0% / 0)', + '--colors-bronzeA2': 'hsl(20 88.2% 74.2% / 0.027)', + '--colors-bronzeA3': 'hsl(10 99.4% 83% / 0.074)', + '--colors-bronzeA4': 'hsl(18 96% 81.1% / 0.114)', + '--colors-bronzeA5': 'hsl(18 99.4% 81.7% / 0.148)', + '--colors-bronzeA6': 'hsl(15 98.1% 82.4% / 0.192)', + '--colors-bronzeA7': 'hsl(16 99.2% 82.9% / 0.27)', + '--colors-bronzeA8': 'hsl(18 99.5% 82.6% / 0.396)', + '--colors-bronzeA9': 'hsl(18 99.3% 85% / 0.592)', + '--colors-bronzeA10': 'hsl(18 99.6% 85.2% / 0.657)', + '--colors-bronzeA11': 'hsl(17 99.9% 86.1% / 0.774)', + '--colors-bronzeA12': 'hsl(20 99.8% 96.4% / 0.974)', + '--colors-goldA1': 'hsl(0 0% 0% / 0)', + '--colors-goldA2': 'hsl(40 93.7% 70.6% / 0.022)', + '--colors-goldA3': 'hsl(40 97.5% 80.6% / 0.065)', + '--colors-goldA4': 'hsl(40 95.9% 80.8% / 0.1)', + '--colors-goldA5': 'hsl(38 97.3% 82.1% / 0.13)', + '--colors-goldA6': 'hsl(39 97.2% 82.5% / 0.169)', + '--colors-goldA7': 'hsl(37 99.3% 82.4% / 0.246)', + '--colors-goldA8': 'hsl(35 98.7% 82.2% / 0.363)', + '--colors-goldA9': 'hsl(36 99.7% 82.8% / 0.552)', + '--colors-goldA10': 'hsl(35 99.2% 83.7% / 0.613)', + '--colors-goldA11': 'hsl(35 99.3% 85.3% / 0.725)', + '--colors-goldA12': 'hsl(49 98.6% 96.7% / 0.966)', +} diff --git a/packages/ui/src/components/Accordion/Accordion.module.css b/packages/ui/src/components/Accordion/Accordion.module.css new file mode 100644 index 00000000000..06c6163983b --- /dev/null +++ b/packages/ui/src/components/Accordion/Accordion.module.css @@ -0,0 +1,72 @@ +/* .sbui-accordion-container { + @apply flex flex-col rounded-md; +} + +.sbui-accordion-container--bordered { + @apply border border-solid; + @apply bg-white border-gray-200; + @apply dark:bg-dark-700 dark:border-darkmode; +} */ + +/* .sbui-accordion-item { + @apply w-full; +} */ + +/* .sbui-accordion-item__button { + @apply flex justify-between w-full text-left cursor-pointer px-6 py-4 border-0 border-solid font-medium text-base rounded-t-md bg-transparent; + + @apply border-gray-200 text-gray-500 hover:text-gray-600; + @apply dark:border-darkmode dark:text-dark-200 dark:hover:text-white; + + font-family: inherit; + font-weight: inherit; +} */ + +/* .sbui-accordion-item__button .sbui-typography-text { + @apply w-full max-w-none; +} */ + +/* .sbui-accordion-item__button .sbui-typography-text:last-child { + @apply pl-2; +} */ + +/* .sbui-accordion-item__button .sbui-icon { + @apply mt-px; +} */ + +/* .sbui-accordion-item__button--open .sbui-icon { + @apply transform rotate-180; +} */ +/* +.sbui-accordion-container--bordered + .sbui-accordion-item__button:not(:first-child) { + @apply rounded-none border-t border-gray-200 dark:border-darkmode; +} */ + +/* .sbui-accordion-item__panel { + @apply px-6 py-4; +} */ + +/* .sbui-accordion-item__panel--enter { + @apply transition-max-height ease-in-out duration-700 overflow-hidden; +} + +.sbui-accordion-item__panel--enterFrom { + @apply max-h-0; +} + +.sbui-accordion-item__panel--enterTo { + @apply max-h-screen; +} + +.sbui-accordion-item__panel--leave { + @apply transition-max-height ease-in-out duration-300 overflow-hidden; +} + +.sbui-accordion-item__panel--leaveFrom { + @apply max-h-screen; +} + +.sbui-accordion-item__panel--leaveTo { + @apply max-h-0; +} */ diff --git a/packages/ui/src/components/Accordion/Accordion.stories.tsx b/packages/ui/src/components/Accordion/Accordion.stories.tsx new file mode 100644 index 00000000000..4dcc3d56483 --- /dev/null +++ b/packages/ui/src/components/Accordion/Accordion.stories.tsx @@ -0,0 +1,201 @@ +import React from 'react' + +import { Accordion } from '.' +import { Typography } from '../Typography' +import { IconArrowUp } from '../Icon/icons/IconArrowUp' +import { Badge } from '../Badge' + +export default { + title: 'Displays/Accordion', + component: Accordion, +} + +export const OneItem = (args: any) => ( + + + + Title of the thing + + Test badge + + } + id="first" + > + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur + amet labore. + + + +) + +export const MultipleItems = (args: any) => ( + + + Title of the thing + + } + id={'1'} + > + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur + amet labore. + + + + Title of the thing + + } + id={'2'} + > + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur + amet labore. + + + + Title of the thing + + } + id={'3'} + > + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur + amet labore. + + + + Title of the thing + + } + id={'4'} + > + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur + amet labore. + + + +) + +export const Bordered = (args: any) => ( + + + Title of the thing + + } + id={'1'} + > + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur + amet labore. + + + + Title of the thing + + } + id={'2'} + > + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur + amet labore. + + + + Title of the thing + + } + id={'3'} + > + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur + amet labore. + + + + Title of the thing + + } + id={'4'} + > + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur + amet labore. + + + +) + +Bordered.args = { + type: 'bordered', +} + +export const LeftAlignedChevron = (args: any) => ( + + + + First item + + Test badge + + } + id="first" + > + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur + amet labore. + + + + + Second item + + + } + id="second" + > + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur + amet labore. + + + +) + +// export const withDefaultActive = Multiple.bind({}) +// withDefaultActive.args = { +// defaultActiveId: [1], +// } + +// export const withIconLeft = Multiple.bind({}) +// withIconLeft.args = { +// iconPosition: 'left', +// } + +// export const withCustomIcon = Multiple.bind({}) +// withCustomIcon.args = { +// icon: , +// } diff --git a/packages/ui/src/components/Accordion/Accordion.tsx b/packages/ui/src/components/Accordion/Accordion.tsx new file mode 100644 index 00000000000..3b40089684a --- /dev/null +++ b/packages/ui/src/components/Accordion/Accordion.tsx @@ -0,0 +1,152 @@ +import React, { createContext, useContext, useState } from 'react' + +import { IconChevronUp } from '../Icon/icons/IconChevronUp' +import styleHandler from '../../lib/theme/styleHandler' + +import * as RadixAccordion from '@radix-ui/react-accordion' +import { IconChevronDown } from '../Icon/icons/IconChevronDown' +import { Transition } from '@headlessui/react' + +// type ContextValue = Required< +// Pick +// > & +// Pick + +type Type = 'default' | 'bordered' +type Size = 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' +type Align = 'left' | 'right' + +interface ContextValue { + bordered?: boolean + type: Type + justified: Boolean + chevronAlign: Align + // currentItems: string[] +} + +const AccordionContext = createContext({ + chevronAlign: 'left', + justified: true, + type: 'default', + // currentItems: [], +}) + +interface AccordionProps { + children?: React.ReactNode + className?: string + defaultActiveId?: (string | number)[] + icon?: React.ReactNode + iconPosition?: Align + bordered: boolean + onChange?: (item: string | string[]) => void + openBehaviour: 'single' | 'multiple' + type: Type + size: Size + defaultValue?: string | string[] | undefined + justified: Boolean + chevronAlign: Align +} + +function Accordion({ + children, + className, + defaultActiveId = [], + icon = , + iconPosition = 'right', + onChange, + openBehaviour = 'multiple', + type = 'default', + // size, // TO DO + defaultValue = undefined, + justified = true, + chevronAlign, +}: AccordionProps) { + // const [currentItems, setCurrentItems] = useState(defaultValue || []) + + const __styles = styleHandler('accordion') + + let containerClasses = [__styles.variants[type].base] + + if (className) { + containerClasses.push(className) + } + + // let currentItems = defaultValue || [] + + const contextValue = { + chevronAlign, + justified, + type, + defaultValue, + } + + function handleOnChange(e: string | string[]) { + if (onChange) onChange(e) + const value = e == typeof String ? e.split(' ') : e + // setCurrentItems(e) + console.log('about to change state') + // currentItems = e + // console.log('currentItems', currentItems) + } + + return ( + <> + {/* @ts-ignore */} + +
{children}
+ + } + >
+ + ) +} + +interface ItemProps { + children?: React.ReactNode + className?: string + header: React.ReactNode + id: string + icon?: React.ReactNode +} + +export function Item({ children, className, header, id, icon }: ItemProps) { + const __styles = styleHandler('accordion') + // const [open, setOpen] = useState(false) + + const { + type, + justified, + chevronAlign, + // currentItems, + // defaultActiveId, iconPosition, onChange + } = useContext(AccordionContext) + + let triggerClasses = [__styles.variants[type].trigger] + if (justified) triggerClasses.push(__styles.justified) + if (className) triggerClasses.push(className) + + let chevronClasses = [__styles.chevron.base, __styles.chevron.align[chevronAlign]] + + // console.log('currentItems', currentItems) + + return ( + + + {header} + + + +
{children}
+
+
+ ) +} + +Accordion.Item = Item +export default Accordion diff --git a/packages/ui/src/components/Accordion/index.tsx b/packages/ui/src/components/Accordion/index.tsx new file mode 100644 index 00000000000..971fd8afcd7 --- /dev/null +++ b/packages/ui/src/components/Accordion/index.tsx @@ -0,0 +1 @@ +export { default as Accordion } from './Accordion' diff --git a/packages/ui/src/components/Alert/Alert.module.css b/packages/ui/src/components/Alert/Alert.module.css new file mode 100644 index 00000000000..4a061f9123c --- /dev/null +++ b/packages/ui/src/components/Alert/Alert.module.css @@ -0,0 +1,63 @@ +/* .sbui-alert-container { + @apply rounded-md p-4; +} + +.sbui-alert-container--danger { + @apply bg-red-600 bg-opacity-10 text-red-600; +} + +.sbui-alert-container--warning { + @apply bg-yellow-600 bg-opacity-10 text-yellow-600; +} + +.sbui-alert-container--info { + @apply bg-blue-600 bg-opacity-10 text-blue-600; +} + +.sbui-alert-container--success { + @apply bg-green-600 bg-opacity-10 text-green-600; +} */ + +/* .sbui-alert-title { + @apply m-0 text-sm font-medium; +} + +.sbui-alert-description { + @apply mt-2 text-sm; +} + +.sbui-alert-description--danger { + @apply text-red-500; +} + +.sbui-alert-description--warning { + @apply text-yellow-500; +} + +.sbui-alert-description--info { + @apply text-blue-500; +} + +.sbui-alert-description--success { + @apply text-green-500; +} + +.sbui-close-button { + @apply cursor-pointer inline-flex transition ease-in-out duration-200 bg-transparent border-transparent rounded-md p-1.5 focus:outline-none; +} + +.sbui-close-button--success { + @apply text-green-500 hover:bg-green-600 hover:bg-opacity-10; +} + +.sbui-close-button--danger { + @apply text-red-500 hover:bg-red-600 hover:bg-opacity-10; +} + +.sbui-close-button--warning { + @apply text-yellow-500 hover:bg-yellow-600 hover:bg-opacity-10; +} + +.sbui-close-button--info { + @apply text-blue-500 hover:bg-blue-600 hover:bg-opacity-10; +} */ diff --git a/packages/ui/src/components/Alert/Alert.stories.tsx b/packages/ui/src/components/Alert/Alert.stories.tsx new file mode 100644 index 00000000000..a38962de054 --- /dev/null +++ b/packages/ui/src/components/Alert/Alert.stories.tsx @@ -0,0 +1,137 @@ +import React from 'react' + +import { Alert } from './../../../' + +// import ThemeProvider from '../../theme/themeContext' + +export default { + title: 'Displays/Alerts', + component: Alert, +} + +export const Neutral = (args: any) => ( + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore. + +) + +export const Success = (args: any) => ( + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore. + +) + +export const SuccessWithIcon = (args: any) => ( + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore. + +) + +export const Danger = (args: any) => ( + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore. + +) + +export const DangerWithIcon = (args: any) => ( + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore. + +) + +export const Info = (args: any) => ( + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore. + +) + +export const InfoWithIcon = (args: any) => ( + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore. + +) + +export const Warning = (args: any) => ( + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore. + +) + +export const WarningWithIcon = (args: any) => ( + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore. + +) + +export const Closable = (args: any) => ( + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore. + +) + +export const WithAction = (args: any) => ( + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore. + +) + +Neutral.args = { + title: 'Success alert with icon', + withIcon: true, +} + +Success.args = { + title: 'Success alert', + variant: 'success', +} + +SuccessWithIcon.args = { + title: 'Success alert with icon', + variant: 'success', + withIcon: true, +} + +Danger.args = { + title: 'Danger alert', + variant: 'danger', +} + +DangerWithIcon.args = { + title: 'Danger alert with icon', + variant: 'danger', + withIcon: true, +} + +Info.args = { + title: 'Info alert', + variant: 'info', +} + +InfoWithIcon.args = { + title: 'Info alert with icon', + variant: 'info', + withIcon: true, +} + +Warning.args = { + title: 'Warning alert', + variant: 'warning', +} + +WarningWithIcon.args = { + title: 'Warning alert with icon', + variant: 'warning', + withIcon: true, +} + +Closable.args = { + title: 'Closable alert', + closable: true, +} + +WithAction.args = { + title: 'Alert with action', + variant: 'warning', + withIcon: true, + actions:
Hello
, +} diff --git a/packages/ui/src/components/Alert/Alert.test.js b/packages/ui/src/components/Alert/Alert.test.js new file mode 100644 index 00000000000..e6fdee11169 --- /dev/null +++ b/packages/ui/src/components/Alert/Alert.test.js @@ -0,0 +1,67 @@ +import { fireEvent, render, screen } from '@testing-library/react' +import Alert from './Alert' + +const VARIANTS = ['success', 'danger', 'warning', 'info'] + +describe('#Alert', () => { + it('should render elements correctly', () => { + render({'Description'}) + expect(screen.queryByText('Required Title')).toBeInTheDocument() + expect(screen.queryByText('Description')).toBeInTheDocument() + }) + + it('should add custom classes to container div', () => { + const { container } = render( + + {'Description'} + + ) + expect(container.querySelector('div')).toHaveClass( + `sbui-alert-container sbui-alert-container--success custom classes` + ) + }) + + it('should close alert when close button clicked', () => { + render( + + {'Description'} + + ) + + const closeButton = screen.getByRole('button') + + fireEvent.click(closeButton) + + expect(screen.queryByText('Description')).not.toBeInTheDocument() + }) + + it('should render an icon when passed withIcon', () => { + const { container } = render( + + {'Description'} + + ) + + expect( + container.querySelector('div.flex-shrink-0 > svg') + ).toBeInTheDocument() + }) + + it.each(VARIANTS)( + 'should have "sbui-alert-[container|description]--%s" class', + (variant) => { + const { container } = render( + + {'Description'} + + ) + + expect(container.querySelector('div')).toHaveClass( + `sbui-alert-container sbui-alert-container--${variant}` + ) + expect(screen.queryByText('Description')).toHaveClass( + `sbui-alert-description sbui-alert-description--${variant}` + ) + } + ) +}) diff --git a/packages/ui/src/components/Alert/Alert.tsx b/packages/ui/src/components/Alert/Alert.tsx new file mode 100644 index 00000000000..d5736e07a82 --- /dev/null +++ b/packages/ui/src/components/Alert/Alert.tsx @@ -0,0 +1,99 @@ +import React, { useState } from 'react' +import { IconAlertTriangle } from '../Icon/icons/IconAlertTriangle' + +import { IconInfo } from '../Icon/icons/IconInfo' +import { IconX } from '../Icon/icons/IconX' + +// @ts-ignore +// import AlertStyles from './Alert.module.css' +import styleHandler from '../../lib/theme/styleHandler' +import { IconAlertOctagon } from '../Icon/icons/IconAlertOctagon' +import { IconCheckCircle } from '../Icon/icons/IconCheckCircle' + +interface Props { + variant?: 'success' | 'danger' | 'warning' | 'info' | 'neutral' + className?: string + title: string + withIcon?: boolean + closable?: boolean + children?: React.ReactNode + icon?: React.ReactNode + actions?: React.ReactNode +} + +const icons: Record< + 'success' | 'danger' | 'warning' | 'info' | 'neutral', + React.ReactElement +> = { + danger: , + success: , + warning: , + info: , + neutral: <>, +} + +function Alert({ + variant = 'neutral', + className, + title, + withIcon, + closable, + children, + icon, + actions, +}: Props) { + let __styles = styleHandler('alert') + + const [visible, setVisible] = useState(true) + + let containerClasses = [__styles.base] + containerClasses.push(__styles.variant[variant].base) + + if (className) containerClasses.push(className) + + let descriptionClasses = [ + __styles.description, + __styles.variant[variant].description, + ] + let closeButtonClasses = [__styles.close] + + return ( + <> + {visible && ( +
+ {withIcon ? ( +
+ {withIcon && icons[variant]} +
+ ) : null} + {icon && icon} +
+
+

+ {title} +

+
{children}
+
+ {actions} +
+ {closable && ( + + )} +
+ )} + + ) +} + +export default Alert diff --git a/packages/ui/src/components/Alert/index.tsx b/packages/ui/src/components/Alert/index.tsx new file mode 100644 index 00000000000..fd2a1266021 --- /dev/null +++ b/packages/ui/src/components/Alert/index.tsx @@ -0,0 +1 @@ +export { default as Alert } from './Alert' diff --git a/packages/ui/src/components/Avatar/Avatar.module.css b/packages/ui/src/components/Avatar/Avatar.module.css new file mode 100644 index 00000000000..652b2bd74c2 --- /dev/null +++ b/packages/ui/src/components/Avatar/Avatar.module.css @@ -0,0 +1,65 @@ +.sbui-avatar { + @apply rounded-full; +} + +.sbui-avatar-type-rounded { + border-radius: 10%; +} + +.sbui-avatar-type-square { + border-radius: 0; +} + +.sbui-avatar-image { + object-fit: 'contain'; + border-radius: '50%'; + height: 3rem; + width: 3rem; +} + +.sbui-avatar-children { + @apply flex; + @apply justify-center; + @apply items-center +} + +.sbui-avatar-icon { + @apply flex; + @apply justify-center; + @apply items-center; + background-color: cadetblue; + height: 3rem; + width: 3rem; +} + +.sbui-avatar-text { + @apply flex; + @apply justify-center; + @apply items-center; + background-color: cadetblue; + float: left; + height: 3rem; + width: 3rem; +} + +.sbui-avatar-fallback { + @apply flex; + @apply justify-center; + @apply items-center; + background-color: cadetblue; + height: 3rem; + width: 3rem; +} + +.sbui-avatar-single { + +} + +.sbui-avatar-multiple { + +} + +.sbui-image-responsive { + width: 100%; + height: auto; +} diff --git a/packages/ui/src/components/Avatar/Avatar.stories.tsx b/packages/ui/src/components/Avatar/Avatar.stories.tsx new file mode 100644 index 00000000000..95d28cdbb8c --- /dev/null +++ b/packages/ui/src/components/Avatar/Avatar.stories.tsx @@ -0,0 +1,60 @@ +import React from 'react' +import { IconAirplay } from '../Icon/icons/IconAirplay' + +import Avatar from './Avatar' + +export default { + title: 'General/Avatar', + component: Avatar, +} + +export const Image = (args: any) => { + return ( + <> + + + ) +} + +export const Text = (args: any) => { + return ( + <> + + + ) +} + +export const Icon = (args: any) => { + return ( + <> + + + ) +} + +export const Fallback = (args: any) => { + return ( + <> + + + ) +} + +Image.args = { + active: true, + src: 'https://via.placeholder.com/150', +} + +Text.args = { + active: true, + text: 'Shoury', +} + +Icon.args = { + active: true, + Icon: IconAirplay, +} + +Fallback.args = { + active: true, +} diff --git a/packages/ui/src/components/Avatar/Avatar.tsx b/packages/ui/src/components/Avatar/Avatar.tsx new file mode 100644 index 00000000000..2c8714f8529 --- /dev/null +++ b/packages/ui/src/components/Avatar/Avatar.tsx @@ -0,0 +1,104 @@ +import React from 'react' +import { Icon } from '../Icon/IconImportHandler' +import { IconUser } from '../Icon/icons/IconUser' +// @ts-ignore +import AvatarStyles from './Avatar.module.css' + +interface Props { + children?: React.ReactNode + src?: string | undefined + style?: React.CSSProperties + className?: string + alt?: string + responsive?: boolean + text?: string + variant?: 'circle' | 'square' + AvatarIcon?: Icon + size: number +} + +export default function Avatar({ + src, + style, + className, + alt, + responsive, + text, + variant, + AvatarIcon, + size, + children, +}: Props) { + const classes = [AvatarStyles['sbui-avatar']] + classes.push(className) + let objectToRender + + const imageExist = () => { + const img = new Image() + img.src = src + if (img.complete) { + return true + } else { + img.onload = () => { + return true + } + img.onerror = () => { + return false + } + } + } + + if (imageExist && src) { + classes.push(AvatarStyles['sbui-avatar-image']) + objectToRender = ( + {alt} + ) + } else if (AvatarIcon) { + classes.push(AvatarStyles['sbui-avatar-icon']) + objectToRender = ( +
+ +
+ ) + } else if (text) { + classes.push(AvatarStyles['sbui-avatar-text']) + objectToRender = ( +
+

{text[0]}

+
+ ) + } else if (children) { + classes.push(AvatarStyles['sbui-avatar-children']) + objectToRender = ( +
+ {children} +
+ ) + } else { + classes.push(AvatarStyles['sbui-avatar-fallback']) + objectToRender = ( +
+ +
+ ) + } + + return <>{objectToRender} +} diff --git a/packages/ui/src/components/Avatar/index.tsx b/packages/ui/src/components/Avatar/index.tsx new file mode 100644 index 00000000000..6383d3a6c94 --- /dev/null +++ b/packages/ui/src/components/Avatar/index.tsx @@ -0,0 +1 @@ +export { default as Image } from './Avatar' diff --git a/packages/ui/src/components/Badge/Badge.module.css b/packages/ui/src/components/Badge/Badge.module.css new file mode 100644 index 00000000000..38c8ed21ddf --- /dev/null +++ b/packages/ui/src/components/Badge/Badge.module.css @@ -0,0 +1,43 @@ +/* .sbui-badge { + @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-500 bg-opacity-10 text-brand-800; +} + +.sbui-badge--large { + @apply px-3 py-0.5 rounded-full text-sm; +} + +.sbui-badge-dot { + @apply -ml-0.5 mr-1.5 h-2 w-2; +} + +.sbui-badge--gray { + @apply bg-gray-600 bg-opacity-10 text-gray-500; +} + +.sbui-badge--red { + @apply bg-red-600 bg-opacity-10 text-red-500; +} + +.sbui-badge--yellow { + @apply bg-yellow-600 bg-opacity-10 text-yellow-500; +} + +.sbui-badge--green { + @apply bg-green-600 bg-opacity-10 text-green-500; +} + +.sbui-badge--blue { + @apply bg-blue-600 bg-opacity-10 text-blue-500; +} + +.sbui-badge--indigo { + @apply bg-indigo-600 bg-opacity-10 text-indigo-500; +} + +.sbui-badge--purple { + @apply bg-purple-600 bg-opacity-10 text-purple-500; +} + +.sbui-badge--pink { + @apply bg-pink-600 bg-opacity-10 text-pink-500; +} */ diff --git a/packages/ui/src/components/Badge/Badge.stories.tsx b/packages/ui/src/components/Badge/Badge.stories.tsx new file mode 100644 index 00000000000..d27bcd12adc --- /dev/null +++ b/packages/ui/src/components/Badge/Badge.stories.tsx @@ -0,0 +1,98 @@ +import { Badge } from './' + +export default { + title: 'Displays/Badge', + component: Badge, +} + +const colors = [ + 'brand', + 'scale', + 'tomato', + 'red', + 'crimson', + 'pink', + 'plum', + 'purple', + 'violet', + 'indigo', + 'blue', + 'cyan', + 'teal', + 'green', + 'grass', + 'brown', + 'orange', + 'sky', + 'mint', + 'lime', + 'yellow', + 'amber', + 'gold', + 'bronze', + 'gray', + 'mauve', + 'slate', + 'sage', + 'olive', + 'sand', +] + +const sizes: string[] = ['small', 'large'] + +export const Default = (args: any) => Hello world + +export const withColor = (args: any) => Hello world + +export const withDot = (args: any) => Hello world + +export const large = (args: any) => Hello world + +export const withDotLarge = (args: any) => Hello world + +export const withCustomClassNames = (args: any) => ( + Hello world +) + +export const allBadges = () => ( + <> +
+ {sizes.map((size, sizeIndex) => ( + <> +

{size}

+
+ {colors.map((x, colorIndex) => ( + // @ts-ignore + + Supabase + + ))} +
+ + ))} +
+ +) + +Default.args = {} + +withColor.args = { + color: 'red', +} + +withDot.args = { + dot: true, +} + +large.args = { + size: 'large', +} + +withDotLarge.args = { + size: 'large', + dot: true, +} + +withCustomClassNames.args = { + className: 'border-teal-100 border-2' +} diff --git a/packages/ui/src/components/Badge/Badge.test.js b/packages/ui/src/components/Badge/Badge.test.js new file mode 100644 index 00000000000..9877cee4f60 --- /dev/null +++ b/packages/ui/src/components/Badge/Badge.test.js @@ -0,0 +1,55 @@ +import React from 'react' +import { render, screen } from '@testing-library/react' +import Badge from './Badge' + +const SIZES = ['small', 'large'] +const COLORS = [ + 'gray', + 'red', + 'yellow', + 'green', + 'blue', + 'indigo', + 'purple', + 'pink' +] + +describe('#Badge', () => { + it('should render component correctly', () => { + const wrapper = render(Badge) + expect(screen.getByText('Badge')).toBeInTheDocument() + expect(() => wrapper.unmount()).not.toThrow() + }) + + it('should render different text', () => { + const wrapper = render(Badge) + expect(screen.getByText('Badge')).toBeInTheDocument() + wrapper.rerender(徽章) + expect(screen.getByText('徽章')).toBeInTheDocument() + }) + + it('should render with dot', () => { + const wrapper = render(Badge) + expect(screen.getByText('Badge')).toBeInTheDocument() + expect(() => wrapper.unmount()).not.toThrow() + }) + + it.each(COLORS)('should have %s color', (color) => { + render({color}) + expect(screen.getByText(color)).toHaveClass( + `sbui-badge sbui-badge--${color}` + ) + }) + + it.each(SIZES)('should render with %s size', (size) => { + render({size}) + expect(screen.getByText(size)).toHaveClass( + `sbui-badge ${size === 'large' ? 'sbui-badge--large' : ''}` + ) + }) + + it('should render with Classes',()=>{ + render(Badge) + expect(screen.getByText('Badge')).toHaveClass('border-2') + }) +}) diff --git a/packages/ui/src/components/Badge/Badge.tsx b/packages/ui/src/components/Badge/Badge.tsx new file mode 100644 index 00000000000..39f2d26318b --- /dev/null +++ b/packages/ui/src/components/Badge/Badge.tsx @@ -0,0 +1,71 @@ +import styleHandler from '../../lib/theme/styleHandler' + +interface Props { + color?: + | 'brand' + | 'scale' + | 'tomato' + | 'red' + | 'crimson' + | 'pink' + | 'plum' + | 'purple' + | 'violet' + | 'indigo' + | 'blue' + | 'cyan' + | 'teal' + | 'green' + | 'grass' + | 'brown' + | 'orange' + | 'sky' + | 'mint' + | 'lime' + | 'yellow' + | 'amber' + | 'gold' + | 'bronze' + | 'gray' + | 'mauve' + | 'slate' + | 'sage' + | 'olive' + | 'sand' + children: string | React.ReactNode + size?: 'large' | 'small' + dot?: boolean + className?: string +} + +function Badge({ color = 'brand', children, size, dot, className }: Props) { + const __styles = styleHandler('badge') + + let classes = [__styles.base] + if (color) { + classes.push(__styles.color[color]) + } + if (size === 'large') { + classes.push(__styles.size.large) + } + if (className) { + classes.push(className) + } + + return ( + + {dot && ( + + + + )} + + {children} + + ) +} +export default Badge diff --git a/packages/ui/src/components/Badge/index.tsx b/packages/ui/src/components/Badge/index.tsx new file mode 100644 index 00000000000..e69f9906a73 --- /dev/null +++ b/packages/ui/src/components/Badge/index.tsx @@ -0,0 +1 @@ +export { default as Badge } from './Badge' diff --git a/packages/ui/src/components/Breadcrumb/Breadcrumb.module.css b/packages/ui/src/components/Breadcrumb/Breadcrumb.module.css new file mode 100644 index 00000000000..60a6ec4e374 --- /dev/null +++ b/packages/ui/src/components/Breadcrumb/Breadcrumb.module.css @@ -0,0 +1,34 @@ +.sbui-breadcrumb--container { + @apply flex flex-row items-center; + @apply p-0 my-0; +} + +.sbui-breadcrumb--item-container { + @apply flex items-center; +} + +.sbui-breadcrumb--item { + @apply text-gray-500 hover:text-gray-600; + @apply cursor-pointer; + @apply dark:text-dark-200 dark:hover:text-brand-700; +} + +.sbui-breadcrumb--item__active { + @apply text-brand-700 dark:text-brand-700; +} + +.sbui-breadcrumb--separator { + @apply mx-2; + @apply text-gray-500 hover:text-gray-600; + @apply dark:text-dark-200 dark:hover:text-white; +} + +.sbui-breadcrumb--separator-small { + @apply mx-2; +} +.sbui-breadcrumb--separator-medium { + @apply mx-4; +} +.sbui-breadcrumb--separator-large { + @apply mx-6; +} diff --git a/packages/ui/src/components/Breadcrumb/Breadcrumb.stories.tsx b/packages/ui/src/components/Breadcrumb/Breadcrumb.stories.tsx new file mode 100644 index 00000000000..681539b05b7 --- /dev/null +++ b/packages/ui/src/components/Breadcrumb/Breadcrumb.stories.tsx @@ -0,0 +1,18 @@ +import React from 'react' +import { Breadcrumb } from './../../../' + +export default { + title: 'Navigation/Breadcrumb', + component: Breadcrumb, +} + +export const Default = ({ children, ...args }: any) => {children} + +Default.args = { + children: [ + Brothers, + Grimm, + Hansel, + Gretel, + ], +} diff --git a/packages/ui/src/components/Breadcrumb/Breadcrumb.test.js b/packages/ui/src/components/Breadcrumb/Breadcrumb.test.js new file mode 100644 index 00000000000..2f5646af7e2 --- /dev/null +++ b/packages/ui/src/components/Breadcrumb/Breadcrumb.test.js @@ -0,0 +1,25 @@ +import React from from 'react'; +import { render, screen } from '@testing-library/react'; +import Breadcrumb from './Breadcrumb'; + +describe('#Breadcrumb', () => { + it('should render breadcrumb correctly', async () => { + render( + +

Item 1

+

Item 2

+
+ ) + expect(screen.queryByTestId('breadcrumb')).toBeInTheDocument() + }) + + it('should have "breadcrumb--item" class', () => { + render( + +

Item 1

+

Item 2

+
+ ) + expect(screen.queryByTestId('breadcrumb')).toHaveClass('.sbui-breadcrumb--item ') + }) +}) diff --git a/packages/ui/src/components/Breadcrumb/Breadcrumb.tsx b/packages/ui/src/components/Breadcrumb/Breadcrumb.tsx new file mode 100644 index 00000000000..6b32edf834b --- /dev/null +++ b/packages/ui/src/components/Breadcrumb/Breadcrumb.tsx @@ -0,0 +1,62 @@ +import { IconChevronRight } from '../Icon/icons/IconChevronRight' +// @ts-ignore +import BreadcrumbStyle from './Breadcrumb.module.css' + +interface Props { + children?: [React.ReactNode] + className?: string + style?: React.CSSProperties + spacing?: 'small' | 'medium' | 'large' +} + +const Breadcrumb = ({ className, style, children, spacing = 'small' }: Props) => { + let classes = [BreadcrumbStyle['sbui-breadcrumb--container']] + let seperatorClasses = [BreadcrumbStyle['sbui-breadcrumb--separator']] + + if (className) { + classes.push(className) + } + + if (spacing) { + seperatorClasses.push(`sbui-breadcrumb--separator-${spacing}`) + } + + return ( +
    + {children!.map((child: React.ReactNode, idx: number) => ( +
  1. + {child} + {idx + 1 < children!.length && ( +
  2. + ))} +
+ ) +} + +interface ItemProps { + children: React.ReactNode + active?: boolean + onClick?: any + style?: React.CSSProperties +} + +export function Item({ children, active, onClick, style }: ItemProps) { + let classes = [BreadcrumbStyle['sbui-breadcrumb--item']] + if (active) classes.push(BreadcrumbStyle['sbui-breadcrumb--item__active']) + return ( + + {children} + + ) +} + +Breadcrumb.Item = Item + +export default Breadcrumb diff --git a/packages/ui/src/components/Breadcrumb/index.tsx b/packages/ui/src/components/Breadcrumb/index.tsx new file mode 100644 index 00000000000..29b136a967f --- /dev/null +++ b/packages/ui/src/components/Breadcrumb/index.tsx @@ -0,0 +1 @@ +export { default as Breadcrumb } from './Breadcrumb' diff --git a/packages/ui/src/components/Button/Button.module.css b/packages/ui/src/components/Button/Button.module.css new file mode 100644 index 00000000000..8c4d9b48a9a --- /dev/null +++ b/packages/ui/src/components/Button/Button.module.css @@ -0,0 +1,156 @@ +/* .sbui-btn-container { + @apply inline-flex font-medium; +} */ + +/* .sbui-btn { + @apply relative cursor-pointer inline-flex items-center space-x-2 text-center border border-solid border-transparent transition ease-out duration-200 outline-none; + @apply rounded; + font-family: inherit; + font-weight: inherit; +} */ + +/* .sbui-btn:focus { + @apply outline-none; +} */ + +/* .sbui-btn-container--shadow { + box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045); +} */ + +/* .sbui-btn--w-full { + @apply w-full flex items-center justify-center; +} */ + +/* .sbui-btn:disabled { + @apply opacity-75 cursor-not-allowed; + pointer-events: none; +} */ + +/* + Button sizes +*/ + +.sbui-btn--tiny { + @apply px-2.5 py-1.5 text-xs; +} +.sbui-btn--small { + @apply px-3 py-2 text-sm leading-4; +} +.sbui-btn--medium { + @apply px-4 py-2 text-sm; +} +.sbui-btn--large { + @apply px-4 py-2 text-base; +} +.sbui-btn--xlarge { + @apply px-6 py-3 text-base; +} + +/* + Button varients +*/ +/* .sbui-btn-primary { + @apply text-white bg-brand-800 hover:bg-brand-600; + @apply dark:hover:bg-brand-900; +} */ +.dark .sbui-btn-primary { + text-shadow: 0px 0px 4px rgba(38 111 78 / 50%); +} + +/* .sbui-btn-default { + @apply text-gray-500 bg-white border-gray-200 hover:text-gray-600; + @apply hover:bg-white hover:border-gray-200; + + @apply dark:border-gray-600 dark:bg-gray-600 dark:text-dark-200; + @apply dark:hover:bg-gray-700; +} */ +.dark .sbui-btn-default { + text-shadow: 0px 0px 4px rgba(31 31 31 / 50%); +} +/* +.sbui-btn-secondary { + @apply text-gray-600 bg-gray-200; + @apply hover:text-gray-700 hover:bg-gray-300; + + @apply dark:text-gray-300 dark:bg-gray-500; + @apply dark:hover:bg-gray-600; +} */ +.dark .sbui-btn-secondary { + text-shadow: 0px 0px 4px rgba(42 42 42 / 50%); +} + +/* .sbui-btn-outline { + @apply border text-gray-500 bg-transparent border-gray-200 border-solid hover:bg-white hover:text-gray-600 hover:border-gray-600 dark:text-white dark:border-dark-400 dark:hover:text-dark-600 dark:hover:border-white; +} */ +/* .sbui-btn-dashed { + @apply border text-gray-500 bg-transparent border-gray-200 border-dashed hover:text-gray-600 hover:border-gray-600; + @apply dark:text-white dark:border-dark-400 dark:hover:text-white dark:hover:border-white; +} */ +/* .sbui-btn-link { + @apply bg-transparent text-brand-800 border-none hover:bg-brand-900 hover:bg-opacity-25; + box-shadow: none; +} */ +/* .sbui-btn-text { + @apply text-gray-400 bg-transparent border-none hover:bg-gray-200 hover:bg-opacity-25; + @apply dark:text-dark-300 dark:hover:bg-dark-600; + box-shadow: none; +} */ + +/* .sbui-btn--danger { + @apply border-red-500 text-red-500; + @apply dark:border-red-500 dark:text-red-500; +} */ + +/* .dark .sbui-btn--danger { + text-shadow: 0px 0px 4px rgba(229, 62, 62 / 50%); +} + +.sbui-btn-primary.sbui-btn--danger { + @apply bg-red-500 text-white; + @apply hover:bg-red-600 hover:border-red-600; +} +.sbui-btn-default.sbui-btn--danger, +.sbui-btn-secondary.sbui-btn--danger, +.sbui-btn-outline.sbui-btn--danger, +.sbui-btn-dashed.sbui-btn--danger, +.sbui-btn-link.sbui-btn--danger, +.sbui-btn-text.sbui-btn--danger { + @apply hover:bg-red-600 hover:text-white hover:border-red-600; +} */ +/* { + @apply hover:bg-red-600 hover:text-white hover:border-red-600; +} */ + +/* + Animation for icon +*/ +/* .sbui-btn--anim--spin { + @apply animate-spin; +} */ + +/* @keyframes spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} */ + +/* .sbui-btn-loader--center { + position: absolute; + + top: 50%; + left: 50%; + right: 50%; + bottom: 50%; + transform: translate(-50%, -50%); + margin: auto 0; + + width: inherit; + height: inherit; +} + +.sbui-btn--text-fade-out span { + @apply opacity-0; +} */ diff --git a/packages/ui/src/components/Button/Button.stories.tsx b/packages/ui/src/components/Button/Button.stories.tsx new file mode 100644 index 00000000000..a65e2eefe74 --- /dev/null +++ b/packages/ui/src/components/Button/Button.stories.tsx @@ -0,0 +1,260 @@ +// import React, { useRef, useState } from 'react' +// import defaultTheme from '../../theme/defaultTheme' +// import { ThemeProvider } from './../ThemeProvider' +// import customThemeExample from '../../lib/theme/customThemeExample' + +import { useRef, useState } from 'react' +import { Button, IconPackage, IconChevronRight } from './../../index' + +export default { + title: 'General/Button', + component: Button, +} + +export const Default = (args: any) => +export const withStyles = (args: any) => +export const withIcon = (args: any) => +export const withIconRight = (args: any) => ( + +) +export const withBlock = (args: any) => +export const withOnlyIcon = (args: any) => +) +export const withRef = () => { + const buttonRef = useRef(null) + const [msg, setMsg] = useState('Click button to console.log Ref') + + function onClick() { + const message = `button:${buttonRef?.current} ` + setMsg(message) + // console.log(message) + } + + return ( + <> + + +

{msg}

+ + ) +} +export const allButtons = (args: any) => ( + <> +
+
+ + + + + + + + + + +
+ +
+ + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ + + + + + + + + + +
+
+ +) + +export const withCustomTag = (args: any) => ( + +) + +const icon = + +withIcon.args = { + type: 'primary', + icon: icon, +} + +withIconRight.args = { + type: 'primary', + iconRight: , +} + +withStyles.args = { + type: 'primary', + style: { backgroundColor: 'red', color: 'yellow' }, +} + +withBlock.args = { + type: 'primary', + block: true, +} + +withOnlyIcon.args = { + icon: icon, +} + +withOnlyLoading.args = { + loading: true, +} + +withLoadingCentered.args = { + loading: true, + loadingCentered: true, +} + +allButtons.args = { + loading: false, + danger: false, +} + +withCustomTag.args = { + as: 'span', +} diff --git a/packages/ui/src/components/Button/Button.test.js b/packages/ui/src/components/Button/Button.test.js new file mode 100644 index 00000000000..0b8dd6e4fe7 --- /dev/null +++ b/packages/ui/src/components/Button/Button.test.js @@ -0,0 +1,87 @@ +import React from 'react' +import { render, screen, fireEvent } from '@testing-library/react' +import Button from './Button' + +const SIZES = ['tiny', 'small', 'medium', 'large', 'xlarge'] +const TYPES = [ + 'primary', + 'default', + 'secondary', + 'outline', + 'dashed', + 'link', + 'text', +] + +describe('#Button', () => { + it('should render button correctly', () => { + const wrapper = render() + expect(wrapper.getByText('Button')).toBeInTheDocument() + expect(() => wrapper.unmount()).not.toThrow() + }) + + it('should render different text', () => { + const wrapper = render() + expect(screen.getByText('Button')).toBeInTheDocument() + wrapper.rerender() + expect(screen.getByText('按钮')).toBeInTheDocument() + }) + + it('should ignore events when disabled', () => { + const WrapperButton = () => { + const [state, setState] = React.useState('state1') + return ( + + ) + } + render() + expect(screen.getByText('state1')).toBeInTheDocument() + fireEvent.click(screen.getByText('state1')) + expect(screen.getByText('state1')).toBeInTheDocument() + expect(screen.queryByText('state2')).not.toBeInTheDocument() + }) + + it('should ignore events when loading', () => { + const WrapperButton = () => { + const [state, setState] = React.useState('state1') + return ( + + ) + } + render() + fireEvent.click(screen.getByText('state1')) + expect(screen.queryByText('state2')).not.toBeInTheDocument() + }) + + it('should have "w-full" class', async () => { + render() + expect(screen.queryByRole('button')).toHaveClass( + 'sbui-btn sbui-btn-primary sbui-btn--w-full sbui-btn-container--shadow sbui-btn--tiny' + ) + }) + + it.each(TYPES)('should have "btn--%s" class', (type) => { + render() + + if (type !== 'text' && type !== 'link') { + expect(screen.queryByRole('button')).toHaveClass( + `sbui-btn sbui-btn-${type} sbui-btn-container--shadow sbui-btn--tiny` + ) + } else { + expect(screen.queryByRole('button')).toHaveClass( + `sbui-btn sbui-btn-${type} sbui-btn--tiny` + ) + } + }) + + it.each(SIZES)('should have "btn--%s" class', (size) => { + render() + expect(screen.queryByRole('button')).toHaveClass( + `sbui-btn sbui-btn-primary sbui-btn-container--shadow sbui-btn--${size}` + ) + }) +}) diff --git a/packages/ui/src/components/Button/Button.tsx b/packages/ui/src/components/Button/Button.tsx new file mode 100644 index 00000000000..f6f8108405d --- /dev/null +++ b/packages/ui/src/components/Button/Button.tsx @@ -0,0 +1,171 @@ +import React, { forwardRef, useRef, useImperativeHandle } from 'react' +import { IconContext } from './../Icon/IconContext' +import { IconLoader } from './../Icon/icons/IconLoader' + +import styleHandler from '../../lib/theme/styleHandler' + +export interface ButtonProps extends React.HTMLAttributes { + block?: boolean + className?: string + children?: React.ReactNode + disabled?: boolean + onClick?: React.MouseEventHandler + icon?: React.ReactNode + iconRight?: React.ReactNode + loading?: boolean + loadingCentered?: boolean + shadow?: boolean + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' + style?: React.CSSProperties + type?: + | 'primary' + | 'default' + | 'secondary' + | 'alternative' + | 'outline' + | 'dashed' + | 'link' + | 'text' + | 'danger' + | 'warning' + danger?: boolean + htmlType?: 'button' | 'submit' | 'reset' + ref?: any + ariaSelected?: boolean + ariaControls?: string + tabIndex?: 0 | -1 + role?: string + textAlign?: 'left' | 'center' | 'right' + as?: keyof JSX.IntrinsicElements + form?: string +} + +interface CustomButtonProps extends React.HTMLAttributes {} + +interface RefHandle { + // container: () => HTMLElement | null + button: () => HTMLButtonElement | null +} + +export const Button = forwardRef( + ( + { + block, + className, + children, + danger, + disabled = false, + onClick, + icon, + iconRight, + loading = false, + loadingCentered = false, + shadow = true, + size = 'tiny', + style, + type = 'primary', + htmlType = 'button', + ariaSelected, + ariaControls, + tabIndex, + role, + as, + textAlign = 'center', + ...props + }: ButtonProps, + ref + ) => { + // button ref + // const containerRef = useRef(null) + const buttonRef = useRef(null) + + useImperativeHandle(ref, () => ({ + button: () => { + return buttonRef.current + }, + })) + + let __styles = styleHandler('button') + + // styles + const showIcon = loading || icon + + let classes = [__styles.base] + let containerClasses = [__styles.container] + + classes.push(__styles.type[type]) + + if (block) { + containerClasses.push(__styles.block) + classes.push(__styles.block) + } + + if (shadow && type !== 'link' && type !== 'text') { + classes.push(__styles.shadow) + } + + if (size) { + classes.push(__styles.size[size]) + } + + if (className) { + classes.push(className) + } + + if (disabled) { + classes.push(__styles.disabled) + } + + const iconLoaderClasses = [__styles.loading] + + // custom button tag + const CustomButton = ({ ...props }) => { + const Tag = as as keyof JSX.IntrinsicElements + return + } + + const buttonContent = ( + <> + {showIcon && + (loading ? ( + + ) : icon ? ( + {icon} + ) : null)} + {children && {children}} + {iconRight && !loading && ( + {iconRight} + )} + + ) + + if (as) { + return ( + + {buttonContent} + + ) + } else { + return ( + // + + // + ) + } + } +) diff --git a/packages/ui/src/components/Button/index.tsx b/packages/ui/src/components/Button/index.tsx new file mode 100644 index 00000000000..8486fd6d62d --- /dev/null +++ b/packages/ui/src/components/Button/index.tsx @@ -0,0 +1 @@ +export * from './Button' diff --git a/packages/ui/src/components/Card/Card.module.css b/packages/ui/src/components/Card/Card.module.css new file mode 100644 index 00000000000..680cbf7bef9 --- /dev/null +++ b/packages/ui/src/components/Card/Card.module.css @@ -0,0 +1,27 @@ +.sbui-card { + @apply flex flex-col bg-white dark:bg-dark-700 rounded-md shadow-lg overflow-hidden relative; + + border: 1px solid #e0e0e0; +} + +.sbui-card--hoverable { + @apply transition transform hover:-translate-y-1 hover:shadow-2xl; +} + +.dark .sbui-card { + border: 1px solid #2a2a2a; +} + +.sbui-card-head { + @apply px-8 py-6 flex justify-between; + + border-bottom: 1px solid #e0e0e0; +} + +.dark .sbui-card-head { + border-bottom: 1px solid #2a2a2a; +} + +.sbui-card-content { + @apply p-8; +} diff --git a/packages/ui/src/components/Card/Card.stories.tsx b/packages/ui/src/components/Card/Card.stories.tsx new file mode 100644 index 00000000000..36fd25b1945 --- /dev/null +++ b/packages/ui/src/components/Card/Card.stories.tsx @@ -0,0 +1,61 @@ +import React from 'react' +import Typography from '../Typography' +// import { AutoForm } from 'uniforms' + +import { Card } from './' + +export default { + title: 'Displays/Card', + component: Card, +} + +export const Default = (args: any) => ( + + Card content + Card content + Card content + +) + +export const withCover = (args: any) => ( + + Sub title here + To Do List with Vue.JS + +) + +export const withMeta = (args: any) => ( + + + +) + +export const withHover = (args: any) => ( + + + +) + +Default.args = { + title: 'I am a title', + titleExtra: Learn more, +} + +withCover.args = { + cover: ( + {'title'} + ), +} + +withMeta.args = { + title: 'title is here' +} + +withHover.args = { + title: 'This card can hover', + hoverable: true +} diff --git a/packages/ui/src/components/Card/Card.tsx b/packages/ui/src/components/Card/Card.tsx new file mode 100644 index 00000000000..7507cd2666e --- /dev/null +++ b/packages/ui/src/components/Card/Card.tsx @@ -0,0 +1,69 @@ +import React from 'react' +import Typography from '../Typography' +// @ts-ignore +import CardStyles from './Card.module.css' + +import styleHandler from '../../lib/theme/styleHandler' + +interface CardProps { + children?: React.ReactNode + className?: string + cover?: React.ReactNode + description?: string + hoverable?: boolean + style?: React.CSSProperties + title?: string + titleExtra?: React.ReactNode +} + +function Card({ + children, + className, + cover, + hoverable, + style, + title, + titleExtra, +}: CardProps) { + let __styles = styleHandler('card') + + let classes = [__styles.base] + if (hoverable) classes.push(__styles.hoverable) + if (className) classes.push(className) + + return ( +
+ {title && ( +
+ {title} + {titleExtra} +
+ )} + {cover} +
{children}
+
+ ) +} + +interface MetaProps { + title?: string + description?: string + style?: React.CSSProperties + className?: string +} + +function Meta({ title, description, style, className }: MetaProps) { + return ( +
+ + {title} + +
+ {description} +
+
+ ) +} + +Card.Meta = Meta +export default Card diff --git a/packages/ui/src/components/Card/index.tsx b/packages/ui/src/components/Card/index.tsx new file mode 100644 index 00000000000..03fa782ed13 --- /dev/null +++ b/packages/ui/src/components/Card/index.tsx @@ -0,0 +1 @@ +export { default as Card } from './Card' diff --git a/packages/ui/src/components/Checkbox/Checkbox.module.css b/packages/ui/src/components/Checkbox/Checkbox.module.css new file mode 100644 index 00000000000..0beb3a78b09 --- /dev/null +++ b/packages/ui/src/components/Checkbox/Checkbox.module.css @@ -0,0 +1,127 @@ +/* clear native styling */ +/* .sbui-checkbox[type='checkbox'] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + padding: 0; + -webkit-print-color-adjust: exact; + color-adjust: exact; + display: inline-block; + vertical-align: middle; + background-origin: border-box; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + flex-shrink: 0; + height: 1rem; + width: 1rem; + color: #2563eb; + background-color: #fff; + border-color: #6b7280; + border-width: 1px; +} */ + +/* .sbui-checkbox[type='checkbox']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); +} + +.sbui-checkbox[type='checkbox']:checked { + @apply dark:bg-brand-700; + @apply bg-brand-700; + border-color: transparent; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} */ + +/* .sbui-checkbox { + @apply border border-solid rounded; + + @apply text-brand-700 border-gray-300 transition-all; + @apply hover:border-brand-500 focus:ring-brand-500 focus:outline-none; + + @apply dark:bg-transparent dark:border-dark-400 dark:text-white; + @apply dark:hover:border-brand-500; + + margin-top: 2px; +} */ +/* +.sbui-checkbox-container { + @apply flex cursor-pointer; +} */ + +/* .sbui-checkbox__label-container { + @apply leading-none; +} */ + +/* .sbui-checkbox__label-container__label { + @apply text-gray-700 dark:text-white cursor-pointer mt-0; +} + +.sbui-checkbox__label-container__label__span { + @apply font-medium; +} + +.sbui-checkbox__label-container__label__span .sbui-checkbox__label-text-before, +.sbui-checkbox__label-container__label__span .sbui-checkbox__label-text-after { + @apply text-gray-400 dark:text-gray-300; +} + +.sbui-checkbox__label-container__label__p { + @apply mt-0 text-gray-400 dark:text-gray-300; +} */ + +/* + Label sizes +*/ + +/* .sbui-checkbox-container--tiny .sbui-checkbox__label-container__label, +.sbui-checkbox-container--tiny .sbui-checkbox__label-container__label__span, +.sbui-checkbox-container--tiny .sbui-checkbox__label-container__label__p { + @apply text-xs; +} +.sbui-checkbox-container--small .sbui-checkbox__label-container__label, +.sbui-checkbox-container--small .sbui-checkbox__label-container__label__span, +.sbui-checkbox-container--small .sbui-checkbox__label-container__label__p { + @apply text-sm; +} +.sbui-checkbox-container--medium .sbui-checkbox__label-container__label, +.sbui-checkbox-container--medium .sbui-checkbox__label-container__label__span, +.sbui-checkbox-container--medium .sbui-checkbox__label-container__label__p { + @apply text-sm; +} +.sbui-checkbox-container--large .sbui-checkbox__label-container__label, +.sbui-checkbox-container--large .sbui-checkbox__label-container__label__span, +.sbui-checkbox-container--large .sbui-checkbox__label-container__label__p { + @apply text-base; +} +.sbui-checkbox-container--xlarge .sbui-checkbox__label-container__label, +.sbui-checkbox-container--xlarge .sbui-checkbox__label-container__label__span, +.sbui-checkbox-container--xlarge .sbui-checkbox__label-container__label__p { + @apply text-base; +} */ + +/* + Checkbox sizes +*/ + +/* .sbui-checkbox-container--tiny .sbui-checkbox { + @apply h-3 w-3 mt-1 mr-3; +} + +.sbui-checkbox-container--small .sbui-checkbox { + @apply h-3.5 w-3.5 mt-0.5 mr-3.5; +} + +.sbui-checkbox-container--medium .sbui-checkbox { + @apply h-4 w-4 mt-0.5 mr-3.5; +} + +.sbui-checkbox-container--large .sbui-checkbox { + @apply h-5 w-5 mt-0.5 mr-4; +} + +.sbui-checkbox-container--xlarge .sbui-checkbox { + @apply h-5 w-5 mt-0.5 mr-4; +} */ diff --git a/packages/ui/src/components/Checkbox/Checkbox.stories.tsx b/packages/ui/src/components/Checkbox/Checkbox.stories.tsx new file mode 100644 index 00000000000..75cb24c3ea0 --- /dev/null +++ b/packages/ui/src/components/Checkbox/Checkbox.stories.tsx @@ -0,0 +1,133 @@ +import React from 'react' + +import { Checkbox } from '.' + +export default { + title: 'Data Input/Checkbox', + component: Checkbox, +} + +export const Default = (args: any) => + +export const withGroup = (args: any) => ( + + + + + +) + +export const withGroupHorizontal = (args: any) => ( + + + + + +) + +export const size = (args: any) => ( + + + + + +) + +export const withBeforeAndAfterLabels = (args: any) => ( + +) + +Default.args = { + label: 'This is the label', + description: 'This is the description', +} + +withGroup.args = { + id: 'checkobox-q', + label: 'This is the label', + description: 'This is the description', + disabled: false, + size: 'medium', + className: 'font-sans', + layout: 'vertical', +} + +withGroupHorizontal.args = { + id: 'checkobox-q', + label: 'This is the label', + description: 'This is the description', + disabled: false, + className: 'font-sans', + layout: 'horizontal', +} + +size.args = { + id: 'checkobox-q', + label: 'Control the size of the checkboxes', + description: + 'You can add a size just the Group component and it will affect the children', + disabled: false, + className: 'font-sans', + layout: 'horizontal', + size: 'tiny', +} + +withBeforeAndAfterLabels.args = { + label: 'Label', + beforeLabel: 'Before : ', + afterLabel: ' : After', + options: [ + { + label: 'Label', + beforeLabel: 'Before : ', + afterLabel: ' : After', + description: 'Description', + }, + ], + className: 'font-sans', +} diff --git a/packages/ui/src/components/Checkbox/Checkbox.test.js b/packages/ui/src/components/Checkbox/Checkbox.test.js new file mode 100644 index 00000000000..41eda3a2002 --- /dev/null +++ b/packages/ui/src/components/Checkbox/Checkbox.test.js @@ -0,0 +1,15 @@ +import React from 'react' +import { render, screen } from '@testing-library/react' +import Checkbox from './Checkbox' + +describe('#Checkbox', () => { + it('should render checkbox correctly', () => { + render() + expect(screen.queryByTestId('form-checkbox')).toBeInTheDocument() + }) + + it('should show label', () => { + render() + expect(screen.queryByText('JavaScript')).toBeInTheDocument() + }) +}) diff --git a/packages/ui/src/components/Checkbox/Checkbox.tsx b/packages/ui/src/components/Checkbox/Checkbox.tsx new file mode 100644 index 00000000000..13707b536a9 --- /dev/null +++ b/packages/ui/src/components/Checkbox/Checkbox.tsx @@ -0,0 +1,216 @@ +import React, { useEffect, useState } from 'react' +import { FormLayout } from '../../lib/Layout/FormLayout' +import { CheckboxContext } from './CheckboxContext' +// @ts-ignore +import CheckboxStyles from './Checkbox.module.css' + +import defaultTheme from '../../lib/theme/defaultTheme' + +import { useFormContext } from '../Form/FormContext' +import styleHandler from '../../lib/theme/styleHandler' + +export interface InputProps extends Omit, 'size'> { + afterLabel?: string + beforeLabel?: string + description?: string + label?: string + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' +} + +interface GroupProps { + id?: string + layout?: 'horizontal' | 'vertical' + error?: any + descriptionText?: any + label?: any + afterLabel?: string + beforeLabel?: string + labelOptional?: any + name?: any + value?: any + className?: string + children?: React.ReactNode + options?: Array + defaultValue?: string + onChange?(x: React.ChangeEvent): void + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' +} + +function Group({ + id, + layout = 'vertical', + error, + descriptionText, + label, + afterLabel, + beforeLabel, + labelOptional, + children, + className, + options, + onChange, + size = 'medium', +}: GroupProps) { + const parentCallback = (e: React.ChangeEvent) => { + if (onChange) onChange(e) + } + + const __styles = styleHandler('checkbox') + + return ( + + +
+ {options + ? options.map((option: InputProps) => { + return ( + + ) + }) + : children} +
+
+
+ ) +} + +export function Checkbox({ + className, + id = '', + name = '', + label, + afterLabel, + beforeLabel, + description, + checked, + value, + onChange, + onBlur, + size = 'medium', + disabled = false, + ...props +}: InputProps) { + const { formContextOnChange, values, handleBlur } = useFormContext() + + const __styles = styleHandler('checkbox') + + return ( + + {({ parentCallback, parentSize }) => { + // if id does not exist, use label + const markupId = id + ? id + : name + ? name + : label + ? label + .toLowerCase() + .replace(/^[^A-Z0-9]+/gi, '') + .replace(/ /g, '-') + : undefined + + // @ts-ignore + size = parentSize ? parentSize : size + + // if name does not exist on Radio then use Context Name from Radio.Group + // if that fails, use the id + const markupName = name ? name : markupId + + // check if checkbox checked is true or false + // if neither true or false the checkbox will rely on native control + let active = checked ?? undefined + + // if (values && !value) value = values[id || name] + + let containerClasses = [__styles.container] + + function onInputChange(e: React.ChangeEvent) { + // '`onChange` callback for parent component + if (parentCallback) parentCallback(e) + // '`onChange` callback for this component + if (onChange) onChange(e) + // update form + if (formContextOnChange) formContextOnChange(e) + } + + if (className) containerClasses.push(className) + + if (values && checked === undefined) active = values[id || name] + + function handleBlurEvent(e: React.FocusEvent) { + if (handleBlur) handleBlur(e) + if (onBlur) onBlur(e) + } + + return ( +
+ + + +
+ ) + }} +
+ ) +} + +Checkbox.Group = Group +export default Checkbox diff --git a/packages/ui/src/components/Checkbox/CheckboxContext.tsx b/packages/ui/src/components/Checkbox/CheckboxContext.tsx new file mode 100644 index 00000000000..742c51f9575 --- /dev/null +++ b/packages/ui/src/components/Checkbox/CheckboxContext.tsx @@ -0,0 +1,8 @@ +import { createContext } from 'react' + +// Make sure the shape of the default value passed to +// createContext matches the shape that the consumers expect! +export const CheckboxContext = createContext({ + parentCallback: (e: any) => {}, + parentSize: '', +}) diff --git a/packages/ui/src/components/Checkbox/index.tsx b/packages/ui/src/components/Checkbox/index.tsx new file mode 100644 index 00000000000..23993dfce7f --- /dev/null +++ b/packages/ui/src/components/Checkbox/index.tsx @@ -0,0 +1,3 @@ +import Checkbox from './Checkbox' +export default Checkbox +export { default as Checkbox } from './Checkbox' diff --git a/packages/ui/src/components/Collapsible/Collapsible.stories.tsx b/packages/ui/src/components/Collapsible/Collapsible.stories.tsx new file mode 100644 index 00000000000..6b723f7a438 --- /dev/null +++ b/packages/ui/src/components/Collapsible/Collapsible.stories.tsx @@ -0,0 +1,67 @@ +import React from 'react' +// import { AutoForm } from 'uniforms' + +import { Collapsible } from '.' +import { IconChevronUp } from '../..' +import { Button } from '../Button' + +export default { + title: 'Displays/Collapsible', + component: Collapsible, +} + +export const Default = (args: any) => { + return ( + <> + hello all + + + +
+ + + +
+

I am content

+

I am content

+

I am content

+

I am content

+
+
+ + + + + + +
+

I am content

+

I am content

+

I am content

+

I am content

+
+
+
+ + ) +} + +Default.args = { + placeholder: 'Type text here ...', + disabled: false, + label: 'Name', + layout: 'vertical', +} diff --git a/packages/ui/src/components/Collapsible/Collapsible.tsx b/packages/ui/src/components/Collapsible/Collapsible.tsx new file mode 100644 index 00000000000..e137af1003f --- /dev/null +++ b/packages/ui/src/components/Collapsible/Collapsible.tsx @@ -0,0 +1,56 @@ +import * as RadixCollapsible from '@radix-ui/react-collapsible' +import React from 'react' +import styleHandler from '../../lib/theme/styleHandler' + +export interface CollapsibleProps extends RadixCollapsible.CollapsibleProps { + children: React.ReactNode + // onChange?: (e: boolean) => void +} + +export const Collapsible = ({ + open = undefined, + children, + className, + ...props +}: CollapsibleProps) => { + // const [_open, setOpen] = React.useState(open) + + // function handleOpenChange(e: boolean) { + // console.log(e) + // if (onChange) onChange(e) + // } + return ( + + {children} + + ) +} + +export function Trigger({ children, asChild }: { children: React.ReactNode; asChild?: boolean }) { + return {children} +} + +export function Content({ + children, + className, +}: { + children: React.ReactNode + className?: string +}) { + const __styles = styleHandler('collapsible') + return ( + + {children} + + ) +} + +Collapsible.Trigger = Trigger +Collapsible.Content = Content +export default Collapsible diff --git a/packages/ui/src/components/Collapsible/index.tsx b/packages/ui/src/components/Collapsible/index.tsx new file mode 100644 index 00000000000..6024fb1be25 --- /dev/null +++ b/packages/ui/src/components/Collapsible/index.tsx @@ -0,0 +1 @@ +export { default as Collapsible } from './Collapsible' diff --git a/packages/ui/src/components/ContextMenu/ContextMenu.module.css b/packages/ui/src/components/ContextMenu/ContextMenu.module.css new file mode 100644 index 00000000000..c4651c0ef7a --- /dev/null +++ b/packages/ui/src/components/ContextMenu/ContextMenu.module.css @@ -0,0 +1,65 @@ +.sbui-contextmenu-item { + @apply text-xs; + @apply text-typography-body-light dark:text-typography-body-dark; + @apply px-4 py-1.5 flex items-center space-x-2; + @apply cursor-pointer; + @apply focus:bg-bg-secondary-light dark:focus:bg-bg-primary-dark border-none; + cursor: 'default'; +} + +.sbui-contextmenu-item svg { + /* @apply text-typography-body-secondary-light dark:text-typography-body-secondary-dark; */ +} + +.sbui-contextmenu-label { + /* @apply text-typography-body-secondary-light dark:text-typography-body-secondary-dark; */ + /* @apply px-4 py-1.5 flex items-center space-x-2; */ + /* font-size: 0.65rem; */ +} + +.sbui-contextmenu-misc { + /* @apply px-4 py-1.5; */ +} + +.sbui-contextmenu-item:focus-visible { + /* border: none; */ + /* outline: none; */ +} + +.sbui-contextmenu-input { + /* @apply flex items-center space-x-2; */ +} + +.sbui-contextmenu-input__check { + /* @apply flex items-center; */ +} + +.sbui-contextmenu__content { + /* @apply bg-bg-primary-light dark:bg-bg-secondary-dark p-0; */ + /* @apply rounded; */ + /* @apply border; */ + /* @apply shadow; */ + /* overflow: visible; */ + /* border-style: solid; */ + /* border-width: 1px; */ +} + +@keyframes transition { + /* 0% { */ + /* opacity: 0; */ + /* transform: scale(0.95); */ + /* } */ + /* 100% { */ + /* opacity: 1; */ + /* transform: scale(1); */ + /* } */ +} + +.sbui-contextmenu__content { + /* transform-origin: var(--radix-dropdown-menu-content-transform-origin); */ + /* animation: transition 0.1s ease-out; */ +} + +.sbui-contextmenu__trigger { + /* @apply border-none bg-transparent p-0 focus:ring-0; */ +} diff --git a/packages/ui/src/components/ContextMenu/ContextMenu.stories.tsx b/packages/ui/src/components/ContextMenu/ContextMenu.stories.tsx new file mode 100644 index 00000000000..d2d155e8c47 --- /dev/null +++ b/packages/ui/src/components/ContextMenu/ContextMenu.stories.tsx @@ -0,0 +1,168 @@ +import React, { useState } from 'react' +import { Button } from '../Button' +import { Divider } from '../Divider' +import { IconSettings, IconLogOut } from '../../index' +import Typography from '../Typography' + +import { ContextMenu } from '.' +import { IconLogIn } from '../Icon/icons/IconLogIn' + +export default { + title: 'Navigation/ContextMenu', + component: ContextMenu, +} + +const triggerArea = ( +
+ Right click this area +
+) + +export const Default = (args: any) => ( +
+ +
+ + Signed in as{' '} + + + + tom@example.com{' '} + +
+ , + , + Group label, + console.log('clicked')}> + Account + , + Settings, + , + }> + Log out + , + ]} + > + {triggerArea} +
+
+) + +Default.args = {} + +export const doNotcloseOverlay = (args: any) => ( +
+ + Signed in as + tom@example.com + , + , + Account, + Settings, + + + , + ]} + > + {triggerArea} + +
+) + +doNotcloseOverlay.args = {} + +export const withCustomStyles = (args: any) => ( +
+ + Signed in as + tom@example.com + , + , + Account, + Settings, + , + + + , + ]} + > + {triggerArea} + +
+) + +withCustomStyles.args = {} + +export const Checkbox = (args: any) => { + const [checked, setChecked] = useState(false) + + return ( +
+ }> + Account + , + Settings, + , + + Show subtitles + , + ]} + > + {triggerArea} + +
+ ) +} + +export const Radio = (args: any) => { + const [value, setValue] = useState('red') + + return ( +
+ + Red + Blue + Green + , + ]} + > + {triggerArea} + +
+ ) +} diff --git a/packages/ui/src/components/ContextMenu/ContextMenu.tsx b/packages/ui/src/components/ContextMenu/ContextMenu.tsx new file mode 100644 index 00000000000..bbf300a4540 --- /dev/null +++ b/packages/ui/src/components/ContextMenu/ContextMenu.tsx @@ -0,0 +1,194 @@ +import React, { useState } from 'react' + +// import * as RadixContextMenu from '@radix-ui/react-dropdown-menu' +import { IconCheck } from '../Icon/icons/IconCheck' + +// @ts-ignore +// import ContextMenuStyles from './ContextMenu.module.css' + +import type * as RadixContextMenuTypes from '@radix-ui/react-context-menu/' + +import * as RadixContextMenu from '@radix-ui/react-context-menu' + +const ContextMenuStyles = {} + +interface RootProps { + onOpenChange?(x: boolean): void + alignOffset?: RadixContextMenuTypes.ContextMenuContentProps['alignOffset'] + overlay?: React.ReactNode + children?: React.ReactNode + className?: string + style?: React.CSSProperties +} + +function ContextMenu({ + onOpenChange, + + alignOffset = 6, + overlay, + children, + className, + style, +}: RootProps) { + // let classes = [ContextMenuStyles['sbui-contextmenu__content']] + // if (className) { + // classes.push(className) + // } + return ( + + + {children} + + + + {overlay} + + + ) +} + +interface ItemProps { + children: React.ReactNode + icon?: React.ReactNode + disabled?: boolean + onClick?: (event: Event) => void +} + +export function Item({ children, icon, disabled, onClick }: ItemProps) { + return ( + + {icon && icon} + {children} + + ) +} + +export function Misc({ children, icon }: ItemProps) { + return ( +
+ {icon && icon} + {children} +
+ ) +} + +interface CheckboxProps { + children: React.ReactNode + checked?: boolean + onChange?(x: boolean): void + disabled?: boolean + ItemIndicator?: React.ReactNode +} + +export function Checkbox({ + children, + checked: propsChecked, + onChange, + disabled, + ItemIndicator, +}: CheckboxProps) { + const [checked, setChecked] = useState(propsChecked ? propsChecked : false) + + const handleChange = (e: boolean) => { + if (onChange) onChange(e) + setChecked(e) + } + + return ( + + + {ItemIndicator ? ItemIndicator : } + + + {children} + + ) +} + +interface RadioProps { + children: React.ReactNode + value: string + ItemIndicator?: React.ReactNode +} + +export function Radio({ children, value, ItemIndicator }: RadioProps) { + return ( + + + {ItemIndicator ? ItemIndicator : } + + {children} + + ) +} + +interface RadioGroupProps { + children: React.ReactNode + value: string + onChange?(x: string): void +} + +export function RadioGroup({ + children, + value: propsValue, + onChange, +}: RadioGroupProps) { + const [value, setValue] = useState(propsValue ? propsValue : '') + + const handleChange = (e: string) => { + if (onChange) onChange(e) + setValue(e) + } + + return ( + + {children} + + ) +} + +interface LabelProps { + children: React.ReactNode +} + +export function Label({ children }: LabelProps) { + return ( + + {children} + + ) +} + +ContextMenu.Item = Item +ContextMenu.Misc = Misc +ContextMenu.Checkbox = Checkbox +ContextMenu.Radio = Radio +ContextMenu.RadioGroup = RadioGroup +ContextMenu.Label = Label +export default ContextMenu diff --git a/packages/ui/src/components/ContextMenu/index.tsx b/packages/ui/src/components/ContextMenu/index.tsx new file mode 100644 index 00000000000..c87ee1b10ab --- /dev/null +++ b/packages/ui/src/components/ContextMenu/index.tsx @@ -0,0 +1 @@ +export { default as ContextMenu } from './ContextMenu' diff --git a/packages/ui/src/components/Divider/Divider.module.css b/packages/ui/src/components/Divider/Divider.module.css new file mode 100644 index 00000000000..18d32e48f51 --- /dev/null +++ b/packages/ui/src/components/Divider/Divider.module.css @@ -0,0 +1,101 @@ +.sbui-divider { + width: 100%; + display: flex; + align-items: center; + white-space: nowrap; +} + +.sbui-divider-vertical { + @apply bg-gray-200 dark:bg-dark-500; + width: 1px; + height: inherit; +} + +.sbui-divider-vertical.sbui-divider--light { + @apply bg-gray-100 dark:bg-dark-600; +} + +.sbui-divider--no-text { + @apply border-gray-200 dark:border-dark-500; + border-bottom-style: solid; + border-bottom-width: 1px; +} + +.sbui-divider > span { + @apply text-sm; + @apply text-gray-300; + @apply dark:text-dark-400; + display: inline-block; + padding: 0 1em; +} + +.sbui-divider--left:before { + @apply border-gray-200 dark:border-dark-500; + border-bottom-style: solid; + border-bottom-width: 1px; + top: 50%; + content: ''; + position: relative; + display: inline-block; + width: 5%; +} + +.sbui-divider--left:after { + @apply border-gray-200 dark:border-dark-500; + border-bottom-style: solid; + border-bottom-width: 1px; + top: 50%; + content: ''; + position: relative; + display: inline-block; + width: 95%; +} + +.sbui-divider--right:before { + @apply border-gray-200 dark:border-dark-500; + border-bottom-style: solid; + border-bottom-width: 1px; + top: 50%; + content: ''; + position: relative; + display: inline-block; + width: 95%; +} + +.sbui-divider--right:after { + @apply border-gray-200 dark:border-dark-500; + border-bottom-style: solid; + border-bottom-width: 1px; + top: 50%; + content: ''; + position: relative; + display: inline-block; + width: 5%; +} + +.sbui-divider--center:before, +.sbui-divider--center:after { + @apply border-gray-200 dark:border-dark-500; + border-bottom-style: solid; + border-bottom-width: 1px; + top: 50%; + content: ''; + position: relative; + display: inline-block; + width: 50%; +} + +.sbui-divider--light.sbui-divider--left:before, +.sbui-divider--light.sbui-divider--left:after, +.sbui-divider--light.sbui-divider--right:before, +.sbui-divider--light.sbui-divider--right:after, +.sbui-divider--light.sbui-divider--center:before, +.sbui-divider--light.sbui-divider--center:after, +.sbui-divider--light.sbui-divider--no-text { + @apply border-gray-100 dark:border-dark-600; +} + +.sbui-divider--light.sbui-divider > span { + @apply text-gray-200; + @apply dark:text-dark-800; +} diff --git a/packages/ui/src/components/Divider/Divider.stories.tsx b/packages/ui/src/components/Divider/Divider.stories.tsx new file mode 100644 index 00000000000..8826bebe1e3 --- /dev/null +++ b/packages/ui/src/components/Divider/Divider.stories.tsx @@ -0,0 +1,60 @@ +import React from 'react' +import { Button } from '../Button' +import Typography from '../Typography' +import { Divider } from './' + +export default { + title: 'Utilities/Divider', + component: Divider, +} + +export const Default = (args: any) => + +export const withCenterText = (args: any) => ( + Hello world +) + +export const withLeftText = (args: any) => ( + Hello world +) + +export const withRightText = (args: any) => ( + Hello world +) + +export const lighterColor = (args: any) => + +export const vertical = (args: any) => ( +
+
+ + + + + + Some text + + +
+
+) + +Default.args = {} + +withCenterText.args = {} + +withLeftText.args = { + orientation: 'left', +} + +withRightText.args = { + orientation: 'right', +} + +lighterColor.args = { + light: true, +} + +vertical.args = { + type: 'vertical', +} diff --git a/packages/ui/src/components/Divider/Divider.tsx b/packages/ui/src/components/Divider/Divider.tsx new file mode 100644 index 00000000000..c1b0607899f --- /dev/null +++ b/packages/ui/src/components/Divider/Divider.tsx @@ -0,0 +1,52 @@ +import React from 'react' +// @ts-ignore +// import DividerStyles from './Divider.module.css' + +interface Props { + children?: React.ReactNode + className?: string + light?: boolean + orientation?: 'left' | 'right' | 'center' + style?: React.CSSProperties + type?: 'vertical' | 'horizontal' +} + +export default function Divider({ + children, + className, + light = false, + orientation = 'center', + style, + type = 'horizontal', +}: Props) { + // let classes = [ + // type === 'horizontal' + // ? DividerStyles['sbui-divider'] + // : DividerStyles['sbui-divider-vertical'], + // ] + // if (light) classes.push(DividerStyles['sbui-divider--light']) + + // if (children) { + // classes.push(DividerStyles[`sbui-divider--${orientation}`]) + // } else if (!children && type === 'horizontal') { + // classes.push(DividerStyles[`sbui-divider--no-text`]) + // } + + // if (className) classes.push(className) + + return ( +
+ {children && ( + + {children} + + )} +
+ ) +} diff --git a/packages/ui/src/components/Divider/index.tsx b/packages/ui/src/components/Divider/index.tsx new file mode 100644 index 00000000000..644af288bc8 --- /dev/null +++ b/packages/ui/src/components/Divider/index.tsx @@ -0,0 +1 @@ +export { default as Divider } from './Divider' diff --git a/packages/ui/src/components/Dropdown/Dropdown.module.css b/packages/ui/src/components/Dropdown/Dropdown.module.css new file mode 100644 index 00000000000..751546ff202 --- /dev/null +++ b/packages/ui/src/components/Dropdown/Dropdown.module.css @@ -0,0 +1,112 @@ +/* .sbui-dropdown-item { + @apply text-xs; + @apply text-typography-body-light dark:text-typography-body-dark; + @apply px-4 py-1.5 flex items-center space-x-2; + @apply cursor-pointer; + @apply focus:bg-bg-secondary-light dark:focus:bg-bg-primary-dark border-none; + cursor: 'default'; + + user-select: none; +} + +/* .sbui-dropdown-item svg { + @apply text-typography-body-secondary-light dark:text-typography-body-secondary-dark; +} */ + +/* .sbui-dropdown-label { + @apply text-typography-body-secondary-light dark:text-typography-body-secondary-dark; + @apply px-4 py-1.5 flex items-center space-x-2; + font-size: 0.65rem; +} + +.sbui-dropdown-misc { + @apply px-4 py-1.5; +} + +.sbui-dropdown-item:focus-visible { + border: none; + outline: none; +} + +.sbui-dropdown-input { + @apply flex items-center space-x-0 pl-8 pr-4; +} + +.sbui-dropdown-input__check { + @apply absolute left-2; + @apply flex items-center; +} */ + +/* .sbui-dropdown__content { + @apply bg-bg-primary-light dark:bg-bg-secondary-dark p-0; + @apply border border-lightmode dark:border-darkmode; + @apply rounded; + @apply shadow; + border-style: solid; + border-width: 1px; +} */ + +/* @keyframes fadeIn { + from { + transform: scale(0.95); + opacity: 0; + } + to { + transform: scale(1); + opacity: 1; + } +} + +@keyframes fadeOut { + from { + transform: scale(1); + opacity: 1; + } + to { + transform: scale(0.95); + opacity: 0; + } +} */ +/* .sbui-dropdown__content { + transform-origin: 'var(--radix-dropdown-menu-content-transform-origin)'; +} */ + +/* .sbui-dropdown__content[data-state='open'] { + animation: fadeIn 50ms ease-out; +} + +.sbui-dropdown__content[data-state='closed'] { + animation: fadeOut 50ms ease-in; +} */ + +/* .sbui-dropdown__trigger { + @apply border-none bg-transparent p-0 focus:ring-0; +} */ + +/* .sbui-dropdown__arrow { + @apply fill-current text-bg-primary-light dark:text-bg-secondary-dark; + @apply border-0 border-t; + border-style: solid; + +} + +.sbui-dropdown-item-trigger { + @apply text-xs; + @apply text-typography-body-light dark:text-typography-body-dark; + @apply px-4 py-1.5 flex items-center space-x-2; + @apply cursor-pointer; + cursor: 'default'; +} + +.sbui-dropdown-item-trigger svg { + @apply text-typography-body-secondary-light dark:text-typography-body-secondary-dark; +} + +.sbui-dropdown-item-trigger:focus-visible { + border: none; + outline: none; +} */ + +/* .sbui-dropdown__trigger-item[data-state='open'] { + @apply bg-bg-secondary-light dark:bg-bg-primary-dark border-none; +} */ diff --git a/packages/ui/src/components/Dropdown/Dropdown.stories.tsx b/packages/ui/src/components/Dropdown/Dropdown.stories.tsx new file mode 100644 index 00000000000..d1f825a5772 --- /dev/null +++ b/packages/ui/src/components/Dropdown/Dropdown.stories.tsx @@ -0,0 +1,347 @@ +import React, { useState } from 'react' +import { Button } from '../Button' +import { Divider } from '../Divider' +import { + IconSettings, + IconLogOut, + IconChevronDown, + IconChevronRight, + IconHardDrive, +} from './../../index' +import Typography from '../Typography' + +import { Dropdown } from './' +import { IconLogIn } from '../Icon/icons/IconLogIn' +import { Input } from '../Input' +import { IconSearch } from '../Icon/icons/IconSearch' + +export default { + title: 'Navigation/Dropdown', + component: Dropdown, +} + +const DemoContainer = ({ children }: { children: React.ReactNode }) => ( +
+
+
+

+ Shall we nest some components? +

+

yea sure, go on then.

+
+
{children}
+
+
+) + +export const DefaultFull = (args: any) => { + const [checked, setChecked] = useState(false) + const [value, setValue] = useState('red') + + return ( + + +
+ + Signed in as{' '} + + + + tom@example.com{' '} + +
+ , + , + Group label, + console.log('clicked')}> + Account + , + + Settings ⌘+T + , + , + + Show subtitles + , + , + + Red + Blue + Green + , + , + + Red + Blue + Green + , + , + Group label, + console.log('clicked')}> + Account + , + + Settings ⌘+T + , + ]} + > + }> + Open sub menu{' '} + + + + + , + , + }> + Log out + , + ]} + > + +
+
+ ) +} + +export const Default = (args: any) => ( +
+ +
+ + Signed in as{' '} + + + + tom@example.com{' '} + +
+ , + , + Group label, + console.log('clicked')}> + Account + , + + Settings ⌘+T + , + , + }>Log out, + ]} + > + +
+
+) + +Default.args = {} + +export const doNotcloseOverlay = (args: any) => ( +
+ + Signed in as + tom@example.com + , + , + Account, + Settings, + + + , + ]} + > + + +
+) + +doNotcloseOverlay.args = {} + +export const withCustomStyles = (args: any) => ( +
+ + Signed in as + tom@example.com + , + , + Account, + Settings, + , + + + , + ]} + > + + +
+) + +withCustomStyles.args = {} + +export const SearchList = (args: any) => ( +
+ + } autofocus={false} /> + , + + Signed in as + tom@example.com + , + + Signed in as + tom@example.com + , + , + }> + Log out + , + ]} + > + + +
+) + +SearchList.args = {} + +export const Checkbox = (args: any) => { + const [checked, setChecked] = useState(false) + + return ( +
+ }> + Account + , + Settings, + , + + Show subtitles + , + ]} + > + + +
+ ) +} + +export const Radio = (args: any) => { + const [value, setValue] = useState('red') + + return ( +
+ + Red + Blue + Green + , + ]} + > + + +
+ ) +} + +export const Nested = (args: any) => { + const [value, setValue] = useState('red') + + return ( +
+ + + Red + Blue + Green + + + + Red + Blue + Green + , + ]} + > + Open sub menu + + hello + + } + > + + +
+ ) +} diff --git a/packages/ui/src/components/Dropdown/Dropdown.tsx b/packages/ui/src/components/Dropdown/Dropdown.tsx new file mode 100644 index 00000000000..9e50ceef6dd --- /dev/null +++ b/packages/ui/src/components/Dropdown/Dropdown.tsx @@ -0,0 +1,226 @@ +import React, { useState } from 'react' + +import * as RadixDropdown from '@radix-ui/react-dropdown-menu' +import { IconCheck } from '../Icon/icons/IconCheck' + +// @ts-ignore +// import DropdownStyles from './Dropdown.module.css' + +import type * as RadixDropdownTypes from '@radix-ui/react-dropdown-menu/' + +import styleHandler from '../../lib/theme/styleHandler' +import { IconTarget } from '../Icon/icons/IconTarget' + +interface RootProps { + open?: boolean + arrow?: boolean + onOpenChange?: RadixDropdownTypes.DropdownMenuProps['onOpenChange'] // DropdownMenu['onOpenChange'] + side?: RadixDropdownTypes.DropdownMenuContentProps['side'] + align?: RadixDropdownTypes.DropdownMenuContentProps['align'] + sideOffset?: RadixDropdownTypes.DropdownMenuContentProps['sideOffset'] + overlay?: React.ReactNode + children?: React.ReactNode + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' | 'content' + className?: string + style?: React.CSSProperties + isNested?: Boolean +} + +function Dropdown({ + open, + onOpenChange, + align = 'center', //Default value + side = 'bottom', //Default value + sideOffset = 6, + overlay, + children, + size = 'medium', + className, + style, + arrow, + isNested, +}: RootProps) { + let __styles = styleHandler('dropdown') + + let classes = [__styles.content, __styles.size[size]] + if (className) { + classes.push(className) + } + + return ( + + {isNested ? ( + + {children} + + ) : ( + {children} + )} + + + {arrow && ( + + )} + {overlay} + + + ) +} + +export function RightSlot({ children }: any) { + let __styles = styleHandler('dropdown') + return
{children}
+} + +interface ItemProps { + children: React.ReactNode + icon?: React.ReactNode + disabled?: boolean + onClick?: (event: Event) => void + rightSlot?: React.ReactNode +} + +export function Item({ children, icon, disabled, onClick, rightSlot }: ItemProps) { + let __styles = styleHandler('dropdown') + + return ( + + {icon && icon} + {children} + + ) +} + +export function TriggerItem({ children, icon, disabled }: ItemProps) { + let __styles = styleHandler('dropdown') + return ( +
+ {icon && icon} + {children} +
+ ) +} + +export function Misc({ children, icon }: ItemProps) { + let __styles = styleHandler('dropdown') + return ( +
+ {icon && icon} + {children} +
+ ) +} + +interface CheckboxProps { + children: React.ReactNode + checked?: boolean + onChange?(x: boolean): void + disabled?: boolean + ItemIndicator?: React.ReactNode +} + +export function Seperator() { + let __styles = styleHandler('dropdown') + + return +} + +export function Checkbox({ + children, + checked: propsChecked, + onChange, + disabled, + ItemIndicator, +}: CheckboxProps) { + const [checked, setChecked] = useState(propsChecked ? propsChecked : false) + + let __styles = styleHandler('dropdown') + + const handleChange = (e: boolean) => { + if (onChange) onChange(e) + setChecked(e) + } + + return ( + + + {ItemIndicator ? ItemIndicator : } + + + {children} + + ) +} + +interface RadioProps { + children: React.ReactNode + value: string + ItemIndicator?: React.ReactNode +} + +export function Radio({ children, value, ItemIndicator }: RadioProps) { + let __styles = styleHandler('dropdown') + + return ( + + + {ItemIndicator ? ItemIndicator : } + + {children} + + ) +} + +interface RadioGroupProps { + children: React.ReactNode + value: string + onChange?(x: string): void +} + +export function RadioGroup({ children, value: propsValue, onChange }: RadioGroupProps) { + const [value, setValue] = useState(propsValue ? propsValue : '') + + const handleChange = (e: string) => { + if (onChange) onChange(e) + setValue(e) + } + + return ( + + {children} + + ) +} + +interface LabelProps { + children: React.ReactNode +} + +export function Label({ children }: LabelProps) { + let __styles = styleHandler('dropdown') + + return {children} +} + +Dropdown.Item = Item +Dropdown.Misc = Misc +Dropdown.Checkbox = Checkbox +Dropdown.Radio = Radio +Dropdown.RadioGroup = RadioGroup +Dropdown.Label = Label +Dropdown.Seperator = Seperator +Dropdown.RightSlot = RightSlot +Dropdown.TriggerItem = TriggerItem +export default Dropdown diff --git a/packages/ui/src/components/Dropdown/index.tsx b/packages/ui/src/components/Dropdown/index.tsx new file mode 100644 index 00000000000..a34974dee8c --- /dev/null +++ b/packages/ui/src/components/Dropdown/index.tsx @@ -0,0 +1 @@ +export { default as Dropdown } from './Dropdown' diff --git a/web/docs/reference/dart/.gitkeep b/packages/ui/src/components/Form/Form.css similarity index 100% rename from web/docs/reference/dart/.gitkeep rename to packages/ui/src/components/Form/Form.css diff --git a/packages/ui/src/components/Form/Form.stories.tsx b/packages/ui/src/components/Form/Form.stories.tsx new file mode 100644 index 00000000000..277ae09180e --- /dev/null +++ b/packages/ui/src/components/Form/Form.stories.tsx @@ -0,0 +1,569 @@ +import { Form } from '.' +import { + Input, + Button, + InputNumber, + Toggle, + Checkbox, + Radio, + Select, + Listbox, +} from '../../index' + +import * as Yup from 'yup' +import { User } from '../Icon/IconImportHandler' +import React from 'react' + +export default { + title: 'Data Input/Form', + component: Form, +} + +interface Values { + email: string + last_name: string + profession: string + number: number | undefined + // remember_me: boolean + checkbox_alone: boolean + favorite_food: string + check_3: boolean + check_2: boolean + check_1: boolean + textarea: string + toggle: boolean + people: number | undefined +} + +const INITIAL_VALUES: Values = { + email: '', + last_name: '', + profession: '', + number: undefined, + checkbox_alone: false, + // remember_me: false, + favorite_food: '', + check_3: false, + check_2: true, + check_1: false, + textarea: '', + toggle: true, + people: undefined, +} + +export const InputLevelValidation = () => { + function validateEmail(value: string) { + console.log('validateEmail running') + let error + if (!value) { + error = 'Required' + } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(value)) { + error = 'Invalid email address' + } + return error + } + + return ( +
{ + setTimeout(() => { + alert(JSON.stringify(values, null, 2)) + setSubmitting(false) + }, 400) + }} + > + {({ isSubmitting }: { isSubmitting: boolean }) => ( +
+ + {/* */} + +
+ )} +
+ ) +} + +export const InputLevelValidationYip = () => { + // validation schema + const SignupSchema = Yup.object().shape({ + firstname: Yup.string() + .min(2, 'Too Short!') + .max(50, 'Too Long!') + .required('Required'), + lastname: Yup.string() + .min(2, 'Too Short!') + .max(50, 'Too Long!') + .required('Required'), + email: Yup.string().email('Invalid email').required('Required'), + }) + + return ( +
{ + setTimeout(() => { + alert(JSON.stringify(values, null, 2)) + setSubmitting(false) + }, 400) + }} + > + {({ isSubmitting }: any) => ( +
+ + + + +
+ )} +
+ ) +} + +const people = [ + { + value: 1, + label: 'Wade Cooper', + avatar: + 'https://images.unsplash.com/photo-1491528323818-fdd1faba62cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 2, + label: 'Arlene Mccoy', + avatar: + 'https://images.unsplash.com/photo-1550525811-e5869dd03032?ixlib=rb-1.2.1&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 3, + label: 'Devon Webb', + avatar: + 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.25&w=256&h=256&q=80', + }, + { + value: 4, + label: 'Tom Cook', + avatar: + 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 5, + label: 'Tanya Fox', + avatar: + 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 6, + label: 'Hellen Schmidt', + avatar: + 'https://images.unsplash.com/photo-1487412720507-e7ab37603c6f?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 7, + label: 'Caroline Schultz', + avatar: + 'https://images.unsplash.com/photo-1568409938619-12e139227838?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 8, + label: 'Mason Heaney', + avatar: + 'https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 9, + label: 'Claudie Smitham', + avatar: + 'https://images.unsplash.com/photo-1584486520270-19eca1efcce5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 10, + label: 'Emil Schaefer', + avatar: + 'https://images.unsplash.com/photo-1561505457-3bcad021f8ee?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, +] + +export const LargerExample = () => { + return ( + <> +
{ + setTimeout(() => { + alert(JSON.stringify(values, null, 2)) + setSubmitting(false) + }, 400) + }} + validate={(values: Values) => { + const errors: any = {} + + console.log('values for validation', values) + + if (!values.email) { + errors.email = 'Required' + } else if ( + !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(values.email) + ) { + errors.email = 'Invalid email address' + } + + if (!values.profession) { + errors.profession = 'Required' + } + + if (!values.textarea) { + errors.textarea = 'Required' + } + + if (!values.number) { + errors.number = 'Required' + } + + if (values.number <= 13) { + errors.number = 'Must be a number above 13' + } + + if (values.number >= 32) { + errors.number = 'Must be a number below 32' + } + + if (!values.favorite_food) { + errors.favorite_food = 'You must select a favourite food' + } + + if (!values.toggle) { + errors.toggle = 'This needs to be turned on' + } + + // if (!values.people) { + // errors.people = 'Please select a person' + // } + + // if (values.remember_me) + + return errors + }} + > + {({ isSubmitting }: any) => ( + <> +
+

{isSubmitting ? 'submitting' : 'not submitting'}

+ + + + + + + + + + + + + + + + + + + + {people.map((person) => { + return ( + ( + + )} + children={({ active, selected }: any) => { + // console.log('selected', selected) + // console.log('active', active) + return ( + + {person.label} + + ) + }} + /> + ) + })} + + + +
+ + )} +
+ + ) +} + +export const CardForm = () => { + // panel + const Panel = ({ + children, + header, + footer, + }: { + children: React.ReactNode + header?: React.ReactNode + footer?: React.ReactNode + }) => ( +
+ {header && ( +
+ {header} +
+ )} +
{children}
+ {footer} +
+ ) + + const Section = ({ + children, + header, + }: { + children: React.ReactNode + header?: React.ReactNode + }) => ( +
+ {header} + {children} +
+ ) + + return ( + <> +
{ + setTimeout(() => { + alert(JSON.stringify(values, null, 2)) + setSubmitting(false) + }, 400) + }} + validate={(values: Values) => { + const errors: any = {} + + return errors + }} + > + {({ isSubmitting }: any) => ( + +

+ Custom Options +

+

+ These settings apply to payment pages you create using Stripe + Checkout and Payment Links. +

+ + } + footer={ + <> +
+
+ + +
+ + } + > + {/*

{isSubmitting ? 'submitting' : 'not submitting'}

*/} + {/*
*/} +
+ Faster checkout + + } + > + +
+
+
+ Faster checkout + + } + > + + + + +
+
+
+ Faster checkout + + } + > +
+ + + This can be found in{' '} + + the developer settings + + + } + /> +
+
+
+ )} +
+ + ) +} + +export { default as AuthForm } from './examples/AuthForm' diff --git a/packages/ui/src/components/Form/Form.tsx b/packages/ui/src/components/Form/Form.tsx new file mode 100644 index 00000000000..791ceeaaaa6 --- /dev/null +++ b/packages/ui/src/components/Form/Form.tsx @@ -0,0 +1,96 @@ +import { useReducer } from 'react' +import { useFormik, FormikConfig } from 'formik' +import { FormContextProvider } from './FormContext' + +// interface Props extends FormikProps, Partial FormikConfig { +interface Props + extends Omit, 'validateOnMount' | 'validateOnChange'> { + children: any + handleIsSubmitting?: any + handleIsValidating?: any + name?: string + id?: string + className?: string + style?: React.CSSProperties +} + +function errorReducer(state: any, action: any) { + if (!action.error) { + const payload = state + delete payload[action.key] + return payload + } + if (action) { + return { + ...state, + [action.key]: action.error, + } + } else { + throw new Error() + } +} + +export default function Form({ validate, ...props }: Props) { + const [fieldLevelErrors, dispatchErrors] = useReducer(errorReducer, null) + + function handleFieldLevelValidation(key: any, error: string) { + dispatchErrors({ key, error }) + } + + const formik = useFormik({ + validateOnBlur: true, + ...props, + validationSchema: props.validationSchema, + initialValues: props.initialValues, + onSubmit: props.onSubmit, + validate: + validate || + function () { + return fieldLevelErrors + }, + }) + + // console.log('values', formik.values) + // console.log('errors', formik.errors) + // console.log('touched', formik.touched) + + return ( +
+ + + ) +} diff --git a/packages/ui/src/components/Form/FormContext.tsx b/packages/ui/src/components/Form/FormContext.tsx new file mode 100644 index 00000000000..d49db95209b --- /dev/null +++ b/packages/ui/src/components/Form/FormContext.tsx @@ -0,0 +1,60 @@ +import React, { createContext, useContext } from 'react' + +interface ContextProps { + formContextOnChange: any + values: any + errors: any + handleBlur: React.FocusEventHandler | null + touched: any + fieldLevelValidation: any +} + +interface Provider extends ContextProps { + children?: React.ReactNode +} + +// Make sure the shape of the default value passed to +// createContext matches the shape that the consumers expect! +const FormContext = createContext({ + formContextOnChange: null, + values: null, + errors: null, + handleBlur: null, + touched: null, + fieldLevelValidation: null, +}) + +export const FormContextProvider = (props: Provider) => { + const { + formContextOnChange, + values, + errors, + handleBlur, + touched, + fieldLevelValidation, + } = props + + const value = { + formContextOnChange: formContextOnChange, + values: values, + errors: errors, + handleBlur: handleBlur, + touched: touched, + fieldLevelValidation: fieldLevelValidation, + } + + return ( + {props.children} + ) +} + +// context helper to avoid using a consumer component +export const useFormContext = () => { + const context = useContext(FormContext) + if (context === undefined) { + throw new Error( + `useFormContextOnChange must be used within a FormContextProvider.` + ) + } + return context +} diff --git a/packages/ui/src/components/Form/examples/AuthForm.tsx b/packages/ui/src/components/Form/examples/AuthForm.tsx new file mode 100644 index 00000000000..10a885c46b2 --- /dev/null +++ b/packages/ui/src/components/Form/examples/AuthForm.tsx @@ -0,0 +1,1162 @@ +import React, { useReducer, useState } from 'react' +import { + Button, + IconArrowRight, + IconCheck, + IconChevronUp, + IconGlobe, + IconTrash, + IconX, + Input, + InputNumber, + Tabs, + Toggle, +} from '../../../../' +import { Form } from './../' + +import { Collapsible } from '../../Collapsible' + +import { Modal } from '../../Modal' +import AuthFormSchema from './AuthFormSchema.json' + +// import GoogleIcon './../../../static/icons/google-icon.svg' + +const DocsButton = () => { + return ( + + ) +} + +const CardForm = () => { + // panel + const Panel = ({ + children, + header, + footer, + }: { + children: React.ReactNode + header?: React.ReactNode + footer?: React.ReactNode + }) => ( +
+ {header && ( +
+ {header} +
+ )} +
{children}
+ {footer} +
+ ) + + const Section = ({ + children, + header, + }: { + children: React.ReactNode + header?: React.ReactNode + }) => ( +
+ {header} + {children} +
+ ) + + return ( + <> +
{ + setTimeout(() => { + alert(JSON.stringify(values, null, 2)) + setSubmitting(false) + }, 400) + }} + validate={(values: Values) => { + const errors: any = {} + if (!values.jwt_expiry) { + errors.jwt_expiry = 'This is required' + } + if (values.jwt_expiry > 604800) { + errors.jwt_expiry = + 'The maxiumum allowed is 604,800 seconds. Use a smaller number of seconds.' + } + return errors + }} + > + {({ isSubmitting, handleReset }: any) => ( + +
+
+ + +
+ + } + > +
User Signups} + > + +
+
+
User Sessions} + > + +
+
+ )} +
+ + ) +} + +// type to do later.. +let initialState: any = {} + +AuthFormSchema.map((provider) => { + initialState[`${provider.name.toLowerCase()}-active`] = provider.name == 'Email' ? true : false + initialState[`${provider.name.toLowerCase()}-app-id`] = '' + initialState[`${provider.name.toLowerCase()}-id-key`] = '' +}) + +console.log('form initialState', initialState) + +function providersReducer(state, action) { + switch (action.type) { + case 'update': + return Object.assign(state, action.values) + // case 'decrement': + // return { count: state.count - 1 } + default: + throw new Error() + } +} + +const AuthForm = () => { + const [providersFormState, dispatchProvidersForm] = useReducer(providersReducer, initialState) + + console.log('providersFormState from useState', providersFormState) + + // panel + const Panel = ({ + children, + header, + footer, + }: { + children: React.ReactNode + header?: React.ReactNode + footer?: React.ReactNode + }) => ( +
+ {header && ( +
+ {header} +
+ )} +
{children}
+ {footer} +
+ ) + + const Section = ({ + children, + header, + }: { + children: React.ReactNode + header?: React.ReactNode + }) => ( +
+ {header} + {children} +
+ ) + + const CollapsibleContainer = ({ + children, + header, + }: { + children: React.ReactNode + header?: React.ReactNode + }) => { + return ( +
+ {children} +
+ ) + } + + type formObj = { + type: string + name: string + label: string + description: string + } + + interface Provider { + name: string + icon: string + form: formObj[] + } + + const ProviderForm = ({ provider }: { provider: Provider }) => { + const [open, setOpen] = useState(false) + const [active, setActive] = useState( + providersFormState[`${provider.name.toLowerCase()}-active`] + ) + + console.log('panel active state', active) + + return ( + // + + + + +
{ + const errors: any = {} + + console.log('validation values', values) + + const input_active = `${provider.name.toLowerCase()}-active` + const input_app_id = `${provider.name.toLowerCase()}-app-id` + const input_id_key = `${provider.name.toLowerCase()}-id-key` + + if (values[input_app_id] && values[input_app_id].length < 10) + errors[input_app_id] = 'App ID must be at least 10 characters long' + if (values[input_app_id] && values[input_id_key].length < 10) + errors[input_id_key] = 'Secret must be at least 10 characters long' + + if (values[input_active]) { + if (!values[input_app_id]) + errors[input_app_id] = + 'You need to input an application ID if you want to enable this provider.' + if (!values[input_id_key]) + errors[input_id_key] = + 'You need to input an application secret if you want to enable this provider.' + } + + return errors + }} + onSubmit={(values: any, { setSubmitting }: any) => { + setTimeout(() => { + // alert(JSON.stringify(values, null, 2)) + dispatchProvidersForm({ type: 'update', values: values }) + setActive(values[`${provider.name.toLowerCase()}-active`]) + setSubmitting(false) + setOpen(false) + }, 400) + }} + > + {({ isSubmitting, handleReset }: any) => ( + +
+
+ +
+ {provider.form.map((x) => { + return ( + + ) + })} +
+
+ + +
+
+
+
+ )} +
+
+ //
+ ) + } + + return ( +
+
+ {AuthFormSchema.map((provider: Provider) => { + return + })} +
+
+ ) +} + +// type to do later.. +let domainInitialState: any = ['https://summersmuir.com', 'http://localhost:3000'] + +// AuthFormSchema.map((provider) => { +// domainInitialState[`${provider.name.toLowerCase()}-active`] = +// provider.name == 'Email' ? true : false +// domainInitialState[`${provider.name.toLowerCase()}-app-id`] = '' +// domainInitialState[`${provider.name.toLowerCase()}-id-key`] = '' +// }) + +console.log('form domainInitialState', domainInitialState) + +// function domainsReducer(state, action) { +// switch (action.type) { +// case 'update': +// let _state = [] +// _state.push(...state) +// _state.push(action.values.domain) +// console.log('new state', _state) +// return _state +// // case 'remove': +// // _state.push(...state) +// // _state = _state.filter((e: any) => e !== action.values) +// // console.log('new state', _state) +// // return _state +// // case 'decrement': +// // return { count: state.count - 1 } +// default: +// throw new Error() +// } +// } + +function domainsReducer(state, action) { + let _state = [] + switch (action.type) { + case 'update': + _state.push(...state) + _state.push(action.values.domain) + console.log('new state', _state) + return _state + case 'remove': + _state.push(...state) + _state = _state.filter((e: any) => e !== action.values) + console.log('new state', _state) + return _state + // case 'decrement': + // return { count: state.count - 1 } + default: + throw new Error() + } +} + +const DomainsForm = () => { + const [domainsFormState, dispatchDomainsForm] = useReducer(domainsReducer, domainInitialState) + + const [deleteOpen, setDeleteOpen] = useState(false) + const [deleteLoading, setDeleteLoading] = useState(false) + const [selectedDomain, setSelected] = useState('') + + console.log('domainsFormState from useState', domainsFormState) + + type formObj = { + type: string + name: string + label: string + description: string + } + + interface Provider { + name: string + icon: string + form: formObj[] + } + + const DomainsForm = () => { + // const [active, setActive] = useState( + // domainsFormState[`${provider.name.toLowerCase()}-active`] + // ) + const [open, setOpen] = useState(false) + + // console.log('panel active state', active) + + return ( + <> +
+
+

Authorised domains

+

+ Turn payment methods on and off in one click – no engineering time required. +

+

+ Use our guide to check which payment methods are compatible with your integration. +

+
+ + setOpen(!open)} + header={ +
+
+

Add a new domain

+
+
+ } + contentStyle={{ padding: 0 }} + hideFooter + > +
{ + console.log('submitting domain') + setTimeout(() => { + setSubmitting(false) + dispatchDomainsForm({ type: 'update', values: values }) + setOpen(false) + }, 400) + }} + validate={(values) => { + const errors: any = {} + if (!values.domain) { + errors.domain = 'A domain is required' + } else if ( + !/^((https?|ftp|smtp):\/\/)?(www.)?[a-z0-9]+\.[a-z]+(\/[a-zA-Z0-9#]+\/?)*$/i.test( + values.domain + ) + ) { + errors.domain = 'Not a valid URL. Please use http:// or https://' + } + return errors + }} + > + {({ isSubmitting, errors, touched }: any) => { + // console.log('errors in form', errors) + // console.log('touched in form', touched) + return ( +
+
+

+ This will add a domain to a list of allowed domains that can interact with + your Authenticaton services for this project. +

+
+
+
+ +
+
+
+ +
+
+ ) + }} +
+
+
+ + ) + } + + console.log('RENDER DOMAINS') + + return ( +
+ +
+ {domainsFormState.map((domain) => { + return ( + <> +
+
+ + + + {domain} +
+ +
+ + ) + })} +
+ setDeleteOpen(!open)} + header={ +
+
+

Remove domain

+
+
+ } + contentStyle={{ padding: 0 }} + hideFooter + > +
+
+

+ Are you sure you want to remove{' '} + {selectedDomain}? +

+

+ This domain will no longer work with your Authentication configuration. +

+
+
+
+ + +
+
+
+
+ ) +} + +const SmtpForm = () => { + const [active, setActive] = useState(true) + + // panel + const Panel = ({ + children, + header, + footer, + }: { + children: React.ReactNode + header?: React.ReactNode + footer?: React.ReactNode + }) => ( +
+ {header && ( +
+ {header} +
+ )} +
{children}
+ {footer} +
+ ) + + const Section = ({ + children, + header, + }: { + children: React.ReactNode + header?: React.ReactNode + }) => ( +
+ {header &&
{header}
} + {children} +
+ ) + + return ( + <> +
{ + setTimeout(() => { + alert(JSON.stringify(values, null, 2)) + setSubmitting(false) + }, 400) + }} + validate={(values: Values) => { + const errors: any = {} + if (!values.jwt_expiry) { + errors.jwt_expiry = 'This is required' + } + if (values.jwt_expiry > 604800) { + errors.jwt_expiry = + 'The maxiumum allowed is 604,800 seconds. Use a smaller number of seconds.' + } + return errors + }} + > + {({ isSubmitting, handleReset, values }: any) => ( + +
+
+ + +
+ + } + > + {/*
+ Enable SMTP + + } + > */} + setActive(!active)} + // checked={active} + name="enable_smtp" + className="col-span-8 mx-8" + label="Enable Custom SMTP" + layout="flex" + descriptionText="If this is disabled, new users will not be able to sign up to your application." + /> + {/*
*/} +
+
+ +

+ These settings can be found in your SMTP provider config +

+
+ } + > +
+ + + + + +
+ + {values.enable_smtp && ( +
+ +
+ )} + + )} + + + ) +} + +const TemplatesForm = () => { + const [active, setActive] = useState(true) + + // panel + const Panel = ({ + children, + header, + footer, + }: { + children: React.ReactNode + header?: React.ReactNode + footer?: React.ReactNode + }) => ( +
+ {header && ( +
+ {header} +
+ )} +
{children}
+ {footer} +
+ ) + + const Section = ({ + children, + header, + }: { + children: React.ReactNode + header?: React.ReactNode + }) => ( +
+ {header &&
{header}
} + {children} +
+ ) + + return ( + <> +
{ + setTimeout(() => { + alert(JSON.stringify(values, null, 2)) + setSubmitting(false) + }, 400) + }} + validate={(values: Values) => { + const errors: any = {} + if (!values.jwt_expiry) { + errors.jwt_expiry = 'This is required' + } + if (values.jwt_expiry > 604800) { + errors.jwt_expiry = + 'The maxiumum allowed is 604,800 seconds. Use a smaller number of seconds.' + } + return errors + }} + > + {({ isSubmitting, handleReset, values }: any) => ( + <> +
+ + + + + + + +
+ +
+
+ + +
+ + } + > + {/*
+ Enable SMTP + + } + > */} + {/* setActive(!active)} + // checked={active} + name="enable_smtp" + className="col-span-8 mx-8" + label="Enable Custom SMTP" + layout="flex" + descriptionText="If this is disabled, new users will not be able to sign up to your application." + /> */} + {/*
*/} + {/*
*/} +
+

Confirm Signup

+

+ When a user signs up using an email address and password, you can send them a + confirmation email to verify their registered email address. Learn more +

+
+ } + > +
+ + {values.enable_smtp && ( +
+ +
+ )} + + + )} + + + ) +} + +export function WholeForm() { + return ( +
+ + +
+
+

Sign-in method

+
+
+
+

General settings

+

+ Turn payment methods on and off in one click – no engineering time required. +

+

+ Use our guide to check which payment methods are compatible with your integration. +

+ +
+
+

Providers

+

+ Turn payment methods on and off in one click – no engineering time required. +

+

+ Use our guide to check which payment methods are compatible with your integration. +

+ +
+ + +
+
+ +
+
+

Emails

+
+ +
+
+

Custom SMTP

+

+ You can use your own SMTP server instead of the built-in email service. +

+ +
+
+

Templates

+

+ You can use your own SMTP server instead of the built-in email service. +

+ +
+
+
+
+
+ ) +} + +export default WholeForm diff --git a/packages/ui/src/components/Form/examples/AuthFormSchema.json b/packages/ui/src/components/Form/examples/AuthFormSchema.json new file mode 100644 index 00000000000..faf00278cc5 --- /dev/null +++ b/packages/ui/src/components/Form/examples/AuthFormSchema.json @@ -0,0 +1,281 @@ +[ + { + "name": "Email", + "icon": "email-icon", + "form": [ + { + "type": "text", + "name": "email-app-id", + "label": "email App Id", + "description": "" + }, + { + "type": "text", + "name": "email-id-key", + "label": "email client ID", + "description": "" + }, + { + "type": "text", + "name": "email-id-key", + "label": "email client ID", + "description": "" + }, + { + "type": "text", + "name": "email-id-key", + "label": "email client ID", + "description": "" + } + ] + }, + { + "name": "Phone", + "icon": "phone-icon", + "form": [ + { + "type": "select", + "name": "phone-app-provider", + "label": "Phone service provider", + "description": "You can use a provider etc etc" + }, + { + "type": "text", + "name": "phone-id-key", + "label": "phone client ID", + "description": "" + }, + { + "type": "text", + "name": "phone-id-key", + "label": "phone client ID", + "description": "" + }, + { + "type": "text", + "name": "phone-id-key", + "label": "phone client ID", + "description": "" + } + ] + }, + { + "name": "Google", + "icon": "google-icon", + "form": [ + { + "type": "text", + "name": "google-app-id", + "label": "Google App Id", + "description": "" + }, + { + "type": "text", + "name": "google-id-key", + "label": "Google client ID", + "description": "" + } + ] + }, + { + "name": "Facebook", + "icon": "facebook-icon", + "form": [ + { + "type": "text", + "name": "facebook-app-id", + "label": "Facebook App Id", + "description": "" + }, + { + "type": "text", + "name": "facebook-id-key", + "label": "Facebook client ID", + "description": "" + } + ] + }, + { + "name": "Twitter", + "icon": "twitter-icon", + "form": [ + { + "type": "text", + "name": "twitter-app-id", + "label": "Twitter App Id", + "description": "" + }, + { + "type": "text", + "name": "twitter-id-key", + "label": "Twitter client ID", + "description": "" + } + ] + }, + { + "name": "Apple", + "icon": "apple-icon", + "form": [ + { + "type": "text", + "name": "apple-app-id", + "label": "Apple App Id", + "description": "" + }, + { + "type": "text", + "name": "apple-id-key", + "label": "Apple client ID", + "description": "" + } + ] + }, + { + "name": "Microsoft", + "icon": "microsoft-icon", + "form": [ + { + "type": "text", + "name": "microsoft-app-id", + "label": "Microsoft App Id", + "description": "" + }, + { + "type": "text", + "name": "microsoft-id-key", + "label": "Microsoft client ID", + "description": "" + } + ] + }, + { + "name": "Gitlab", + "icon": "gitlab-icon", + "form": [ + { + "type": "text", + "name": "gitlab-app-id", + "label": "Gitlab App Id", + "description": "" + }, + { + "type": "text", + "name": "gitlab-id-key", + "label": "Gitlab client ID", + "description": "" + } + ] + }, + + { + "name": "Bitbucket", + "icon": "bitbucket-icon", + "form": [ + { + "type": "text", + "name": "bitbucket-app-id", + "label": "Bitbucket App Id", + "description": "" + }, + { + "type": "text", + "name": "bitbucket-id-key", + "label": "Bitbucket client ID", + "description": "" + } + ] + }, + { + "name": "Discord", + "icon": "discord-icon", + "form": [ + { + "type": "text", + "name": "discord-app-id", + "label": "Discord App Id", + "description": "" + }, + { + "type": "text", + "name": "discord-id-key", + "label": "Discord client ID", + "description": "" + } + ] + }, + + { + "name": "Github", + "icon": "github-icon-dark", + "form": [ + { + "type": "text", + "name": "github-app-id", + "label": "Github App Id", + "description": "" + }, + { + "type": "text", + "name": "github-id-key", + "label": "Github client ID", + "description": "" + } + ] + }, + + { + "name": "Slack", + "icon": "slack-icon", + "form": [ + { + "type": "text", + "name": "slack-app-id", + "label": "Slack App Id", + "description": "" + }, + { + "type": "text", + "name": "slack-id-key", + "label": "Slack client ID", + "description": "" + } + ] + }, + { + "name": "Spotify", + "icon": "spotify-icon", + "form": [ + { + "type": "text", + "name": "spotify-app-id", + "label": "Spotify App Id", + "description": "" + }, + { + "type": "text", + "name": "spotify-id-key", + "label": "Spotify client ID", + "description": "" + } + ] + }, + { + "name": "Twitch", + "icon": "twitch-icon", + "form": [ + { + "type": "text", + "name": "twitch-app-id", + "label": "Twitch App Id", + "description": "" + }, + { + "type": "text", + "name": "twitch-id-key", + "label": "Twitch client ID", + "description": "" + } + ] + } +] diff --git a/packages/ui/src/components/Form/examples/PhoneProvidersSchema.json b/packages/ui/src/components/Form/examples/PhoneProvidersSchema.json new file mode 100644 index 00000000000..eb38715495a --- /dev/null +++ b/packages/ui/src/components/Form/examples/PhoneProvidersSchema.json @@ -0,0 +1,36 @@ + { + "name": "Twilio", + "icon": "twilio-icon", + "form": [ + { + "type": "text", + "name": "twilio-app-id", + "label": "Enable twilio Provider", + "description": "" + }, + { + "type": "text", + "name": "twilio-id-key", + "label": "twilio client ID", + "description": "" + } + ] + }, + { + "name": "Messagebird", + "icon": "messagebird-icon", + "form": [ + { + "type": "text", + "name": "messagebird-app-id", + "label": "Enable gitlab messagebird", + "description": "" + }, + { + "type": "text", + "name": "messagebird-id-key", + "label": "messagebird client ID", + "description": "" + } + ] + } \ No newline at end of file diff --git a/packages/ui/src/components/Form/index.tsx b/packages/ui/src/components/Form/index.tsx new file mode 100644 index 00000000000..dda8db37e4a --- /dev/null +++ b/packages/ui/src/components/Form/index.tsx @@ -0,0 +1 @@ +export { default as Form } from './Form' diff --git a/packages/ui/src/components/Icon/Icon.module.css b/packages/ui/src/components/Icon/Icon.module.css new file mode 100644 index 00000000000..a9a9de6e63e --- /dev/null +++ b/packages/ui/src/components/Icon/Icon.module.css @@ -0,0 +1,39 @@ +/* .sbui-icon-container { + @apply flex-shrink-0 flex items-center justify-center rounded-full p-3; +} + +.sbui-icon-container--brand { + @apply bg-brand-800 bg-opacity-10 text-brand-800; +} + +.sbui-icon-container--gray { + @apply bg-gray-600 bg-opacity-10 text-gray-500; +} + +.sbui-icon-container--red { + @apply bg-red-600 bg-opacity-10 text-red-500; +} + +.sbui-icon-container--yellow { + @apply bg-yellow-600 bg-opacity-10 text-yellow-500; +} + +.sbui-icon-container--green { + @apply bg-green-600 bg-opacity-10 text-green-500; +} + +.sbui-icon-container--blue { + @apply bg-blue-600 bg-opacity-10 text-blue-500; +} + +.sbui-icon-container--indigo { + @apply bg-indigo-600 bg-opacity-10 text-indigo-500; +} + +.sbui-icon-container--purple { + @apply bg-purple-600 bg-opacity-10 text-purple-500; +} + +.sbui-icon-container--pink { + @apply bg-pink-600 bg-opacity-10 text-pink-500; +} */ diff --git a/packages/ui/src/components/Icon/Icon.stories.tsx b/packages/ui/src/components/Icon/Icon.stories.tsx new file mode 100644 index 00000000000..8fcc2f8b607 --- /dev/null +++ b/packages/ui/src/components/Icon/Icon.stories.tsx @@ -0,0 +1,66 @@ +import React from 'react' + +import { IconMail, Typography } from './../../index' + +export default { + title: 'General/Icon', + component: IconMail, +} + +export const Default = (args: any) => ( +
+
+ + + +
+
+) + +Default.args = { + size: 16, + strokeWidth: 2, +} + +// export const IconList = (args: any) => ( +// <> +//
+// This icons uses react-feather from Feather Icons. For detail you can check +// it here and{' '} +// here +//
+//
+// {LIST_ICONS.map((icon) => ( +//
+// +// {icon} +//
+// ))} +//
+// +// ) + +// IconList.args = { +// size: 16, +// strokeWidth: 2, +// } + +// // const SvgMessagesIcon = () => ( +// // +// // +// // +// // ) + +// // export const IconWithSVG = (args: any) => ( +// // } /> +// // ) + +// // IconWithSVG.args = { +// // size: 'xxxlarge', +// // strokeWidth: 4, +// // } diff --git a/packages/ui/src/components/Icon/Icon.test.js b/packages/ui/src/components/Icon/Icon.test.js new file mode 100644 index 00000000000..865c70baa4b --- /dev/null +++ b/packages/ui/src/components/Icon/Icon.test.js @@ -0,0 +1,26 @@ +import React from 'react' +import { render, screen } from '@testing-library/react' +import Icon from './Icon' + +describe('#Icon', () => { + it('should render Icon correctly', () => { + render() + const $elIcon = screen.queryByTestId('icon') + expect($elIcon).toBeInTheDocument() + }) + + it('should change svg size', () => { + render() + + const $elIcon = screen.queryByTestId('icon') + expect($elIcon.getAttribute('width')).toEqual('40') + expect($elIcon.getAttribute('height')).toEqual('40') + }) + + it('should change strokeWidth value', () => { + render() + + const $elIcon = screen.queryByTestId('icon') + expect($elIcon.getAttribute('stroke-width')).toEqual('1') + }) +}) diff --git a/packages/ui/src/components/Icon/Icon.tsx b/packages/ui/src/components/Icon/Icon.tsx new file mode 100644 index 00000000000..d2a507cedbd --- /dev/null +++ b/packages/ui/src/components/Icon/Icon.tsx @@ -0,0 +1,133 @@ +import React from 'react' +import styleHandler from '../../lib/theme/styleHandler' +import { IconContext } from './IconContext' +// @ts-ignore +// import IconStyles from './Icon.module.css' + +const IconStyles = {} + +interface Props { + className?: string + size?: + | 'tiny' + | 'small' + | 'medium' + | 'large' + | 'xlarge' + | 'xxlarge' + | 'xxxlarge' + | number + type?: string + color?: string + strokeWidth?: number + fill?: string + stroke?: string + background?: + | 'brand' + | 'gray' + | 'red' + | 'yellow' + | 'green' + | 'blue' + | 'indigo' + | 'purple' + | 'pink' + src: React.ReactNode +} + +interface StringMap { + [key: string]: number +} + +function Icon({ + className, + size, + type, + color, + strokeWidth, + fill = undefined, + stroke = undefined, + background, + src, + ...props +}: Props) { + const __styles = styleHandler('icon') + + return ( + + {({ contextSize, className: contextClassName }) => { + const defaultSizes: StringMap = { + tiny: 14, + small: 18, + medium: 20, + large: 20, + xlarge: 24, + xxlarge: 30, + xxxlarge: 42, + } + + const defaultSize = defaultSizes['large'] + + // const iconSize = typeof size === 'string' ? defaultSizes[contextSize] : 21 + let iconSize: any = 21 + + // use contextSize of parent (via context hook) if one exists + if (contextSize) { + iconSize = contextSize + ? typeof contextSize === 'string' + ? defaultSizes[contextSize] + : contextSize + : defaultSize + } + + // use size prop of this component if one exists + if (size) { + iconSize = size + ? typeof size === 'string' + ? defaultSizes[size] + : size + : defaultSize + } + + // confitional used for Icons with no color settings + // default these icons to use 'currentColor' ie, the text color + const noColor = !color && !fill && !stroke + + let classes = ['sbui-icon', className] + if (contextClassName) { + classes.push(contextClassName) + } + + const Icon = ( + // custom SVG file + + {src} + + ) + + return background ? ( +
+ {Icon} +
+ ) : ( + Icon + ) + }} +
+ ) +} + +export default Icon diff --git a/packages/ui/src/components/Icon/IconBase.tsx b/packages/ui/src/components/Icon/IconBase.tsx new file mode 100644 index 00000000000..82f097092be --- /dev/null +++ b/packages/ui/src/components/Icon/IconBase.tsx @@ -0,0 +1,144 @@ +import React from 'react' +import styleHandler from '../../lib/theme/styleHandler' +import { IconContext } from './IconContext' +// @ts-ignore +// import IconStyles from './Icon.module.css' + +interface Props { + className?: string + size?: + | 'tiny' + | 'small' + | 'medium' + | 'large' + | 'xlarge' + | 'xxlarge' + | 'xxxlarge' + | number + type?: string + color?: string + strokeWidth?: number + fill?: string + stroke?: string + background?: + | 'brand' + | 'gray' + | 'red' + | 'yellow' + | 'green' + | 'blue' + | 'indigo' + | 'purple' + | 'pink' + src?: React.ReactNode + icon?: any +} + +interface StringMap { + [key: string]: number +} + +function IconBase({ + className, + size, + type = 'Mail', + color, + strokeWidth, + fill = undefined, + stroke = undefined, + background, + src, + icon, + ...props +}: Props) { + const __styles = styleHandler('icon') + + return ( + + {({ contextSize, className: contextClassName }) => { + const defaultSizes: StringMap = { + tiny: 14, + small: 18, + medium: 20, + large: 20, + xlarge: 24, + xxlarge: 30, + xxxlarge: 42, + } + + const defaultSize = defaultSizes['large'] + // @ts-ignore + + const FeatherIcon = icon + + // const iconSize = typeof size === 'string' ? defaultSizes[contextSize] : 21 + let iconSize: any = 21 + + // use contextSize of parent (via context hook) if one exists + if (contextSize) { + iconSize = contextSize + ? typeof contextSize === 'string' + ? defaultSizes[contextSize] + : contextSize + : defaultSize + } + + // use size prop of this component if one exists + if (size) { + iconSize = size + ? typeof size === 'string' + ? defaultSizes[size] + : size + : defaultSize + } + + // confitional used for Icons with no color settings + // default these icons to use 'currentColor' ie, the text color + const noColor = !color && !fill && !stroke + + let classes = ['sbui-icon', className] + if (contextClassName) { + classes.push(contextClassName) + } + + const IconComponent = () => ( + + ) + + const Icon = src ? ( + // custom SVG file + + {src} + + ) : ( + // feather icon + + ) + + return background ? ( +
{Icon}
+ ) : ( + Icon + ) + }} +
+ ) +} + +export default IconBase diff --git a/packages/ui/src/components/Icon/IconContext.tsx b/packages/ui/src/components/Icon/IconContext.tsx new file mode 100644 index 00000000000..4d2198bdfe7 --- /dev/null +++ b/packages/ui/src/components/Icon/IconContext.tsx @@ -0,0 +1,10 @@ +import { createContext } from 'react' + +type ContextValue = { contextSize?: string; className?: string } + +// Make sure the shape of the default value passed to +// createContext matches the shape that the consumers expect! +export const IconContext = createContext({ + contextSize: '', + className: '', +}) diff --git a/packages/ui/src/components/Icon/IconImportHandler.tsx b/packages/ui/src/components/Icon/IconImportHandler.tsx new file mode 100644 index 00000000000..0d158b428c6 --- /dev/null +++ b/packages/ui/src/components/Icon/IconImportHandler.tsx @@ -0,0 +1,294 @@ +import { FC, SVGAttributes } from 'react' + +export interface IconProps extends SVGAttributes { + color?: string + size?: string | number +} + +export type Icon = FC +export const Activity: Icon = require(`react-feather/dist/icons/activity`) +export const Airplay: Icon = require(`react-feather/dist/icons/airplay`) +export const AlertCircle: Icon = require(`react-feather/dist/icons/alert-circle`) +export const AlertOctagon: Icon = require(`react-feather/dist/icons/alert-octagon`) +export const AlertTriangle: Icon = require(`react-feather/dist/icons/alert-triangle`) +export const AlignCenter: Icon = require(`react-feather/dist/icons/align-center`) +export const AlignJustify: Icon = require(`react-feather/dist/icons/align-justify`) +export const AlignLeft: Icon = require(`react-feather/dist/icons/align-left`) +export const AlignRight: Icon = require(`react-feather/dist/icons/align-right`) +export const Anchor: Icon = require(`react-feather/dist/icons/anchor`) +export const Aperture: Icon = require(`react-feather/dist/icons/aperture`) +export const Archive: Icon = require(`react-feather/dist/icons/archive`) +export const ArrowDownCircle: Icon = require(`react-feather/dist/icons/arrow-down-circle`) +export const ArrowDownLeft: Icon = require(`react-feather/dist/icons/arrow-down-left`) +export const ArrowDownRight: Icon = require(`react-feather/dist/icons/arrow-down-right`) +export const ArrowDown: Icon = require(`react-feather/dist/icons/arrow-down`) +export const ArrowLeftCircle: Icon = require(`react-feather/dist/icons/arrow-left-circle`) +export const ArrowLeft: Icon = require(`react-feather/dist/icons/arrow-left`) +export const ArrowRightCircle: Icon = require(`react-feather/dist/icons/arrow-right-circle`) +export const ArrowRight: Icon = require(`react-feather/dist/icons/arrow-right`) +export const ArrowUpCircle: Icon = require(`react-feather/dist/icons/arrow-up-circle`) +export const ArrowUpLeft: Icon = require(`react-feather/dist/icons/arrow-up-left`) +export const ArrowUpRight: Icon = require(`react-feather/dist/icons/arrow-up-right`) +export const ArrowUp: Icon = require(`react-feather/dist/icons/arrow-up`) +export const AtSign: Icon = require(`react-feather/dist/icons/at-sign`) +export const Award: Icon = require(`react-feather/dist/icons/award`) +export const BarChart2: Icon = require(`react-feather/dist/icons/bar-chart-2`) +export const BarChart: Icon = require(`react-feather/dist/icons/bar-chart`) +export const BatteryCharging: Icon = require(`react-feather/dist/icons/battery-charging`) +export const Battery: Icon = require(`react-feather/dist/icons/battery`) +export const BellOff: Icon = require(`react-feather/dist/icons/bell-off`) +export const Bell: Icon = require(`react-feather/dist/icons/bell`) +export const Bluetooth: Icon = require(`react-feather/dist/icons/bluetooth`) +export const Bold: Icon = require(`react-feather/dist/icons/bold`) +export const BookOpen: Icon = require(`react-feather/dist/icons/book-open`) +export const Book: Icon = require(`react-feather/dist/icons/book`) +export const Bookmark: Icon = require(`react-feather/dist/icons/bookmark`) +export const Box: Icon = require(`react-feather/dist/icons/box`) +export const Briefcase: Icon = require(`react-feather/dist/icons/briefcase`) +export const Calendar: Icon = require(`react-feather/dist/icons/calendar`) +export const CameraOff: Icon = require(`react-feather/dist/icons/camera-off`) +export const Camera: Icon = require(`react-feather/dist/icons/camera`) +export const Cast: Icon = require(`react-feather/dist/icons/cast`) +export const CheckCircle: Icon = require(`react-feather/dist/icons/check-circle`) +export const CheckSquare: Icon = require(`react-feather/dist/icons/check-square`) +export const Check: Icon = require(`react-feather/dist/icons/check`) +export const ChevronDown: Icon = require(`react-feather/dist/icons/chevron-down`) +export const ChevronLeft: Icon = require(`react-feather/dist/icons/chevron-left`) +export const ChevronRight: Icon = require(`react-feather/dist/icons/chevron-right`) +export const ChevronUp: Icon = require(`react-feather/dist/icons/chevron-up`) +export const ChevronsDown: Icon = require(`react-feather/dist/icons/chevrons-down`) +export const ChevronsLeft: Icon = require(`react-feather/dist/icons/chevrons-left`) +export const ChevronsRight: Icon = require(`react-feather/dist/icons/chevrons-right`) +export const ChevronsUp: Icon = require(`react-feather/dist/icons/chevrons-up`) +export const Chrome: Icon = require(`react-feather/dist/icons/chrome`) +export const Circle: Icon = require(`react-feather/dist/icons/circle`) +export const Clipboard: Icon = require(`react-feather/dist/icons/clipboard`) +export const Clock: Icon = require(`react-feather/dist/icons/clock`) +export const CloudDrizzle: Icon = require(`react-feather/dist/icons/cloud-drizzle`) +export const CloudLightning: Icon = require(`react-feather/dist/icons/cloud-lightning`) +export const CloudOff: Icon = require(`react-feather/dist/icons/cloud-off`) +export const CloudRain: Icon = require(`react-feather/dist/icons/cloud-rain`) +export const CloudSnow: Icon = require(`react-feather/dist/icons/cloud-snow`) +export const Cloud: Icon = require(`react-feather/dist/icons/cloud`) +export const Code: Icon = require(`react-feather/dist/icons/code`) +export const Codepen: Icon = require(`react-feather/dist/icons/codepen`) +export const Codesandbox: Icon = require(`react-feather/dist/icons/codesandbox`) +export const Coffee: Icon = require(`react-feather/dist/icons/coffee`) +export const Columns: Icon = require(`react-feather/dist/icons/columns`) +export const Command: Icon = require(`react-feather/dist/icons/command`) +export const Compass: Icon = require(`react-feather/dist/icons/compass`) +export const Copy: Icon = require(`react-feather/dist/icons/copy`) +export const CornerDownLeft: Icon = require(`react-feather/dist/icons/corner-down-left`) +export const CornerDownRight: Icon = require(`react-feather/dist/icons/corner-down-right`) +export const CornerLeftDown: Icon = require(`react-feather/dist/icons/corner-left-down`) +export const CornerLeftUp: Icon = require(`react-feather/dist/icons/corner-left-up`) +export const CornerRightDown: Icon = require(`react-feather/dist/icons/corner-right-down`) +export const CornerRightUp: Icon = require(`react-feather/dist/icons/corner-right-up`) +export const CornerUpLeft: Icon = require(`react-feather/dist/icons/corner-up-left`) +export const CornerUpRight: Icon = require(`react-feather/dist/icons/corner-up-right`) +export const Cpu: Icon = require(`react-feather/dist/icons/cpu`) +export const CreditCard: Icon = require(`react-feather/dist/icons/credit-card`) +export const Crop: Icon = require(`react-feather/dist/icons/crop`) +export const Crosshair: Icon = require(`react-feather/dist/icons/crosshair`) +export const Database: Icon = require(`react-feather/dist/icons/database`) +export const Delete: Icon = require(`react-feather/dist/icons/delete`) +export const Disc: Icon = require(`react-feather/dist/icons/disc`) +export const DivideCircle: Icon = require(`react-feather/dist/icons/divide-circle`) +export const DivideSquare: Icon = require(`react-feather/dist/icons/divide-square`) +export const Divide: Icon = require(`react-feather/dist/icons/divide`) +export const DollarSign: Icon = require(`react-feather/dist/icons/dollar-sign`) +export const DownloadCloud: Icon = require(`react-feather/dist/icons/download-cloud`) +export const Download: Icon = require(`react-feather/dist/icons/download`) +export const Dribbble: Icon = require(`react-feather/dist/icons/dribbble`) +export const Droplet: Icon = require(`react-feather/dist/icons/droplet`) +export const Edit2: Icon = require(`react-feather/dist/icons/edit-2`) +export const Edit3: Icon = require(`react-feather/dist/icons/edit-3`) +export const Edit: Icon = require(`react-feather/dist/icons/edit`) +export const ExternalLink: Icon = require(`react-feather/dist/icons/external-link`) +export const EyeOff: Icon = require(`react-feather/dist/icons/eye-off`) +export const Eye: Icon = require(`react-feather/dist/icons/eye`) +export const Facebook: Icon = require(`react-feather/dist/icons/facebook`) +export const FastForward: Icon = require(`react-feather/dist/icons/fast-forward`) +export const Feather: Icon = require(`react-feather/dist/icons/feather`) +export const Figma: Icon = require(`react-feather/dist/icons/figma`) +export const FileMinus: Icon = require(`react-feather/dist/icons/file-minus`) +export const FilePlus: Icon = require(`react-feather/dist/icons/file-plus`) +export const FileText: Icon = require(`react-feather/dist/icons/file-text`) +export const File: Icon = require(`react-feather/dist/icons/file`) +export const Film: Icon = require(`react-feather/dist/icons/film`) +export const Filter: Icon = require(`react-feather/dist/icons/filter`) +export const Flag: Icon = require(`react-feather/dist/icons/flag`) +export const FolderMinus: Icon = require(`react-feather/dist/icons/folder-minus`) +export const FolderPlus: Icon = require(`react-feather/dist/icons/folder-plus`) +export const Folder: Icon = require(`react-feather/dist/icons/folder`) +export const Framer: Icon = require(`react-feather/dist/icons/framer`) +export const Frown: Icon = require(`react-feather/dist/icons/frown`) +export const Gift: Icon = require(`react-feather/dist/icons/gift`) +export const GitBranch: Icon = require(`react-feather/dist/icons/git-branch`) +export const GitCommit: Icon = require(`react-feather/dist/icons/git-commit`) +export const GitMerge: Icon = require(`react-feather/dist/icons/git-merge`) +export const GitPullRequest: Icon = require(`react-feather/dist/icons/git-pull-request`) +export const GitHub: Icon = require(`react-feather/dist/icons/github`) +export const Gitlab: Icon = require(`react-feather/dist/icons/gitlab`) +export const Globe: Icon = require(`react-feather/dist/icons/globe`) +export const Grid: Icon = require(`react-feather/dist/icons/grid`) +export const HardDrive: Icon = require(`react-feather/dist/icons/hard-drive`) +export const Hash: Icon = require(`react-feather/dist/icons/hash`) +export const Headphones: Icon = require(`react-feather/dist/icons/headphones`) +export const Heart: Icon = require(`react-feather/dist/icons/heart`) +export const HelpCircle: Icon = require(`react-feather/dist/icons/help-circle`) +export const Hexagon: Icon = require(`react-feather/dist/icons/hexagon`) +export const Home: Icon = require(`react-feather/dist/icons/home`) +export const Image: Icon = require(`react-feather/dist/icons/image`) +export const Inbox: Icon = require(`react-feather/dist/icons/inbox`) +export const Info: Icon = require(`react-feather/dist/icons/info`) +export const Instagram: Icon = require(`react-feather/dist/icons/instagram`) +export const Italic: Icon = require(`react-feather/dist/icons/italic`) +export const Key: Icon = require(`react-feather/dist/icons/key`) +export const Layers: Icon = require(`react-feather/dist/icons/layers`) +export const Layout: Icon = require(`react-feather/dist/icons/layout`) +export const LifeBuoy: Icon = require(`react-feather/dist/icons/life-buoy`) +export const Link2: Icon = require(`react-feather/dist/icons/link-2`) +export const Link: Icon = require(`react-feather/dist/icons/link`) +export const Linkedin: Icon = require(`react-feather/dist/icons/linkedin`) +export const List: Icon = require(`react-feather/dist/icons/list`) +export const Loader: Icon = require(`react-feather/dist/icons/loader`) +export const Lock: Icon = require(`react-feather/dist/icons/lock`) +export const LogIn: Icon = require(`react-feather/dist/icons/log-in`) +export const LogOut: Icon = require(`react-feather/dist/icons/log-out`) +export const Mail: Icon = require(`react-feather/dist/icons/mail`) +export const MapPin: Icon = require(`react-feather/dist/icons/map-pin`) +export const Map: Icon = require(`react-feather/dist/icons/map`) +export const Maximize2: Icon = require(`react-feather/dist/icons/maximize-2`) +export const Maximize: Icon = require(`react-feather/dist/icons/maximize`) +export const Meh: Icon = require(`react-feather/dist/icons/meh`) +export const Menu: Icon = require(`react-feather/dist/icons/menu`) +export const MessageCircle: Icon = require(`react-feather/dist/icons/message-circle`) +export const MessageSquare: Icon = require(`react-feather/dist/icons/message-square`) +export const MicOff: Icon = require(`react-feather/dist/icons/mic-off`) +export const Mic: Icon = require(`react-feather/dist/icons/mic`) +export const Minimize2: Icon = require(`react-feather/dist/icons/minimize-2`) +export const Minimize: Icon = require(`react-feather/dist/icons/minimize`) +export const MinusCircle: Icon = require(`react-feather/dist/icons/minus-circle`) +export const MinusSquare: Icon = require(`react-feather/dist/icons/minus-square`) +export const Minus: Icon = require(`react-feather/dist/icons/minus`) +export const Monitor: Icon = require(`react-feather/dist/icons/monitor`) +export const Moon: Icon = require(`react-feather/dist/icons/moon`) +export const MoreHorizontal: Icon = require(`react-feather/dist/icons/more-horizontal`) +export const MoreVertical: Icon = require(`react-feather/dist/icons/more-vertical`) +export const MousePointer: Icon = require(`react-feather/dist/icons/mouse-pointer`) +export const Move: Icon = require(`react-feather/dist/icons/move`) +export const Music: Icon = require(`react-feather/dist/icons/music`) +export const Navigation2: Icon = require(`react-feather/dist/icons/navigation-2`) +export const Navigation: Icon = require(`react-feather/dist/icons/navigation`) +export const Octagon: Icon = require(`react-feather/dist/icons/octagon`) +export const Package: Icon = require(`react-feather/dist/icons/package`) +export const Paperclip: Icon = require(`react-feather/dist/icons/paperclip`) +export const PauseCircle: Icon = require(`react-feather/dist/icons/pause-circle`) +export const Pause: Icon = require(`react-feather/dist/icons/pause`) +export const PenTool: Icon = require(`react-feather/dist/icons/pen-tool`) +export const Percent: Icon = require(`react-feather/dist/icons/percent`) +export const PhoneCall: Icon = require(`react-feather/dist/icons/phone-call`) +export const PhoneForwarded: Icon = require(`react-feather/dist/icons/phone-forwarded`) +export const PhoneIncoming: Icon = require(`react-feather/dist/icons/phone-incoming`) +export const PhoneMissed: Icon = require(`react-feather/dist/icons/phone-missed`) +export const PhoneOff: Icon = require(`react-feather/dist/icons/phone-off`) +export const PhoneOutgoing: Icon = require(`react-feather/dist/icons/phone-outgoing`) +export const Phone: Icon = require(`react-feather/dist/icons/phone`) +export const PieChart: Icon = require(`react-feather/dist/icons/pie-chart`) +export const PlayCircle: Icon = require(`react-feather/dist/icons/play-circle`) +export const Play: Icon = require(`react-feather/dist/icons/play`) +export const PlusCircle: Icon = require(`react-feather/dist/icons/plus-circle`) +export const PlusSquare: Icon = require(`react-feather/dist/icons/plus-square`) +export const Plus: Icon = require(`react-feather/dist/icons/plus`) +export const Pocket: Icon = require(`react-feather/dist/icons/pocket`) +export const Power: Icon = require(`react-feather/dist/icons/power`) +export const Printer: Icon = require(`react-feather/dist/icons/printer`) +export const Radio: Icon = require(`react-feather/dist/icons/radio`) +export const RefreshCcw: Icon = require(`react-feather/dist/icons/refresh-ccw`) +export const RefreshCw: Icon = require(`react-feather/dist/icons/refresh-cw`) +export const Repeat: Icon = require(`react-feather/dist/icons/repeat`) +export const Rewind: Icon = require(`react-feather/dist/icons/rewind`) +export const RotateCcw: Icon = require(`react-feather/dist/icons/rotate-ccw`) +export const RotateCw: Icon = require(`react-feather/dist/icons/rotate-cw`) +export const Rss: Icon = require(`react-feather/dist/icons/rss`) +export const Save: Icon = require(`react-feather/dist/icons/save`) +export const Scissors: Icon = require(`react-feather/dist/icons/scissors`) +export const Search: Icon = require(`react-feather/dist/icons/search`) +export const Send: Icon = require(`react-feather/dist/icons/send`) +export const Server: Icon = require(`react-feather/dist/icons/server`) +export const Settings: Icon = require(`react-feather/dist/icons/settings`) +export const Share2: Icon = require(`react-feather/dist/icons/share-2`) +export const Share: Icon = require(`react-feather/dist/icons/share`) +export const ShieldOff: Icon = require(`react-feather/dist/icons/shield-off`) +export const Shield: Icon = require(`react-feather/dist/icons/shield`) +export const ShoppingBag: Icon = require(`react-feather/dist/icons/shopping-bag`) +export const ShoppingCart: Icon = require(`react-feather/dist/icons/shopping-cart`) +export const Shuffle: Icon = require(`react-feather/dist/icons/shuffle`) +export const Sidebar: Icon = require(`react-feather/dist/icons/sidebar`) +export const SkipBack: Icon = require(`react-feather/dist/icons/skip-back`) +export const SkipForward: Icon = require(`react-feather/dist/icons/skip-forward`) +export const Slack: Icon = require(`react-feather/dist/icons/slack`) +export const Slash: Icon = require(`react-feather/dist/icons/slash`) +export const Sliders: Icon = require(`react-feather/dist/icons/sliders`) +export const Smartphone: Icon = require(`react-feather/dist/icons/smartphone`) +export const Smile: Icon = require(`react-feather/dist/icons/smile`) +export const Speaker: Icon = require(`react-feather/dist/icons/speaker`) +export const Square: Icon = require(`react-feather/dist/icons/square`) +export const Star: Icon = require(`react-feather/dist/icons/star`) +export const StopCircle: Icon = require(`react-feather/dist/icons/stop-circle`) +export const Sun: Icon = require(`react-feather/dist/icons/sun`) +export const Sunrise: Icon = require(`react-feather/dist/icons/sunrise`) +export const Sunset: Icon = require(`react-feather/dist/icons/sunset`) +export const Tablet: Icon = require(`react-feather/dist/icons/tablet`) +export const Tag: Icon = require(`react-feather/dist/icons/tag`) +export const Target: Icon = require(`react-feather/dist/icons/target`) +export const Terminal: Icon = require(`react-feather/dist/icons/terminal`) +export const Thermometer: Icon = require(`react-feather/dist/icons/thermometer`) +export const ThumbsDown: Icon = require(`react-feather/dist/icons/thumbs-down`) +export const ThumbsUp: Icon = require(`react-feather/dist/icons/thumbs-up`) +export const ToggleLeft: Icon = require(`react-feather/dist/icons/toggle-left`) +export const ToggleRight: Icon = require(`react-feather/dist/icons/toggle-right`) +export const Tool: Icon = require(`react-feather/dist/icons/tool`) +export const Trash2: Icon = require(`react-feather/dist/icons/trash-2`) +export const Trash: Icon = require(`react-feather/dist/icons/trash`) +export const Trello: Icon = require(`react-feather/dist/icons/trello`) +export const TrendingDown: Icon = require(`react-feather/dist/icons/trending-down`) +export const TrendingUp: Icon = require(`react-feather/dist/icons/trending-up`) +export const Triangle: Icon = require(`react-feather/dist/icons/triangle`) +export const Truck: Icon = require(`react-feather/dist/icons/truck`) +export const Tv: Icon = require(`react-feather/dist/icons/tv`) +export const Twitch: Icon = require(`react-feather/dist/icons/twitch`) +export const Twitter: Icon = require(`react-feather/dist/icons/twitter`) +export const Type: Icon = require(`react-feather/dist/icons/type`) +export const Umbrella: Icon = require(`react-feather/dist/icons/umbrella`) +export const Underline: Icon = require(`react-feather/dist/icons/underline`) +export const Unlock: Icon = require(`react-feather/dist/icons/unlock`) +export const UploadCloud: Icon = require(`react-feather/dist/icons/upload-cloud`) +export const Upload: Icon = require(`react-feather/dist/icons/upload`) +export const UserCheck: Icon = require(`react-feather/dist/icons/user-check`) +export const UserMinus: Icon = require(`react-feather/dist/icons/user-minus`) +export const UserPlus: Icon = require(`react-feather/dist/icons/user-plus`) +export const UserX: Icon = require(`react-feather/dist/icons/user-x`) +export const User: Icon = require(`react-feather/dist/icons/user`) +export const Users: Icon = require(`react-feather/dist/icons/users`) +export const VideoOff: Icon = require(`react-feather/dist/icons/video-off`) +export const Video: Icon = require(`react-feather/dist/icons/video`) +export const Voicemail: Icon = require(`react-feather/dist/icons/voicemail`) +export const Volume1: Icon = require(`react-feather/dist/icons/volume-1`) +export const Volume2: Icon = require(`react-feather/dist/icons/volume-2`) +export const VolumeX: Icon = require(`react-feather/dist/icons/volume-x`) +export const Volume: Icon = require(`react-feather/dist/icons/volume`) +export const Watch: Icon = require(`react-feather/dist/icons/watch`) +export const WifiOff: Icon = require(`react-feather/dist/icons/wifi-off`) +export const Wifi: Icon = require(`react-feather/dist/icons/wifi`) +export const Wind: Icon = require(`react-feather/dist/icons/wind`) +export const XCircle: Icon = require(`react-feather/dist/icons/x-circle`) +export const XOctagon: Icon = require(`react-feather/dist/icons/x-octagon`) +export const XSquare: Icon = require(`react-feather/dist/icons/x-square`) +export const X: Icon = require(`react-feather/dist/icons/x`) +export const Youtube: Icon = require(`react-feather/dist/icons/youtube`) +export const ZapOff: Icon = require(`react-feather/dist/icons/zap-off`) +export const Zap: Icon = require(`react-feather/dist/icons/zap`) +export const ZoomIn: Icon = require(`react-feather/dist/icons/zoom-in`) +export const ZoomOut: Icon = require(`react-feather/dist/icons/zoom-out`) diff --git a/packages/ui/src/components/Icon/icons/IconActivity/IconActivity.tsx b/packages/ui/src/components/Icon/icons/IconActivity/IconActivity.tsx new file mode 100644 index 00000000000..2d4a75b5acb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconActivity/IconActivity.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Activity } from 'react-feather' + import IconBase from './../../IconBase' + + function IconActivity(props: any) { + return + } + + export default IconActivity + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconActivity/index.tsx b/packages/ui/src/components/Icon/icons/IconActivity/index.tsx new file mode 100644 index 00000000000..c0cd7e3099b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconActivity/index.tsx @@ -0,0 +1 @@ +export { default as IconActivity } from './IconActivity' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAirplay/IconAirplay.tsx b/packages/ui/src/components/Icon/icons/IconAirplay/IconAirplay.tsx new file mode 100644 index 00000000000..58863820feb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAirplay/IconAirplay.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Airplay } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAirplay(props: any) { + return + } + + export default IconAirplay + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAirplay/index.tsx b/packages/ui/src/components/Icon/icons/IconAirplay/index.tsx new file mode 100644 index 00000000000..a8b24b57ce2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAirplay/index.tsx @@ -0,0 +1 @@ +export { default as IconAirplay } from './IconAirplay' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlertCircle/IconAlertCircle.tsx b/packages/ui/src/components/Icon/icons/IconAlertCircle/IconAlertCircle.tsx new file mode 100644 index 00000000000..39d0ada0e1c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlertCircle/IconAlertCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { AlertCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAlertCircle(props: any) { + return + } + + export default IconAlertCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlertCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconAlertCircle/index.tsx new file mode 100644 index 00000000000..9feccb65b27 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlertCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconAlertCircle } from './IconAlertCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlertOctagon/IconAlertOctagon.tsx b/packages/ui/src/components/Icon/icons/IconAlertOctagon/IconAlertOctagon.tsx new file mode 100644 index 00000000000..46520fcf43f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlertOctagon/IconAlertOctagon.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { AlertOctagon } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAlertOctagon(props: any) { + return + } + + export default IconAlertOctagon + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlertOctagon/index.tsx b/packages/ui/src/components/Icon/icons/IconAlertOctagon/index.tsx new file mode 100644 index 00000000000..75a68b48c7e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlertOctagon/index.tsx @@ -0,0 +1 @@ +export { default as IconAlertOctagon } from './IconAlertOctagon' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlertTriangle/IconAlertTriangle.tsx b/packages/ui/src/components/Icon/icons/IconAlertTriangle/IconAlertTriangle.tsx new file mode 100644 index 00000000000..399ead726e2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlertTriangle/IconAlertTriangle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { AlertTriangle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAlertTriangle(props: any) { + return + } + + export default IconAlertTriangle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlertTriangle/index.tsx b/packages/ui/src/components/Icon/icons/IconAlertTriangle/index.tsx new file mode 100644 index 00000000000..7dba36a4704 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlertTriangle/index.tsx @@ -0,0 +1 @@ +export { default as IconAlertTriangle } from './IconAlertTriangle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlignCenter/IconAlignCenter.tsx b/packages/ui/src/components/Icon/icons/IconAlignCenter/IconAlignCenter.tsx new file mode 100644 index 00000000000..d387e06e910 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlignCenter/IconAlignCenter.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { AlignCenter } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAlignCenter(props: any) { + return + } + + export default IconAlignCenter + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlignCenter/index.tsx b/packages/ui/src/components/Icon/icons/IconAlignCenter/index.tsx new file mode 100644 index 00000000000..3e869590177 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlignCenter/index.tsx @@ -0,0 +1 @@ +export { default as IconAlignCenter } from './IconAlignCenter' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlignJustify/IconAlignJustify.tsx b/packages/ui/src/components/Icon/icons/IconAlignJustify/IconAlignJustify.tsx new file mode 100644 index 00000000000..0436afe6750 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlignJustify/IconAlignJustify.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { AlignJustify } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAlignJustify(props: any) { + return + } + + export default IconAlignJustify + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlignJustify/index.tsx b/packages/ui/src/components/Icon/icons/IconAlignJustify/index.tsx new file mode 100644 index 00000000000..ca40f16a68c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlignJustify/index.tsx @@ -0,0 +1 @@ +export { default as IconAlignJustify } from './IconAlignJustify' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlignLeft/IconAlignLeft.tsx b/packages/ui/src/components/Icon/icons/IconAlignLeft/IconAlignLeft.tsx new file mode 100644 index 00000000000..be7a707097a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlignLeft/IconAlignLeft.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { AlignLeft } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAlignLeft(props: any) { + return + } + + export default IconAlignLeft + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlignLeft/index.tsx b/packages/ui/src/components/Icon/icons/IconAlignLeft/index.tsx new file mode 100644 index 00000000000..5a5dbef94bf --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlignLeft/index.tsx @@ -0,0 +1 @@ +export { default as IconAlignLeft } from './IconAlignLeft' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlignRight/IconAlignRight.tsx b/packages/ui/src/components/Icon/icons/IconAlignRight/IconAlignRight.tsx new file mode 100644 index 00000000000..c5f9d7d071a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlignRight/IconAlignRight.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { AlignRight } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAlignRight(props: any) { + return + } + + export default IconAlignRight + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAlignRight/index.tsx b/packages/ui/src/components/Icon/icons/IconAlignRight/index.tsx new file mode 100644 index 00000000000..014fa83f8a1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAlignRight/index.tsx @@ -0,0 +1 @@ +export { default as IconAlignRight } from './IconAlignRight' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAnchor/IconAnchor.tsx b/packages/ui/src/components/Icon/icons/IconAnchor/IconAnchor.tsx new file mode 100644 index 00000000000..7801175e9bc --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAnchor/IconAnchor.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Anchor } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAnchor(props: any) { + return + } + + export default IconAnchor + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAnchor/index.tsx b/packages/ui/src/components/Icon/icons/IconAnchor/index.tsx new file mode 100644 index 00000000000..78fe875f982 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAnchor/index.tsx @@ -0,0 +1 @@ +export { default as IconAnchor } from './IconAnchor' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAperture/IconAperture.tsx b/packages/ui/src/components/Icon/icons/IconAperture/IconAperture.tsx new file mode 100644 index 00000000000..3475fe74b8d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAperture/IconAperture.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Aperture } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAperture(props: any) { + return + } + + export default IconAperture + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAperture/index.tsx b/packages/ui/src/components/Icon/icons/IconAperture/index.tsx new file mode 100644 index 00000000000..9316dda6596 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAperture/index.tsx @@ -0,0 +1 @@ +export { default as IconAperture } from './IconAperture' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArchive/IconArchive.tsx b/packages/ui/src/components/Icon/icons/IconArchive/IconArchive.tsx new file mode 100644 index 00000000000..b24704add6d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArchive/IconArchive.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Archive } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArchive(props: any) { + return + } + + export default IconArchive + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArchive/index.tsx b/packages/ui/src/components/Icon/icons/IconArchive/index.tsx new file mode 100644 index 00000000000..c671b516e75 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArchive/index.tsx @@ -0,0 +1 @@ +export { default as IconArchive } from './IconArchive' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowDown/IconArrowDown.tsx b/packages/ui/src/components/Icon/icons/IconArrowDown/IconArrowDown.tsx new file mode 100644 index 00000000000..78a0fa0ce83 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowDown/IconArrowDown.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowDown } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowDown(props: any) { + return + } + + export default IconArrowDown + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowDown/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowDown/index.tsx new file mode 100644 index 00000000000..5a7b55663b9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowDown/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowDown } from './IconArrowDown' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowDownCircle/IconArrowDownCircle.tsx b/packages/ui/src/components/Icon/icons/IconArrowDownCircle/IconArrowDownCircle.tsx new file mode 100644 index 00000000000..aa04d7c3b01 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowDownCircle/IconArrowDownCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowDownCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowDownCircle(props: any) { + return + } + + export default IconArrowDownCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowDownCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowDownCircle/index.tsx new file mode 100644 index 00000000000..56596a2bf99 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowDownCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowDownCircle } from './IconArrowDownCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowDownLeft/IconArrowDownLeft.tsx b/packages/ui/src/components/Icon/icons/IconArrowDownLeft/IconArrowDownLeft.tsx new file mode 100644 index 00000000000..5447a0ec73d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowDownLeft/IconArrowDownLeft.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowDownLeft } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowDownLeft(props: any) { + return + } + + export default IconArrowDownLeft + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowDownLeft/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowDownLeft/index.tsx new file mode 100644 index 00000000000..15ceed71a5d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowDownLeft/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowDownLeft } from './IconArrowDownLeft' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowDownRight/IconArrowDownRight.tsx b/packages/ui/src/components/Icon/icons/IconArrowDownRight/IconArrowDownRight.tsx new file mode 100644 index 00000000000..50dcef00c5e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowDownRight/IconArrowDownRight.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowDownRight } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowDownRight(props: any) { + return + } + + export default IconArrowDownRight + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowDownRight/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowDownRight/index.tsx new file mode 100644 index 00000000000..4531008a8f6 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowDownRight/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowDownRight } from './IconArrowDownRight' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowLeft/IconArrowLeft.tsx b/packages/ui/src/components/Icon/icons/IconArrowLeft/IconArrowLeft.tsx new file mode 100644 index 00000000000..730b60f5778 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowLeft/IconArrowLeft.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowLeft } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowLeft(props: any) { + return + } + + export default IconArrowLeft + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowLeft/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowLeft/index.tsx new file mode 100644 index 00000000000..cdbf2d5ab15 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowLeft/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowLeft } from './IconArrowLeft' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowLeftCircle/IconArrowLeftCircle.tsx b/packages/ui/src/components/Icon/icons/IconArrowLeftCircle/IconArrowLeftCircle.tsx new file mode 100644 index 00000000000..d74241b9bf1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowLeftCircle/IconArrowLeftCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowLeftCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowLeftCircle(props: any) { + return + } + + export default IconArrowLeftCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowLeftCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowLeftCircle/index.tsx new file mode 100644 index 00000000000..d5c6e247db5 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowLeftCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowLeftCircle } from './IconArrowLeftCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowRight/IconArrowRight.tsx b/packages/ui/src/components/Icon/icons/IconArrowRight/IconArrowRight.tsx new file mode 100644 index 00000000000..ca98bdef6b1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowRight/IconArrowRight.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowRight } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowRight(props: any) { + return + } + + export default IconArrowRight + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowRight/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowRight/index.tsx new file mode 100644 index 00000000000..f8f3b50ff9a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowRight/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowRight } from './IconArrowRight' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowRightCircle/IconArrowRightCircle.tsx b/packages/ui/src/components/Icon/icons/IconArrowRightCircle/IconArrowRightCircle.tsx new file mode 100644 index 00000000000..b97823e71b7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowRightCircle/IconArrowRightCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowRightCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowRightCircle(props: any) { + return + } + + export default IconArrowRightCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowRightCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowRightCircle/index.tsx new file mode 100644 index 00000000000..3be96611901 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowRightCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowRightCircle } from './IconArrowRightCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowUp/IconArrowUp.tsx b/packages/ui/src/components/Icon/icons/IconArrowUp/IconArrowUp.tsx new file mode 100644 index 00000000000..f32de2ffa70 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowUp/IconArrowUp.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowUp } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowUp(props: any) { + return + } + + export default IconArrowUp + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowUp/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowUp/index.tsx new file mode 100644 index 00000000000..5736280f36f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowUp/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowUp } from './IconArrowUp' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowUpCircle/IconArrowUpCircle.tsx b/packages/ui/src/components/Icon/icons/IconArrowUpCircle/IconArrowUpCircle.tsx new file mode 100644 index 00000000000..3b26bf54b9f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowUpCircle/IconArrowUpCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowUpCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowUpCircle(props: any) { + return + } + + export default IconArrowUpCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowUpCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowUpCircle/index.tsx new file mode 100644 index 00000000000..6922ff119e4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowUpCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowUpCircle } from './IconArrowUpCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowUpLeft/IconArrowUpLeft.tsx b/packages/ui/src/components/Icon/icons/IconArrowUpLeft/IconArrowUpLeft.tsx new file mode 100644 index 00000000000..3090b9b6957 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowUpLeft/IconArrowUpLeft.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowUpLeft } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowUpLeft(props: any) { + return + } + + export default IconArrowUpLeft + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowUpLeft/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowUpLeft/index.tsx new file mode 100644 index 00000000000..7ae1176227c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowUpLeft/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowUpLeft } from './IconArrowUpLeft' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowUpRight/IconArrowUpRight.tsx b/packages/ui/src/components/Icon/icons/IconArrowUpRight/IconArrowUpRight.tsx new file mode 100644 index 00000000000..54ad83386cb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowUpRight/IconArrowUpRight.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ArrowUpRight } from 'react-feather' + import IconBase from './../../IconBase' + + function IconArrowUpRight(props: any) { + return + } + + export default IconArrowUpRight + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconArrowUpRight/index.tsx b/packages/ui/src/components/Icon/icons/IconArrowUpRight/index.tsx new file mode 100644 index 00000000000..f6c7570d1e5 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconArrowUpRight/index.tsx @@ -0,0 +1 @@ +export { default as IconArrowUpRight } from './IconArrowUpRight' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAtSign/IconAtSign.tsx b/packages/ui/src/components/Icon/icons/IconAtSign/IconAtSign.tsx new file mode 100644 index 00000000000..ddada82370b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAtSign/IconAtSign.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { AtSign } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAtSign(props: any) { + return + } + + export default IconAtSign + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAtSign/index.tsx b/packages/ui/src/components/Icon/icons/IconAtSign/index.tsx new file mode 100644 index 00000000000..fab6a7738e3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAtSign/index.tsx @@ -0,0 +1 @@ +export { default as IconAtSign } from './IconAtSign' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAward/IconAward.tsx b/packages/ui/src/components/Icon/icons/IconAward/IconAward.tsx new file mode 100644 index 00000000000..e6ed8f1d551 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAward/IconAward.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Award } from 'react-feather' + import IconBase from './../../IconBase' + + function IconAward(props: any) { + return + } + + export default IconAward + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconAward/index.tsx b/packages/ui/src/components/Icon/icons/IconAward/index.tsx new file mode 100644 index 00000000000..41699a41288 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconAward/index.tsx @@ -0,0 +1 @@ +export { default as IconAward } from './IconAward' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBarChart/IconBarChart.tsx b/packages/ui/src/components/Icon/icons/IconBarChart/IconBarChart.tsx new file mode 100644 index 00000000000..15e1ef30aec --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBarChart/IconBarChart.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { BarChart } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBarChart(props: any) { + return + } + + export default IconBarChart + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBarChart/index.tsx b/packages/ui/src/components/Icon/icons/IconBarChart/index.tsx new file mode 100644 index 00000000000..62cb14dee1d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBarChart/index.tsx @@ -0,0 +1 @@ +export { default as IconBarChart } from './IconBarChart' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBarChart2/IconBarChart2.tsx b/packages/ui/src/components/Icon/icons/IconBarChart2/IconBarChart2.tsx new file mode 100644 index 00000000000..c69eab37956 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBarChart2/IconBarChart2.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { BarChart2 } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBarChart2(props: any) { + return + } + + export default IconBarChart2 + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBarChart2/index.tsx b/packages/ui/src/components/Icon/icons/IconBarChart2/index.tsx new file mode 100644 index 00000000000..9e7aa1ad983 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBarChart2/index.tsx @@ -0,0 +1 @@ +export { default as IconBarChart2 } from './IconBarChart2' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBattery/IconBattery.tsx b/packages/ui/src/components/Icon/icons/IconBattery/IconBattery.tsx new file mode 100644 index 00000000000..4e2d94086d3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBattery/IconBattery.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Battery } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBattery(props: any) { + return + } + + export default IconBattery + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBattery/index.tsx b/packages/ui/src/components/Icon/icons/IconBattery/index.tsx new file mode 100644 index 00000000000..bddb3488372 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBattery/index.tsx @@ -0,0 +1 @@ +export { default as IconBattery } from './IconBattery' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBatteryCharging/IconBatteryCharging.tsx b/packages/ui/src/components/Icon/icons/IconBatteryCharging/IconBatteryCharging.tsx new file mode 100644 index 00000000000..75d5e1104a1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBatteryCharging/IconBatteryCharging.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { BatteryCharging } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBatteryCharging(props: any) { + return + } + + export default IconBatteryCharging + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBatteryCharging/index.tsx b/packages/ui/src/components/Icon/icons/IconBatteryCharging/index.tsx new file mode 100644 index 00000000000..947c91fe3da --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBatteryCharging/index.tsx @@ -0,0 +1 @@ +export { default as IconBatteryCharging } from './IconBatteryCharging' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBell/IconBell.tsx b/packages/ui/src/components/Icon/icons/IconBell/IconBell.tsx new file mode 100644 index 00000000000..c8cb4f26aba --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBell/IconBell.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Bell } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBell(props: any) { + return + } + + export default IconBell + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBell/index.tsx b/packages/ui/src/components/Icon/icons/IconBell/index.tsx new file mode 100644 index 00000000000..7c369f55502 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBell/index.tsx @@ -0,0 +1 @@ +export { default as IconBell } from './IconBell' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBellOff/IconBellOff.tsx b/packages/ui/src/components/Icon/icons/IconBellOff/IconBellOff.tsx new file mode 100644 index 00000000000..9f958610465 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBellOff/IconBellOff.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { BellOff } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBellOff(props: any) { + return + } + + export default IconBellOff + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBellOff/index.tsx b/packages/ui/src/components/Icon/icons/IconBellOff/index.tsx new file mode 100644 index 00000000000..b08667dffd2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBellOff/index.tsx @@ -0,0 +1 @@ +export { default as IconBellOff } from './IconBellOff' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBluetooth/IconBluetooth.tsx b/packages/ui/src/components/Icon/icons/IconBluetooth/IconBluetooth.tsx new file mode 100644 index 00000000000..e801f468c2d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBluetooth/IconBluetooth.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Bluetooth } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBluetooth(props: any) { + return + } + + export default IconBluetooth + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBluetooth/index.tsx b/packages/ui/src/components/Icon/icons/IconBluetooth/index.tsx new file mode 100644 index 00000000000..23c1fd5a4ce --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBluetooth/index.tsx @@ -0,0 +1 @@ +export { default as IconBluetooth } from './IconBluetooth' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBold/IconBold.tsx b/packages/ui/src/components/Icon/icons/IconBold/IconBold.tsx new file mode 100644 index 00000000000..a3c15c5a8a0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBold/IconBold.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Bold } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBold(props: any) { + return + } + + export default IconBold + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBold/index.tsx b/packages/ui/src/components/Icon/icons/IconBold/index.tsx new file mode 100644 index 00000000000..7978a95733b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBold/index.tsx @@ -0,0 +1 @@ +export { default as IconBold } from './IconBold' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBook/IconBook.tsx b/packages/ui/src/components/Icon/icons/IconBook/IconBook.tsx new file mode 100644 index 00000000000..f8d975a7454 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBook/IconBook.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Book } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBook(props: any) { + return + } + + export default IconBook + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBook/index.tsx b/packages/ui/src/components/Icon/icons/IconBook/index.tsx new file mode 100644 index 00000000000..e028c5f5dc9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBook/index.tsx @@ -0,0 +1 @@ +export { default as IconBook } from './IconBook' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBookOpen/IconBookOpen.tsx b/packages/ui/src/components/Icon/icons/IconBookOpen/IconBookOpen.tsx new file mode 100644 index 00000000000..73e5e9da8bb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBookOpen/IconBookOpen.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { BookOpen } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBookOpen(props: any) { + return + } + + export default IconBookOpen + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBookOpen/index.tsx b/packages/ui/src/components/Icon/icons/IconBookOpen/index.tsx new file mode 100644 index 00000000000..cdccfa708a4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBookOpen/index.tsx @@ -0,0 +1 @@ +export { default as IconBookOpen } from './IconBookOpen' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBookmark/IconBookmark.tsx b/packages/ui/src/components/Icon/icons/IconBookmark/IconBookmark.tsx new file mode 100644 index 00000000000..cd833a037dc --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBookmark/IconBookmark.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Bookmark } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBookmark(props: any) { + return + } + + export default IconBookmark + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBookmark/index.tsx b/packages/ui/src/components/Icon/icons/IconBookmark/index.tsx new file mode 100644 index 00000000000..8ca61a74f49 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBookmark/index.tsx @@ -0,0 +1 @@ +export { default as IconBookmark } from './IconBookmark' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBox/IconBox.tsx b/packages/ui/src/components/Icon/icons/IconBox/IconBox.tsx new file mode 100644 index 00000000000..c54c7cd33ce --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBox/IconBox.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Box } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBox(props: any) { + return + } + + export default IconBox + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBox/index.tsx b/packages/ui/src/components/Icon/icons/IconBox/index.tsx new file mode 100644 index 00000000000..d0a11faa8f5 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBox/index.tsx @@ -0,0 +1 @@ +export { default as IconBox } from './IconBox' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBriefcase/IconBriefcase.tsx b/packages/ui/src/components/Icon/icons/IconBriefcase/IconBriefcase.tsx new file mode 100644 index 00000000000..f6704ecd765 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBriefcase/IconBriefcase.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Briefcase } from 'react-feather' + import IconBase from './../../IconBase' + + function IconBriefcase(props: any) { + return + } + + export default IconBriefcase + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconBriefcase/index.tsx b/packages/ui/src/components/Icon/icons/IconBriefcase/index.tsx new file mode 100644 index 00000000000..d6e7d702458 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconBriefcase/index.tsx @@ -0,0 +1 @@ +export { default as IconBriefcase } from './IconBriefcase' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCalendar/IconCalendar.tsx b/packages/ui/src/components/Icon/icons/IconCalendar/IconCalendar.tsx new file mode 100644 index 00000000000..2df1d8eae7e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCalendar/IconCalendar.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Calendar } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCalendar(props: any) { + return + } + + export default IconCalendar + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCalendar/index.tsx b/packages/ui/src/components/Icon/icons/IconCalendar/index.tsx new file mode 100644 index 00000000000..9bb041c1e00 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCalendar/index.tsx @@ -0,0 +1 @@ +export { default as IconCalendar } from './IconCalendar' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCamera/IconCamera.tsx b/packages/ui/src/components/Icon/icons/IconCamera/IconCamera.tsx new file mode 100644 index 00000000000..b5c38b3b138 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCamera/IconCamera.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Camera } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCamera(props: any) { + return + } + + export default IconCamera + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCamera/index.tsx b/packages/ui/src/components/Icon/icons/IconCamera/index.tsx new file mode 100644 index 00000000000..90bee0859c6 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCamera/index.tsx @@ -0,0 +1 @@ +export { default as IconCamera } from './IconCamera' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCameraOff/IconCameraOff.tsx b/packages/ui/src/components/Icon/icons/IconCameraOff/IconCameraOff.tsx new file mode 100644 index 00000000000..73781b2e447 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCameraOff/IconCameraOff.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CameraOff } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCameraOff(props: any) { + return + } + + export default IconCameraOff + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCameraOff/index.tsx b/packages/ui/src/components/Icon/icons/IconCameraOff/index.tsx new file mode 100644 index 00000000000..03ae3dee103 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCameraOff/index.tsx @@ -0,0 +1 @@ +export { default as IconCameraOff } from './IconCameraOff' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCast/IconCast.tsx b/packages/ui/src/components/Icon/icons/IconCast/IconCast.tsx new file mode 100644 index 00000000000..a102ba78414 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCast/IconCast.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Cast } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCast(props: any) { + return + } + + export default IconCast + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCast/index.tsx b/packages/ui/src/components/Icon/icons/IconCast/index.tsx new file mode 100644 index 00000000000..8413f130ab9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCast/index.tsx @@ -0,0 +1 @@ +export { default as IconCast } from './IconCast' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCheck/IconCheck.tsx b/packages/ui/src/components/Icon/icons/IconCheck/IconCheck.tsx new file mode 100644 index 00000000000..4c032a64522 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCheck/IconCheck.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Check } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCheck(props: any) { + return + } + + export default IconCheck + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCheck/index.tsx b/packages/ui/src/components/Icon/icons/IconCheck/index.tsx new file mode 100644 index 00000000000..1ca606e15d7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCheck/index.tsx @@ -0,0 +1 @@ +export { default as IconCheck } from './IconCheck' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCheckCircle/IconCheckCircle.tsx b/packages/ui/src/components/Icon/icons/IconCheckCircle/IconCheckCircle.tsx new file mode 100644 index 00000000000..141036ef661 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCheckCircle/IconCheckCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CheckCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCheckCircle(props: any) { + return + } + + export default IconCheckCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCheckCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconCheckCircle/index.tsx new file mode 100644 index 00000000000..9f8e17b95cb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCheckCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconCheckCircle } from './IconCheckCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCheckSquare/IconCheckSquare.tsx b/packages/ui/src/components/Icon/icons/IconCheckSquare/IconCheckSquare.tsx new file mode 100644 index 00000000000..42cc1de4018 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCheckSquare/IconCheckSquare.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CheckSquare } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCheckSquare(props: any) { + return + } + + export default IconCheckSquare + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCheckSquare/index.tsx b/packages/ui/src/components/Icon/icons/IconCheckSquare/index.tsx new file mode 100644 index 00000000000..d40098c0b3d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCheckSquare/index.tsx @@ -0,0 +1 @@ +export { default as IconCheckSquare } from './IconCheckSquare' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronDown/IconChevronDown.tsx b/packages/ui/src/components/Icon/icons/IconChevronDown/IconChevronDown.tsx new file mode 100644 index 00000000000..e70f2fe349d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronDown/IconChevronDown.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ChevronDown } from 'react-feather' + import IconBase from './../../IconBase' + + function IconChevronDown(props: any) { + return + } + + export default IconChevronDown + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronDown/index.tsx b/packages/ui/src/components/Icon/icons/IconChevronDown/index.tsx new file mode 100644 index 00000000000..2326858c139 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronDown/index.tsx @@ -0,0 +1 @@ +export { default as IconChevronDown } from './IconChevronDown' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronLeft/IconChevronLeft.tsx b/packages/ui/src/components/Icon/icons/IconChevronLeft/IconChevronLeft.tsx new file mode 100644 index 00000000000..42a7896cfbe --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronLeft/IconChevronLeft.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ChevronLeft } from 'react-feather' + import IconBase from './../../IconBase' + + function IconChevronLeft(props: any) { + return + } + + export default IconChevronLeft + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronLeft/index.tsx b/packages/ui/src/components/Icon/icons/IconChevronLeft/index.tsx new file mode 100644 index 00000000000..a9c2036a7c6 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronLeft/index.tsx @@ -0,0 +1 @@ +export { default as IconChevronLeft } from './IconChevronLeft' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronRight/IconChevronRight.tsx b/packages/ui/src/components/Icon/icons/IconChevronRight/IconChevronRight.tsx new file mode 100644 index 00000000000..c824e625baf --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronRight/IconChevronRight.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ChevronRight } from 'react-feather' + import IconBase from './../../IconBase' + + function IconChevronRight(props: any) { + return + } + + export default IconChevronRight + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronRight/index.tsx b/packages/ui/src/components/Icon/icons/IconChevronRight/index.tsx new file mode 100644 index 00000000000..587b5dc81a0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronRight/index.tsx @@ -0,0 +1 @@ +export { default as IconChevronRight } from './IconChevronRight' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronUp/IconChevronUp.tsx b/packages/ui/src/components/Icon/icons/IconChevronUp/IconChevronUp.tsx new file mode 100644 index 00000000000..8fa865da009 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronUp/IconChevronUp.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ChevronUp } from 'react-feather' + import IconBase from './../../IconBase' + + function IconChevronUp(props: any) { + return + } + + export default IconChevronUp + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronUp/index.tsx b/packages/ui/src/components/Icon/icons/IconChevronUp/index.tsx new file mode 100644 index 00000000000..4ac36b87f0d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronUp/index.tsx @@ -0,0 +1 @@ +export { default as IconChevronUp } from './IconChevronUp' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronsDown/IconChevronsDown.tsx b/packages/ui/src/components/Icon/icons/IconChevronsDown/IconChevronsDown.tsx new file mode 100644 index 00000000000..bd6af1c12ee --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronsDown/IconChevronsDown.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ChevronsDown } from 'react-feather' + import IconBase from './../../IconBase' + + function IconChevronsDown(props: any) { + return + } + + export default IconChevronsDown + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronsDown/index.tsx b/packages/ui/src/components/Icon/icons/IconChevronsDown/index.tsx new file mode 100644 index 00000000000..d3d88fea723 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronsDown/index.tsx @@ -0,0 +1 @@ +export { default as IconChevronsDown } from './IconChevronsDown' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronsLeft/IconChevronsLeft.tsx b/packages/ui/src/components/Icon/icons/IconChevronsLeft/IconChevronsLeft.tsx new file mode 100644 index 00000000000..730ab00a885 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronsLeft/IconChevronsLeft.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ChevronsLeft } from 'react-feather' + import IconBase from './../../IconBase' + + function IconChevronsLeft(props: any) { + return + } + + export default IconChevronsLeft + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronsLeft/index.tsx b/packages/ui/src/components/Icon/icons/IconChevronsLeft/index.tsx new file mode 100644 index 00000000000..a42d1954938 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronsLeft/index.tsx @@ -0,0 +1 @@ +export { default as IconChevronsLeft } from './IconChevronsLeft' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronsRight/IconChevronsRight.tsx b/packages/ui/src/components/Icon/icons/IconChevronsRight/IconChevronsRight.tsx new file mode 100644 index 00000000000..1c8c1327be4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronsRight/IconChevronsRight.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ChevronsRight } from 'react-feather' + import IconBase from './../../IconBase' + + function IconChevronsRight(props: any) { + return + } + + export default IconChevronsRight + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronsRight/index.tsx b/packages/ui/src/components/Icon/icons/IconChevronsRight/index.tsx new file mode 100644 index 00000000000..13a7ed89c3d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronsRight/index.tsx @@ -0,0 +1 @@ +export { default as IconChevronsRight } from './IconChevronsRight' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronsUp/IconChevronsUp.tsx b/packages/ui/src/components/Icon/icons/IconChevronsUp/IconChevronsUp.tsx new file mode 100644 index 00000000000..4be6f08bc60 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronsUp/IconChevronsUp.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ChevronsUp } from 'react-feather' + import IconBase from './../../IconBase' + + function IconChevronsUp(props: any) { + return + } + + export default IconChevronsUp + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChevronsUp/index.tsx b/packages/ui/src/components/Icon/icons/IconChevronsUp/index.tsx new file mode 100644 index 00000000000..72cb4b96844 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChevronsUp/index.tsx @@ -0,0 +1 @@ +export { default as IconChevronsUp } from './IconChevronsUp' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChrome/IconChrome.tsx b/packages/ui/src/components/Icon/icons/IconChrome/IconChrome.tsx new file mode 100644 index 00000000000..b86b1eac340 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChrome/IconChrome.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Chrome } from 'react-feather' + import IconBase from './../../IconBase' + + function IconChrome(props: any) { + return + } + + export default IconChrome + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconChrome/index.tsx b/packages/ui/src/components/Icon/icons/IconChrome/index.tsx new file mode 100644 index 00000000000..e124b1194dc --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconChrome/index.tsx @@ -0,0 +1 @@ +export { default as IconChrome } from './IconChrome' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCircle/IconCircle.tsx b/packages/ui/src/components/Icon/icons/IconCircle/IconCircle.tsx new file mode 100644 index 00000000000..f4c0e528358 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCircle/IconCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Circle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCircle(props: any) { + return + } + + export default IconCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconCircle/index.tsx new file mode 100644 index 00000000000..2f1eee6423b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconCircle } from './IconCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconClipboard/IconClipboard.tsx b/packages/ui/src/components/Icon/icons/IconClipboard/IconClipboard.tsx new file mode 100644 index 00000000000..d52e2386b73 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconClipboard/IconClipboard.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Clipboard } from 'react-feather' + import IconBase from './../../IconBase' + + function IconClipboard(props: any) { + return + } + + export default IconClipboard + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconClipboard/index.tsx b/packages/ui/src/components/Icon/icons/IconClipboard/index.tsx new file mode 100644 index 00000000000..cb71ec1c9e1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconClipboard/index.tsx @@ -0,0 +1 @@ +export { default as IconClipboard } from './IconClipboard' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconClock/IconClock.tsx b/packages/ui/src/components/Icon/icons/IconClock/IconClock.tsx new file mode 100644 index 00000000000..5f80f434706 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconClock/IconClock.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Clock } from 'react-feather' + import IconBase from './../../IconBase' + + function IconClock(props: any) { + return + } + + export default IconClock + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconClock/index.tsx b/packages/ui/src/components/Icon/icons/IconClock/index.tsx new file mode 100644 index 00000000000..9b634163922 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconClock/index.tsx @@ -0,0 +1 @@ +export { default as IconClock } from './IconClock' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloud/IconCloud.tsx b/packages/ui/src/components/Icon/icons/IconCloud/IconCloud.tsx new file mode 100644 index 00000000000..c296d1ccff4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloud/IconCloud.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Cloud } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCloud(props: any) { + return + } + + export default IconCloud + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloud/index.tsx b/packages/ui/src/components/Icon/icons/IconCloud/index.tsx new file mode 100644 index 00000000000..d55f15ba066 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloud/index.tsx @@ -0,0 +1 @@ +export { default as IconCloud } from './IconCloud' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloudDrizzle/IconCloudDrizzle.tsx b/packages/ui/src/components/Icon/icons/IconCloudDrizzle/IconCloudDrizzle.tsx new file mode 100644 index 00000000000..1ff0fbbc6b1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloudDrizzle/IconCloudDrizzle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CloudDrizzle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCloudDrizzle(props: any) { + return + } + + export default IconCloudDrizzle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloudDrizzle/index.tsx b/packages/ui/src/components/Icon/icons/IconCloudDrizzle/index.tsx new file mode 100644 index 00000000000..ef17d936f0d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloudDrizzle/index.tsx @@ -0,0 +1 @@ +export { default as IconCloudDrizzle } from './IconCloudDrizzle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloudLightning/IconCloudLightning.tsx b/packages/ui/src/components/Icon/icons/IconCloudLightning/IconCloudLightning.tsx new file mode 100644 index 00000000000..06e3596b504 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloudLightning/IconCloudLightning.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CloudLightning } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCloudLightning(props: any) { + return + } + + export default IconCloudLightning + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloudLightning/index.tsx b/packages/ui/src/components/Icon/icons/IconCloudLightning/index.tsx new file mode 100644 index 00000000000..ca7f9404f77 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloudLightning/index.tsx @@ -0,0 +1 @@ +export { default as IconCloudLightning } from './IconCloudLightning' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloudOff/IconCloudOff.tsx b/packages/ui/src/components/Icon/icons/IconCloudOff/IconCloudOff.tsx new file mode 100644 index 00000000000..0a2fdb56f0d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloudOff/IconCloudOff.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CloudOff } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCloudOff(props: any) { + return + } + + export default IconCloudOff + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloudOff/index.tsx b/packages/ui/src/components/Icon/icons/IconCloudOff/index.tsx new file mode 100644 index 00000000000..7cd6e346ae9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloudOff/index.tsx @@ -0,0 +1 @@ +export { default as IconCloudOff } from './IconCloudOff' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloudRain/IconCloudRain.tsx b/packages/ui/src/components/Icon/icons/IconCloudRain/IconCloudRain.tsx new file mode 100644 index 00000000000..944fbe87209 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloudRain/IconCloudRain.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CloudRain } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCloudRain(props: any) { + return + } + + export default IconCloudRain + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloudRain/index.tsx b/packages/ui/src/components/Icon/icons/IconCloudRain/index.tsx new file mode 100644 index 00000000000..bd855399854 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloudRain/index.tsx @@ -0,0 +1 @@ +export { default as IconCloudRain } from './IconCloudRain' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloudSnow/IconCloudSnow.tsx b/packages/ui/src/components/Icon/icons/IconCloudSnow/IconCloudSnow.tsx new file mode 100644 index 00000000000..9d554d8eb0b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloudSnow/IconCloudSnow.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CloudSnow } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCloudSnow(props: any) { + return + } + + export default IconCloudSnow + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCloudSnow/index.tsx b/packages/ui/src/components/Icon/icons/IconCloudSnow/index.tsx new file mode 100644 index 00000000000..1bab3f5c238 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCloudSnow/index.tsx @@ -0,0 +1 @@ +export { default as IconCloudSnow } from './IconCloudSnow' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCode/IconCode.tsx b/packages/ui/src/components/Icon/icons/IconCode/IconCode.tsx new file mode 100644 index 00000000000..809e8b5efae --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCode/IconCode.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Code } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCode(props: any) { + return + } + + export default IconCode + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCode/index.tsx b/packages/ui/src/components/Icon/icons/IconCode/index.tsx new file mode 100644 index 00000000000..1c47991a0ff --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCode/index.tsx @@ -0,0 +1 @@ +export { default as IconCode } from './IconCode' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCodepen/IconCodepen.tsx b/packages/ui/src/components/Icon/icons/IconCodepen/IconCodepen.tsx new file mode 100644 index 00000000000..31fbe1f4c7d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCodepen/IconCodepen.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Codepen } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCodepen(props: any) { + return + } + + export default IconCodepen + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCodepen/index.tsx b/packages/ui/src/components/Icon/icons/IconCodepen/index.tsx new file mode 100644 index 00000000000..5434f72c197 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCodepen/index.tsx @@ -0,0 +1 @@ +export { default as IconCodepen } from './IconCodepen' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCodesandbox/IconCodesandbox.tsx b/packages/ui/src/components/Icon/icons/IconCodesandbox/IconCodesandbox.tsx new file mode 100644 index 00000000000..2f3ed94e5b4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCodesandbox/IconCodesandbox.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Codesandbox } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCodesandbox(props: any) { + return + } + + export default IconCodesandbox + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCodesandbox/index.tsx b/packages/ui/src/components/Icon/icons/IconCodesandbox/index.tsx new file mode 100644 index 00000000000..d75d38f13dd --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCodesandbox/index.tsx @@ -0,0 +1 @@ +export { default as IconCodesandbox } from './IconCodesandbox' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCoffee/IconCoffee.tsx b/packages/ui/src/components/Icon/icons/IconCoffee/IconCoffee.tsx new file mode 100644 index 00000000000..03dcc1d3cf6 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCoffee/IconCoffee.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Coffee } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCoffee(props: any) { + return + } + + export default IconCoffee + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCoffee/index.tsx b/packages/ui/src/components/Icon/icons/IconCoffee/index.tsx new file mode 100644 index 00000000000..53070e84581 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCoffee/index.tsx @@ -0,0 +1 @@ +export { default as IconCoffee } from './IconCoffee' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconColumns/IconColumns.tsx b/packages/ui/src/components/Icon/icons/IconColumns/IconColumns.tsx new file mode 100644 index 00000000000..2e8673d6aa7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconColumns/IconColumns.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Columns } from 'react-feather' + import IconBase from './../../IconBase' + + function IconColumns(props: any) { + return + } + + export default IconColumns + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconColumns/index.tsx b/packages/ui/src/components/Icon/icons/IconColumns/index.tsx new file mode 100644 index 00000000000..562404ba685 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconColumns/index.tsx @@ -0,0 +1 @@ +export { default as IconColumns } from './IconColumns' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCommand/IconCommand.tsx b/packages/ui/src/components/Icon/icons/IconCommand/IconCommand.tsx new file mode 100644 index 00000000000..e083db5f7ae --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCommand/IconCommand.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Command } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCommand(props: any) { + return + } + + export default IconCommand + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCommand/index.tsx b/packages/ui/src/components/Icon/icons/IconCommand/index.tsx new file mode 100644 index 00000000000..525b41a21ab --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCommand/index.tsx @@ -0,0 +1 @@ +export { default as IconCommand } from './IconCommand' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCompass/IconCompass.tsx b/packages/ui/src/components/Icon/icons/IconCompass/IconCompass.tsx new file mode 100644 index 00000000000..e727ff71f11 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCompass/IconCompass.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Compass } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCompass(props: any) { + return + } + + export default IconCompass + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCompass/index.tsx b/packages/ui/src/components/Icon/icons/IconCompass/index.tsx new file mode 100644 index 00000000000..1eff658929c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCompass/index.tsx @@ -0,0 +1 @@ +export { default as IconCompass } from './IconCompass' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCopy/IconCopy.tsx b/packages/ui/src/components/Icon/icons/IconCopy/IconCopy.tsx new file mode 100644 index 00000000000..7dbd5f6e5ee --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCopy/IconCopy.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Copy } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCopy(props: any) { + return + } + + export default IconCopy + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCopy/index.tsx b/packages/ui/src/components/Icon/icons/IconCopy/index.tsx new file mode 100644 index 00000000000..c868a5eee82 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCopy/index.tsx @@ -0,0 +1 @@ +export { default as IconCopy } from './IconCopy' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerDownLeft/IconCornerDownLeft.tsx b/packages/ui/src/components/Icon/icons/IconCornerDownLeft/IconCornerDownLeft.tsx new file mode 100644 index 00000000000..53944162399 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerDownLeft/IconCornerDownLeft.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CornerDownLeft } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCornerDownLeft(props: any) { + return + } + + export default IconCornerDownLeft + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerDownLeft/index.tsx b/packages/ui/src/components/Icon/icons/IconCornerDownLeft/index.tsx new file mode 100644 index 00000000000..477f9471474 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerDownLeft/index.tsx @@ -0,0 +1 @@ +export { default as IconCornerDownLeft } from './IconCornerDownLeft' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerDownRight/IconCornerDownRight.tsx b/packages/ui/src/components/Icon/icons/IconCornerDownRight/IconCornerDownRight.tsx new file mode 100644 index 00000000000..b2fb1391c39 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerDownRight/IconCornerDownRight.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CornerDownRight } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCornerDownRight(props: any) { + return + } + + export default IconCornerDownRight + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerDownRight/index.tsx b/packages/ui/src/components/Icon/icons/IconCornerDownRight/index.tsx new file mode 100644 index 00000000000..32f99c402ff --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerDownRight/index.tsx @@ -0,0 +1 @@ +export { default as IconCornerDownRight } from './IconCornerDownRight' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerLeftDown/IconCornerLeftDown.tsx b/packages/ui/src/components/Icon/icons/IconCornerLeftDown/IconCornerLeftDown.tsx new file mode 100644 index 00000000000..d97ef15970f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerLeftDown/IconCornerLeftDown.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CornerLeftDown } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCornerLeftDown(props: any) { + return + } + + export default IconCornerLeftDown + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerLeftDown/index.tsx b/packages/ui/src/components/Icon/icons/IconCornerLeftDown/index.tsx new file mode 100644 index 00000000000..f9ef7b4bba7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerLeftDown/index.tsx @@ -0,0 +1 @@ +export { default as IconCornerLeftDown } from './IconCornerLeftDown' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerLeftUp/IconCornerLeftUp.tsx b/packages/ui/src/components/Icon/icons/IconCornerLeftUp/IconCornerLeftUp.tsx new file mode 100644 index 00000000000..476415c1a5a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerLeftUp/IconCornerLeftUp.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CornerLeftUp } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCornerLeftUp(props: any) { + return + } + + export default IconCornerLeftUp + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerLeftUp/index.tsx b/packages/ui/src/components/Icon/icons/IconCornerLeftUp/index.tsx new file mode 100644 index 00000000000..b884409f0f4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerLeftUp/index.tsx @@ -0,0 +1 @@ +export { default as IconCornerLeftUp } from './IconCornerLeftUp' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerRightDown/IconCornerRightDown.tsx b/packages/ui/src/components/Icon/icons/IconCornerRightDown/IconCornerRightDown.tsx new file mode 100644 index 00000000000..d0bf547fd1b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerRightDown/IconCornerRightDown.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CornerRightDown } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCornerRightDown(props: any) { + return + } + + export default IconCornerRightDown + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerRightDown/index.tsx b/packages/ui/src/components/Icon/icons/IconCornerRightDown/index.tsx new file mode 100644 index 00000000000..738a9c2eecb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerRightDown/index.tsx @@ -0,0 +1 @@ +export { default as IconCornerRightDown } from './IconCornerRightDown' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerRightUp/IconCornerRightUp.tsx b/packages/ui/src/components/Icon/icons/IconCornerRightUp/IconCornerRightUp.tsx new file mode 100644 index 00000000000..b0b902b3618 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerRightUp/IconCornerRightUp.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CornerRightUp } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCornerRightUp(props: any) { + return + } + + export default IconCornerRightUp + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerRightUp/index.tsx b/packages/ui/src/components/Icon/icons/IconCornerRightUp/index.tsx new file mode 100644 index 00000000000..bc280b92ea0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerRightUp/index.tsx @@ -0,0 +1 @@ +export { default as IconCornerRightUp } from './IconCornerRightUp' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerUpLeft/IconCornerUpLeft.tsx b/packages/ui/src/components/Icon/icons/IconCornerUpLeft/IconCornerUpLeft.tsx new file mode 100644 index 00000000000..cb1049bab82 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerUpLeft/IconCornerUpLeft.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CornerUpLeft } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCornerUpLeft(props: any) { + return + } + + export default IconCornerUpLeft + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerUpLeft/index.tsx b/packages/ui/src/components/Icon/icons/IconCornerUpLeft/index.tsx new file mode 100644 index 00000000000..8a44c3abfc4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerUpLeft/index.tsx @@ -0,0 +1 @@ +export { default as IconCornerUpLeft } from './IconCornerUpLeft' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerUpRight/IconCornerUpRight.tsx b/packages/ui/src/components/Icon/icons/IconCornerUpRight/IconCornerUpRight.tsx new file mode 100644 index 00000000000..a6e2034bc29 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerUpRight/IconCornerUpRight.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CornerUpRight } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCornerUpRight(props: any) { + return + } + + export default IconCornerUpRight + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCornerUpRight/index.tsx b/packages/ui/src/components/Icon/icons/IconCornerUpRight/index.tsx new file mode 100644 index 00000000000..00e4224c19a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCornerUpRight/index.tsx @@ -0,0 +1 @@ +export { default as IconCornerUpRight } from './IconCornerUpRight' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCpu/IconCpu.tsx b/packages/ui/src/components/Icon/icons/IconCpu/IconCpu.tsx new file mode 100644 index 00000000000..0f7f7715aff --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCpu/IconCpu.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Cpu } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCpu(props: any) { + return + } + + export default IconCpu + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCpu/index.tsx b/packages/ui/src/components/Icon/icons/IconCpu/index.tsx new file mode 100644 index 00000000000..da017c9601b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCpu/index.tsx @@ -0,0 +1 @@ +export { default as IconCpu } from './IconCpu' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCreditCard/IconCreditCard.tsx b/packages/ui/src/components/Icon/icons/IconCreditCard/IconCreditCard.tsx new file mode 100644 index 00000000000..caf4b0b41fd --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCreditCard/IconCreditCard.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { CreditCard } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCreditCard(props: any) { + return + } + + export default IconCreditCard + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCreditCard/index.tsx b/packages/ui/src/components/Icon/icons/IconCreditCard/index.tsx new file mode 100644 index 00000000000..21df338de15 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCreditCard/index.tsx @@ -0,0 +1 @@ +export { default as IconCreditCard } from './IconCreditCard' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCrop/IconCrop.tsx b/packages/ui/src/components/Icon/icons/IconCrop/IconCrop.tsx new file mode 100644 index 00000000000..a856427b3a5 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCrop/IconCrop.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Crop } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCrop(props: any) { + return + } + + export default IconCrop + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCrop/index.tsx b/packages/ui/src/components/Icon/icons/IconCrop/index.tsx new file mode 100644 index 00000000000..5cde59b60eb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCrop/index.tsx @@ -0,0 +1 @@ +export { default as IconCrop } from './IconCrop' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCrosshair/IconCrosshair.tsx b/packages/ui/src/components/Icon/icons/IconCrosshair/IconCrosshair.tsx new file mode 100644 index 00000000000..935c17ffa70 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCrosshair/IconCrosshair.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Crosshair } from 'react-feather' + import IconBase from './../../IconBase' + + function IconCrosshair(props: any) { + return + } + + export default IconCrosshair + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconCrosshair/index.tsx b/packages/ui/src/components/Icon/icons/IconCrosshair/index.tsx new file mode 100644 index 00000000000..10e997ee887 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconCrosshair/index.tsx @@ -0,0 +1 @@ +export { default as IconCrosshair } from './IconCrosshair' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDatabase/IconDatabase.tsx b/packages/ui/src/components/Icon/icons/IconDatabase/IconDatabase.tsx new file mode 100644 index 00000000000..94802081c09 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDatabase/IconDatabase.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Database } from 'react-feather' + import IconBase from './../../IconBase' + + function IconDatabase(props: any) { + return + } + + export default IconDatabase + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDatabase/index.tsx b/packages/ui/src/components/Icon/icons/IconDatabase/index.tsx new file mode 100644 index 00000000000..e96a644e005 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDatabase/index.tsx @@ -0,0 +1 @@ +export { default as IconDatabase } from './IconDatabase' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDelete/IconDelete.tsx b/packages/ui/src/components/Icon/icons/IconDelete/IconDelete.tsx new file mode 100644 index 00000000000..2c9f3b166b8 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDelete/IconDelete.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Delete } from 'react-feather' + import IconBase from './../../IconBase' + + function IconDelete(props: any) { + return + } + + export default IconDelete + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDelete/index.tsx b/packages/ui/src/components/Icon/icons/IconDelete/index.tsx new file mode 100644 index 00000000000..1be609a80a1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDelete/index.tsx @@ -0,0 +1 @@ +export { default as IconDelete } from './IconDelete' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDisc/IconDisc.tsx b/packages/ui/src/components/Icon/icons/IconDisc/IconDisc.tsx new file mode 100644 index 00000000000..d731799af0e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDisc/IconDisc.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Disc } from 'react-feather' + import IconBase from './../../IconBase' + + function IconDisc(props: any) { + return + } + + export default IconDisc + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDisc/index.tsx b/packages/ui/src/components/Icon/icons/IconDisc/index.tsx new file mode 100644 index 00000000000..52afccf5409 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDisc/index.tsx @@ -0,0 +1 @@ +export { default as IconDisc } from './IconDisc' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDivide/IconDivide.tsx b/packages/ui/src/components/Icon/icons/IconDivide/IconDivide.tsx new file mode 100644 index 00000000000..2a43112f91f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDivide/IconDivide.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Divide } from 'react-feather' + import IconBase from './../../IconBase' + + function IconDivide(props: any) { + return + } + + export default IconDivide + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDivide/index.tsx b/packages/ui/src/components/Icon/icons/IconDivide/index.tsx new file mode 100644 index 00000000000..41363ecad89 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDivide/index.tsx @@ -0,0 +1 @@ +export { default as IconDivide } from './IconDivide' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDivideCircle/IconDivideCircle.tsx b/packages/ui/src/components/Icon/icons/IconDivideCircle/IconDivideCircle.tsx new file mode 100644 index 00000000000..f71ecff8cdf --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDivideCircle/IconDivideCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { DivideCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconDivideCircle(props: any) { + return + } + + export default IconDivideCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDivideCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconDivideCircle/index.tsx new file mode 100644 index 00000000000..45364c264b0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDivideCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconDivideCircle } from './IconDivideCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDivideSquare/IconDivideSquare.tsx b/packages/ui/src/components/Icon/icons/IconDivideSquare/IconDivideSquare.tsx new file mode 100644 index 00000000000..5a2ab199926 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDivideSquare/IconDivideSquare.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { DivideSquare } from 'react-feather' + import IconBase from './../../IconBase' + + function IconDivideSquare(props: any) { + return + } + + export default IconDivideSquare + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDivideSquare/index.tsx b/packages/ui/src/components/Icon/icons/IconDivideSquare/index.tsx new file mode 100644 index 00000000000..7ab852f628f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDivideSquare/index.tsx @@ -0,0 +1 @@ +export { default as IconDivideSquare } from './IconDivideSquare' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDollarSign/IconDollarSign.tsx b/packages/ui/src/components/Icon/icons/IconDollarSign/IconDollarSign.tsx new file mode 100644 index 00000000000..ac5eb967e92 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDollarSign/IconDollarSign.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { DollarSign } from 'react-feather' + import IconBase from './../../IconBase' + + function IconDollarSign(props: any) { + return + } + + export default IconDollarSign + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDollarSign/index.tsx b/packages/ui/src/components/Icon/icons/IconDollarSign/index.tsx new file mode 100644 index 00000000000..3e4d47f6832 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDollarSign/index.tsx @@ -0,0 +1 @@ +export { default as IconDollarSign } from './IconDollarSign' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDownload/IconDownload.tsx b/packages/ui/src/components/Icon/icons/IconDownload/IconDownload.tsx new file mode 100644 index 00000000000..eaffa876956 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDownload/IconDownload.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Download } from 'react-feather' + import IconBase from './../../IconBase' + + function IconDownload(props: any) { + return + } + + export default IconDownload + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDownload/index.tsx b/packages/ui/src/components/Icon/icons/IconDownload/index.tsx new file mode 100644 index 00000000000..47db78af2d0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDownload/index.tsx @@ -0,0 +1 @@ +export { default as IconDownload } from './IconDownload' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDownloadCloud/IconDownloadCloud.tsx b/packages/ui/src/components/Icon/icons/IconDownloadCloud/IconDownloadCloud.tsx new file mode 100644 index 00000000000..c645838fd59 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDownloadCloud/IconDownloadCloud.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { DownloadCloud } from 'react-feather' + import IconBase from './../../IconBase' + + function IconDownloadCloud(props: any) { + return + } + + export default IconDownloadCloud + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDownloadCloud/index.tsx b/packages/ui/src/components/Icon/icons/IconDownloadCloud/index.tsx new file mode 100644 index 00000000000..531dd760ce7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDownloadCloud/index.tsx @@ -0,0 +1 @@ +export { default as IconDownloadCloud } from './IconDownloadCloud' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDribbble/IconDribbble.tsx b/packages/ui/src/components/Icon/icons/IconDribbble/IconDribbble.tsx new file mode 100644 index 00000000000..544b6438d92 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDribbble/IconDribbble.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Dribbble } from 'react-feather' + import IconBase from './../../IconBase' + + function IconDribbble(props: any) { + return + } + + export default IconDribbble + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDribbble/index.tsx b/packages/ui/src/components/Icon/icons/IconDribbble/index.tsx new file mode 100644 index 00000000000..2c41308c1f9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDribbble/index.tsx @@ -0,0 +1 @@ +export { default as IconDribbble } from './IconDribbble' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDroplet/IconDroplet.tsx b/packages/ui/src/components/Icon/icons/IconDroplet/IconDroplet.tsx new file mode 100644 index 00000000000..b44a323f694 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDroplet/IconDroplet.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Droplet } from 'react-feather' + import IconBase from './../../IconBase' + + function IconDroplet(props: any) { + return + } + + export default IconDroplet + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconDroplet/index.tsx b/packages/ui/src/components/Icon/icons/IconDroplet/index.tsx new file mode 100644 index 00000000000..5fb19904134 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconDroplet/index.tsx @@ -0,0 +1 @@ +export { default as IconDroplet } from './IconDroplet' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconEdit/IconEdit.tsx b/packages/ui/src/components/Icon/icons/IconEdit/IconEdit.tsx new file mode 100644 index 00000000000..40766c7f989 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconEdit/IconEdit.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Edit } from 'react-feather' + import IconBase from './../../IconBase' + + function IconEdit(props: any) { + return + } + + export default IconEdit + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconEdit/index.tsx b/packages/ui/src/components/Icon/icons/IconEdit/index.tsx new file mode 100644 index 00000000000..af52567d4cc --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconEdit/index.tsx @@ -0,0 +1 @@ +export { default as IconEdit } from './IconEdit' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconEdit2/IconEdit2.tsx b/packages/ui/src/components/Icon/icons/IconEdit2/IconEdit2.tsx new file mode 100644 index 00000000000..e1effbb315b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconEdit2/IconEdit2.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Edit2 } from 'react-feather' + import IconBase from './../../IconBase' + + function IconEdit2(props: any) { + return + } + + export default IconEdit2 + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconEdit2/index.tsx b/packages/ui/src/components/Icon/icons/IconEdit2/index.tsx new file mode 100644 index 00000000000..6f7d8bbca5f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconEdit2/index.tsx @@ -0,0 +1 @@ +export { default as IconEdit2 } from './IconEdit2' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconEdit3/IconEdit3.tsx b/packages/ui/src/components/Icon/icons/IconEdit3/IconEdit3.tsx new file mode 100644 index 00000000000..f1c10ebd813 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconEdit3/IconEdit3.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Edit3 } from 'react-feather' + import IconBase from './../../IconBase' + + function IconEdit3(props: any) { + return + } + + export default IconEdit3 + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconEdit3/index.tsx b/packages/ui/src/components/Icon/icons/IconEdit3/index.tsx new file mode 100644 index 00000000000..152f98f3101 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconEdit3/index.tsx @@ -0,0 +1 @@ +export { default as IconEdit3 } from './IconEdit3' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconExternalLink/IconExternalLink.tsx b/packages/ui/src/components/Icon/icons/IconExternalLink/IconExternalLink.tsx new file mode 100644 index 00000000000..c830e74ff3c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconExternalLink/IconExternalLink.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ExternalLink } from 'react-feather' + import IconBase from './../../IconBase' + + function IconExternalLink(props: any) { + return + } + + export default IconExternalLink + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconExternalLink/index.tsx b/packages/ui/src/components/Icon/icons/IconExternalLink/index.tsx new file mode 100644 index 00000000000..46c299244ac --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconExternalLink/index.tsx @@ -0,0 +1 @@ +export { default as IconExternalLink } from './IconExternalLink' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconEye/IconEye.tsx b/packages/ui/src/components/Icon/icons/IconEye/IconEye.tsx new file mode 100644 index 00000000000..50a759138f7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconEye/IconEye.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Eye } from 'react-feather' + import IconBase from './../../IconBase' + + function IconEye(props: any) { + return + } + + export default IconEye + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconEye/index.tsx b/packages/ui/src/components/Icon/icons/IconEye/index.tsx new file mode 100644 index 00000000000..5a52fa214f9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconEye/index.tsx @@ -0,0 +1 @@ +export { default as IconEye } from './IconEye' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconEyeOff/IconEyeOff.tsx b/packages/ui/src/components/Icon/icons/IconEyeOff/IconEyeOff.tsx new file mode 100644 index 00000000000..567a597830d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconEyeOff/IconEyeOff.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { EyeOff } from 'react-feather' + import IconBase from './../../IconBase' + + function IconEyeOff(props: any) { + return + } + + export default IconEyeOff + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconEyeOff/index.tsx b/packages/ui/src/components/Icon/icons/IconEyeOff/index.tsx new file mode 100644 index 00000000000..1c801bd5004 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconEyeOff/index.tsx @@ -0,0 +1 @@ +export { default as IconEyeOff } from './IconEyeOff' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFacebook/IconFacebook.tsx b/packages/ui/src/components/Icon/icons/IconFacebook/IconFacebook.tsx new file mode 100644 index 00000000000..73a3515b9b7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFacebook/IconFacebook.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Facebook } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFacebook(props: any) { + return + } + + export default IconFacebook + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFacebook/index.tsx b/packages/ui/src/components/Icon/icons/IconFacebook/index.tsx new file mode 100644 index 00000000000..ceb874a3ef8 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFacebook/index.tsx @@ -0,0 +1 @@ +export { default as IconFacebook } from './IconFacebook' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFastForward/IconFastForward.tsx b/packages/ui/src/components/Icon/icons/IconFastForward/IconFastForward.tsx new file mode 100644 index 00000000000..6a2f29c6269 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFastForward/IconFastForward.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { FastForward } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFastForward(props: any) { + return + } + + export default IconFastForward + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFastForward/index.tsx b/packages/ui/src/components/Icon/icons/IconFastForward/index.tsx new file mode 100644 index 00000000000..328d519e36b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFastForward/index.tsx @@ -0,0 +1 @@ +export { default as IconFastForward } from './IconFastForward' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFeather/IconFeather.tsx b/packages/ui/src/components/Icon/icons/IconFeather/IconFeather.tsx new file mode 100644 index 00000000000..b773d3cd345 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFeather/IconFeather.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Feather } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFeather(props: any) { + return + } + + export default IconFeather + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFeather/index.tsx b/packages/ui/src/components/Icon/icons/IconFeather/index.tsx new file mode 100644 index 00000000000..3292e8b0d83 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFeather/index.tsx @@ -0,0 +1 @@ +export { default as IconFeather } from './IconFeather' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFigma/IconFigma.tsx b/packages/ui/src/components/Icon/icons/IconFigma/IconFigma.tsx new file mode 100644 index 00000000000..dc60d05dda4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFigma/IconFigma.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Figma } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFigma(props: any) { + return + } + + export default IconFigma + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFigma/index.tsx b/packages/ui/src/components/Icon/icons/IconFigma/index.tsx new file mode 100644 index 00000000000..acb3e3b924e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFigma/index.tsx @@ -0,0 +1 @@ +export { default as IconFigma } from './IconFigma' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFile/IconFile.tsx b/packages/ui/src/components/Icon/icons/IconFile/IconFile.tsx new file mode 100644 index 00000000000..dc69f88511d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFile/IconFile.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { File } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFile(props: any) { + return + } + + export default IconFile + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFile/index.tsx b/packages/ui/src/components/Icon/icons/IconFile/index.tsx new file mode 100644 index 00000000000..cad25268e3e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFile/index.tsx @@ -0,0 +1 @@ +export { default as IconFile } from './IconFile' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFileMinus/IconFileMinus.tsx b/packages/ui/src/components/Icon/icons/IconFileMinus/IconFileMinus.tsx new file mode 100644 index 00000000000..fad179b7d7d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFileMinus/IconFileMinus.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { FileMinus } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFileMinus(props: any) { + return + } + + export default IconFileMinus + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFileMinus/index.tsx b/packages/ui/src/components/Icon/icons/IconFileMinus/index.tsx new file mode 100644 index 00000000000..4b9b66b26ac --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFileMinus/index.tsx @@ -0,0 +1 @@ +export { default as IconFileMinus } from './IconFileMinus' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFilePlus/IconFilePlus.tsx b/packages/ui/src/components/Icon/icons/IconFilePlus/IconFilePlus.tsx new file mode 100644 index 00000000000..8575982a568 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFilePlus/IconFilePlus.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { FilePlus } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFilePlus(props: any) { + return + } + + export default IconFilePlus + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFilePlus/index.tsx b/packages/ui/src/components/Icon/icons/IconFilePlus/index.tsx new file mode 100644 index 00000000000..f5069b82483 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFilePlus/index.tsx @@ -0,0 +1 @@ +export { default as IconFilePlus } from './IconFilePlus' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFileText/IconFileText.tsx b/packages/ui/src/components/Icon/icons/IconFileText/IconFileText.tsx new file mode 100644 index 00000000000..27122f15776 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFileText/IconFileText.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { FileText } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFileText(props: any) { + return + } + + export default IconFileText + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFileText/index.tsx b/packages/ui/src/components/Icon/icons/IconFileText/index.tsx new file mode 100644 index 00000000000..288b4d56d97 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFileText/index.tsx @@ -0,0 +1 @@ +export { default as IconFileText } from './IconFileText' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFilm/IconFilm.tsx b/packages/ui/src/components/Icon/icons/IconFilm/IconFilm.tsx new file mode 100644 index 00000000000..15a1a7071c3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFilm/IconFilm.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Film } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFilm(props: any) { + return + } + + export default IconFilm + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFilm/index.tsx b/packages/ui/src/components/Icon/icons/IconFilm/index.tsx new file mode 100644 index 00000000000..da1459a2938 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFilm/index.tsx @@ -0,0 +1 @@ +export { default as IconFilm } from './IconFilm' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFilter/IconFilter.tsx b/packages/ui/src/components/Icon/icons/IconFilter/IconFilter.tsx new file mode 100644 index 00000000000..4b354f82a69 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFilter/IconFilter.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Filter } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFilter(props: any) { + return + } + + export default IconFilter + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFilter/index.tsx b/packages/ui/src/components/Icon/icons/IconFilter/index.tsx new file mode 100644 index 00000000000..2e57c693dec --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFilter/index.tsx @@ -0,0 +1 @@ +export { default as IconFilter } from './IconFilter' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFlag/IconFlag.tsx b/packages/ui/src/components/Icon/icons/IconFlag/IconFlag.tsx new file mode 100644 index 00000000000..8fec141dece --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFlag/IconFlag.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Flag } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFlag(props: any) { + return + } + + export default IconFlag + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFlag/index.tsx b/packages/ui/src/components/Icon/icons/IconFlag/index.tsx new file mode 100644 index 00000000000..fc470293bcb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFlag/index.tsx @@ -0,0 +1 @@ +export { default as IconFlag } from './IconFlag' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFolder/IconFolder.tsx b/packages/ui/src/components/Icon/icons/IconFolder/IconFolder.tsx new file mode 100644 index 00000000000..93732810681 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFolder/IconFolder.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Folder } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFolder(props: any) { + return + } + + export default IconFolder + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFolder/index.tsx b/packages/ui/src/components/Icon/icons/IconFolder/index.tsx new file mode 100644 index 00000000000..fb963a8e7c8 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFolder/index.tsx @@ -0,0 +1 @@ +export { default as IconFolder } from './IconFolder' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFolderMinus/IconFolderMinus.tsx b/packages/ui/src/components/Icon/icons/IconFolderMinus/IconFolderMinus.tsx new file mode 100644 index 00000000000..1e6bd552df2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFolderMinus/IconFolderMinus.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { FolderMinus } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFolderMinus(props: any) { + return + } + + export default IconFolderMinus + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFolderMinus/index.tsx b/packages/ui/src/components/Icon/icons/IconFolderMinus/index.tsx new file mode 100644 index 00000000000..74832350505 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFolderMinus/index.tsx @@ -0,0 +1 @@ +export { default as IconFolderMinus } from './IconFolderMinus' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFolderPlus/IconFolderPlus.tsx b/packages/ui/src/components/Icon/icons/IconFolderPlus/IconFolderPlus.tsx new file mode 100644 index 00000000000..cf1de0affa0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFolderPlus/IconFolderPlus.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { FolderPlus } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFolderPlus(props: any) { + return + } + + export default IconFolderPlus + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFolderPlus/index.tsx b/packages/ui/src/components/Icon/icons/IconFolderPlus/index.tsx new file mode 100644 index 00000000000..03e776a7c6f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFolderPlus/index.tsx @@ -0,0 +1 @@ +export { default as IconFolderPlus } from './IconFolderPlus' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFramer/IconFramer.tsx b/packages/ui/src/components/Icon/icons/IconFramer/IconFramer.tsx new file mode 100644 index 00000000000..2aa5dd8402d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFramer/IconFramer.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Framer } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFramer(props: any) { + return + } + + export default IconFramer + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFramer/index.tsx b/packages/ui/src/components/Icon/icons/IconFramer/index.tsx new file mode 100644 index 00000000000..11b1ce5da65 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFramer/index.tsx @@ -0,0 +1 @@ +export { default as IconFramer } from './IconFramer' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFrown/IconFrown.tsx b/packages/ui/src/components/Icon/icons/IconFrown/IconFrown.tsx new file mode 100644 index 00000000000..38d1b536ed8 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFrown/IconFrown.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Frown } from 'react-feather' + import IconBase from './../../IconBase' + + function IconFrown(props: any) { + return + } + + export default IconFrown + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconFrown/index.tsx b/packages/ui/src/components/Icon/icons/IconFrown/index.tsx new file mode 100644 index 00000000000..f2a4d47604d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconFrown/index.tsx @@ -0,0 +1 @@ +export { default as IconFrown } from './IconFrown' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGift/IconGift.tsx b/packages/ui/src/components/Icon/icons/IconGift/IconGift.tsx new file mode 100644 index 00000000000..8075803ad4a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGift/IconGift.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Gift } from 'react-feather' + import IconBase from './../../IconBase' + + function IconGift(props: any) { + return + } + + export default IconGift + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGift/index.tsx b/packages/ui/src/components/Icon/icons/IconGift/index.tsx new file mode 100644 index 00000000000..98db46ae496 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGift/index.tsx @@ -0,0 +1 @@ +export { default as IconGift } from './IconGift' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitBranch/IconGitBranch.tsx b/packages/ui/src/components/Icon/icons/IconGitBranch/IconGitBranch.tsx new file mode 100644 index 00000000000..d197c33deb6 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitBranch/IconGitBranch.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { GitBranch } from 'react-feather' + import IconBase from './../../IconBase' + + function IconGitBranch(props: any) { + return + } + + export default IconGitBranch + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitBranch/index.tsx b/packages/ui/src/components/Icon/icons/IconGitBranch/index.tsx new file mode 100644 index 00000000000..10a02051554 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitBranch/index.tsx @@ -0,0 +1 @@ +export { default as IconGitBranch } from './IconGitBranch' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitCommit/IconGitCommit.tsx b/packages/ui/src/components/Icon/icons/IconGitCommit/IconGitCommit.tsx new file mode 100644 index 00000000000..a238277693c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitCommit/IconGitCommit.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { GitCommit } from 'react-feather' + import IconBase from './../../IconBase' + + function IconGitCommit(props: any) { + return + } + + export default IconGitCommit + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitCommit/index.tsx b/packages/ui/src/components/Icon/icons/IconGitCommit/index.tsx new file mode 100644 index 00000000000..29519a9f227 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitCommit/index.tsx @@ -0,0 +1 @@ +export { default as IconGitCommit } from './IconGitCommit' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitHub/IconGitHub.tsx b/packages/ui/src/components/Icon/icons/IconGitHub/IconGitHub.tsx new file mode 100644 index 00000000000..f582f541d63 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitHub/IconGitHub.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { GitHub } from 'react-feather' + import IconBase from './../../IconBase' + + function IconGitHub(props: any) { + return + } + + export default IconGitHub + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitHub/index.tsx b/packages/ui/src/components/Icon/icons/IconGitHub/index.tsx new file mode 100644 index 00000000000..608d1aec113 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitHub/index.tsx @@ -0,0 +1 @@ +export { default as IconGitHub } from './IconGitHub' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitMerge/IconGitMerge.tsx b/packages/ui/src/components/Icon/icons/IconGitMerge/IconGitMerge.tsx new file mode 100644 index 00000000000..9935ac42b72 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitMerge/IconGitMerge.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { GitMerge } from 'react-feather' + import IconBase from './../../IconBase' + + function IconGitMerge(props: any) { + return + } + + export default IconGitMerge + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitMerge/index.tsx b/packages/ui/src/components/Icon/icons/IconGitMerge/index.tsx new file mode 100644 index 00000000000..2d94f1a9ab8 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitMerge/index.tsx @@ -0,0 +1 @@ +export { default as IconGitMerge } from './IconGitMerge' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitPullRequest/IconGitPullRequest.tsx b/packages/ui/src/components/Icon/icons/IconGitPullRequest/IconGitPullRequest.tsx new file mode 100644 index 00000000000..fe3f79a8280 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitPullRequest/IconGitPullRequest.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { GitPullRequest } from 'react-feather' + import IconBase from './../../IconBase' + + function IconGitPullRequest(props: any) { + return + } + + export default IconGitPullRequest + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitPullRequest/index.tsx b/packages/ui/src/components/Icon/icons/IconGitPullRequest/index.tsx new file mode 100644 index 00000000000..4a71993a501 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitPullRequest/index.tsx @@ -0,0 +1 @@ +export { default as IconGitPullRequest } from './IconGitPullRequest' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitlab/IconGitlab.tsx b/packages/ui/src/components/Icon/icons/IconGitlab/IconGitlab.tsx new file mode 100644 index 00000000000..f4c43e5e33b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitlab/IconGitlab.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Gitlab } from 'react-feather' + import IconBase from './../../IconBase' + + function IconGitlab(props: any) { + return + } + + export default IconGitlab + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGitlab/index.tsx b/packages/ui/src/components/Icon/icons/IconGitlab/index.tsx new file mode 100644 index 00000000000..05be357fe26 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGitlab/index.tsx @@ -0,0 +1 @@ +export { default as IconGitlab } from './IconGitlab' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGlobe/IconGlobe.tsx b/packages/ui/src/components/Icon/icons/IconGlobe/IconGlobe.tsx new file mode 100644 index 00000000000..b4b96579362 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGlobe/IconGlobe.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Globe } from 'react-feather' + import IconBase from './../../IconBase' + + function IconGlobe(props: any) { + return + } + + export default IconGlobe + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGlobe/index.tsx b/packages/ui/src/components/Icon/icons/IconGlobe/index.tsx new file mode 100644 index 00000000000..6f235fa7223 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGlobe/index.tsx @@ -0,0 +1 @@ +export { default as IconGlobe } from './IconGlobe' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGrid/IconGrid.tsx b/packages/ui/src/components/Icon/icons/IconGrid/IconGrid.tsx new file mode 100644 index 00000000000..008d0085c42 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGrid/IconGrid.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Grid } from 'react-feather' + import IconBase from './../../IconBase' + + function IconGrid(props: any) { + return + } + + export default IconGrid + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconGrid/index.tsx b/packages/ui/src/components/Icon/icons/IconGrid/index.tsx new file mode 100644 index 00000000000..70462bca247 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconGrid/index.tsx @@ -0,0 +1 @@ +export { default as IconGrid } from './IconGrid' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHardDrive/IconHardDrive.tsx b/packages/ui/src/components/Icon/icons/IconHardDrive/IconHardDrive.tsx new file mode 100644 index 00000000000..778ed2f45a0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHardDrive/IconHardDrive.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { HardDrive } from 'react-feather' + import IconBase from './../../IconBase' + + function IconHardDrive(props: any) { + return + } + + export default IconHardDrive + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHardDrive/index.tsx b/packages/ui/src/components/Icon/icons/IconHardDrive/index.tsx new file mode 100644 index 00000000000..2425e8ac09c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHardDrive/index.tsx @@ -0,0 +1 @@ +export { default as IconHardDrive } from './IconHardDrive' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHash/IconHash.tsx b/packages/ui/src/components/Icon/icons/IconHash/IconHash.tsx new file mode 100644 index 00000000000..75ee95e64e2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHash/IconHash.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Hash } from 'react-feather' + import IconBase from './../../IconBase' + + function IconHash(props: any) { + return + } + + export default IconHash + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHash/index.tsx b/packages/ui/src/components/Icon/icons/IconHash/index.tsx new file mode 100644 index 00000000000..97522ca8118 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHash/index.tsx @@ -0,0 +1 @@ +export { default as IconHash } from './IconHash' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHeadphones/IconHeadphones.tsx b/packages/ui/src/components/Icon/icons/IconHeadphones/IconHeadphones.tsx new file mode 100644 index 00000000000..8f5d1b9ac15 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHeadphones/IconHeadphones.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Headphones } from 'react-feather' + import IconBase from './../../IconBase' + + function IconHeadphones(props: any) { + return + } + + export default IconHeadphones + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHeadphones/index.tsx b/packages/ui/src/components/Icon/icons/IconHeadphones/index.tsx new file mode 100644 index 00000000000..ec00aa51f14 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHeadphones/index.tsx @@ -0,0 +1 @@ +export { default as IconHeadphones } from './IconHeadphones' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHeart/IconHeart.tsx b/packages/ui/src/components/Icon/icons/IconHeart/IconHeart.tsx new file mode 100644 index 00000000000..e595058003f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHeart/IconHeart.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Heart } from 'react-feather' + import IconBase from './../../IconBase' + + function IconHeart(props: any) { + return + } + + export default IconHeart + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHeart/index.tsx b/packages/ui/src/components/Icon/icons/IconHeart/index.tsx new file mode 100644 index 00000000000..cddf79d3273 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHeart/index.tsx @@ -0,0 +1 @@ +export { default as IconHeart } from './IconHeart' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHelpCircle/IconHelpCircle.tsx b/packages/ui/src/components/Icon/icons/IconHelpCircle/IconHelpCircle.tsx new file mode 100644 index 00000000000..7be33730193 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHelpCircle/IconHelpCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { HelpCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconHelpCircle(props: any) { + return + } + + export default IconHelpCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHelpCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconHelpCircle/index.tsx new file mode 100644 index 00000000000..d03132246ff --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHelpCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconHelpCircle } from './IconHelpCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHexagon/IconHexagon.tsx b/packages/ui/src/components/Icon/icons/IconHexagon/IconHexagon.tsx new file mode 100644 index 00000000000..6e6060833ee --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHexagon/IconHexagon.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Hexagon } from 'react-feather' + import IconBase from './../../IconBase' + + function IconHexagon(props: any) { + return + } + + export default IconHexagon + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHexagon/index.tsx b/packages/ui/src/components/Icon/icons/IconHexagon/index.tsx new file mode 100644 index 00000000000..6a26815ba7d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHexagon/index.tsx @@ -0,0 +1 @@ +export { default as IconHexagon } from './IconHexagon' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHome/IconHome.tsx b/packages/ui/src/components/Icon/icons/IconHome/IconHome.tsx new file mode 100644 index 00000000000..901e43f2f2d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHome/IconHome.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Home } from 'react-feather' + import IconBase from './../../IconBase' + + function IconHome(props: any) { + return + } + + export default IconHome + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconHome/index.tsx b/packages/ui/src/components/Icon/icons/IconHome/index.tsx new file mode 100644 index 00000000000..dc9261d7802 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconHome/index.tsx @@ -0,0 +1 @@ +export { default as IconHome } from './IconHome' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconImage/IconImage.tsx b/packages/ui/src/components/Icon/icons/IconImage/IconImage.tsx new file mode 100644 index 00000000000..81c1230878c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconImage/IconImage.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Image } from 'react-feather' + import IconBase from './../../IconBase' + + function IconImage(props: any) { + return + } + + export default IconImage + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconImage/index.tsx b/packages/ui/src/components/Icon/icons/IconImage/index.tsx new file mode 100644 index 00000000000..c03e50fcbba --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconImage/index.tsx @@ -0,0 +1 @@ +export { default as IconImage } from './IconImage' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconInbox/IconInbox.tsx b/packages/ui/src/components/Icon/icons/IconInbox/IconInbox.tsx new file mode 100644 index 00000000000..379a4ebdea4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconInbox/IconInbox.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Inbox } from 'react-feather' + import IconBase from './../../IconBase' + + function IconInbox(props: any) { + return + } + + export default IconInbox + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconInbox/index.tsx b/packages/ui/src/components/Icon/icons/IconInbox/index.tsx new file mode 100644 index 00000000000..e6bf79f5cfe --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconInbox/index.tsx @@ -0,0 +1 @@ +export { default as IconInbox } from './IconInbox' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconInfo/IconInfo.tsx b/packages/ui/src/components/Icon/icons/IconInfo/IconInfo.tsx new file mode 100644 index 00000000000..e8c64a9673b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconInfo/IconInfo.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Info } from 'react-feather' + import IconBase from './../../IconBase' + + function IconInfo(props: any) { + return + } + + export default IconInfo + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconInfo/index.tsx b/packages/ui/src/components/Icon/icons/IconInfo/index.tsx new file mode 100644 index 00000000000..a133d6514fe --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconInfo/index.tsx @@ -0,0 +1 @@ +export { default as IconInfo } from './IconInfo' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconInstagram/IconInstagram.tsx b/packages/ui/src/components/Icon/icons/IconInstagram/IconInstagram.tsx new file mode 100644 index 00000000000..3b854044f25 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconInstagram/IconInstagram.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Instagram } from 'react-feather' + import IconBase from './../../IconBase' + + function IconInstagram(props: any) { + return + } + + export default IconInstagram + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconInstagram/index.tsx b/packages/ui/src/components/Icon/icons/IconInstagram/index.tsx new file mode 100644 index 00000000000..9e944ccf51c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconInstagram/index.tsx @@ -0,0 +1 @@ +export { default as IconInstagram } from './IconInstagram' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconItalic/IconItalic.tsx b/packages/ui/src/components/Icon/icons/IconItalic/IconItalic.tsx new file mode 100644 index 00000000000..31d2b33f03e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconItalic/IconItalic.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Italic } from 'react-feather' + import IconBase from './../../IconBase' + + function IconItalic(props: any) { + return + } + + export default IconItalic + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconItalic/index.tsx b/packages/ui/src/components/Icon/icons/IconItalic/index.tsx new file mode 100644 index 00000000000..bf25fb58a41 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconItalic/index.tsx @@ -0,0 +1 @@ +export { default as IconItalic } from './IconItalic' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconKey/IconKey.tsx b/packages/ui/src/components/Icon/icons/IconKey/IconKey.tsx new file mode 100644 index 00000000000..57f1c447d21 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconKey/IconKey.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Key } from 'react-feather' + import IconBase from './../../IconBase' + + function IconKey(props: any) { + return + } + + export default IconKey + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconKey/index.tsx b/packages/ui/src/components/Icon/icons/IconKey/index.tsx new file mode 100644 index 00000000000..cb927e42bf2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconKey/index.tsx @@ -0,0 +1 @@ +export { default as IconKey } from './IconKey' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLayers/IconLayers.tsx b/packages/ui/src/components/Icon/icons/IconLayers/IconLayers.tsx new file mode 100644 index 00000000000..d7219649110 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLayers/IconLayers.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Layers } from 'react-feather' + import IconBase from './../../IconBase' + + function IconLayers(props: any) { + return + } + + export default IconLayers + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLayers/index.tsx b/packages/ui/src/components/Icon/icons/IconLayers/index.tsx new file mode 100644 index 00000000000..b9ecc8248b8 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLayers/index.tsx @@ -0,0 +1 @@ +export { default as IconLayers } from './IconLayers' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLayout/IconLayout.tsx b/packages/ui/src/components/Icon/icons/IconLayout/IconLayout.tsx new file mode 100644 index 00000000000..0724b73d43b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLayout/IconLayout.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Layout } from 'react-feather' + import IconBase from './../../IconBase' + + function IconLayout(props: any) { + return + } + + export default IconLayout + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLayout/index.tsx b/packages/ui/src/components/Icon/icons/IconLayout/index.tsx new file mode 100644 index 00000000000..5ff570644b9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLayout/index.tsx @@ -0,0 +1 @@ +export { default as IconLayout } from './IconLayout' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLifeBuoy/IconLifeBuoy.tsx b/packages/ui/src/components/Icon/icons/IconLifeBuoy/IconLifeBuoy.tsx new file mode 100644 index 00000000000..d104e244e13 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLifeBuoy/IconLifeBuoy.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { LifeBuoy } from 'react-feather' + import IconBase from './../../IconBase' + + function IconLifeBuoy(props: any) { + return + } + + export default IconLifeBuoy + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLifeBuoy/index.tsx b/packages/ui/src/components/Icon/icons/IconLifeBuoy/index.tsx new file mode 100644 index 00000000000..6353c3a8352 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLifeBuoy/index.tsx @@ -0,0 +1 @@ +export { default as IconLifeBuoy } from './IconLifeBuoy' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLink/IconLink.tsx b/packages/ui/src/components/Icon/icons/IconLink/IconLink.tsx new file mode 100644 index 00000000000..cf00e14bc94 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLink/IconLink.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Link } from 'react-feather' + import IconBase from './../../IconBase' + + function IconLink(props: any) { + return + } + + export default IconLink + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLink/index.tsx b/packages/ui/src/components/Icon/icons/IconLink/index.tsx new file mode 100644 index 00000000000..61093f8bd35 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLink/index.tsx @@ -0,0 +1 @@ +export { default as IconLink } from './IconLink' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLink2/IconLink2.tsx b/packages/ui/src/components/Icon/icons/IconLink2/IconLink2.tsx new file mode 100644 index 00000000000..c9066c2a8f9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLink2/IconLink2.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Link2 } from 'react-feather' + import IconBase from './../../IconBase' + + function IconLink2(props: any) { + return + } + + export default IconLink2 + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLink2/index.tsx b/packages/ui/src/components/Icon/icons/IconLink2/index.tsx new file mode 100644 index 00000000000..7df3844aa81 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLink2/index.tsx @@ -0,0 +1 @@ +export { default as IconLink2 } from './IconLink2' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLinkedin/IconLinkedin.tsx b/packages/ui/src/components/Icon/icons/IconLinkedin/IconLinkedin.tsx new file mode 100644 index 00000000000..d82039ac9a1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLinkedin/IconLinkedin.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Linkedin } from 'react-feather' + import IconBase from './../../IconBase' + + function IconLinkedin(props: any) { + return + } + + export default IconLinkedin + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLinkedin/index.tsx b/packages/ui/src/components/Icon/icons/IconLinkedin/index.tsx new file mode 100644 index 00000000000..36d537210b3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLinkedin/index.tsx @@ -0,0 +1 @@ +export { default as IconLinkedin } from './IconLinkedin' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconList/IconList.tsx b/packages/ui/src/components/Icon/icons/IconList/IconList.tsx new file mode 100644 index 00000000000..2f93e1f6b0a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconList/IconList.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { List } from 'react-feather' + import IconBase from './../../IconBase' + + function IconList(props: any) { + return + } + + export default IconList + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconList/index.tsx b/packages/ui/src/components/Icon/icons/IconList/index.tsx new file mode 100644 index 00000000000..5773dbeca8b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconList/index.tsx @@ -0,0 +1 @@ +export { default as IconList } from './IconList' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLoader/IconLoader.tsx b/packages/ui/src/components/Icon/icons/IconLoader/IconLoader.tsx new file mode 100644 index 00000000000..0dd192e321b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLoader/IconLoader.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Loader } from 'react-feather' + import IconBase from './../../IconBase' + + function IconLoader(props: any) { + return + } + + export default IconLoader + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLoader/index.tsx b/packages/ui/src/components/Icon/icons/IconLoader/index.tsx new file mode 100644 index 00000000000..daaebea734d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLoader/index.tsx @@ -0,0 +1 @@ +export { default as IconLoader } from './IconLoader' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLock/IconLock.tsx b/packages/ui/src/components/Icon/icons/IconLock/IconLock.tsx new file mode 100644 index 00000000000..a6a5dba33cd --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLock/IconLock.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Lock } from 'react-feather' + import IconBase from './../../IconBase' + + function IconLock(props: any) { + return + } + + export default IconLock + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLock/index.tsx b/packages/ui/src/components/Icon/icons/IconLock/index.tsx new file mode 100644 index 00000000000..6fe4b7bded0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLock/index.tsx @@ -0,0 +1 @@ +export { default as IconLock } from './IconLock' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLogIn/IconLogIn.tsx b/packages/ui/src/components/Icon/icons/IconLogIn/IconLogIn.tsx new file mode 100644 index 00000000000..6a6d52a8082 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLogIn/IconLogIn.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { LogIn } from 'react-feather' + import IconBase from './../../IconBase' + + function IconLogIn(props: any) { + return + } + + export default IconLogIn + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLogIn/index.tsx b/packages/ui/src/components/Icon/icons/IconLogIn/index.tsx new file mode 100644 index 00000000000..a051b59dc52 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLogIn/index.tsx @@ -0,0 +1 @@ +export { default as IconLogIn } from './IconLogIn' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLogOut/IconLogOut.tsx b/packages/ui/src/components/Icon/icons/IconLogOut/IconLogOut.tsx new file mode 100644 index 00000000000..ec44e847d33 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLogOut/IconLogOut.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { LogOut } from 'react-feather' + import IconBase from './../../IconBase' + + function IconLogOut(props: any) { + return + } + + export default IconLogOut + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconLogOut/index.tsx b/packages/ui/src/components/Icon/icons/IconLogOut/index.tsx new file mode 100644 index 00000000000..21175f671e7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconLogOut/index.tsx @@ -0,0 +1 @@ +export { default as IconLogOut } from './IconLogOut' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMail/IconMail.tsx b/packages/ui/src/components/Icon/icons/IconMail/IconMail.tsx new file mode 100644 index 00000000000..cd31c5abc75 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMail/IconMail.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Mail } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMail(props: any) { + return + } + + export default IconMail + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMail/index.tsx b/packages/ui/src/components/Icon/icons/IconMail/index.tsx new file mode 100644 index 00000000000..f8c8667ee71 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMail/index.tsx @@ -0,0 +1 @@ +export { default as IconMail } from './IconMail' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMap/IconMap.tsx b/packages/ui/src/components/Icon/icons/IconMap/IconMap.tsx new file mode 100644 index 00000000000..7c2e821f427 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMap/IconMap.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Map } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMap(props: any) { + return + } + + export default IconMap + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMap/index.tsx b/packages/ui/src/components/Icon/icons/IconMap/index.tsx new file mode 100644 index 00000000000..8b24ec3d545 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMap/index.tsx @@ -0,0 +1 @@ +export { default as IconMap } from './IconMap' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMapPin/IconMapPin.tsx b/packages/ui/src/components/Icon/icons/IconMapPin/IconMapPin.tsx new file mode 100644 index 00000000000..4867ae03c6b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMapPin/IconMapPin.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { MapPin } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMapPin(props: any) { + return + } + + export default IconMapPin + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMapPin/index.tsx b/packages/ui/src/components/Icon/icons/IconMapPin/index.tsx new file mode 100644 index 00000000000..766afe88b9b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMapPin/index.tsx @@ -0,0 +1 @@ +export { default as IconMapPin } from './IconMapPin' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMaximize/IconMaximize.tsx b/packages/ui/src/components/Icon/icons/IconMaximize/IconMaximize.tsx new file mode 100644 index 00000000000..e03dd087533 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMaximize/IconMaximize.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Maximize } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMaximize(props: any) { + return + } + + export default IconMaximize + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMaximize/index.tsx b/packages/ui/src/components/Icon/icons/IconMaximize/index.tsx new file mode 100644 index 00000000000..05af84161da --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMaximize/index.tsx @@ -0,0 +1 @@ +export { default as IconMaximize } from './IconMaximize' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMaximize2/IconMaximize2.tsx b/packages/ui/src/components/Icon/icons/IconMaximize2/IconMaximize2.tsx new file mode 100644 index 00000000000..addad5e4b8f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMaximize2/IconMaximize2.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Maximize2 } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMaximize2(props: any) { + return + } + + export default IconMaximize2 + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMaximize2/index.tsx b/packages/ui/src/components/Icon/icons/IconMaximize2/index.tsx new file mode 100644 index 00000000000..a9ee885446b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMaximize2/index.tsx @@ -0,0 +1 @@ +export { default as IconMaximize2 } from './IconMaximize2' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMeh/IconMeh.tsx b/packages/ui/src/components/Icon/icons/IconMeh/IconMeh.tsx new file mode 100644 index 00000000000..478674bf677 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMeh/IconMeh.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Meh } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMeh(props: any) { + return + } + + export default IconMeh + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMeh/index.tsx b/packages/ui/src/components/Icon/icons/IconMeh/index.tsx new file mode 100644 index 00000000000..a05f15bfdd8 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMeh/index.tsx @@ -0,0 +1 @@ +export { default as IconMeh } from './IconMeh' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMenu/IconMenu.tsx b/packages/ui/src/components/Icon/icons/IconMenu/IconMenu.tsx new file mode 100644 index 00000000000..409d2d9f18e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMenu/IconMenu.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Menu } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMenu(props: any) { + return + } + + export default IconMenu + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMenu/index.tsx b/packages/ui/src/components/Icon/icons/IconMenu/index.tsx new file mode 100644 index 00000000000..fc07cc67453 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMenu/index.tsx @@ -0,0 +1 @@ +export { default as IconMenu } from './IconMenu' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMessageCircle/IconMessageCircle.tsx b/packages/ui/src/components/Icon/icons/IconMessageCircle/IconMessageCircle.tsx new file mode 100644 index 00000000000..875a15cbc60 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMessageCircle/IconMessageCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { MessageCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMessageCircle(props: any) { + return + } + + export default IconMessageCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMessageCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconMessageCircle/index.tsx new file mode 100644 index 00000000000..9d06f7672e8 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMessageCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconMessageCircle } from './IconMessageCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMessageSquare/IconMessageSquare.tsx b/packages/ui/src/components/Icon/icons/IconMessageSquare/IconMessageSquare.tsx new file mode 100644 index 00000000000..b6d23d923c2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMessageSquare/IconMessageSquare.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { MessageSquare } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMessageSquare(props: any) { + return + } + + export default IconMessageSquare + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMessageSquare/index.tsx b/packages/ui/src/components/Icon/icons/IconMessageSquare/index.tsx new file mode 100644 index 00000000000..44abdd0d9a1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMessageSquare/index.tsx @@ -0,0 +1 @@ +export { default as IconMessageSquare } from './IconMessageSquare' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMic/IconMic.tsx b/packages/ui/src/components/Icon/icons/IconMic/IconMic.tsx new file mode 100644 index 00000000000..25f2e402bd2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMic/IconMic.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Mic } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMic(props: any) { + return + } + + export default IconMic + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMic/index.tsx b/packages/ui/src/components/Icon/icons/IconMic/index.tsx new file mode 100644 index 00000000000..9bf267c1c88 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMic/index.tsx @@ -0,0 +1 @@ +export { default as IconMic } from './IconMic' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMicOff/IconMicOff.tsx b/packages/ui/src/components/Icon/icons/IconMicOff/IconMicOff.tsx new file mode 100644 index 00000000000..464d6117e59 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMicOff/IconMicOff.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { MicOff } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMicOff(props: any) { + return + } + + export default IconMicOff + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMicOff/index.tsx b/packages/ui/src/components/Icon/icons/IconMicOff/index.tsx new file mode 100644 index 00000000000..c6d4ac36fc9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMicOff/index.tsx @@ -0,0 +1 @@ +export { default as IconMicOff } from './IconMicOff' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMinimize/IconMinimize.tsx b/packages/ui/src/components/Icon/icons/IconMinimize/IconMinimize.tsx new file mode 100644 index 00000000000..ad64686521d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMinimize/IconMinimize.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Minimize } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMinimize(props: any) { + return + } + + export default IconMinimize + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMinimize/index.tsx b/packages/ui/src/components/Icon/icons/IconMinimize/index.tsx new file mode 100644 index 00000000000..4181851df8f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMinimize/index.tsx @@ -0,0 +1 @@ +export { default as IconMinimize } from './IconMinimize' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMinimize2/IconMinimize2.tsx b/packages/ui/src/components/Icon/icons/IconMinimize2/IconMinimize2.tsx new file mode 100644 index 00000000000..65c807e94f3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMinimize2/IconMinimize2.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Minimize2 } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMinimize2(props: any) { + return + } + + export default IconMinimize2 + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMinimize2/index.tsx b/packages/ui/src/components/Icon/icons/IconMinimize2/index.tsx new file mode 100644 index 00000000000..22a4346a8ab --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMinimize2/index.tsx @@ -0,0 +1 @@ +export { default as IconMinimize2 } from './IconMinimize2' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMinus/IconMinus.tsx b/packages/ui/src/components/Icon/icons/IconMinus/IconMinus.tsx new file mode 100644 index 00000000000..fd4fcf81bd2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMinus/IconMinus.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Minus } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMinus(props: any) { + return + } + + export default IconMinus + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMinus/index.tsx b/packages/ui/src/components/Icon/icons/IconMinus/index.tsx new file mode 100644 index 00000000000..8d0539c0143 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMinus/index.tsx @@ -0,0 +1 @@ +export { default as IconMinus } from './IconMinus' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMinusCircle/IconMinusCircle.tsx b/packages/ui/src/components/Icon/icons/IconMinusCircle/IconMinusCircle.tsx new file mode 100644 index 00000000000..dfc9790ad36 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMinusCircle/IconMinusCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { MinusCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMinusCircle(props: any) { + return + } + + export default IconMinusCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMinusCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconMinusCircle/index.tsx new file mode 100644 index 00000000000..0c15c333077 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMinusCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconMinusCircle } from './IconMinusCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMinusSquare/IconMinusSquare.tsx b/packages/ui/src/components/Icon/icons/IconMinusSquare/IconMinusSquare.tsx new file mode 100644 index 00000000000..27efb61e415 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMinusSquare/IconMinusSquare.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { MinusSquare } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMinusSquare(props: any) { + return + } + + export default IconMinusSquare + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMinusSquare/index.tsx b/packages/ui/src/components/Icon/icons/IconMinusSquare/index.tsx new file mode 100644 index 00000000000..5b434586304 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMinusSquare/index.tsx @@ -0,0 +1 @@ +export { default as IconMinusSquare } from './IconMinusSquare' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMonitor/IconMonitor.tsx b/packages/ui/src/components/Icon/icons/IconMonitor/IconMonitor.tsx new file mode 100644 index 00000000000..7b70c9b2295 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMonitor/IconMonitor.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Monitor } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMonitor(props: any) { + return + } + + export default IconMonitor + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMonitor/index.tsx b/packages/ui/src/components/Icon/icons/IconMonitor/index.tsx new file mode 100644 index 00000000000..de64f06d3fb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMonitor/index.tsx @@ -0,0 +1 @@ +export { default as IconMonitor } from './IconMonitor' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMoon/IconMoon.tsx b/packages/ui/src/components/Icon/icons/IconMoon/IconMoon.tsx new file mode 100644 index 00000000000..a5bedac3546 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMoon/IconMoon.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Moon } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMoon(props: any) { + return + } + + export default IconMoon + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMoon/index.tsx b/packages/ui/src/components/Icon/icons/IconMoon/index.tsx new file mode 100644 index 00000000000..72cadd9c75b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMoon/index.tsx @@ -0,0 +1 @@ +export { default as IconMoon } from './IconMoon' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMoreHorizontal/IconMoreHorizontal.tsx b/packages/ui/src/components/Icon/icons/IconMoreHorizontal/IconMoreHorizontal.tsx new file mode 100644 index 00000000000..0e10cd20a77 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMoreHorizontal/IconMoreHorizontal.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { MoreHorizontal } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMoreHorizontal(props: any) { + return + } + + export default IconMoreHorizontal + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMoreHorizontal/index.tsx b/packages/ui/src/components/Icon/icons/IconMoreHorizontal/index.tsx new file mode 100644 index 00000000000..9d4cc538cb2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMoreHorizontal/index.tsx @@ -0,0 +1 @@ +export { default as IconMoreHorizontal } from './IconMoreHorizontal' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMoreVertical/IconMoreVertical.tsx b/packages/ui/src/components/Icon/icons/IconMoreVertical/IconMoreVertical.tsx new file mode 100644 index 00000000000..a207b2a3046 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMoreVertical/IconMoreVertical.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { MoreVertical } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMoreVertical(props: any) { + return + } + + export default IconMoreVertical + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMoreVertical/index.tsx b/packages/ui/src/components/Icon/icons/IconMoreVertical/index.tsx new file mode 100644 index 00000000000..09e734731ec --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMoreVertical/index.tsx @@ -0,0 +1 @@ +export { default as IconMoreVertical } from './IconMoreVertical' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMousePointer/IconMousePointer.tsx b/packages/ui/src/components/Icon/icons/IconMousePointer/IconMousePointer.tsx new file mode 100644 index 00000000000..94d764e2979 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMousePointer/IconMousePointer.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { MousePointer } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMousePointer(props: any) { + return + } + + export default IconMousePointer + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMousePointer/index.tsx b/packages/ui/src/components/Icon/icons/IconMousePointer/index.tsx new file mode 100644 index 00000000000..0bb79473c38 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMousePointer/index.tsx @@ -0,0 +1 @@ +export { default as IconMousePointer } from './IconMousePointer' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMove/IconMove.tsx b/packages/ui/src/components/Icon/icons/IconMove/IconMove.tsx new file mode 100644 index 00000000000..bc6e7203f39 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMove/IconMove.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Move } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMove(props: any) { + return + } + + export default IconMove + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMove/index.tsx b/packages/ui/src/components/Icon/icons/IconMove/index.tsx new file mode 100644 index 00000000000..3a09652b9e6 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMove/index.tsx @@ -0,0 +1 @@ +export { default as IconMove } from './IconMove' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMusic/IconMusic.tsx b/packages/ui/src/components/Icon/icons/IconMusic/IconMusic.tsx new file mode 100644 index 00000000000..f3e62a953a9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMusic/IconMusic.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Music } from 'react-feather' + import IconBase from './../../IconBase' + + function IconMusic(props: any) { + return + } + + export default IconMusic + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconMusic/index.tsx b/packages/ui/src/components/Icon/icons/IconMusic/index.tsx new file mode 100644 index 00000000000..b9e9ced4974 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconMusic/index.tsx @@ -0,0 +1 @@ +export { default as IconMusic } from './IconMusic' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconNavigation/IconNavigation.tsx b/packages/ui/src/components/Icon/icons/IconNavigation/IconNavigation.tsx new file mode 100644 index 00000000000..6b1f004aa72 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconNavigation/IconNavigation.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Navigation } from 'react-feather' + import IconBase from './../../IconBase' + + function IconNavigation(props: any) { + return + } + + export default IconNavigation + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconNavigation/index.tsx b/packages/ui/src/components/Icon/icons/IconNavigation/index.tsx new file mode 100644 index 00000000000..f1cf1746b54 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconNavigation/index.tsx @@ -0,0 +1 @@ +export { default as IconNavigation } from './IconNavigation' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconNavigation2/IconNavigation2.tsx b/packages/ui/src/components/Icon/icons/IconNavigation2/IconNavigation2.tsx new file mode 100644 index 00000000000..24b2b541ef9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconNavigation2/IconNavigation2.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Navigation2 } from 'react-feather' + import IconBase from './../../IconBase' + + function IconNavigation2(props: any) { + return + } + + export default IconNavigation2 + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconNavigation2/index.tsx b/packages/ui/src/components/Icon/icons/IconNavigation2/index.tsx new file mode 100644 index 00000000000..a5007e9aac8 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconNavigation2/index.tsx @@ -0,0 +1 @@ +export { default as IconNavigation2 } from './IconNavigation2' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconOctagon/IconOctagon.tsx b/packages/ui/src/components/Icon/icons/IconOctagon/IconOctagon.tsx new file mode 100644 index 00000000000..5b283264bb1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconOctagon/IconOctagon.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Octagon } from 'react-feather' + import IconBase from './../../IconBase' + + function IconOctagon(props: any) { + return + } + + export default IconOctagon + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconOctagon/index.tsx b/packages/ui/src/components/Icon/icons/IconOctagon/index.tsx new file mode 100644 index 00000000000..84af91fd14e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconOctagon/index.tsx @@ -0,0 +1 @@ +export { default as IconOctagon } from './IconOctagon' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPackage/IconPackage.tsx b/packages/ui/src/components/Icon/icons/IconPackage/IconPackage.tsx new file mode 100644 index 00000000000..da4047d51e7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPackage/IconPackage.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Package } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPackage(props: any) { + return + } + + export default IconPackage + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPackage/index.tsx b/packages/ui/src/components/Icon/icons/IconPackage/index.tsx new file mode 100644 index 00000000000..4994e914bef --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPackage/index.tsx @@ -0,0 +1 @@ +export { default as IconPackage } from './IconPackage' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPaperclip/IconPaperclip.tsx b/packages/ui/src/components/Icon/icons/IconPaperclip/IconPaperclip.tsx new file mode 100644 index 00000000000..f3e09408555 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPaperclip/IconPaperclip.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Paperclip } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPaperclip(props: any) { + return + } + + export default IconPaperclip + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPaperclip/index.tsx b/packages/ui/src/components/Icon/icons/IconPaperclip/index.tsx new file mode 100644 index 00000000000..2eaafbe1ae4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPaperclip/index.tsx @@ -0,0 +1 @@ +export { default as IconPaperclip } from './IconPaperclip' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPause/IconPause.tsx b/packages/ui/src/components/Icon/icons/IconPause/IconPause.tsx new file mode 100644 index 00000000000..b67fe3f2638 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPause/IconPause.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Pause } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPause(props: any) { + return + } + + export default IconPause + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPause/index.tsx b/packages/ui/src/components/Icon/icons/IconPause/index.tsx new file mode 100644 index 00000000000..240c0d71ce6 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPause/index.tsx @@ -0,0 +1 @@ +export { default as IconPause } from './IconPause' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPauseCircle/IconPauseCircle.tsx b/packages/ui/src/components/Icon/icons/IconPauseCircle/IconPauseCircle.tsx new file mode 100644 index 00000000000..6e5dc2700eb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPauseCircle/IconPauseCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PauseCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPauseCircle(props: any) { + return + } + + export default IconPauseCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPauseCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconPauseCircle/index.tsx new file mode 100644 index 00000000000..effcb57c47b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPauseCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconPauseCircle } from './IconPauseCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPenTool/IconPenTool.tsx b/packages/ui/src/components/Icon/icons/IconPenTool/IconPenTool.tsx new file mode 100644 index 00000000000..fffd069cb0c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPenTool/IconPenTool.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PenTool } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPenTool(props: any) { + return + } + + export default IconPenTool + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPenTool/index.tsx b/packages/ui/src/components/Icon/icons/IconPenTool/index.tsx new file mode 100644 index 00000000000..3a6732dd18d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPenTool/index.tsx @@ -0,0 +1 @@ +export { default as IconPenTool } from './IconPenTool' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPercent/IconPercent.tsx b/packages/ui/src/components/Icon/icons/IconPercent/IconPercent.tsx new file mode 100644 index 00000000000..d7c1701e131 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPercent/IconPercent.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Percent } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPercent(props: any) { + return + } + + export default IconPercent + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPercent/index.tsx b/packages/ui/src/components/Icon/icons/IconPercent/index.tsx new file mode 100644 index 00000000000..f5e74fb9fcb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPercent/index.tsx @@ -0,0 +1 @@ +export { default as IconPercent } from './IconPercent' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhone/IconPhone.tsx b/packages/ui/src/components/Icon/icons/IconPhone/IconPhone.tsx new file mode 100644 index 00000000000..37fd20edf4b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhone/IconPhone.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Phone } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPhone(props: any) { + return + } + + export default IconPhone + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhone/index.tsx b/packages/ui/src/components/Icon/icons/IconPhone/index.tsx new file mode 100644 index 00000000000..30548408cff --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhone/index.tsx @@ -0,0 +1 @@ +export { default as IconPhone } from './IconPhone' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneCall/IconPhoneCall.tsx b/packages/ui/src/components/Icon/icons/IconPhoneCall/IconPhoneCall.tsx new file mode 100644 index 00000000000..b3b25bad1f1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneCall/IconPhoneCall.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PhoneCall } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPhoneCall(props: any) { + return + } + + export default IconPhoneCall + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneCall/index.tsx b/packages/ui/src/components/Icon/icons/IconPhoneCall/index.tsx new file mode 100644 index 00000000000..ea3ebe5eda8 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneCall/index.tsx @@ -0,0 +1 @@ +export { default as IconPhoneCall } from './IconPhoneCall' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneForwarded/IconPhoneForwarded.tsx b/packages/ui/src/components/Icon/icons/IconPhoneForwarded/IconPhoneForwarded.tsx new file mode 100644 index 00000000000..3adc0213be1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneForwarded/IconPhoneForwarded.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PhoneForwarded } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPhoneForwarded(props: any) { + return + } + + export default IconPhoneForwarded + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneForwarded/index.tsx b/packages/ui/src/components/Icon/icons/IconPhoneForwarded/index.tsx new file mode 100644 index 00000000000..cbca9c6b74b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneForwarded/index.tsx @@ -0,0 +1 @@ +export { default as IconPhoneForwarded } from './IconPhoneForwarded' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneIncoming/IconPhoneIncoming.tsx b/packages/ui/src/components/Icon/icons/IconPhoneIncoming/IconPhoneIncoming.tsx new file mode 100644 index 00000000000..13ff5d44c81 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneIncoming/IconPhoneIncoming.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PhoneIncoming } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPhoneIncoming(props: any) { + return + } + + export default IconPhoneIncoming + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneIncoming/index.tsx b/packages/ui/src/components/Icon/icons/IconPhoneIncoming/index.tsx new file mode 100644 index 00000000000..d7c110a70ad --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneIncoming/index.tsx @@ -0,0 +1 @@ +export { default as IconPhoneIncoming } from './IconPhoneIncoming' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneMissed/IconPhoneMissed.tsx b/packages/ui/src/components/Icon/icons/IconPhoneMissed/IconPhoneMissed.tsx new file mode 100644 index 00000000000..5f6258762a9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneMissed/IconPhoneMissed.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PhoneMissed } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPhoneMissed(props: any) { + return + } + + export default IconPhoneMissed + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneMissed/index.tsx b/packages/ui/src/components/Icon/icons/IconPhoneMissed/index.tsx new file mode 100644 index 00000000000..46f8b925ca6 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneMissed/index.tsx @@ -0,0 +1 @@ +export { default as IconPhoneMissed } from './IconPhoneMissed' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneOff/IconPhoneOff.tsx b/packages/ui/src/components/Icon/icons/IconPhoneOff/IconPhoneOff.tsx new file mode 100644 index 00000000000..b5e32827588 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneOff/IconPhoneOff.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PhoneOff } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPhoneOff(props: any) { + return + } + + export default IconPhoneOff + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneOff/index.tsx b/packages/ui/src/components/Icon/icons/IconPhoneOff/index.tsx new file mode 100644 index 00000000000..fc0abae6a9d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneOff/index.tsx @@ -0,0 +1 @@ +export { default as IconPhoneOff } from './IconPhoneOff' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneOutgoing/IconPhoneOutgoing.tsx b/packages/ui/src/components/Icon/icons/IconPhoneOutgoing/IconPhoneOutgoing.tsx new file mode 100644 index 00000000000..4b63a8bdcce --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneOutgoing/IconPhoneOutgoing.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PhoneOutgoing } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPhoneOutgoing(props: any) { + return + } + + export default IconPhoneOutgoing + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPhoneOutgoing/index.tsx b/packages/ui/src/components/Icon/icons/IconPhoneOutgoing/index.tsx new file mode 100644 index 00000000000..f4e964d76fc --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPhoneOutgoing/index.tsx @@ -0,0 +1 @@ +export { default as IconPhoneOutgoing } from './IconPhoneOutgoing' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPieChart/IconPieChart.tsx b/packages/ui/src/components/Icon/icons/IconPieChart/IconPieChart.tsx new file mode 100644 index 00000000000..61afc4998dd --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPieChart/IconPieChart.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PieChart } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPieChart(props: any) { + return + } + + export default IconPieChart + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPieChart/index.tsx b/packages/ui/src/components/Icon/icons/IconPieChart/index.tsx new file mode 100644 index 00000000000..5bde6cfd209 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPieChart/index.tsx @@ -0,0 +1 @@ +export { default as IconPieChart } from './IconPieChart' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPlay/IconPlay.tsx b/packages/ui/src/components/Icon/icons/IconPlay/IconPlay.tsx new file mode 100644 index 00000000000..60234c3da1c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPlay/IconPlay.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Play } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPlay(props: any) { + return + } + + export default IconPlay + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPlay/index.tsx b/packages/ui/src/components/Icon/icons/IconPlay/index.tsx new file mode 100644 index 00000000000..fae661ec14e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPlay/index.tsx @@ -0,0 +1 @@ +export { default as IconPlay } from './IconPlay' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPlayCircle/IconPlayCircle.tsx b/packages/ui/src/components/Icon/icons/IconPlayCircle/IconPlayCircle.tsx new file mode 100644 index 00000000000..eaed5aad83c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPlayCircle/IconPlayCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PlayCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPlayCircle(props: any) { + return + } + + export default IconPlayCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPlayCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconPlayCircle/index.tsx new file mode 100644 index 00000000000..16eb39a5b67 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPlayCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconPlayCircle } from './IconPlayCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPlus/IconPlus.tsx b/packages/ui/src/components/Icon/icons/IconPlus/IconPlus.tsx new file mode 100644 index 00000000000..d362cd74015 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPlus/IconPlus.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Plus } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPlus(props: any) { + return + } + + export default IconPlus + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPlus/index.tsx b/packages/ui/src/components/Icon/icons/IconPlus/index.tsx new file mode 100644 index 00000000000..f745b1bae26 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPlus/index.tsx @@ -0,0 +1 @@ +export { default as IconPlus } from './IconPlus' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPlusCircle/IconPlusCircle.tsx b/packages/ui/src/components/Icon/icons/IconPlusCircle/IconPlusCircle.tsx new file mode 100644 index 00000000000..a8bb680c272 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPlusCircle/IconPlusCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PlusCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPlusCircle(props: any) { + return + } + + export default IconPlusCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPlusCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconPlusCircle/index.tsx new file mode 100644 index 00000000000..182b7990301 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPlusCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconPlusCircle } from './IconPlusCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPlusSquare/IconPlusSquare.tsx b/packages/ui/src/components/Icon/icons/IconPlusSquare/IconPlusSquare.tsx new file mode 100644 index 00000000000..1cc6dd6ea00 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPlusSquare/IconPlusSquare.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { PlusSquare } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPlusSquare(props: any) { + return + } + + export default IconPlusSquare + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPlusSquare/index.tsx b/packages/ui/src/components/Icon/icons/IconPlusSquare/index.tsx new file mode 100644 index 00000000000..68b2738724d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPlusSquare/index.tsx @@ -0,0 +1 @@ +export { default as IconPlusSquare } from './IconPlusSquare' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPocket/IconPocket.tsx b/packages/ui/src/components/Icon/icons/IconPocket/IconPocket.tsx new file mode 100644 index 00000000000..99e232608d4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPocket/IconPocket.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Pocket } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPocket(props: any) { + return + } + + export default IconPocket + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPocket/index.tsx b/packages/ui/src/components/Icon/icons/IconPocket/index.tsx new file mode 100644 index 00000000000..f5cdaac5eaf --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPocket/index.tsx @@ -0,0 +1 @@ +export { default as IconPocket } from './IconPocket' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPower/IconPower.tsx b/packages/ui/src/components/Icon/icons/IconPower/IconPower.tsx new file mode 100644 index 00000000000..e2608c54795 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPower/IconPower.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Power } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPower(props: any) { + return + } + + export default IconPower + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPower/index.tsx b/packages/ui/src/components/Icon/icons/IconPower/index.tsx new file mode 100644 index 00000000000..3512925d4bd --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPower/index.tsx @@ -0,0 +1 @@ +export { default as IconPower } from './IconPower' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPrinter/IconPrinter.tsx b/packages/ui/src/components/Icon/icons/IconPrinter/IconPrinter.tsx new file mode 100644 index 00000000000..dfc6e42103f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPrinter/IconPrinter.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Printer } from 'react-feather' + import IconBase from './../../IconBase' + + function IconPrinter(props: any) { + return + } + + export default IconPrinter + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconPrinter/index.tsx b/packages/ui/src/components/Icon/icons/IconPrinter/index.tsx new file mode 100644 index 00000000000..e1ccaf9da66 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconPrinter/index.tsx @@ -0,0 +1 @@ +export { default as IconPrinter } from './IconPrinter' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRadio/IconRadio.tsx b/packages/ui/src/components/Icon/icons/IconRadio/IconRadio.tsx new file mode 100644 index 00000000000..256a3fd4049 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRadio/IconRadio.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Radio } from 'react-feather' + import IconBase from './../../IconBase' + + function IconRadio(props: any) { + return + } + + export default IconRadio + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRadio/index.tsx b/packages/ui/src/components/Icon/icons/IconRadio/index.tsx new file mode 100644 index 00000000000..e2b52ceb0e7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRadio/index.tsx @@ -0,0 +1 @@ +export { default as IconRadio } from './IconRadio' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRefreshCcw/IconRefreshCcw.tsx b/packages/ui/src/components/Icon/icons/IconRefreshCcw/IconRefreshCcw.tsx new file mode 100644 index 00000000000..00c9586f255 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRefreshCcw/IconRefreshCcw.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { RefreshCcw } from 'react-feather' + import IconBase from './../../IconBase' + + function IconRefreshCcw(props: any) { + return + } + + export default IconRefreshCcw + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRefreshCcw/index.tsx b/packages/ui/src/components/Icon/icons/IconRefreshCcw/index.tsx new file mode 100644 index 00000000000..a1028a78737 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRefreshCcw/index.tsx @@ -0,0 +1 @@ +export { default as IconRefreshCcw } from './IconRefreshCcw' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRefreshCw/IconRefreshCw.tsx b/packages/ui/src/components/Icon/icons/IconRefreshCw/IconRefreshCw.tsx new file mode 100644 index 00000000000..904acba7c7f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRefreshCw/IconRefreshCw.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { RefreshCw } from 'react-feather' + import IconBase from './../../IconBase' + + function IconRefreshCw(props: any) { + return + } + + export default IconRefreshCw + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRefreshCw/index.tsx b/packages/ui/src/components/Icon/icons/IconRefreshCw/index.tsx new file mode 100644 index 00000000000..5b6d32b704f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRefreshCw/index.tsx @@ -0,0 +1 @@ +export { default as IconRefreshCw } from './IconRefreshCw' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRepeat/IconRepeat.tsx b/packages/ui/src/components/Icon/icons/IconRepeat/IconRepeat.tsx new file mode 100644 index 00000000000..d896f0b8e21 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRepeat/IconRepeat.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Repeat } from 'react-feather' + import IconBase from './../../IconBase' + + function IconRepeat(props: any) { + return + } + + export default IconRepeat + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRepeat/index.tsx b/packages/ui/src/components/Icon/icons/IconRepeat/index.tsx new file mode 100644 index 00000000000..c483552a305 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRepeat/index.tsx @@ -0,0 +1 @@ +export { default as IconRepeat } from './IconRepeat' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRewind/IconRewind.tsx b/packages/ui/src/components/Icon/icons/IconRewind/IconRewind.tsx new file mode 100644 index 00000000000..298c0eff916 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRewind/IconRewind.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Rewind } from 'react-feather' + import IconBase from './../../IconBase' + + function IconRewind(props: any) { + return + } + + export default IconRewind + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRewind/index.tsx b/packages/ui/src/components/Icon/icons/IconRewind/index.tsx new file mode 100644 index 00000000000..22a7a0e00d3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRewind/index.tsx @@ -0,0 +1 @@ +export { default as IconRewind } from './IconRewind' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRotateCcw/IconRotateCcw.tsx b/packages/ui/src/components/Icon/icons/IconRotateCcw/IconRotateCcw.tsx new file mode 100644 index 00000000000..5e8d7fff8a4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRotateCcw/IconRotateCcw.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { RotateCcw } from 'react-feather' + import IconBase from './../../IconBase' + + function IconRotateCcw(props: any) { + return + } + + export default IconRotateCcw + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRotateCcw/index.tsx b/packages/ui/src/components/Icon/icons/IconRotateCcw/index.tsx new file mode 100644 index 00000000000..3001a2399d0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRotateCcw/index.tsx @@ -0,0 +1 @@ +export { default as IconRotateCcw } from './IconRotateCcw' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRotateCw/IconRotateCw.tsx b/packages/ui/src/components/Icon/icons/IconRotateCw/IconRotateCw.tsx new file mode 100644 index 00000000000..507706ead07 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRotateCw/IconRotateCw.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { RotateCw } from 'react-feather' + import IconBase from './../../IconBase' + + function IconRotateCw(props: any) { + return + } + + export default IconRotateCw + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRotateCw/index.tsx b/packages/ui/src/components/Icon/icons/IconRotateCw/index.tsx new file mode 100644 index 00000000000..33361f00773 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRotateCw/index.tsx @@ -0,0 +1 @@ +export { default as IconRotateCw } from './IconRotateCw' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRss/IconRss.tsx b/packages/ui/src/components/Icon/icons/IconRss/IconRss.tsx new file mode 100644 index 00000000000..590b9596def --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRss/IconRss.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Rss } from 'react-feather' + import IconBase from './../../IconBase' + + function IconRss(props: any) { + return + } + + export default IconRss + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconRss/index.tsx b/packages/ui/src/components/Icon/icons/IconRss/index.tsx new file mode 100644 index 00000000000..5f0d4945238 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconRss/index.tsx @@ -0,0 +1 @@ +export { default as IconRss } from './IconRss' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSave/IconSave.tsx b/packages/ui/src/components/Icon/icons/IconSave/IconSave.tsx new file mode 100644 index 00000000000..5bf57ef1964 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSave/IconSave.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Save } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSave(props: any) { + return + } + + export default IconSave + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSave/index.tsx b/packages/ui/src/components/Icon/icons/IconSave/index.tsx new file mode 100644 index 00000000000..62c81731ce5 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSave/index.tsx @@ -0,0 +1 @@ +export { default as IconSave } from './IconSave' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconScissors/IconScissors.tsx b/packages/ui/src/components/Icon/icons/IconScissors/IconScissors.tsx new file mode 100644 index 00000000000..af9b4157097 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconScissors/IconScissors.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Scissors } from 'react-feather' + import IconBase from './../../IconBase' + + function IconScissors(props: any) { + return + } + + export default IconScissors + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconScissors/index.tsx b/packages/ui/src/components/Icon/icons/IconScissors/index.tsx new file mode 100644 index 00000000000..fb5c7b2bfbd --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconScissors/index.tsx @@ -0,0 +1 @@ +export { default as IconScissors } from './IconScissors' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSearch/IconSearch.tsx b/packages/ui/src/components/Icon/icons/IconSearch/IconSearch.tsx new file mode 100644 index 00000000000..8e10764a085 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSearch/IconSearch.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Search } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSearch(props: any) { + return + } + + export default IconSearch + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSearch/index.tsx b/packages/ui/src/components/Icon/icons/IconSearch/index.tsx new file mode 100644 index 00000000000..2baafb71dfb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSearch/index.tsx @@ -0,0 +1 @@ +export { default as IconSearch } from './IconSearch' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSend/IconSend.tsx b/packages/ui/src/components/Icon/icons/IconSend/IconSend.tsx new file mode 100644 index 00000000000..bd2a47bb0f4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSend/IconSend.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Send } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSend(props: any) { + return + } + + export default IconSend + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSend/index.tsx b/packages/ui/src/components/Icon/icons/IconSend/index.tsx new file mode 100644 index 00000000000..70992ea259c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSend/index.tsx @@ -0,0 +1 @@ +export { default as IconSend } from './IconSend' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconServer/IconServer.tsx b/packages/ui/src/components/Icon/icons/IconServer/IconServer.tsx new file mode 100644 index 00000000000..27e4b938a50 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconServer/IconServer.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Server } from 'react-feather' + import IconBase from './../../IconBase' + + function IconServer(props: any) { + return + } + + export default IconServer + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconServer/index.tsx b/packages/ui/src/components/Icon/icons/IconServer/index.tsx new file mode 100644 index 00000000000..8d937d198e3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconServer/index.tsx @@ -0,0 +1 @@ +export { default as IconServer } from './IconServer' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSettings/IconSettings.tsx b/packages/ui/src/components/Icon/icons/IconSettings/IconSettings.tsx new file mode 100644 index 00000000000..3de6802715b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSettings/IconSettings.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Settings } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSettings(props: any) { + return + } + + export default IconSettings + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSettings/index.tsx b/packages/ui/src/components/Icon/icons/IconSettings/index.tsx new file mode 100644 index 00000000000..2081ba44c45 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSettings/index.tsx @@ -0,0 +1 @@ +export { default as IconSettings } from './IconSettings' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShare/IconShare.tsx b/packages/ui/src/components/Icon/icons/IconShare/IconShare.tsx new file mode 100644 index 00000000000..2af0089074e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShare/IconShare.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Share } from 'react-feather' + import IconBase from './../../IconBase' + + function IconShare(props: any) { + return + } + + export default IconShare + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShare/index.tsx b/packages/ui/src/components/Icon/icons/IconShare/index.tsx new file mode 100644 index 00000000000..71951de779d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShare/index.tsx @@ -0,0 +1 @@ +export { default as IconShare } from './IconShare' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShare2/IconShare2.tsx b/packages/ui/src/components/Icon/icons/IconShare2/IconShare2.tsx new file mode 100644 index 00000000000..8660a48153f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShare2/IconShare2.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Share2 } from 'react-feather' + import IconBase from './../../IconBase' + + function IconShare2(props: any) { + return + } + + export default IconShare2 + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShare2/index.tsx b/packages/ui/src/components/Icon/icons/IconShare2/index.tsx new file mode 100644 index 00000000000..23cca338aea --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShare2/index.tsx @@ -0,0 +1 @@ +export { default as IconShare2 } from './IconShare2' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShield/IconShield.tsx b/packages/ui/src/components/Icon/icons/IconShield/IconShield.tsx new file mode 100644 index 00000000000..66ae4050b62 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShield/IconShield.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Shield } from 'react-feather' + import IconBase from './../../IconBase' + + function IconShield(props: any) { + return + } + + export default IconShield + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShield/index.tsx b/packages/ui/src/components/Icon/icons/IconShield/index.tsx new file mode 100644 index 00000000000..5b162ce12f4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShield/index.tsx @@ -0,0 +1 @@ +export { default as IconShield } from './IconShield' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShieldOff/IconShieldOff.tsx b/packages/ui/src/components/Icon/icons/IconShieldOff/IconShieldOff.tsx new file mode 100644 index 00000000000..d3d5b39c14a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShieldOff/IconShieldOff.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ShieldOff } from 'react-feather' + import IconBase from './../../IconBase' + + function IconShieldOff(props: any) { + return + } + + export default IconShieldOff + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShieldOff/index.tsx b/packages/ui/src/components/Icon/icons/IconShieldOff/index.tsx new file mode 100644 index 00000000000..128cd672ae4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShieldOff/index.tsx @@ -0,0 +1 @@ +export { default as IconShieldOff } from './IconShieldOff' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShoppingBag/IconShoppingBag.tsx b/packages/ui/src/components/Icon/icons/IconShoppingBag/IconShoppingBag.tsx new file mode 100644 index 00000000000..e0a26ecfa7e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShoppingBag/IconShoppingBag.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ShoppingBag } from 'react-feather' + import IconBase from './../../IconBase' + + function IconShoppingBag(props: any) { + return + } + + export default IconShoppingBag + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShoppingBag/index.tsx b/packages/ui/src/components/Icon/icons/IconShoppingBag/index.tsx new file mode 100644 index 00000000000..fd065a33250 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShoppingBag/index.tsx @@ -0,0 +1 @@ +export { default as IconShoppingBag } from './IconShoppingBag' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShoppingCart/IconShoppingCart.tsx b/packages/ui/src/components/Icon/icons/IconShoppingCart/IconShoppingCart.tsx new file mode 100644 index 00000000000..0bf92511efb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShoppingCart/IconShoppingCart.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ShoppingCart } from 'react-feather' + import IconBase from './../../IconBase' + + function IconShoppingCart(props: any) { + return + } + + export default IconShoppingCart + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShoppingCart/index.tsx b/packages/ui/src/components/Icon/icons/IconShoppingCart/index.tsx new file mode 100644 index 00000000000..8d86eea115f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShoppingCart/index.tsx @@ -0,0 +1 @@ +export { default as IconShoppingCart } from './IconShoppingCart' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShuffle/IconShuffle.tsx b/packages/ui/src/components/Icon/icons/IconShuffle/IconShuffle.tsx new file mode 100644 index 00000000000..38bc0707fa2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShuffle/IconShuffle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Shuffle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconShuffle(props: any) { + return + } + + export default IconShuffle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconShuffle/index.tsx b/packages/ui/src/components/Icon/icons/IconShuffle/index.tsx new file mode 100644 index 00000000000..5ef26092595 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconShuffle/index.tsx @@ -0,0 +1 @@ +export { default as IconShuffle } from './IconShuffle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSidebar/IconSidebar.tsx b/packages/ui/src/components/Icon/icons/IconSidebar/IconSidebar.tsx new file mode 100644 index 00000000000..746dfa3941a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSidebar/IconSidebar.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Sidebar } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSidebar(props: any) { + return + } + + export default IconSidebar + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSidebar/index.tsx b/packages/ui/src/components/Icon/icons/IconSidebar/index.tsx new file mode 100644 index 00000000000..7adc56e2398 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSidebar/index.tsx @@ -0,0 +1 @@ +export { default as IconSidebar } from './IconSidebar' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSkipBack/IconSkipBack.tsx b/packages/ui/src/components/Icon/icons/IconSkipBack/IconSkipBack.tsx new file mode 100644 index 00000000000..507b6323819 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSkipBack/IconSkipBack.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { SkipBack } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSkipBack(props: any) { + return + } + + export default IconSkipBack + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSkipBack/index.tsx b/packages/ui/src/components/Icon/icons/IconSkipBack/index.tsx new file mode 100644 index 00000000000..455c4566b48 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSkipBack/index.tsx @@ -0,0 +1 @@ +export { default as IconSkipBack } from './IconSkipBack' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSkipForward/IconSkipForward.tsx b/packages/ui/src/components/Icon/icons/IconSkipForward/IconSkipForward.tsx new file mode 100644 index 00000000000..75e2f181cbb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSkipForward/IconSkipForward.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { SkipForward } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSkipForward(props: any) { + return + } + + export default IconSkipForward + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSkipForward/index.tsx b/packages/ui/src/components/Icon/icons/IconSkipForward/index.tsx new file mode 100644 index 00000000000..6d0d78de659 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSkipForward/index.tsx @@ -0,0 +1 @@ +export { default as IconSkipForward } from './IconSkipForward' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSlack/IconSlack.tsx b/packages/ui/src/components/Icon/icons/IconSlack/IconSlack.tsx new file mode 100644 index 00000000000..9c39e4277c4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSlack/IconSlack.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Slack } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSlack(props: any) { + return + } + + export default IconSlack + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSlack/index.tsx b/packages/ui/src/components/Icon/icons/IconSlack/index.tsx new file mode 100644 index 00000000000..cb3061d4752 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSlack/index.tsx @@ -0,0 +1 @@ +export { default as IconSlack } from './IconSlack' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSlash/IconSlash.tsx b/packages/ui/src/components/Icon/icons/IconSlash/IconSlash.tsx new file mode 100644 index 00000000000..afff6286c5d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSlash/IconSlash.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Slash } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSlash(props: any) { + return + } + + export default IconSlash + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSlash/index.tsx b/packages/ui/src/components/Icon/icons/IconSlash/index.tsx new file mode 100644 index 00000000000..f36a76a943c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSlash/index.tsx @@ -0,0 +1 @@ +export { default as IconSlash } from './IconSlash' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSliders/IconSliders.tsx b/packages/ui/src/components/Icon/icons/IconSliders/IconSliders.tsx new file mode 100644 index 00000000000..7a80d1993e5 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSliders/IconSliders.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Sliders } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSliders(props: any) { + return + } + + export default IconSliders + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSliders/index.tsx b/packages/ui/src/components/Icon/icons/IconSliders/index.tsx new file mode 100644 index 00000000000..16cbff6b407 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSliders/index.tsx @@ -0,0 +1 @@ +export { default as IconSliders } from './IconSliders' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSmartphone/IconSmartphone.tsx b/packages/ui/src/components/Icon/icons/IconSmartphone/IconSmartphone.tsx new file mode 100644 index 00000000000..8494c6a7b66 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSmartphone/IconSmartphone.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Smartphone } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSmartphone(props: any) { + return + } + + export default IconSmartphone + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSmartphone/index.tsx b/packages/ui/src/components/Icon/icons/IconSmartphone/index.tsx new file mode 100644 index 00000000000..d22e200558e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSmartphone/index.tsx @@ -0,0 +1 @@ +export { default as IconSmartphone } from './IconSmartphone' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSmile/IconSmile.tsx b/packages/ui/src/components/Icon/icons/IconSmile/IconSmile.tsx new file mode 100644 index 00000000000..4beeaf060ba --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSmile/IconSmile.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Smile } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSmile(props: any) { + return + } + + export default IconSmile + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSmile/index.tsx b/packages/ui/src/components/Icon/icons/IconSmile/index.tsx new file mode 100644 index 00000000000..c8b475e469a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSmile/index.tsx @@ -0,0 +1 @@ +export { default as IconSmile } from './IconSmile' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSpeaker/IconSpeaker.tsx b/packages/ui/src/components/Icon/icons/IconSpeaker/IconSpeaker.tsx new file mode 100644 index 00000000000..da3ff8289ea --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSpeaker/IconSpeaker.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Speaker } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSpeaker(props: any) { + return + } + + export default IconSpeaker + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSpeaker/index.tsx b/packages/ui/src/components/Icon/icons/IconSpeaker/index.tsx new file mode 100644 index 00000000000..28d69e636da --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSpeaker/index.tsx @@ -0,0 +1 @@ +export { default as IconSpeaker } from './IconSpeaker' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSquare/IconSquare.tsx b/packages/ui/src/components/Icon/icons/IconSquare/IconSquare.tsx new file mode 100644 index 00000000000..82e534a8e75 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSquare/IconSquare.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Square } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSquare(props: any) { + return + } + + export default IconSquare + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSquare/index.tsx b/packages/ui/src/components/Icon/icons/IconSquare/index.tsx new file mode 100644 index 00000000000..87167e817e6 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSquare/index.tsx @@ -0,0 +1 @@ +export { default as IconSquare } from './IconSquare' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconStar/IconStar.tsx b/packages/ui/src/components/Icon/icons/IconStar/IconStar.tsx new file mode 100644 index 00000000000..85b43832e76 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconStar/IconStar.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Star } from 'react-feather' + import IconBase from './../../IconBase' + + function IconStar(props: any) { + return + } + + export default IconStar + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconStar/index.tsx b/packages/ui/src/components/Icon/icons/IconStar/index.tsx new file mode 100644 index 00000000000..bb5be9c2e38 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconStar/index.tsx @@ -0,0 +1 @@ +export { default as IconStar } from './IconStar' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconStopCircle/IconStopCircle.tsx b/packages/ui/src/components/Icon/icons/IconStopCircle/IconStopCircle.tsx new file mode 100644 index 00000000000..3d3ac23feef --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconStopCircle/IconStopCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { StopCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconStopCircle(props: any) { + return + } + + export default IconStopCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconStopCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconStopCircle/index.tsx new file mode 100644 index 00000000000..e096354c4ee --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconStopCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconStopCircle } from './IconStopCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSun/IconSun.tsx b/packages/ui/src/components/Icon/icons/IconSun/IconSun.tsx new file mode 100644 index 00000000000..668b9901e54 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSun/IconSun.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Sun } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSun(props: any) { + return + } + + export default IconSun + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSun/index.tsx b/packages/ui/src/components/Icon/icons/IconSun/index.tsx new file mode 100644 index 00000000000..fb164320b97 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSun/index.tsx @@ -0,0 +1 @@ +export { default as IconSun } from './IconSun' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSunrise/IconSunrise.tsx b/packages/ui/src/components/Icon/icons/IconSunrise/IconSunrise.tsx new file mode 100644 index 00000000000..b459a886a73 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSunrise/IconSunrise.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Sunrise } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSunrise(props: any) { + return + } + + export default IconSunrise + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSunrise/index.tsx b/packages/ui/src/components/Icon/icons/IconSunrise/index.tsx new file mode 100644 index 00000000000..a4c2744b8b6 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSunrise/index.tsx @@ -0,0 +1 @@ +export { default as IconSunrise } from './IconSunrise' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSunset/IconSunset.tsx b/packages/ui/src/components/Icon/icons/IconSunset/IconSunset.tsx new file mode 100644 index 00000000000..ca72d27c41b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSunset/IconSunset.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Sunset } from 'react-feather' + import IconBase from './../../IconBase' + + function IconSunset(props: any) { + return + } + + export default IconSunset + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconSunset/index.tsx b/packages/ui/src/components/Icon/icons/IconSunset/index.tsx new file mode 100644 index 00000000000..0793dc25f84 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconSunset/index.tsx @@ -0,0 +1 @@ +export { default as IconSunset } from './IconSunset' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTablet/IconTablet.tsx b/packages/ui/src/components/Icon/icons/IconTablet/IconTablet.tsx new file mode 100644 index 00000000000..3143b0dfe62 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTablet/IconTablet.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Tablet } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTablet(props: any) { + return + } + + export default IconTablet + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTablet/index.tsx b/packages/ui/src/components/Icon/icons/IconTablet/index.tsx new file mode 100644 index 00000000000..aaaa2cf4dcb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTablet/index.tsx @@ -0,0 +1 @@ +export { default as IconTablet } from './IconTablet' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTag/IconTag.tsx b/packages/ui/src/components/Icon/icons/IconTag/IconTag.tsx new file mode 100644 index 00000000000..fd83bcaa48e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTag/IconTag.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Tag } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTag(props: any) { + return + } + + export default IconTag + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTag/index.tsx b/packages/ui/src/components/Icon/icons/IconTag/index.tsx new file mode 100644 index 00000000000..e080b0262a7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTag/index.tsx @@ -0,0 +1 @@ +export { default as IconTag } from './IconTag' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTarget/IconTarget.tsx b/packages/ui/src/components/Icon/icons/IconTarget/IconTarget.tsx new file mode 100644 index 00000000000..31dbc9ff700 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTarget/IconTarget.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Target } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTarget(props: any) { + return + } + + export default IconTarget + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTarget/index.tsx b/packages/ui/src/components/Icon/icons/IconTarget/index.tsx new file mode 100644 index 00000000000..d23fa16d81f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTarget/index.tsx @@ -0,0 +1 @@ +export { default as IconTarget } from './IconTarget' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTerminal/IconTerminal.tsx b/packages/ui/src/components/Icon/icons/IconTerminal/IconTerminal.tsx new file mode 100644 index 00000000000..b0f8113dec0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTerminal/IconTerminal.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Terminal } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTerminal(props: any) { + return + } + + export default IconTerminal + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTerminal/index.tsx b/packages/ui/src/components/Icon/icons/IconTerminal/index.tsx new file mode 100644 index 00000000000..ca3883bda43 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTerminal/index.tsx @@ -0,0 +1 @@ +export { default as IconTerminal } from './IconTerminal' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconThermometer/IconThermometer.tsx b/packages/ui/src/components/Icon/icons/IconThermometer/IconThermometer.tsx new file mode 100644 index 00000000000..b9bc028de04 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconThermometer/IconThermometer.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Thermometer } from 'react-feather' + import IconBase from './../../IconBase' + + function IconThermometer(props: any) { + return + } + + export default IconThermometer + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconThermometer/index.tsx b/packages/ui/src/components/Icon/icons/IconThermometer/index.tsx new file mode 100644 index 00000000000..d6a2a41c8a1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconThermometer/index.tsx @@ -0,0 +1 @@ +export { default as IconThermometer } from './IconThermometer' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconThumbsDown/IconThumbsDown.tsx b/packages/ui/src/components/Icon/icons/IconThumbsDown/IconThumbsDown.tsx new file mode 100644 index 00000000000..64a8a1a2fbc --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconThumbsDown/IconThumbsDown.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ThumbsDown } from 'react-feather' + import IconBase from './../../IconBase' + + function IconThumbsDown(props: any) { + return + } + + export default IconThumbsDown + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconThumbsDown/index.tsx b/packages/ui/src/components/Icon/icons/IconThumbsDown/index.tsx new file mode 100644 index 00000000000..ed90d861fbf --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconThumbsDown/index.tsx @@ -0,0 +1 @@ +export { default as IconThumbsDown } from './IconThumbsDown' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconThumbsUp/IconThumbsUp.tsx b/packages/ui/src/components/Icon/icons/IconThumbsUp/IconThumbsUp.tsx new file mode 100644 index 00000000000..6e0296f7b3d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconThumbsUp/IconThumbsUp.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ThumbsUp } from 'react-feather' + import IconBase from './../../IconBase' + + function IconThumbsUp(props: any) { + return + } + + export default IconThumbsUp + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconThumbsUp/index.tsx b/packages/ui/src/components/Icon/icons/IconThumbsUp/index.tsx new file mode 100644 index 00000000000..dab88e6ac3a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconThumbsUp/index.tsx @@ -0,0 +1 @@ +export { default as IconThumbsUp } from './IconThumbsUp' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconToggleLeft/IconToggleLeft.tsx b/packages/ui/src/components/Icon/icons/IconToggleLeft/IconToggleLeft.tsx new file mode 100644 index 00000000000..5dbe2cd0704 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconToggleLeft/IconToggleLeft.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ToggleLeft } from 'react-feather' + import IconBase from './../../IconBase' + + function IconToggleLeft(props: any) { + return + } + + export default IconToggleLeft + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconToggleLeft/index.tsx b/packages/ui/src/components/Icon/icons/IconToggleLeft/index.tsx new file mode 100644 index 00000000000..ebfc126b158 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconToggleLeft/index.tsx @@ -0,0 +1 @@ +export { default as IconToggleLeft } from './IconToggleLeft' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconToggleRight/IconToggleRight.tsx b/packages/ui/src/components/Icon/icons/IconToggleRight/IconToggleRight.tsx new file mode 100644 index 00000000000..3fba59801f9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconToggleRight/IconToggleRight.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ToggleRight } from 'react-feather' + import IconBase from './../../IconBase' + + function IconToggleRight(props: any) { + return + } + + export default IconToggleRight + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconToggleRight/index.tsx b/packages/ui/src/components/Icon/icons/IconToggleRight/index.tsx new file mode 100644 index 00000000000..bdda33c11f3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconToggleRight/index.tsx @@ -0,0 +1 @@ +export { default as IconToggleRight } from './IconToggleRight' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTool/IconTool.tsx b/packages/ui/src/components/Icon/icons/IconTool/IconTool.tsx new file mode 100644 index 00000000000..e9defd6f76e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTool/IconTool.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Tool } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTool(props: any) { + return + } + + export default IconTool + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTool/index.tsx b/packages/ui/src/components/Icon/icons/IconTool/index.tsx new file mode 100644 index 00000000000..9b58437431d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTool/index.tsx @@ -0,0 +1 @@ +export { default as IconTool } from './IconTool' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTrash/IconTrash.tsx b/packages/ui/src/components/Icon/icons/IconTrash/IconTrash.tsx new file mode 100644 index 00000000000..bc7fdd49324 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTrash/IconTrash.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Trash } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTrash(props: any) { + return + } + + export default IconTrash + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTrash/index.tsx b/packages/ui/src/components/Icon/icons/IconTrash/index.tsx new file mode 100644 index 00000000000..72dd12cce3b --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTrash/index.tsx @@ -0,0 +1 @@ +export { default as IconTrash } from './IconTrash' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTrash2/IconTrash2.tsx b/packages/ui/src/components/Icon/icons/IconTrash2/IconTrash2.tsx new file mode 100644 index 00000000000..1217b07a4a0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTrash2/IconTrash2.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Trash2 } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTrash2(props: any) { + return + } + + export default IconTrash2 + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTrash2/index.tsx b/packages/ui/src/components/Icon/icons/IconTrash2/index.tsx new file mode 100644 index 00000000000..f0d7c172357 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTrash2/index.tsx @@ -0,0 +1 @@ +export { default as IconTrash2 } from './IconTrash2' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTrello/IconTrello.tsx b/packages/ui/src/components/Icon/icons/IconTrello/IconTrello.tsx new file mode 100644 index 00000000000..c57561c21e2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTrello/IconTrello.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Trello } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTrello(props: any) { + return + } + + export default IconTrello + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTrello/index.tsx b/packages/ui/src/components/Icon/icons/IconTrello/index.tsx new file mode 100644 index 00000000000..737a1c75e9c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTrello/index.tsx @@ -0,0 +1 @@ +export { default as IconTrello } from './IconTrello' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTrendingDown/IconTrendingDown.tsx b/packages/ui/src/components/Icon/icons/IconTrendingDown/IconTrendingDown.tsx new file mode 100644 index 00000000000..a15e9a14549 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTrendingDown/IconTrendingDown.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { TrendingDown } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTrendingDown(props: any) { + return + } + + export default IconTrendingDown + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTrendingDown/index.tsx b/packages/ui/src/components/Icon/icons/IconTrendingDown/index.tsx new file mode 100644 index 00000000000..e6869cd98ca --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTrendingDown/index.tsx @@ -0,0 +1 @@ +export { default as IconTrendingDown } from './IconTrendingDown' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTrendingUp/IconTrendingUp.tsx b/packages/ui/src/components/Icon/icons/IconTrendingUp/IconTrendingUp.tsx new file mode 100644 index 00000000000..56e0d17a81f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTrendingUp/IconTrendingUp.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { TrendingUp } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTrendingUp(props: any) { + return + } + + export default IconTrendingUp + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTrendingUp/index.tsx b/packages/ui/src/components/Icon/icons/IconTrendingUp/index.tsx new file mode 100644 index 00000000000..f20ea46fbc3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTrendingUp/index.tsx @@ -0,0 +1 @@ +export { default as IconTrendingUp } from './IconTrendingUp' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTriangle/IconTriangle.tsx b/packages/ui/src/components/Icon/icons/IconTriangle/IconTriangle.tsx new file mode 100644 index 00000000000..0e77d5ed861 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTriangle/IconTriangle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Triangle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTriangle(props: any) { + return + } + + export default IconTriangle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTriangle/index.tsx b/packages/ui/src/components/Icon/icons/IconTriangle/index.tsx new file mode 100644 index 00000000000..7ed372ab6c3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTriangle/index.tsx @@ -0,0 +1 @@ +export { default as IconTriangle } from './IconTriangle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTruck/IconTruck.tsx b/packages/ui/src/components/Icon/icons/IconTruck/IconTruck.tsx new file mode 100644 index 00000000000..5338a219d35 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTruck/IconTruck.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Truck } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTruck(props: any) { + return + } + + export default IconTruck + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTruck/index.tsx b/packages/ui/src/components/Icon/icons/IconTruck/index.tsx new file mode 100644 index 00000000000..a56c046baa2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTruck/index.tsx @@ -0,0 +1 @@ +export { default as IconTruck } from './IconTruck' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTv/IconTv.tsx b/packages/ui/src/components/Icon/icons/IconTv/IconTv.tsx new file mode 100644 index 00000000000..6df35d9198c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTv/IconTv.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Tv } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTv(props: any) { + return + } + + export default IconTv + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTv/index.tsx b/packages/ui/src/components/Icon/icons/IconTv/index.tsx new file mode 100644 index 00000000000..ac3c5630f18 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTv/index.tsx @@ -0,0 +1 @@ +export { default as IconTv } from './IconTv' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTwitch/IconTwitch.tsx b/packages/ui/src/components/Icon/icons/IconTwitch/IconTwitch.tsx new file mode 100644 index 00000000000..a0ec1a629df --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTwitch/IconTwitch.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Twitch } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTwitch(props: any) { + return + } + + export default IconTwitch + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTwitch/index.tsx b/packages/ui/src/components/Icon/icons/IconTwitch/index.tsx new file mode 100644 index 00000000000..60f71c08ac6 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTwitch/index.tsx @@ -0,0 +1 @@ +export { default as IconTwitch } from './IconTwitch' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTwitter/IconTwitter.tsx b/packages/ui/src/components/Icon/icons/IconTwitter/IconTwitter.tsx new file mode 100644 index 00000000000..aa203f99ce8 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTwitter/IconTwitter.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Twitter } from 'react-feather' + import IconBase from './../../IconBase' + + function IconTwitter(props: any) { + return + } + + export default IconTwitter + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconTwitter/index.tsx b/packages/ui/src/components/Icon/icons/IconTwitter/index.tsx new file mode 100644 index 00000000000..b9ce9a9c8f1 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconTwitter/index.tsx @@ -0,0 +1 @@ +export { default as IconTwitter } from './IconTwitter' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconType/IconType.tsx b/packages/ui/src/components/Icon/icons/IconType/IconType.tsx new file mode 100644 index 00000000000..edbb613c3f4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconType/IconType.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Type } from 'react-feather' + import IconBase from './../../IconBase' + + function IconType(props: any) { + return + } + + export default IconType + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconType/index.tsx b/packages/ui/src/components/Icon/icons/IconType/index.tsx new file mode 100644 index 00000000000..b2e3829624a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconType/index.tsx @@ -0,0 +1 @@ +export { default as IconType } from './IconType' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUmbrella/IconUmbrella.tsx b/packages/ui/src/components/Icon/icons/IconUmbrella/IconUmbrella.tsx new file mode 100644 index 00000000000..2483d2f033f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUmbrella/IconUmbrella.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Umbrella } from 'react-feather' + import IconBase from './../../IconBase' + + function IconUmbrella(props: any) { + return + } + + export default IconUmbrella + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUmbrella/index.tsx b/packages/ui/src/components/Icon/icons/IconUmbrella/index.tsx new file mode 100644 index 00000000000..cb0b79d6e59 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUmbrella/index.tsx @@ -0,0 +1 @@ +export { default as IconUmbrella } from './IconUmbrella' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUnderline/IconUnderline.tsx b/packages/ui/src/components/Icon/icons/IconUnderline/IconUnderline.tsx new file mode 100644 index 00000000000..8549558a4ae --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUnderline/IconUnderline.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Underline } from 'react-feather' + import IconBase from './../../IconBase' + + function IconUnderline(props: any) { + return + } + + export default IconUnderline + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUnderline/index.tsx b/packages/ui/src/components/Icon/icons/IconUnderline/index.tsx new file mode 100644 index 00000000000..074d387b354 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUnderline/index.tsx @@ -0,0 +1 @@ +export { default as IconUnderline } from './IconUnderline' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUnlock/IconUnlock.tsx b/packages/ui/src/components/Icon/icons/IconUnlock/IconUnlock.tsx new file mode 100644 index 00000000000..e79d4c2046d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUnlock/IconUnlock.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Unlock } from 'react-feather' + import IconBase from './../../IconBase' + + function IconUnlock(props: any) { + return + } + + export default IconUnlock + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUnlock/index.tsx b/packages/ui/src/components/Icon/icons/IconUnlock/index.tsx new file mode 100644 index 00000000000..5be7bd744d7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUnlock/index.tsx @@ -0,0 +1 @@ +export { default as IconUnlock } from './IconUnlock' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUpload/IconUpload.tsx b/packages/ui/src/components/Icon/icons/IconUpload/IconUpload.tsx new file mode 100644 index 00000000000..15f6511c736 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUpload/IconUpload.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Upload } from 'react-feather' + import IconBase from './../../IconBase' + + function IconUpload(props: any) { + return + } + + export default IconUpload + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUpload/index.tsx b/packages/ui/src/components/Icon/icons/IconUpload/index.tsx new file mode 100644 index 00000000000..42867d030ec --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUpload/index.tsx @@ -0,0 +1 @@ +export { default as IconUpload } from './IconUpload' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUploadCloud/IconUploadCloud.tsx b/packages/ui/src/components/Icon/icons/IconUploadCloud/IconUploadCloud.tsx new file mode 100644 index 00000000000..5c756386abe --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUploadCloud/IconUploadCloud.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { UploadCloud } from 'react-feather' + import IconBase from './../../IconBase' + + function IconUploadCloud(props: any) { + return + } + + export default IconUploadCloud + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUploadCloud/index.tsx b/packages/ui/src/components/Icon/icons/IconUploadCloud/index.tsx new file mode 100644 index 00000000000..06da22b5e68 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUploadCloud/index.tsx @@ -0,0 +1 @@ +export { default as IconUploadCloud } from './IconUploadCloud' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUser/IconUser.tsx b/packages/ui/src/components/Icon/icons/IconUser/IconUser.tsx new file mode 100644 index 00000000000..cf8d331e5af --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUser/IconUser.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { User } from 'react-feather' + import IconBase from './../../IconBase' + + function IconUser(props: any) { + return + } + + export default IconUser + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUser/index.tsx b/packages/ui/src/components/Icon/icons/IconUser/index.tsx new file mode 100644 index 00000000000..21834d687c3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUser/index.tsx @@ -0,0 +1 @@ +export { default as IconUser } from './IconUser' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUserCheck/IconUserCheck.tsx b/packages/ui/src/components/Icon/icons/IconUserCheck/IconUserCheck.tsx new file mode 100644 index 00000000000..7b87d0c6844 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUserCheck/IconUserCheck.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { UserCheck } from 'react-feather' + import IconBase from './../../IconBase' + + function IconUserCheck(props: any) { + return + } + + export default IconUserCheck + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUserCheck/index.tsx b/packages/ui/src/components/Icon/icons/IconUserCheck/index.tsx new file mode 100644 index 00000000000..183b28346e5 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUserCheck/index.tsx @@ -0,0 +1 @@ +export { default as IconUserCheck } from './IconUserCheck' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUserMinus/IconUserMinus.tsx b/packages/ui/src/components/Icon/icons/IconUserMinus/IconUserMinus.tsx new file mode 100644 index 00000000000..949645fe570 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUserMinus/IconUserMinus.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { UserMinus } from 'react-feather' + import IconBase from './../../IconBase' + + function IconUserMinus(props: any) { + return + } + + export default IconUserMinus + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUserMinus/index.tsx b/packages/ui/src/components/Icon/icons/IconUserMinus/index.tsx new file mode 100644 index 00000000000..fcf2754f72a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUserMinus/index.tsx @@ -0,0 +1 @@ +export { default as IconUserMinus } from './IconUserMinus' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUserPlus/IconUserPlus.tsx b/packages/ui/src/components/Icon/icons/IconUserPlus/IconUserPlus.tsx new file mode 100644 index 00000000000..8b5e0403b2e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUserPlus/IconUserPlus.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { UserPlus } from 'react-feather' + import IconBase from './../../IconBase' + + function IconUserPlus(props: any) { + return + } + + export default IconUserPlus + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUserPlus/index.tsx b/packages/ui/src/components/Icon/icons/IconUserPlus/index.tsx new file mode 100644 index 00000000000..196ac18e249 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUserPlus/index.tsx @@ -0,0 +1 @@ +export { default as IconUserPlus } from './IconUserPlus' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUserX/IconUserX.tsx b/packages/ui/src/components/Icon/icons/IconUserX/IconUserX.tsx new file mode 100644 index 00000000000..5a7fd20a81d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUserX/IconUserX.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { UserX } from 'react-feather' + import IconBase from './../../IconBase' + + function IconUserX(props: any) { + return + } + + export default IconUserX + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUserX/index.tsx b/packages/ui/src/components/Icon/icons/IconUserX/index.tsx new file mode 100644 index 00000000000..1de4299d2b3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUserX/index.tsx @@ -0,0 +1 @@ +export { default as IconUserX } from './IconUserX' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUsers/IconUsers.tsx b/packages/ui/src/components/Icon/icons/IconUsers/IconUsers.tsx new file mode 100644 index 00000000000..f778383e228 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUsers/IconUsers.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Users } from 'react-feather' + import IconBase from './../../IconBase' + + function IconUsers(props: any) { + return + } + + export default IconUsers + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconUsers/index.tsx b/packages/ui/src/components/Icon/icons/IconUsers/index.tsx new file mode 100644 index 00000000000..d40774c2eeb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconUsers/index.tsx @@ -0,0 +1 @@ +export { default as IconUsers } from './IconUsers' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVideo/IconVideo.tsx b/packages/ui/src/components/Icon/icons/IconVideo/IconVideo.tsx new file mode 100644 index 00000000000..974bf112b28 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVideo/IconVideo.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Video } from 'react-feather' + import IconBase from './../../IconBase' + + function IconVideo(props: any) { + return + } + + export default IconVideo + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVideo/index.tsx b/packages/ui/src/components/Icon/icons/IconVideo/index.tsx new file mode 100644 index 00000000000..93f8153c170 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVideo/index.tsx @@ -0,0 +1 @@ +export { default as IconVideo } from './IconVideo' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVideoOff/IconVideoOff.tsx b/packages/ui/src/components/Icon/icons/IconVideoOff/IconVideoOff.tsx new file mode 100644 index 00000000000..345cc0dbf69 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVideoOff/IconVideoOff.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { VideoOff } from 'react-feather' + import IconBase from './../../IconBase' + + function IconVideoOff(props: any) { + return + } + + export default IconVideoOff + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVideoOff/index.tsx b/packages/ui/src/components/Icon/icons/IconVideoOff/index.tsx new file mode 100644 index 00000000000..8d6802d07fb --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVideoOff/index.tsx @@ -0,0 +1 @@ +export { default as IconVideoOff } from './IconVideoOff' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVoicemail/IconVoicemail.tsx b/packages/ui/src/components/Icon/icons/IconVoicemail/IconVoicemail.tsx new file mode 100644 index 00000000000..8bd16ba3e9e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVoicemail/IconVoicemail.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Voicemail } from 'react-feather' + import IconBase from './../../IconBase' + + function IconVoicemail(props: any) { + return + } + + export default IconVoicemail + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVoicemail/index.tsx b/packages/ui/src/components/Icon/icons/IconVoicemail/index.tsx new file mode 100644 index 00000000000..8a2ee7f711e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVoicemail/index.tsx @@ -0,0 +1 @@ +export { default as IconVoicemail } from './IconVoicemail' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVolume/IconVolume.tsx b/packages/ui/src/components/Icon/icons/IconVolume/IconVolume.tsx new file mode 100644 index 00000000000..c2c5b107c33 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVolume/IconVolume.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Volume } from 'react-feather' + import IconBase from './../../IconBase' + + function IconVolume(props: any) { + return + } + + export default IconVolume + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVolume/index.tsx b/packages/ui/src/components/Icon/icons/IconVolume/index.tsx new file mode 100644 index 00000000000..ad18a09b054 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVolume/index.tsx @@ -0,0 +1 @@ +export { default as IconVolume } from './IconVolume' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVolume1/IconVolume1.tsx b/packages/ui/src/components/Icon/icons/IconVolume1/IconVolume1.tsx new file mode 100644 index 00000000000..f2b32cdbac9 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVolume1/IconVolume1.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Volume1 } from 'react-feather' + import IconBase from './../../IconBase' + + function IconVolume1(props: any) { + return + } + + export default IconVolume1 + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVolume1/index.tsx b/packages/ui/src/components/Icon/icons/IconVolume1/index.tsx new file mode 100644 index 00000000000..718793c66c2 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVolume1/index.tsx @@ -0,0 +1 @@ +export { default as IconVolume1 } from './IconVolume1' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVolume2/IconVolume2.tsx b/packages/ui/src/components/Icon/icons/IconVolume2/IconVolume2.tsx new file mode 100644 index 00000000000..c56b15d5ff5 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVolume2/IconVolume2.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Volume2 } from 'react-feather' + import IconBase from './../../IconBase' + + function IconVolume2(props: any) { + return + } + + export default IconVolume2 + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVolume2/index.tsx b/packages/ui/src/components/Icon/icons/IconVolume2/index.tsx new file mode 100644 index 00000000000..3042ef5a37f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVolume2/index.tsx @@ -0,0 +1 @@ +export { default as IconVolume2 } from './IconVolume2' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVolumeX/IconVolumeX.tsx b/packages/ui/src/components/Icon/icons/IconVolumeX/IconVolumeX.tsx new file mode 100644 index 00000000000..5e997ebdbb5 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVolumeX/IconVolumeX.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { VolumeX } from 'react-feather' + import IconBase from './../../IconBase' + + function IconVolumeX(props: any) { + return + } + + export default IconVolumeX + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconVolumeX/index.tsx b/packages/ui/src/components/Icon/icons/IconVolumeX/index.tsx new file mode 100644 index 00000000000..89dc1cb40cc --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconVolumeX/index.tsx @@ -0,0 +1 @@ +export { default as IconVolumeX } from './IconVolumeX' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconWatch/IconWatch.tsx b/packages/ui/src/components/Icon/icons/IconWatch/IconWatch.tsx new file mode 100644 index 00000000000..fa410e6f903 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconWatch/IconWatch.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Watch } from 'react-feather' + import IconBase from './../../IconBase' + + function IconWatch(props: any) { + return + } + + export default IconWatch + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconWatch/index.tsx b/packages/ui/src/components/Icon/icons/IconWatch/index.tsx new file mode 100644 index 00000000000..dce90b7221e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconWatch/index.tsx @@ -0,0 +1 @@ +export { default as IconWatch } from './IconWatch' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconWifi/IconWifi.tsx b/packages/ui/src/components/Icon/icons/IconWifi/IconWifi.tsx new file mode 100644 index 00000000000..a920c6e2497 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconWifi/IconWifi.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Wifi } from 'react-feather' + import IconBase from './../../IconBase' + + function IconWifi(props: any) { + return + } + + export default IconWifi + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconWifi/index.tsx b/packages/ui/src/components/Icon/icons/IconWifi/index.tsx new file mode 100644 index 00000000000..10f002892a0 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconWifi/index.tsx @@ -0,0 +1 @@ +export { default as IconWifi } from './IconWifi' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconWifiOff/IconWifiOff.tsx b/packages/ui/src/components/Icon/icons/IconWifiOff/IconWifiOff.tsx new file mode 100644 index 00000000000..99edae71b75 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconWifiOff/IconWifiOff.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { WifiOff } from 'react-feather' + import IconBase from './../../IconBase' + + function IconWifiOff(props: any) { + return + } + + export default IconWifiOff + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconWifiOff/index.tsx b/packages/ui/src/components/Icon/icons/IconWifiOff/index.tsx new file mode 100644 index 00000000000..b532c51c712 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconWifiOff/index.tsx @@ -0,0 +1 @@ +export { default as IconWifiOff } from './IconWifiOff' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconWind/IconWind.tsx b/packages/ui/src/components/Icon/icons/IconWind/IconWind.tsx new file mode 100644 index 00000000000..85bc9f43623 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconWind/IconWind.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Wind } from 'react-feather' + import IconBase from './../../IconBase' + + function IconWind(props: any) { + return + } + + export default IconWind + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconWind/index.tsx b/packages/ui/src/components/Icon/icons/IconWind/index.tsx new file mode 100644 index 00000000000..9449db6fc40 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconWind/index.tsx @@ -0,0 +1 @@ +export { default as IconWind } from './IconWind' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconX/IconX.tsx b/packages/ui/src/components/Icon/icons/IconX/IconX.tsx new file mode 100644 index 00000000000..123fd33e78d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconX/IconX.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { X } from 'react-feather' + import IconBase from './../../IconBase' + + function IconX(props: any) { + return + } + + export default IconX + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconX/index.tsx b/packages/ui/src/components/Icon/icons/IconX/index.tsx new file mode 100644 index 00000000000..b0b628132f3 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconX/index.tsx @@ -0,0 +1 @@ +export { default as IconX } from './IconX' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconXCircle/IconXCircle.tsx b/packages/ui/src/components/Icon/icons/IconXCircle/IconXCircle.tsx new file mode 100644 index 00000000000..e1990eba8c4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconXCircle/IconXCircle.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { XCircle } from 'react-feather' + import IconBase from './../../IconBase' + + function IconXCircle(props: any) { + return + } + + export default IconXCircle + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconXCircle/index.tsx b/packages/ui/src/components/Icon/icons/IconXCircle/index.tsx new file mode 100644 index 00000000000..7300e176f69 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconXCircle/index.tsx @@ -0,0 +1 @@ +export { default as IconXCircle } from './IconXCircle' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconXOctagon/IconXOctagon.tsx b/packages/ui/src/components/Icon/icons/IconXOctagon/IconXOctagon.tsx new file mode 100644 index 00000000000..cba425a37ee --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconXOctagon/IconXOctagon.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { XOctagon } from 'react-feather' + import IconBase from './../../IconBase' + + function IconXOctagon(props: any) { + return + } + + export default IconXOctagon + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconXOctagon/index.tsx b/packages/ui/src/components/Icon/icons/IconXOctagon/index.tsx new file mode 100644 index 00000000000..f1e25a85f6a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconXOctagon/index.tsx @@ -0,0 +1 @@ +export { default as IconXOctagon } from './IconXOctagon' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconXSquare/IconXSquare.tsx b/packages/ui/src/components/Icon/icons/IconXSquare/IconXSquare.tsx new file mode 100644 index 00000000000..99b634b1848 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconXSquare/IconXSquare.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { XSquare } from 'react-feather' + import IconBase from './../../IconBase' + + function IconXSquare(props: any) { + return + } + + export default IconXSquare + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconXSquare/index.tsx b/packages/ui/src/components/Icon/icons/IconXSquare/index.tsx new file mode 100644 index 00000000000..e830952753a --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconXSquare/index.tsx @@ -0,0 +1 @@ +export { default as IconXSquare } from './IconXSquare' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconYoutube/IconYoutube.tsx b/packages/ui/src/components/Icon/icons/IconYoutube/IconYoutube.tsx new file mode 100644 index 00000000000..c2fff964f17 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconYoutube/IconYoutube.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Youtube } from 'react-feather' + import IconBase from './../../IconBase' + + function IconYoutube(props: any) { + return + } + + export default IconYoutube + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconYoutube/index.tsx b/packages/ui/src/components/Icon/icons/IconYoutube/index.tsx new file mode 100644 index 00000000000..10e2348ce12 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconYoutube/index.tsx @@ -0,0 +1 @@ +export { default as IconYoutube } from './IconYoutube' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconZap/IconZap.tsx b/packages/ui/src/components/Icon/icons/IconZap/IconZap.tsx new file mode 100644 index 00000000000..7aafcac219c --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconZap/IconZap.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { Zap } from 'react-feather' + import IconBase from './../../IconBase' + + function IconZap(props: any) { + return + } + + export default IconZap + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconZap/index.tsx b/packages/ui/src/components/Icon/icons/IconZap/index.tsx new file mode 100644 index 00000000000..42363316e08 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconZap/index.tsx @@ -0,0 +1 @@ +export { default as IconZap } from './IconZap' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconZapOff/IconZapOff.tsx b/packages/ui/src/components/Icon/icons/IconZapOff/IconZapOff.tsx new file mode 100644 index 00000000000..8fd36e5fb2f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconZapOff/IconZapOff.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ZapOff } from 'react-feather' + import IconBase from './../../IconBase' + + function IconZapOff(props: any) { + return + } + + export default IconZapOff + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconZapOff/index.tsx b/packages/ui/src/components/Icon/icons/IconZapOff/index.tsx new file mode 100644 index 00000000000..a41fa2435b4 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconZapOff/index.tsx @@ -0,0 +1 @@ +export { default as IconZapOff } from './IconZapOff' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconZoomIn/IconZoomIn.tsx b/packages/ui/src/components/Icon/icons/IconZoomIn/IconZoomIn.tsx new file mode 100644 index 00000000000..ce7bede2f7d --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconZoomIn/IconZoomIn.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ZoomIn } from 'react-feather' + import IconBase from './../../IconBase' + + function IconZoomIn(props: any) { + return + } + + export default IconZoomIn + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconZoomIn/index.tsx b/packages/ui/src/components/Icon/icons/IconZoomIn/index.tsx new file mode 100644 index 00000000000..3933062fbbd --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconZoomIn/index.tsx @@ -0,0 +1 @@ +export { default as IconZoomIn } from './IconZoomIn' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconZoomOut/IconZoomOut.tsx b/packages/ui/src/components/Icon/icons/IconZoomOut/IconZoomOut.tsx new file mode 100644 index 00000000000..8c4218dde5f --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconZoomOut/IconZoomOut.tsx @@ -0,0 +1,13 @@ +// DO NOT EDIT + // this file is generated by /internals/populate-icons script + import * as React from 'react' + // @ts-ignore + import { ZoomOut } from 'react-feather' + import IconBase from './../../IconBase' + + function IconZoomOut(props: any) { + return + } + + export default IconZoomOut + \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/IconZoomOut/index.tsx b/packages/ui/src/components/Icon/icons/IconZoomOut/index.tsx new file mode 100644 index 00000000000..96deb6dee1e --- /dev/null +++ b/packages/ui/src/components/Icon/icons/IconZoomOut/index.tsx @@ -0,0 +1 @@ +export { default as IconZoomOut } from './IconZoomOut' \ No newline at end of file diff --git a/packages/ui/src/components/Icon/icons/index.tsx b/packages/ui/src/components/Icon/icons/index.tsx new file mode 100644 index 00000000000..9fc2134a5a7 --- /dev/null +++ b/packages/ui/src/components/Icon/icons/index.tsx @@ -0,0 +1,287 @@ +// export icons +export * as IconActivity from './IconActivity' +export * as IconAirplay from './IconAirplay' +export * as IconAlertCircle from './IconAlertCircle' +export * as IconAlertOctagon from './IconAlertOctagon' +export * as IconAlertTriangle from './IconAlertTriangle' +export * as IconAlignCenter from './IconAlignCenter' +export * as IconAlignJustify from './IconAlignJustify' +export * as IconAlignLeft from './IconAlignLeft' +export * as IconAlignRight from './IconAlignRight' +export * as IconAnchor from './IconAnchor' +export * as IconAperture from './IconAperture' +export * as IconArchive from './IconArchive' +export * as IconArrowDownCircle from './IconArrowDownCircle' +export * as IconArrowDownLeft from './IconArrowDownLeft' +export * as IconArrowDownRight from './IconArrowDownRight' +export * as IconArrowDown from './IconArrowDown' +export * as IconArrowLeftCircle from './IconArrowLeftCircle' +export * as IconArrowLeft from './IconArrowLeft' +export * as IconArrowRightCircle from './IconArrowRightCircle' +export * as IconArrowRight from './IconArrowRight' +export * as IconArrowUpCircle from './IconArrowUpCircle' +export * as IconArrowUpLeft from './IconArrowUpLeft' +export * as IconArrowUpRight from './IconArrowUpRight' +export * as IconArrowUp from './IconArrowUp' +export * as IconAtSign from './IconAtSign' +export * as IconAward from './IconAward' +export * as IconBarChart2 from './IconBarChart2' +export * as IconBarChart from './IconBarChart' +export * as IconBatteryCharging from './IconBatteryCharging' +export * as IconBattery from './IconBattery' +export * as IconBellOff from './IconBellOff' +export * as IconBell from './IconBell' +export * as IconBluetooth from './IconBluetooth' +export * as IconBold from './IconBold' +export * as IconBookOpen from './IconBookOpen' +export * as IconBook from './IconBook' +export * as IconBookmark from './IconBookmark' +export * as IconBox from './IconBox' +export * as IconBriefcase from './IconBriefcase' +export * as IconCalendar from './IconCalendar' +export * as IconCameraOff from './IconCameraOff' +export * as IconCamera from './IconCamera' +export * as IconCast from './IconCast' +export * as IconCheckCircle from './IconCheckCircle' +export * as IconCheckSquare from './IconCheckSquare' +export * as IconCheck from './IconCheck' +export * as IconChevronDown from './IconChevronDown' +export * as IconChevronLeft from './IconChevronLeft' +export * as IconChevronRight from './IconChevronRight' +export * as IconChevronUp from './IconChevronUp' +export * as IconChevronsDown from './IconChevronsDown' +export * as IconChevronsLeft from './IconChevronsLeft' +export * as IconChevronsRight from './IconChevronsRight' +export * as IconChevronsUp from './IconChevronsUp' +export * as IconChrome from './IconChrome' +export * as IconCircle from './IconCircle' +export * as IconClipboard from './IconClipboard' +export * as IconClock from './IconClock' +export * as IconCloudDrizzle from './IconCloudDrizzle' +export * as IconCloudLightning from './IconCloudLightning' +export * as IconCloudOff from './IconCloudOff' +export * as IconCloudRain from './IconCloudRain' +export * as IconCloudSnow from './IconCloudSnow' +export * as IconCloud from './IconCloud' +export * as IconCode from './IconCode' +export * as IconCodepen from './IconCodepen' +export * as IconCodesandbox from './IconCodesandbox' +export * as IconCoffee from './IconCoffee' +export * as IconColumns from './IconColumns' +export * as IconCommand from './IconCommand' +export * as IconCompass from './IconCompass' +export * as IconCopy from './IconCopy' +export * as IconCornerDownLeft from './IconCornerDownLeft' +export * as IconCornerDownRight from './IconCornerDownRight' +export * as IconCornerLeftDown from './IconCornerLeftDown' +export * as IconCornerLeftUp from './IconCornerLeftUp' +export * as IconCornerRightDown from './IconCornerRightDown' +export * as IconCornerRightUp from './IconCornerRightUp' +export * as IconCornerUpLeft from './IconCornerUpLeft' +export * as IconCornerUpRight from './IconCornerUpRight' +export * as IconCpu from './IconCpu' +export * as IconCreditCard from './IconCreditCard' +export * as IconCrop from './IconCrop' +export * as IconCrosshair from './IconCrosshair' +export * as IconDatabase from './IconDatabase' +export * as IconDelete from './IconDelete' +export * as IconDisc from './IconDisc' +export * as IconDivideCircle from './IconDivideCircle' +export * as IconDivideSquare from './IconDivideSquare' +export * as IconDivide from './IconDivide' +export * as IconDollarSign from './IconDollarSign' +export * as IconDownloadCloud from './IconDownloadCloud' +export * as IconDownload from './IconDownload' +export * as IconDribbble from './IconDribbble' +export * as IconDroplet from './IconDroplet' +export * as IconEdit2 from './IconEdit2' +export * as IconEdit3 from './IconEdit3' +export * as IconEdit from './IconEdit' +export * as IconExternalLink from './IconExternalLink' +export * as IconEyeOff from './IconEyeOff' +export * as IconEye from './IconEye' +export * as IconFacebook from './IconFacebook' +export * as IconFastForward from './IconFastForward' +export * as IconFeather from './IconFeather' +export * as IconFigma from './IconFigma' +export * as IconFileMinus from './IconFileMinus' +export * as IconFilePlus from './IconFilePlus' +export * as IconFileText from './IconFileText' +export * as IconFile from './IconFile' +export * as IconFilm from './IconFilm' +export * as IconFilter from './IconFilter' +export * as IconFlag from './IconFlag' +export * as IconFolderMinus from './IconFolderMinus' +export * as IconFolderPlus from './IconFolderPlus' +export * as IconFolder from './IconFolder' +export * as IconFramer from './IconFramer' +export * as IconFrown from './IconFrown' +export * as IconGift from './IconGift' +export * as IconGitBranch from './IconGitBranch' +export * as IconGitCommit from './IconGitCommit' +export * as IconGitMerge from './IconGitMerge' +export * as IconGitPullRequest from './IconGitPullRequest' +export * as IconGitHub from './IconGitHub' +export * as IconGitlab from './IconGitlab' +export * as IconGlobe from './IconGlobe' +export * as IconGrid from './IconGrid' +export * as IconHardDrive from './IconHardDrive' +export * as IconHash from './IconHash' +export * as IconHeadphones from './IconHeadphones' +export * as IconHeart from './IconHeart' +export * as IconHelpCircle from './IconHelpCircle' +export * as IconHexagon from './IconHexagon' +export * as IconHome from './IconHome' +export * as IconImage from './IconImage' +export * as IconInbox from './IconInbox' +export * as IconInfo from './IconInfo' +export * as IconInstagram from './IconInstagram' +export * as IconItalic from './IconItalic' +export * as IconKey from './IconKey' +export * as IconLayers from './IconLayers' +export * as IconLayout from './IconLayout' +export * as IconLifeBuoy from './IconLifeBuoy' +export * as IconLink2 from './IconLink2' +export * as IconLink from './IconLink' +export * as IconLinkedin from './IconLinkedin' +export * as IconList from './IconList' +export * as IconLoader from './IconLoader' +export * as IconLock from './IconLock' +export * as IconLogIn from './IconLogIn' +export * as IconLogOut from './IconLogOut' +export * as IconMail from './IconMail' +export * as IconMapPin from './IconMapPin' +export * as IconMap from './IconMap' +export * as IconMaximize2 from './IconMaximize2' +export * as IconMaximize from './IconMaximize' +export * as IconMeh from './IconMeh' +export * as IconMenu from './IconMenu' +export * as IconMessageCircle from './IconMessageCircle' +export * as IconMessageSquare from './IconMessageSquare' +export * as IconMicOff from './IconMicOff' +export * as IconMic from './IconMic' +export * as IconMinimize2 from './IconMinimize2' +export * as IconMinimize from './IconMinimize' +export * as IconMinusCircle from './IconMinusCircle' +export * as IconMinusSquare from './IconMinusSquare' +export * as IconMinus from './IconMinus' +export * as IconMonitor from './IconMonitor' +export * as IconMoon from './IconMoon' +export * as IconMoreHorizontal from './IconMoreHorizontal' +export * as IconMoreVertical from './IconMoreVertical' +export * as IconMousePointer from './IconMousePointer' +export * as IconMove from './IconMove' +export * as IconMusic from './IconMusic' +export * as IconNavigation2 from './IconNavigation2' +export * as IconNavigation from './IconNavigation' +export * as IconOctagon from './IconOctagon' +export * as IconPackage from './IconPackage' +export * as IconPaperclip from './IconPaperclip' +export * as IconPauseCircle from './IconPauseCircle' +export * as IconPause from './IconPause' +export * as IconPenTool from './IconPenTool' +export * as IconPercent from './IconPercent' +export * as IconPhoneCall from './IconPhoneCall' +export * as IconPhoneForwarded from './IconPhoneForwarded' +export * as IconPhoneIncoming from './IconPhoneIncoming' +export * as IconPhoneMissed from './IconPhoneMissed' +export * as IconPhoneOff from './IconPhoneOff' +export * as IconPhoneOutgoing from './IconPhoneOutgoing' +export * as IconPhone from './IconPhone' +export * as IconPieChart from './IconPieChart' +export * as IconPlayCircle from './IconPlayCircle' +export * as IconPlay from './IconPlay' +export * as IconPlusCircle from './IconPlusCircle' +export * as IconPlusSquare from './IconPlusSquare' +export * as IconPlus from './IconPlus' +export * as IconPocket from './IconPocket' +export * as IconPower from './IconPower' +export * as IconPrinter from './IconPrinter' +export * as IconRadio from './IconRadio' +export * as IconRefreshCcw from './IconRefreshCcw' +export * as IconRefreshCw from './IconRefreshCw' +export * as IconRepeat from './IconRepeat' +export * as IconRewind from './IconRewind' +export * as IconRotateCcw from './IconRotateCcw' +export * as IconRotateCw from './IconRotateCw' +export * as IconRss from './IconRss' +export * as IconSave from './IconSave' +export * as IconScissors from './IconScissors' +export * as IconSearch from './IconSearch' +export * as IconSend from './IconSend' +export * as IconServer from './IconServer' +export * as IconSettings from './IconSettings' +export * as IconShare2 from './IconShare2' +export * as IconShare from './IconShare' +export * as IconShieldOff from './IconShieldOff' +export * as IconShield from './IconShield' +export * as IconShoppingBag from './IconShoppingBag' +export * as IconShoppingCart from './IconShoppingCart' +export * as IconShuffle from './IconShuffle' +export * as IconSidebar from './IconSidebar' +export * as IconSkipBack from './IconSkipBack' +export * as IconSkipForward from './IconSkipForward' +export * as IconSlack from './IconSlack' +export * as IconSlash from './IconSlash' +export * as IconSliders from './IconSliders' +export * as IconSmartphone from './IconSmartphone' +export * as IconSmile from './IconSmile' +export * as IconSpeaker from './IconSpeaker' +export * as IconSquare from './IconSquare' +export * as IconStar from './IconStar' +export * as IconStopCircle from './IconStopCircle' +export * as IconSun from './IconSun' +export * as IconSunrise from './IconSunrise' +export * as IconSunset from './IconSunset' +export * as IconTablet from './IconTablet' +export * as IconTag from './IconTag' +export * as IconTarget from './IconTarget' +export * as IconTerminal from './IconTerminal' +export * as IconThermometer from './IconThermometer' +export * as IconThumbsDown from './IconThumbsDown' +export * as IconThumbsUp from './IconThumbsUp' +export * as IconToggleLeft from './IconToggleLeft' +export * as IconToggleRight from './IconToggleRight' +export * as IconTool from './IconTool' +export * as IconTrash2 from './IconTrash2' +export * as IconTrash from './IconTrash' +export * as IconTrello from './IconTrello' +export * as IconTrendingDown from './IconTrendingDown' +export * as IconTrendingUp from './IconTrendingUp' +export * as IconTriangle from './IconTriangle' +export * as IconTruck from './IconTruck' +export * as IconTv from './IconTv' +export * as IconTwitch from './IconTwitch' +export * as IconTwitter from './IconTwitter' +export * as IconType from './IconType' +export * as IconUmbrella from './IconUmbrella' +export * as IconUnderline from './IconUnderline' +export * as IconUnlock from './IconUnlock' +export * as IconUploadCloud from './IconUploadCloud' +export * as IconUpload from './IconUpload' +export * as IconUserCheck from './IconUserCheck' +export * as IconUserMinus from './IconUserMinus' +export * as IconUserPlus from './IconUserPlus' +export * as IconUserX from './IconUserX' +export * as IconUser from './IconUser' +export * as IconUsers from './IconUsers' +export * as IconVideoOff from './IconVideoOff' +export * as IconVideo from './IconVideo' +export * as IconVoicemail from './IconVoicemail' +export * as IconVolume1 from './IconVolume1' +export * as IconVolume2 from './IconVolume2' +export * as IconVolumeX from './IconVolumeX' +export * as IconVolume from './IconVolume' +export * as IconWatch from './IconWatch' +export * as IconWifiOff from './IconWifiOff' +export * as IconWifi from './IconWifi' +export * as IconWind from './IconWind' +export * as IconXCircle from './IconXCircle' +export * as IconXOctagon from './IconXOctagon' +export * as IconXSquare from './IconXSquare' +export * as IconX from './IconX' +export * as IconYoutube from './IconYoutube' +export * as IconZapOff from './IconZapOff' +export * as IconZap from './IconZap' +export * as IconZoomIn from './IconZoomIn' +export * as IconZoomOut from './IconZoomOut' diff --git a/packages/ui/src/components/Icon/index.tsx b/packages/ui/src/components/Icon/index.tsx new file mode 100644 index 00000000000..7aebbe9de7e --- /dev/null +++ b/packages/ui/src/components/Icon/index.tsx @@ -0,0 +1 @@ +export * from './Icon' diff --git a/packages/ui/src/components/Image/Image.module.css b/packages/ui/src/components/Image/Image.module.css new file mode 100644 index 00000000000..f9a9825dc78 --- /dev/null +++ b/packages/ui/src/components/Image/Image.module.css @@ -0,0 +1,21 @@ +.sbui-image { + +} + +.sbui-image-circle { + @apply rounded-full; +} + +.sbui-image-normal { + +} + +.sbui-image-rounded { + @apply rounded +} + +.sbui-image-responsive { + @apply w-full; + @apply h-auto; + +} \ No newline at end of file diff --git a/packages/ui/src/components/Image/Image.stories.tsx b/packages/ui/src/components/Image/Image.stories.tsx new file mode 100644 index 00000000000..81680f06604 --- /dev/null +++ b/packages/ui/src/components/Image/Image.stories.tsx @@ -0,0 +1,65 @@ +import React, { useState } from 'react' + +import { Image } from '.' + +export default { + title: 'General/Image', + component: Image, +} + +export const Normal = (args: any) => { + return ( + <> + + + ) +} + +export const Circle = (args: any) => { + return ( + <> + + + ) +} + +export const Rounded = (args: any) => { + return ( + <> + + + ) +} + +export const Responsive = (args: any) => { + return ( + <> + + + ) +} + +Normal.args = { + active: true, + source: 'https://via.placeholder.com/300' +} + +Circle.args = { + active: true, + type: 'circle', + source: 'https://via.placeholder.com/300' +} + +Rounded.args = { + active: true, + type: 'rounded', + source: 'https://via.placeholder.com/300' +} + +Responsive.args = { + active: true, + type: 'normal', + source: 'https://via.placeholder.com/300', + responsive: true + +} \ No newline at end of file diff --git a/packages/ui/src/components/Image/Image.tsx b/packages/ui/src/components/Image/Image.tsx new file mode 100644 index 00000000000..e079acae6e4 --- /dev/null +++ b/packages/ui/src/components/Image/Image.tsx @@ -0,0 +1,37 @@ +import React from 'react' +// @ts-ignore +// import ImageStyles from './Image.module.css' + +interface Props { + source?: string + style?: React.CSSProperties + className?: string + type?: 'rounded' | 'circle' + alt?: string + responsive?: boolean +} + +export default function Image({ + source, + style, + className, + type, + alt, + responsive, +}: Props) { + // let classes = [ImageStyles['sbui-image-normal']] + // classes.push(type === 'rounded' && ImageStyles['sbui-image-rounded']) + // classes.push(type === 'circle' && ImageStyles['sbui-image-circle']) + // if(responsive) classes.push(ImageStyles['sbui-image-responsive']) + // if (className) classes.push(className) + return ( + <> + {alt} + + ) +} diff --git a/packages/ui/src/components/Image/index.tsx b/packages/ui/src/components/Image/index.tsx new file mode 100644 index 00000000000..225e542fa1e --- /dev/null +++ b/packages/ui/src/components/Image/index.tsx @@ -0,0 +1 @@ +export { default as Image } from './Image' diff --git a/packages/ui/src/components/Input/Input.module.css b/packages/ui/src/components/Input/Input.module.css new file mode 100644 index 00000000000..ae233879291 --- /dev/null +++ b/packages/ui/src/components/Input/Input.module.css @@ -0,0 +1,68 @@ +/* .sbui-input-container { + @apply relative; +} */ + +/* .sbui-input { + @apply block box-border pl-3 pr-3 py-2 w-full rounded-md shadow-sm text-sm border border-solid transition-all; + @apply bg-white text-input-value-light border-input-border-light; + @apply focus:ring-input-border-focus-light focus:border-input-border-focus-light focus:outline-none; + + @apply dark:bg-transparent dark:text-input-value-dark dark:border-input-border-dark; + @apply dark:focus:border-input-border-focus-dark dark:focus:ring-input-border-focus-dark; + + + font-family: inherit; + transition: box-shadow 0.3s ease-in-out; +} */ + +/* .sbui-input:focus { + box-shadow: 0 0 0 2px rgba(62, 207, 142, 0.1); +} */ + +/* .sbui-input--error { + @apply border-red-500 dark:border-red-500; +} + +.sbui-input--borderless { + @apply border-transparent shadow-none; +} + +.sbui-input-actions-container { + @apply absolute inset-y-0 right-0 pl-3 pr-1 flex items-center; +} */ + +.sbui-textarea-actions-container { + @apply absolute inset-y-1 right-0 pl-3 pr-1 flex items-start; +} + +.sbui-textarea-actions-container__items { + @apply flex items-center; +} + +/* + Input sizes +*/ + +/* .sbui-input--tiny { + @apply px-2.5 py-1.5 text-xs; +} +.sbui-input--small { + @apply px-3 py-2 text-sm leading-4; +} +.sbui-input--medium { + @apply px-4 py-2 text-sm; +} +.sbui-input--large { + @apply px-4 py-2 text-base; +} +.sbui-input--xlarge { + @apply px-6 py-3 text-base; +} */ + +/* + Input icon +*/ + +/* .sbui-input--with-icon { + @apply pl-10; +} */ diff --git a/packages/ui/src/components/Input/Input.stories.tsx b/packages/ui/src/components/Input/Input.stories.tsx new file mode 100644 index 00000000000..45bfbb8a008 --- /dev/null +++ b/packages/ui/src/components/Input/Input.stories.tsx @@ -0,0 +1,159 @@ +import React from 'react' +// import { AutoForm } from 'uniforms' + +import { Input } from '.' +import { IconPackage } from './../../index' +import { Button } from '../Button' +import { Space } from '../Space' + +export default { + title: 'Data Input/Input', + component: Input, +} + +export const Default = (args: any) => + +export const ErrorState = (args: any) => + +export const withIcon = (args: any) => + +export const withOption = (args: any) => + +export const withDescription = (args: any) => + +export const withCustomStyle = (args: any) => + +export const textArea = (args: any) => + +export const textAreaWithCopy = (args: any) => + +export const textAreaWithLimit = (args: any) => + +export const withRevealAndCopy = (args: any) => + +export const withCustomActions = (args: any) => + +export const withBeforeAndAfterLabel = (args: any) => + +export const size = (args: any) => + +export const borderless = (args: any) => + +export const date = (args: any) => + +const icon: any = + +Default.args = { + placeholder: 'Type text here ...', + disabled: false, + label: 'Name', + layout: 'vertical', +} + +ErrorState.args = { + type: 'text', + placeholder: 'Type text here ...', + disabled: false, + label: 'Input with an error message', + error: 'Your password must be less than 4 characters.', +} + +withIcon.args = { + type: 'text', + placeholder: 'Type text here ...', + disabled: false, + label: 'Input with an icon', + icon: icon, +} + +withOption.args = { + type: 'text', + placeholder: 'Type text here ...', + disabled: false, + label: 'Input with an error message', + labelOptional: 'This is required', +} + +withDescription.args = { + type: 'text', + placeholder: 'Type text here ...', + disabled: false, + label: 'Input with an error message', + descriptionText: 'Make your password short and easy to guess', +} + +withCustomStyle.args = { + type: 'text', + label: 'This has custom styling {width: 50%}', + style: { width: '50%' }, +} + +textArea.args = { + type: 'text', + label: 'This is a text area', +} + +textAreaWithCopy.args = { + copy: true, + rows: 3, + type: 'text', + label: 'This is a text area', +} + +textAreaWithLimit.args = { + type: 'text', + label: 'This is a text area, with 10 rows', + labelOptional: '500 character limit', + rows: 10, + limit: 500, +} + +withRevealAndCopy.args = { + type: 'text', + label: 'Reveal and copy', + labelOptional: 'Reveal the text, then copy it', + value: '12341234HDGRHSGR/adJDJD', + copy: true, + reveal: true, +} + +withCustomActions.args = { + type: 'text', + label: 'Custom actions', + labelOptional: 'Use any react components', + value: 'Value of input', + actions: [ + , + , + ], +} + +size.args = { + type: 'text', + label: 'You can change the size of this Input', + size: 'tiny', +} + +withBeforeAndAfterLabel.args = { + type: 'text', + label: 'This is the label', + beforeLabel: 'Before label : ', + afterLabel: ' : After label', +} + +borderless.args = { + type: 'text', + label: 'This is the label', + borderless: true, + size: 'tiny', +} + +date.args = { + type: 'date', + placeholder: 'Type text here ...', + disabled: false, + label: 'Name', + layout: 'vertical', +} diff --git a/packages/ui/src/components/Input/Input.tsx b/packages/ui/src/components/Input/Input.tsx new file mode 100644 index 00000000000..97bda1189fd --- /dev/null +++ b/packages/ui/src/components/Input/Input.tsx @@ -0,0 +1,339 @@ +import React, { useEffect, useState } from 'react' +import { Button, IconCopy } from '../../../index' +import { FormLayout } from '../../lib/Layout/FormLayout' +import InputErrorIcon from '../../lib/Layout/InputErrorIcon' +import InputIconContainer from '../../lib/Layout/InputIconContainer' +import { HIDDEN_PLACEHOLDER } from './../../lib/constants' + +import styleHandler from '../../lib/theme/styleHandler' +import { useFormContext } from '../Form/FormContext' + +export interface Props extends Omit, 'size'> { + copy?: boolean + defaultValue?: string | number + descriptionText?: string | React.ReactNode | undefined + disabled?: boolean + error?: string + icon?: any + inputRef?: string + label?: string | React.ReactNode + afterLabel?: string + beforeLabel?: string + labelOptional?: string | React.ReactNode + layout?: 'horizontal' | 'vertical' + reveal?: boolean + actions?: React.ReactNode + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' + borderless?: boolean + validation?: (x: any) => void +} + +function Input({ + autoComplete, + autoFocus, + className, + copy, + defaultValue, + descriptionText, + disabled, + error, + icon, + id = '', + name = '', + inputRef, + label, + afterLabel, + beforeLabel, + labelOptional, + layout, + onChange, + onBlur, + placeholder, + type = 'text', + value = undefined, + style, + reveal = false, + actions, + size = 'medium', + borderless = false, + validation, + ...props +}: Props) { + const [copyLabel, setCopyLabel] = useState('Copy') + const [hidden, setHidden] = useState(true) + + const __styles = styleHandler('input') + + const { formContextOnChange, values, errors, handleBlur, touched, fieldLevelValidation } = + useFormContext() + + if (values && !value) value = values[id || name] + + function handleBlurEvent(e: React.FocusEvent) { + if (handleBlur) handleBlur(e) + if (onBlur) onBlur(e) + } + + if (!error) { + if (errors && !error) error = errors[id || name] + error = touched && touched[id] ? error : undefined + } + + function onInputChange(e: React.ChangeEvent) { + // console.log('input event', e) + if (onChange) onChange(e) + // update form + if (formContextOnChange) formContextOnChange(e) + // run field level validation + if (validation) fieldLevelValidation(id, validation(e.target.value)) + } + + useEffect(() => { + if (validation) fieldLevelValidation(id, validation(value)) + }, []) + + // useEffect(() => { + // error = touched && touched[id] ? error : undefined + // }, [errors, touched]) + + function onCopy(value: any) { + navigator.clipboard.writeText(value).then( + function () { + /* clipboard successfully set */ + setCopyLabel('Copied') + setTimeout(function () { + setCopyLabel('Copy') + }, 3000) + }, + function () { + /* clipboard write failed */ + setCopyLabel('Failed to copy') + } + ) + } + + function onReveal() { + setHidden(false) + } + + let inputClasses = [__styles.base] + + if (error) inputClasses.push(__styles.variants.error) + if (!error) inputClasses.push(__styles.variants.standard) + if (icon) inputClasses.push(__styles.with_icon) + if (size) inputClasses.push(__styles.size[size]) + if (disabled) inputClasses.push(__styles.disabled) + + return ( + +
+ + {icon && } + {copy || error || actions ? ( +
+ {error && } + {copy && !(reveal && hidden) ? ( + + ) : null} + {reveal && hidden ? ( + + ) : null} + {actions && actions} +
+ ) : null} +
+
+ ) +} + +export interface TextAreaProps + extends Omit, 'size'> { + descriptionText?: string + error?: string + icon?: any + label?: string + afterLabel?: string + beforeLabel?: string + labelOptional?: string + layout?: 'horizontal' | 'vertical' + rows?: number + limit?: number + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' + borderless?: boolean + validation?: (x: any) => void + copy?: boolean + actions?: React.ReactNode +} + +function TextArea({ + className, + descriptionText, + disabled, + error, + icon, + id = '', + name = '', + label, + afterLabel, + beforeLabel, + labelOptional, + layout, + onChange, + onBlur, + placeholder, + value, + style, + rows = 4, + limit, + size, + borderless = false, + validation, + copy = false, + actions, + ...props +}: TextAreaProps) { + const [charLength, setCharLength] = useState(0) + const [copyLabel, setCopyLabel] = useState('Copy') + + function onCopy(value: any) { + navigator.clipboard.writeText(value).then( + function () { + /* clipboard successfully set */ + setCopyLabel('Copied') + setTimeout(function () { + setCopyLabel('Copy') + }, 3000) + }, + function () { + /* clipboard write failed */ + setCopyLabel('Failed to copy') + } + ) + } + + const { formContextOnChange, values, errors, handleBlur, touched, fieldLevelValidation } = + useFormContext() + + if (values && !value) value = values[id || name] + + function handleBlurEvent(e: React.FocusEvent) { + if (handleBlur) handleBlur(e) + if (onBlur) onBlur(e) + } + + if (!error) { + if (errors && !error) error = errors[id || name] + error = touched && touched[id || name] ? error : undefined + } + + function onInputChange(e: React.ChangeEvent) { + setCharLength(e.target.value.length) + if (onChange) onChange(e) + // update form + if (formContextOnChange) formContextOnChange(e) + // run field level validation + if (validation) fieldLevelValidation(id, validation(e.target.value)) + } + + useEffect(() => { + if (validation) fieldLevelValidation(id, validation(value)) + }, []) + + const __styles = styleHandler('input') + + let classes = [__styles.base] + + if (error) classes.push(__styles.variants.error) + if (!error) classes.push(__styles.variants.standard) + if (icon) classes.push(__styles.with_icon) + if (size) classes.push(__styles.size[size]) + if (disabled) classes.push(__styles.disabled) + + return ( + +
+ + {copy || error || actions ? ( +
+
+ {error && } + {copy && ( + + )} + {actions && actions} +
+
+ ) : null} +
+
+ ) +} + +Input.TextArea = TextArea + +export default Input diff --git a/packages/ui/src/components/Input/index.tsx b/packages/ui/src/components/Input/index.tsx new file mode 100644 index 00000000000..ae5c54e5bfb --- /dev/null +++ b/packages/ui/src/components/Input/index.tsx @@ -0,0 +1 @@ +export { default as Input } from './Input' diff --git a/packages/ui/src/components/InputNumber/InputNumber.module.css b/packages/ui/src/components/InputNumber/InputNumber.module.css new file mode 100644 index 00000000000..ef304850cd1 --- /dev/null +++ b/packages/ui/src/components/InputNumber/InputNumber.module.css @@ -0,0 +1,134 @@ +.sbui-inputnumber-container { + @apply relative; +} + +.sbui-inputnumber { + @apply block box-border pl-3 pr-3 py-2 w-full rounded-md shadow-sm text-sm border border-solid transition-all; + @apply bg-white text-input-value-light border-input-border-light; + @apply focus:ring-input-border-focus-light focus:border-input-border-focus-light focus:outline-none; + + @apply dark:bg-transparent dark:text-input-value-dark dark:border-input-border-dark; + @apply dark:focus:border-input-border-focus-dark dark:focus:ring-input-border-focus-dark; + + /* box-shadow: 0 0 0 2px rgba(255, 255, 255, 0); */ + font-family: inherit; + transition: box-shadow 0.3s ease-in-out; + + -moz-appearance: textfield; +} + +.sbui-inputnumber::-webkit-inner-spin-button, +.sbui-inputnumber::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.sbui-inputnumber:focus { + box-shadow: 0 0 0 2px rgba(62, 207, 142, 0.1); + outline: 0; +} + +.sbui-inputnumber--error { + @apply border-red-500 dark:border-red-500; +} + +.sbui-inputnumber--borderless { + @apply border-transparent shadow-none; +} + +.sbui-inputnumber-actions-container { + @apply absolute inset-y-0 right-0 pl-3 pr-1 flex items-center; +} + +.sbui-inputnumber-nav { + @apply hidden; +} + +.sbui-inputnumber:focus + .sbui-inputnumber-nav { + @apply block; +} + +.sbui-inputnumber-button { + @apply block box-border pl-3 pr-3 py-2 w-full rounded-md text-sm border border-solid; + @apply bg-transparent border-transparent; + @apply dark:text-white; + + position: relative; + cursor: pointer; + width: 21px; + text-align: center; + color: #333; + font-size: 13px; + line-height: 1.5; + padding: 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +.sbui-inputnumber-button:active { + background: #eaeaea; + background-clip: padding-box; +} + +.sbui-inputnumber-button-up { + position: absolute; + height: 50%; + top: 0; + border-radius: 0 0.375rem 0 0; + line-height: 1.6; +} + +.sbui-inputnumber-button-down { + position: absolute; + bottom: 0; + height: 50%; + border-radius: 0 0 0.375rem 0; +} + +/* + Input sizes + */ + +.sbui-inputnumber--tiny { + @apply px-2.5 py-1.5 text-xs; +} +.sbui-inputnumber--small { + @apply px-3 py-2 text-sm leading-4; +} +.sbui-inputnumber--medium { + @apply px-4 py-2 text-sm; +} +.sbui-inputnumber--large { + @apply px-4 py-2 text-base; +} +.sbui-inputnumber--xlarge { + @apply px-6 py-3 text-base; +} + +.sbui-inputnumber-nav--tiny { + height: 30px; +} +.sbui-inputnumber-nav--small { + height: 34px; +} +.sbui-inputnumber-nav--medium { + height: 38px; +} +.sbui-inputnumber-nav--large { + height: 42px; +} +.sbui-inputnumber-nav--xlarge { + height: 50px; +} +/* + Input icon + */ + +.sbui-inputnumber--with-icon { + @apply pl-10; +} diff --git a/packages/ui/src/components/InputNumber/InputNumber.stories.tsx b/packages/ui/src/components/InputNumber/InputNumber.stories.tsx new file mode 100644 index 00000000000..bce31a52703 --- /dev/null +++ b/packages/ui/src/components/InputNumber/InputNumber.stories.tsx @@ -0,0 +1,61 @@ +import React, { useState, useCallback } from 'react' +// import { AutoForm } from 'uniforms' + +import { InputNumber } from '.' +import { IconPackage } from './../../index' +import { Button } from '../Button' +import { Space } from '../Space' + +export default { + title: 'Data Input/InputNumber', + component: InputNumber, +} + +export const Default = (args: any) => + +export const ErrorState = (args: any) => + +export const WithIcon = (args: any) => + +export const Controlled = (props: any) => { + const [state, setState] = useState(() => undefined) + + const onChange = useCallback((e: React.ChangeEvent) => { + // console.log({ e, value: e.currentTarget.value }) + setState(e.currentTarget.value) + }, []) + + return +} + +Default.args = { + label: 'Max of 100 and min of 0', + disabled: false, + layout: 'vertical', + max: 100, + min: 0, +} + +ErrorState.args = { + disabled: false, + layout: 'vertical', + label: 'Input Number with an error message', + error: 'Input Number must be in range', +} + +WithIcon.args = { + label: 'Max of 100 and min of 0 with a Icon', + disabled: false, + layout: 'vertical', + max: 100, + min: 0, + icon: , +} + +Controlled.args = { + label: 'Max of 100 and min of 0', + disabled: false, + layout: 'vertical', + max: 100, + min: 0, +} diff --git a/packages/ui/src/components/InputNumber/InputNumber.tsx b/packages/ui/src/components/InputNumber/InputNumber.tsx new file mode 100644 index 00000000000..54694ad5cb7 --- /dev/null +++ b/packages/ui/src/components/InputNumber/InputNumber.tsx @@ -0,0 +1,195 @@ +import React, { useEffect } from 'react' +import { FormLayout } from '../../lib/Layout/FormLayout' +import InputErrorIcon from '../../lib/Layout/InputErrorIcon' +// import { IconChevronDown } from '../Icon/icons/IconChevronDown' +// import { IconChevronUp } from '../Icon/icons/IconChevronUp' +import InputIconContainer from '../../lib/Layout/InputIconContainer' + +import { useFormContext } from '../Form/FormContext' +import styleHandler from '../../lib/theme/styleHandler' + +export interface Props + extends Omit, 'size'> { + defaultValue?: string | number + descriptionText?: string | React.ReactNode + error?: string + icon?: any + inputRef?: React.RefObject + label?: string + afterLabel?: string + beforeLabel?: string + labelOptional?: string | React.ReactNode + actions?: React.ReactNode + layout?: 'horizontal' | 'vertical' + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' + validation?: (x: any) => void +} + +function InputNumber({ + defaultValue, + descriptionText, + error, + icon, + inputRef, + label, + afterLabel, + beforeLabel, + labelOptional, + layout, + value = undefined, + actions, + size = 'medium', + validation, + id = '', + name = '', + ...props +}: Props) { + const __styles = styleHandler('inputNumber') + + const { + formContextOnChange, + values, + errors, + handleBlur, + touched, + fieldLevelValidation, + } = useFormContext() + + if (values && !value) value = values[id || name] + + function handleBlurEvent(e: React.FocusEvent) { + if (handleBlur) handleBlur(e) + if (props.onBlur) props.onBlur(e) + } + + if (!error) { + if (errors && !error) error = errors[id || name] + error = touched && touched[id || name] ? error : undefined + } + + function onInputChange(e: React.ChangeEvent) { + if (props.onChange) props.onChange(e) + // update form + if (formContextOnChange) formContextOnChange(e) + // run field level validation + if (validation) fieldLevelValidation(id, validation(e.target.value)) + } + + useEffect(() => { + if (validation) fieldLevelValidation(id, validation(value)) + }, []) + + // const inputClasses = [InputNumberStyles['sbui-inputnumber']] + let inputClasses = [__styles.base] + + // const iconUpClasses = [ + // InputNumberStyles['sbui-inputnumber-button'], + // InputNumberStyles['sbui-inputnumber-button-up'], + // ] + + // const inputRefCurrent = inputRef + // ? inputRef + // : React.createRef() + + // const iconDownClasses = [ + // InputNumberStyles['sbui-inputnumber-button'], + // InputNumberStyles['sbui-inputnumber-button-down'], + // ] + + // const iconNavClasses = [InputNumberStyles['sbui-inputnumber-nav']] + + // if (size) { + // inputClasses.push(InputNumberStyles[`sbui-inputnumber--${size}`]) + // iconNavClasses.push(InputNumberStyles[`sbui-inputnumber-nav--${size}`]) + // } + + if (error) inputClasses.push(__styles.variants.error) + if (!error) inputClasses.push(__styles.variants.standard) + if (icon) inputClasses.push(__styles.with_icon) + if (size) inputClasses.push(__styles.size[size]) + if (props.disabled) inputClasses.push(__styles.disabled) + // if (borderless) + // inputClasses.push(InputNumberStyles['sbui-inputnumber--borderless']) + + // const onClickChevronUp = () => { + // inputRefCurrent.current?.stepUp() + // if (onChange) { + // inputRefCurrent.current?.dispatchEvent( + // new InputEvent('change', { + // view: window, + // bubbles: true, + // cancelable: false, + // }) + // ) + // } + // } + + // const onClickChevronDown = () => { + // inputRefCurrent.current?.stepDown() + // if (onChange) { + // inputRefCurrent.current?.dispatchEvent( + // new InputEvent('change', { + // view: window, + // bubbles: true, + // cancelable: false, + // }) + // ) + // } + // } + + return ( +
+ +
+ + {/*
+ { + e.preventDefault() + }} + /> + { + e.preventDefault() + }} + /> +
*/} + {icon && } + {error || actions ? ( +
+ {error && } + {actions && actions} +
+ ) : null} +
+
+
+ ) +} + +export default InputNumber diff --git a/packages/ui/src/components/InputNumber/index.ts b/packages/ui/src/components/InputNumber/index.ts new file mode 100644 index 00000000000..a3996279268 --- /dev/null +++ b/packages/ui/src/components/InputNumber/index.ts @@ -0,0 +1 @@ +export { default as InputNumber } from './InputNumber' diff --git a/packages/ui/src/components/InputOld/Input.css b/packages/ui/src/components/InputOld/Input.css new file mode 100644 index 00000000000..da67b809b72 --- /dev/null +++ b/packages/ui/src/components/InputOld/Input.css @@ -0,0 +1,15 @@ +.form-input:disabled { + @apply bg-gray-100 cursor-not-allowed; +} + +.form-input--small { + @apply text-sm py-1; +} + +.form-input--medium { + @apply text-base; +} + +.form-input--error { + @apply border-red-500; +} diff --git a/packages/ui/src/components/InputOld/Input.js b/packages/ui/src/components/InputOld/Input.js new file mode 100644 index 00000000000..036f9fe179b --- /dev/null +++ b/packages/ui/src/components/InputOld/Input.js @@ -0,0 +1,43 @@ +import React from 'react' +import PropTypes from 'prop-types' +import './Input.css' + +export const SIZES = ['small', 'medium'] + +const Input = ({ + className = '', + type='text', + size = 'medium', + isError = false, + children, + ...props +}) => { + const classes = [] + if (size) { + const sizeClasses = { + small: 'form-input--small', + medium: 'form-input--medium', + } + classes.push(sizeClasses[size]) + } + + if (isError) { + classes.push('form-input--error') + } + + return ( + + ) +} + +Input.propTypes = { + size: PropTypes.oneOf(SIZES), + isError: PropTypes.bool, + className: PropTypes.string, +} + +export default Input diff --git a/packages/ui/src/components/InputOld/Input.stories.js b/packages/ui/src/components/InputOld/Input.stories.js new file mode 100644 index 00000000000..90faec6c033 --- /dev/null +++ b/packages/ui/src/components/InputOld/Input.stories.js @@ -0,0 +1,14 @@ +import React from 'react' + +import { Input } from '.' + +export default { + title: 'Archive/Input Old', + component: Input, +} + +export const Default = (args) => +Default.args = { + placeholder: 'Type text here ...', + disabled: false +} diff --git a/packages/ui/src/components/InputOld/Input.test.js b/packages/ui/src/components/InputOld/Input.test.js new file mode 100644 index 00000000000..98fb06abcf9 --- /dev/null +++ b/packages/ui/src/components/InputOld/Input.test.js @@ -0,0 +1,20 @@ +import React from 'react' +import { render, screen } from '@testing-library/react' +import Input, { SIZES } from './Input' + +describe('#Input', () => { + it('should render input correctly', async () => { + render() + expect(screen.queryByTestId('form-input')).toBeInTheDocument() + }) + + it('should have "form-input--error" class', () => { + render() + expect(screen.queryByTestId('form-input')).toHaveClass('form-input border-solid form-input--error') + }) + + it.each(SIZES)('should have "form-input--%s" class', (size) => { + render() + expect(screen.queryByTestId('form-input')).toHaveClass(`form-input border-solid form-input--${size}`) + }) +}) \ No newline at end of file diff --git a/packages/ui/src/components/InputOld/index.js b/packages/ui/src/components/InputOld/index.js new file mode 100644 index 00000000000..ae5c54e5bfb --- /dev/null +++ b/packages/ui/src/components/InputOld/index.js @@ -0,0 +1 @@ +export { default as Input } from './Input' diff --git a/packages/ui/src/components/Introduction/Introduction.css b/packages/ui/src/components/Introduction/Introduction.css new file mode 100644 index 00000000000..1f3f0af43a7 --- /dev/null +++ b/packages/ui/src/components/Introduction/Introduction.css @@ -0,0 +1,5 @@ +@tailwind 'tailwindcss/base'; +/* Start purging... */ +@tailwind components; +@tailwind utilities; +/* Stop purging. */ diff --git a/packages/ui/src/components/Introduction/Introduction.stories.mdx b/packages/ui/src/components/Introduction/Introduction.stories.mdx new file mode 100644 index 00000000000..ad31a53a00b --- /dev/null +++ b/packages/ui/src/components/Introduction/Introduction.stories.mdx @@ -0,0 +1,217 @@ +import { Meta } from '@storybook/addon-docs/blocks' +import Code from './assets/code-brackets.svg' +import Colors from './assets/colors.svg' +import Comments from './assets/comments.svg' +import Direction from './assets/direction.svg' +import Flow from './assets/flow.svg' +import Plugin from './assets/plugin.svg' +import Repo from './assets/repo.svg' +import StackAlt from './assets/stackalt.svg' + +import './Introduction.css' + + + + + +# Welcome to Storybook + +Storybook helps you build UI components in isolation from your app's business logic, data, and context. +That makes it easy to develop hard-to-reach states. Save these UI states as **stories** to revisit during development, testing, or QA. + +Browse example stories now by navigating to them in the sidebar. +View their code in the `src/storybook-examples` directory to learn how they work. +We recommend building UIs with a [**component-driven**](https://componentdriven.org) process starting with atomic components and ending with pages. + +
Configure
+ + + +
Learn
+ + + +
+ TipEdit the Markdown in{' '} + src/storybook-examples/welcome.mdx +
diff --git a/packages/ui/src/components/Introduction/assets/code-brackets.svg b/packages/ui/src/components/Introduction/assets/code-brackets.svg new file mode 100644 index 00000000000..73de9477600 --- /dev/null +++ b/packages/ui/src/components/Introduction/assets/code-brackets.svg @@ -0,0 +1 @@ +illustration/code-brackets \ No newline at end of file diff --git a/packages/ui/src/components/Introduction/assets/colors.svg b/packages/ui/src/components/Introduction/assets/colors.svg new file mode 100644 index 00000000000..17d58d516e1 --- /dev/null +++ b/packages/ui/src/components/Introduction/assets/colors.svg @@ -0,0 +1 @@ +illustration/colors \ No newline at end of file diff --git a/packages/ui/src/components/Introduction/assets/comments.svg b/packages/ui/src/components/Introduction/assets/comments.svg new file mode 100644 index 00000000000..6493a139f52 --- /dev/null +++ b/packages/ui/src/components/Introduction/assets/comments.svg @@ -0,0 +1 @@ +illustration/comments \ No newline at end of file diff --git a/packages/ui/src/components/Introduction/assets/direction.svg b/packages/ui/src/components/Introduction/assets/direction.svg new file mode 100644 index 00000000000..65676ac2722 --- /dev/null +++ b/packages/ui/src/components/Introduction/assets/direction.svg @@ -0,0 +1 @@ +illustration/direction \ No newline at end of file diff --git a/packages/ui/src/components/Introduction/assets/flow.svg b/packages/ui/src/components/Introduction/assets/flow.svg new file mode 100644 index 00000000000..8ac27db403c --- /dev/null +++ b/packages/ui/src/components/Introduction/assets/flow.svg @@ -0,0 +1 @@ +illustration/flow \ No newline at end of file diff --git a/packages/ui/src/components/Introduction/assets/plugin.svg b/packages/ui/src/components/Introduction/assets/plugin.svg new file mode 100644 index 00000000000..29e5c690c0a --- /dev/null +++ b/packages/ui/src/components/Introduction/assets/plugin.svg @@ -0,0 +1 @@ +illustration/plugin \ No newline at end of file diff --git a/packages/ui/src/components/Introduction/assets/repo.svg b/packages/ui/src/components/Introduction/assets/repo.svg new file mode 100644 index 00000000000..f386ee902c1 --- /dev/null +++ b/packages/ui/src/components/Introduction/assets/repo.svg @@ -0,0 +1 @@ +illustration/repo \ No newline at end of file diff --git a/packages/ui/src/components/Introduction/assets/stackalt.svg b/packages/ui/src/components/Introduction/assets/stackalt.svg new file mode 100644 index 00000000000..9b7ad274350 --- /dev/null +++ b/packages/ui/src/components/Introduction/assets/stackalt.svg @@ -0,0 +1 @@ +illustration/stackalt \ No newline at end of file diff --git a/packages/ui/src/components/Listbox/Listbox2.tsx b/packages/ui/src/components/Listbox/Listbox2.tsx new file mode 100644 index 00000000000..5366c6062b5 --- /dev/null +++ b/packages/ui/src/components/Listbox/Listbox2.tsx @@ -0,0 +1,344 @@ +/* This example requires Tailwind CSS v2.0+ */ +import React, { useEffect, useRef, useState } from 'react' +import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu' +import { FormLayout } from '../../lib/Layout/FormLayout' + +import InputIconContainer from '../../lib/Layout/InputIconContainer' +import InputErrorIcon from '../../lib/Layout/InputErrorIcon' +import { IconCheck } from '../Icon/icons/IconCheck' + +import { useFormContext } from '../Form/FormContext' +import { flatten } from 'lodash' + +import { SelectContext } from './SelectContext' + +import styleHandler from '../../lib/theme/styleHandler' + +function classNames(...classes: any) { + return classes.filter(Boolean).join(' ') +} + +export interface Props + extends Omit, 'size'> { + className?: string + children: React.ReactNode + descriptionText?: string + error?: string + icon?: any + id?: string + label?: string + labelOptional?: string + layout?: 'horizontal' | 'vertical' + style?: React.CSSProperties + value?: any + reveal?: boolean + actions?: React.ReactNode + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' + defaultValue?: any + borderless?: boolean + validation?: (x: any) => void + optionsWidth?: number + // override the button prop for onchange we only return a single value + // rather than a ChangeEvent + onChange?: (x: any) => void +} + +function Listbox({ + children, + className, + descriptionText, + error, + icon, + id = '', + name = '', + label, + labelOptional, + layout, + value = undefined, + onChange, + onFocus, + onBlur, + style, + size = 'medium', + defaultValue, + borderless = false, + validation, + disabled, + optionsWidth, +}: Props) { + const [selected, setSelected] = useState(undefined) + const [selectedNode, setSelectedNode] = useState({}) + + const __styles = styleHandler('listbox') + + const triggerRef = useRef(null) + + const { + formContextOnChange, + values, + errors, + handleBlur, + touched, + fieldLevelValidation, + } = useFormContext() + + if (values && !value) { + defaultValue = values[id || name] + } + + function handleBlurEvent(e: React.FocusEvent) { + if (handleBlur) handleBlur(e) + if (onBlur) onBlur(e) + } + + if (!error) { + if (errors && !error) error = errors[id || name] + error = touched && touched[id || name] ? error : undefined + } + + useEffect(() => { + if (value) { + setSelected(value) + } + }, [value]) + + useEffect(() => { + // handle listbox options width size + + function handleResize() { + // Set window width/height to state + + document.documentElement.style.setProperty( + '--width-listbox', + `${optionsWidth ? optionsWidth : triggerRef.current?.offsetWidth}px` + ) + } + + // Add event listener + window.addEventListener('resize', handleResize) + + // Call handler right away so state gets updated with initial window size + handleResize() + + // Remove event listener on cleanup + return () => window.removeEventListener('resize', handleResize) + }, []) + + useEffect(() => { + const data: any = children + const content: any = flatten(data) + + function findNode(_value: any) { + return content.find((node: any) => node.props.value === _value) + } + + /* + * value prop overrides everything + */ + if (value) { + setSelected(value) + const node: any = findNode(value) + setSelectedNode(node?.props ? node.props : undefined) + return + } + + /* + * if no value prop, then use selected state + */ + if (selected) { + const node: any = findNode(selected) + setSelectedNode(node?.props ? node.props : undefined) + return + } else if (defaultValue) { + setSelected(defaultValue) + const node: any = findNode(selected) + setSelectedNode(node?.props ? node.props : undefined) + return + } else { + /* + * if no selected value (including a `defaultvalue`), then use first child + */ + setSelectedNode(content[0].props) + return + } + }, [selected]) + + function handleOnChange(value: any) { + if (onChange) onChange(value) + setSelected(value) + + /* + * Create change event for formik + * formik expects an input change event + */ + let event: any = {} + event.target = { + type: 'select', + name: name, + id: id, + value: value, + checked: undefined, + // outerHTML: undefined, + // options: undefined, + // multiple: undefined, + } + + // update form + // Create a new 'change' event + if (formContextOnChange) formContextOnChange(event) + // run field level validation + if (validation) fieldLevelValidation(id, validation(value)) + } + + let selectClasses = [__styles.container, __styles.base] + if (error) selectClasses.push(__styles.variants.error) + if (!error) selectClasses.push(__styles.variants.standard) + // if (icon) selectClasses.push(SelectStyles['sbui-listbox--with-icon']) + if (icon) selectClasses.push(__styles.with_icon) + // if (size) selectClasses.push(SelectStyles[`sbui-listbox--${size}`]) + if (size) selectClasses.push(__styles.size[size]) + // if (borderless) selectClasses.push(SelectStyles['sbui-listbox--borderless']) + if (disabled) selectClasses.push(__styles.disabled) + + return ( + + + + + + +
+ + {children} + +
+
+
+
+ ) +} + +interface OptionProps { + id?: string + value: any + label: string + disabled?: boolean + children?: React.ReactNode + className?: string + addOnBefore?: ({ active, selected }: any) => React.ReactNode +} + +type addOnBefore = { + selected: boolean + active: boolean +} + +function SelectOption({ + id, + value, + label, + disabled = false, + children, + className = '', + addOnBefore, +}: OptionProps) { + const __styles = styleHandler('listbox') + + return ( + + {({ onChange, selected }) => { + const active = selected === value ? true : false + + return ( + (!disabled ? onChange(value) : {})} + > +
+ {addOnBefore && addOnBefore({ active, selected })} + + {typeof children === 'function' + ? children({ active, selected }) + : children} + +
+ + {active ? ( + + + ) : null} +
+ ) + }} +
+ ) +} + +Listbox.Option = SelectOption + +export default Listbox diff --git a/packages/ui/src/components/Listbox/SelectContext.tsx b/packages/ui/src/components/Listbox/SelectContext.tsx new file mode 100644 index 00000000000..83a3621d376 --- /dev/null +++ b/packages/ui/src/components/Listbox/SelectContext.tsx @@ -0,0 +1,8 @@ +import { createContext } from 'react' + +// Make sure the shape of the default value passed to +// createContext matches the shape that the consumers expect! +export const SelectContext = createContext({ + onChange: (e: any) => {}, + selected: undefined, +}) diff --git a/packages/ui/src/components/Listbox/SelectStyled.module.css b/packages/ui/src/components/Listbox/SelectStyled.module.css new file mode 100644 index 00000000000..e2cc7c937ff --- /dev/null +++ b/packages/ui/src/components/Listbox/SelectStyled.module.css @@ -0,0 +1,145 @@ +/* .sbui-listbox-container { + @apply relative; +} */ + +/* .sbui-listbox { + @apply block w-full bg-white pl-3 pr-10 py-2 text-sm rounded-md transition-all; + @apply text-gray-700 border border-solid border-gray-300; + @apply cursor-default focus:outline-none focus:ring-1 focus:ring-brand-600 focus:border-brand-600; + @apply dark:bg-transparent dark:text-white dark:border-gray-500; + @apply dark:focus:border-brand-500; + -webkit-appearance: none; + -moz-appearance: none; + text-indent: 1px; + text-overflow: ''; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0); + transition: box-shadow 0.3s ease-in-out; */ + +/* // temporary fix + // + // temporary fix for supabase apps + // tailwind @base styles adds a dropdown chevron + // using background image as default + // */ +/* background-image: none; +} */ + +.sbui-listbox:focus { + box-shadow: 0 0 0 2px rgba(62, 207, 142, 0.1); +} + +.sbui-listbox--error { + @apply border-red-500 dark:border-red-500; +} + +.sbui-listbox--borderless { + @apply border-transparent shadow-none; +} + +/* + Select sizes +*/ + +/* .sbui-listbox--tiny { + @apply px-2.5 py-1.5 text-xs; +} +.sbui-listbox--small { + @apply px-3 py-2 text-sm leading-4; +} +.sbui-listbox--medium { + @apply px-4 py-2 text-sm; +} +.sbui-listbox--large { + @apply px-4 py-2 text-base; +} +.sbui-listbox--xlarge { + @apply px-6 py-3 text-base; +} */ + +/* .sbui-listbox-actions-container { + @apply absolute inset-y-0 right-0 pl-3 pr-1 mr-5 flex items-center; +} */ + +/* + Select icon +*/ + +/* .sbui-listbox--with-icon { + @apply pl-10; +} */ + +/* + Add on before +*/ + +/* .sbui-listbox-addonbefore { + @apply w-full flex flex-row items-center space-x-3; +} */ + +.sbui-listbox-label { + @apply truncate; +} + +/* + Select Chevron +*/ + +.sbui-listbox-chevron-container { + @apply absolute inset-y-0 right-0 flex items-center pr-2 pointer-events-none; +} + +.sbui-listbox-chevron { + @apply h-5 w-5 text-gray-400; +} + +/* + Option +*/ + +/* .sbui-listbox-option-container { + @apply list-none p-0 absolute mt-1 w-full bg-white dark:bg-gray-800 shadow-lg border border-solid border-gray-100 dark:border-gray-600 max-h-60 rounded-md py-1 text-base ring-1 ring-black ring-opacity-5 overflow-auto focus:outline-none sm:text-sm z-10; +} */ + +/* .sbui-listbox-option { + @apply cursor-pointer select-none relative py-2 pl-3 pr-9 text-gray-900 dark:text-white; +} */ + +/* .sbui-listbox-option--active { + @apply text-brand-600 dark:text-brand-600 bg-brand-600 bg-opacity-20; +} + +.sbui-listbox-option--disabled { + @apply cursor-not-allowed opacity-50; +} */ + +/* .sbui-listbox-option__inner { + @apply flex items-center space-x-3; +} */ + +/* .sbui-listbox-option__check { + @apply absolute inset-y-0 right-0 flex items-center pr-3; +} + +.sbui-listbox-option__check--active { + @apply text-brand-600; +} */ + +.sbui-listbox-option__check__icon { + @apply h-5 w-5; +} + +/* + Transition +*/ + +.sbui-listbox-transition--leave { + @apply transition ease-in duration-100; +} + +.sbui-listbox-transition--leave-from { + @apply opacity-100; +} + +.sbui-listbox-transition--leave-to { + @apply opacity-0; +} diff --git a/packages/ui/src/components/Listbox/SelectStyled.stories.tsx b/packages/ui/src/components/Listbox/SelectStyled.stories.tsx new file mode 100644 index 00000000000..bbba34198a0 --- /dev/null +++ b/packages/ui/src/components/Listbox/SelectStyled.stories.tsx @@ -0,0 +1,399 @@ +import React, { useState } from 'react' + +import Listbox from './Listbox2' +import { IconBook, IconUser } from '../../index' +import { Button } from '../Button' +import Typography from '../Typography' + +export default { + title: 'Data Input/Listbox', + component: Listbox, +} + +const { Option } = Listbox + +const options = [ + { value: 'one', label: 'one' }, + { value: 'two', label: 'two' }, + { value: 'three', label: 'three' }, + { value: 'four', label: 'four' }, +] + +export const Default = (args: any) => ( + + {options.map((option) => { + return ( + { + // console.log('selected', selected) + // console.log('active', active) + return {option.label} + }} + /> + ) + })} + +) + +export const ListBoxDisabled = (args: any) => ( + + + Option 1 + + + Option 2 + + + Option 3 + + +) + +export const WithDisabled = (args: any) => ( + + + Option 1 + + + Option 2 + + + Option 3 + + +) + +const people = [ + { + value: 1, + label: 'Wade Cooper', + avatar: + 'https://images.unsplash.com/photo-1491528323818-fdd1faba62cc?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 2, + label: 'Arlene Mccoy', + avatar: + 'https://images.unsplash.com/photo-1550525811-e5869dd03032?ixlib=rb-1.2.1&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 3, + label: 'Devon Webb', + avatar: + 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.25&w=256&h=256&q=80', + }, + { + value: 4, + label: 'Tom Cook', + avatar: + 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 5, + label: 'Tanya Fox', + avatar: + 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 6, + label: 'Hellen Schmidt', + avatar: + 'https://images.unsplash.com/photo-1487412720507-e7ab37603c6f?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 7, + label: 'Caroline Schultz', + avatar: + 'https://images.unsplash.com/photo-1568409938619-12e139227838?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 8, + label: 'Mason Heaney', + avatar: + 'https://images.unsplash.com/photo-1531427186611-ecfd6d936c79?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 9, + label: 'Claudie Smitham', + avatar: + 'https://images.unsplash.com/photo-1584486520270-19eca1efcce5?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, + { + value: 10, + label: 'Emil Schaefer', + avatar: + 'https://images.unsplash.com/photo-1561505457-3bcad021f8ee?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80', + }, +] + +export const People = (args: any) => ( +
+ + {people.map((person) => { + return ( + [ + , + ]} + children={({ active, selected }: any) => { + // console.log('selected', selected) + // console.log('active', active) + return ( + + {person.label} + + ) + }} + /> + ) + })} + +
+) + +People.args = { + disabled: false, + label: 'Label', + layout: 'vertical', + size: 'medium', +} + +export const WithState = (args: any) => { + const [value, setValue] = useState('foo') + return ( + setValue(value)} + label="Choose a person" + layout="horizontal" + descriptionText="Choose a person for this role" + > + + foo + + {people.map((person) => { + return ( + [ + , + ]} + children={({ active, selected }: any) => { + return ( + + {person.label} + + ) + }} + /> + ) + })} + + ) +} + +WithState.args = { + disabled: false, + label: 'Label', + layout: 'vertical', + size: 'medium', +} + +export const WithIcon = (args: any) => ( +
+ } + label="Choose a person" + layout="horizontal" + descriptionText="Choose a person for this role" + > + {people.map((person) => { + return ( + [ + , + ]} + children={({ active, selected }: any) => { + // console.log('selected', selected) + // console.log('active', active) + return ( + + {person.label} + + ) + }} + /> + ) + })} + +
+) + +WithIcon.args = { + disabled: false, + label: 'Label', + layout: 'vertical', + size: 'medium', +} + +// export const Default = (args: any) => ( +// +// +// +// +// +// ) + +// export const withCheckboxes = (args: any) => + +export const ErrorState = (args: any) => ( + + {people.map((person) => { + return ( + [ + , + ]} + > + {person.label} + + ) + })} + +) + +ErrorState.args = { + label: 'Choose a person', + descriptionText: 'Choose a person for this role', +} + +export const ListBoxChildrenPropChange = (args: any) => { + const [countries, setCountries] = useState([ + 'England', + 'Wales', + 'Scotland', + 'Ireland', + ]) + + function handlePop() { + console.log('handlepop') + let _data = [] + _data = countries + _data.pop() + setCountries([..._data]) + + console.log(countries) + } + + return ( + <> + {countries.map((country) => { + return {country} + })} + + {countries.map((country) => { + return ( + + {country} + + ) + })} + + Disabled + + + + + ) +} + +ListBoxChildrenPropChange.args = { + label: 'Choose a country', +} + +export const ValueChange = (args: any) => { + const [countries, setCountries] = useState([ + 'England', + 'Wales', + 'Scotland', + 'Ireland', + ]) + + const [value, setValue] = useState('England') + + function handleRandom() { + const random = countries[Math.floor(Math.random() * countries.length)] + setValue(random) + } + + return ( + <> + current value: {value} +
+ + {countries.map((country) => { + return ( + + {country} + + ) + })} + + Disabled + + +
+ + + ) +} + +ValueChange.args = { + label: 'Choose a country', +} diff --git a/packages/ui/src/components/Listbox/SelectStyled.test.js b/packages/ui/src/components/Listbox/SelectStyled.test.js new file mode 100644 index 00000000000..ca4eca6aa86 --- /dev/null +++ b/packages/ui/src/components/Listbox/SelectStyled.test.js @@ -0,0 +1,27 @@ +import React from 'react' +import { render, screen } from '@testing-library/react' +import Select from './Listbox' + +describe('#Select', () => { + it('should render select correctly', async () => { + render( + + ) + expect(screen.queryByTestId('form-select')).toBeInTheDocument() + }) + + it('should have "form-select--error" class', () => { + render( + + ) + expect(screen.queryByTestId('form-select')).toHaveClass( + 'form-select border-solid form-select--error' + ) + }) +}) diff --git a/packages/ui/src/components/Listbox/index.tsx b/packages/ui/src/components/Listbox/index.tsx new file mode 100644 index 00000000000..79f42296955 --- /dev/null +++ b/packages/ui/src/components/Listbox/index.tsx @@ -0,0 +1,3 @@ +import Listbox from './Listbox2' +export default Listbox +export { default as Listbox } from './Listbox2' diff --git a/packages/ui/src/components/Loading/Loading.module.css b/packages/ui/src/components/Loading/Loading.module.css new file mode 100644 index 00000000000..fe814195451 --- /dev/null +++ b/packages/ui/src/components/Loading/Loading.module.css @@ -0,0 +1,20 @@ +.sbui-loading { + @apply transition-all relative; +} + +.sbui-loading--active .sbui-loading-content { + opacity: 0.4; +} +.sbui-loading-content { + @apply transition-opacity duration-300; +} + +.sbui-loading-spinner { + @apply text-brand-800 animate-spin; + margin: auto; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; +} diff --git a/packages/ui/src/components/Loading/Loading.stories.tsx b/packages/ui/src/components/Loading/Loading.stories.tsx new file mode 100644 index 00000000000..1283e417d1a --- /dev/null +++ b/packages/ui/src/components/Loading/Loading.stories.tsx @@ -0,0 +1,23 @@ +import React, { useState } from 'react' + +import { Loading } from '.' +import { Card } from '../Card' + +export default { + title: 'Utilities/Loading', + component: Loading, +} + +export const Default = (args: any) => { + return ( + <> + + + + + ) +} + +Default.args = { + active: true, +} diff --git a/packages/ui/src/components/Loading/Loading.tsx b/packages/ui/src/components/Loading/Loading.tsx new file mode 100644 index 00000000000..fe5de53dff5 --- /dev/null +++ b/packages/ui/src/components/Loading/Loading.tsx @@ -0,0 +1,28 @@ +import React from 'react' +import styleHandler from '../../lib/theme/styleHandler' +import { IconLoader } from './../../../index' + +interface Props { + children: React.ReactNode + active: boolean +} +export default function Loading({ children, active }: Props) { + const __styles = styleHandler('loading') + + let classNames = [__styles.base] + + let contentClasses = [__styles.content.base] + + if (active) { + contentClasses.push(__styles.content.active) + } + + let spinnerClasses = [__styles.spinner] + + return ( +
+
{children}
+ {active && } +
+ ) +} diff --git a/packages/ui/src/components/Loading/index.tsx b/packages/ui/src/components/Loading/index.tsx new file mode 100644 index 00000000000..10f5e3f5c36 --- /dev/null +++ b/packages/ui/src/components/Loading/index.tsx @@ -0,0 +1 @@ +export { default as Loading } from './Loading' diff --git a/packages/ui/src/components/Menu/Menu.module.css b/packages/ui/src/components/Menu/Menu.module.css new file mode 100644 index 00000000000..189981a4242 --- /dev/null +++ b/packages/ui/src/components/Menu/Menu.module.css @@ -0,0 +1,35 @@ +.sbui-menu__item { + @apply px-4 py-2; + @apply cursor-pointer; + @apply hover:bg-gray-100 dark:hover:bg-dark-700 transition-colors duration-150; +} + +.sbui-menu__group { + @apply px-4 py-2; +} + +.sbui-menu__content { + @apply w-full; +} + +.sbui-menu__item--active { + @apply bg-gray-100; + @apply dark:bg-gray-600; + + @apply text-gray-900; + @apply dark:text-white; +} + +.sbui-menu__item--active .sbui-menu__content { + @apply text-gray-600; + @apply dark:text-white; +} + +.sbui-menu__item--active--bar { + @apply border-l-4 border-brand-500; + border-left-style: solid; +} + +.sbui-menu__item--rounded { + @apply rounded; +} diff --git a/packages/ui/src/components/Menu/Menu.stories.tsx b/packages/ui/src/components/Menu/Menu.stories.tsx new file mode 100644 index 00000000000..4ba2d746e57 --- /dev/null +++ b/packages/ui/src/components/Menu/Menu.stories.tsx @@ -0,0 +1,136 @@ +import React from 'react' + +import { Divider } from '../Divider' +import { IconMail } from './../../index' +import Typography from '../Typography' + +import { Menu } from './' +import { Button } from '../Button' +import { IconDatabase } from '../Icon/icons/IconDatabase' +import { IconMenu } from '../Icon/icons/IconMenu' +import { IconRefreshCcw } from '../Icon/icons/IconRefreshCcw' + +export default { + title: 'Navigation/Menu', + component: Menu, +} + +const SampleIcon = () => + +export const Default = (args: any) => ( + + }>Account settings + + }>Account settings + }>Account settings + +) + +export const withActiveState = (args: any) => ( + + }>Account settings + + }> + Account settings + + }>Account settings + +) + +export const pills = (args: any) => ( + + }>Account settings + + }> + Account settings + + }>Account settings + +) + +export const border = (args: any) => ( + + }>Account settings + + }> + Account settings + + }>Account settings + +) + +export const Groups = () => ( + + + }>Account settings + }>Account settings + }>Account settings + + }>Account settings + }>Account settings + +) + +export const PillsAndGroups = () => ( + + + }>Account settings + } active> + Account settings + + }>Account settings + + }>Account settings + }>Account settings + +) + +export const BorderAndGroups = () => ( + + + }>Account settings + }>Account settings + } active> + Account settings + + + }>Account settings + }>Account settings + +) + +export const CustomNode = () => ( + + +
+ All tables + +
+ + } + /> + }> +
+ Account settings + +
+
+ }> +
+ Account settings + +
+
+ } active> + Account settings + + + }>Account settings + }>Account settings +
+) diff --git a/packages/ui/src/components/Menu/Menu.tsx b/packages/ui/src/components/Menu/Menu.tsx new file mode 100644 index 00000000000..b57d781ddd5 --- /dev/null +++ b/packages/ui/src/components/Menu/Menu.tsx @@ -0,0 +1,139 @@ +import React from 'react' +import { Space } from '../Space' +import Typography from '../Typography' +import { MenuContextProvider, useMenuContext } from './MenuContext' + +import styleHandler from '../../lib/theme/styleHandler' + +interface MenuProps { + children: React.ReactNode + className?: string + style?: React.CSSProperties + type?: 'text' | 'pills' | 'border' +} + +function Menu({ children, className, style, type = 'text' }: MenuProps) { + return ( + + ) +} + +interface ItemProps { + children: React.ReactNode + icon?: React.ReactNode + active?: boolean + rounded?: boolean + onClick?: any + doNotCloseOverlay?: boolean + showActiveBar?: boolean + style?: React.CSSProperties +} + +export function Item({ + children, + icon, + active, + rounded, + onClick, + doNotCloseOverlay = false, + showActiveBar = false, + style, +}: ItemProps) { + const __styles = styleHandler('menu') + + const { type } = useMenuContext() + + let classes = [__styles.item.base] + + classes.push(__styles.item.variants[type].base) + + if (active) { + classes.push(__styles.item.variants[type].active) + } else { + classes.push(__styles.item.variants[type].normal) + } + + let contentClasses = [__styles.item.content.base] + if (active) { + contentClasses.push(__styles.item.content.active) + } else { + contentClasses.push(__styles.item.content.normal) + } + + let iconClasses = [__styles.item.icon.base] + if (active) { + iconClasses.push(__styles.item.icon.active) + } else { + iconClasses.push(__styles.item.icon.normal) + } + + return ( +
  • + + {icon && {icon}} + {children} + +
  • + ) +} + +interface GroupProps { + children?: React.ReactNode + icon?: React.ReactNode + title: string +} + +export function Group({ children, icon, title }: GroupProps) { + const __styles = styleHandler('menu') + const { type } = useMenuContext() + return ( +
    + {icon && {icon}} + {title} + {children} +
    + ) +} + +interface MiscProps { + children: React.ReactNode +} + +export function Misc({ children }: MiscProps) { + return ( +
    + + + {children} + + +
    + ) +} + +Menu.Item = Item +Menu.Group = Group +Menu.Misc = Misc +export default Menu diff --git a/packages/ui/src/components/Menu/MenuContext.tsx b/packages/ui/src/components/Menu/MenuContext.tsx new file mode 100644 index 00000000000..3e8b71ab3d8 --- /dev/null +++ b/packages/ui/src/components/Menu/MenuContext.tsx @@ -0,0 +1,36 @@ +import React, { createContext, useContext } from 'react' + +interface ContextProps { + type: 'text' | 'pills' | 'border' +} + +interface Provider extends ContextProps { + children?: React.ReactNode +} + +// Make sure the shape of the default value passed to +// createContext matches the shape that the consumers expect! +const MenuContext = createContext({ + type: 'text', +}) + +export const MenuContextProvider = (props: Provider) => { + const { type } = props + + const value = { + type: type, + } + + return ( + {props.children} + ) +} + +// context helper to avoid using a consumer component +export const useMenuContext = () => { + const context = useContext(MenuContext) + if (context === undefined) { + throw new Error(`MenuContext must be used within a MenuContextProvider.`) + } + return context +} diff --git a/packages/ui/src/components/Menu/index.tsx b/packages/ui/src/components/Menu/index.tsx new file mode 100644 index 00000000000..03d4d6a4092 --- /dev/null +++ b/packages/ui/src/components/Menu/index.tsx @@ -0,0 +1 @@ +export { default as Menu } from './Menu' diff --git a/packages/ui/src/components/Modal/Modal.module.css b/packages/ui/src/components/Modal/Modal.module.css new file mode 100644 index 00000000000..447c46d3585 --- /dev/null +++ b/packages/ui/src/components/Modal/Modal.module.css @@ -0,0 +1,137 @@ +/* + Modal animations imported first as so placement styles are not affected. +*/ + +/* overlay animation */ +.sbui-modal-overlay--enter { + @apply ease-out duration-200; +} +.sbui-modal-overlay--enterFrom { + @apply opacity-0; +} +.sbui-modal-overlay--enterTo { + @apply opacity-100; +} +.sbui-modal-overlay--leave { + @apply ease-in duration-150; +} +.sbui-modal-overlay--leaveFrom { + @apply opacity-100; +} +.sbui-modal-overlay--leaveTo { + @apply opacity-0; +} + +/* modal animation */ +.sbui-modal--enter { + @apply ease-out duration-150 delay-150; +} +.sbui-modal--enterFrom { + @apply opacity-0 translate-y-4 sm:translate-y-0 transform sm:scale-95; +} +.sbui-modal--enterTo { + @apply opacity-100 translate-y-0 transform sm:scale-100; +} +.sbui-modal--leave { + @apply ease-in duration-150; +} +.sbui-modal--leaveFrom { + @apply opacity-100 translate-y-0 transform sm:scale-100; +} +.sbui-modal--leaveTo { + @apply opacity-0 translate-y-4 sm:translate-y-0 transform sm:scale-95; +} + +.sbui-modal-container { + @apply fixed z-50 inset-0; +} + +.sbui-modal-flex-container { + @apply flex items-end justify-center min-h-screen pt-4 px-6 pb-20 text-center sm:block sm:p-0; +} + +.sbui-modal-overlay-container { + @apply fixed inset-0 transition-opacity; +} + +.sbui-modal-overlay { + @apply absolute inset-0 bg-gray-900 opacity-75; +} + +.sbui-modal-div-trick { + @apply hidden sm:inline-block sm:align-middle sm:h-screen; +} + +/* .sbui-modal { + @apply inline-block bg-white dark:bg-dark-800 rounded-lg text-left overflow-hidden shadow-xl transform transition-all align-middle; + @apply border-gray-400 border border-solid; + @apply dark:border-gray-600 border border-solid; + + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} */ + +.sbui-modal--tiny { + @apply sm:align-middle sm:w-full sm:max-w-xs; +} + +.sbui-modal--small { + @apply sm:align-middle sm:w-full sm:max-w-sm; +} + +.sbui-modal--medium { + @apply sm:align-middle sm:w-full sm:max-w-lg; +} + +.sbui-modal--large { + @apply sm:align-middle sm:w-full max-w-xl; +} + +.sbui-modal-content { + @apply px-6 pt-5 pb-5 sm:p-6; +} + +.sbui-modal-footer { + @apply sm:flex sm:flex-row justify-end; +} + +.sbui-modal-footer--with-bg { + @apply bg-gray-50 dark:bg-dark-600 px-6 py-3 sm:px-6 sm:flex sm:flex-row justify-end; +} + +.sbui-modal-icon-container { + @apply mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full sm:mx-0 sm:h-10 sm:w-10; +} + +.sbui-modal-icon-container--danger { + @apply text-red-600 bg-red-600 bg-opacity-20; +} + +.sbui-modal-icon-container--warning { + @apply text-yellow-500 bg-yellow-500 bg-opacity-20; +} + +.sbui-modal-icon-container--success { + @apply text-brand-500 bg-brand-500 bg-opacity-20; +} + +.sbui-modal-close-container { + @apply absolute right-1 top-1; +} + +.sbui-modal-close-container button, +.dark .sbui-modal-close-container button { + @apply text-gray-300; + @apply hover:text-gray-400; + + /* @apply dark:text-dark-400; */ + @apply hover:text-dark-300; + + @apply hover:bg-transparent; +} + +.sbui-sidepanel__trigger { + @apply border-none bg-transparent p-0 focus:ring-0; +} diff --git a/packages/ui/src/components/Modal/Modal.stories.tsx b/packages/ui/src/components/Modal/Modal.stories.tsx new file mode 100644 index 00000000000..bf1f499fe05 --- /dev/null +++ b/packages/ui/src/components/Modal/Modal.stories.tsx @@ -0,0 +1,602 @@ +import { actions } from '@storybook/addon-actions' +import React, { useState } from 'react' +import { action } from '@storybook/addon-actions' + +import { Modal } from '.' +import Typography from '../Typography' +import { Badge } from '../Badge' +import { Form } from '../Form' +import { Button } from '../Button' +import { Space } from '../Space' +import { IconTrash, IconAlertCircle, IconCheck } from './../../index' +import { Dropdown } from '../Dropdown' +import { IconGlobe } from '../Icon/icons/IconGlobe' +import { IconLink2 } from '../Icon/icons/IconLink2' +import { Input } from '../Input' + +export default { + title: 'Overlays/Modal', + component: Modal, + argTypes: { onClick: { action: 'clicked' } }, +} + +export const withUseState = () => { + const [visible, setVisible] = useState(false) + + return ( + <> +
    +
    +

    Delete your project

    +

    + It will be sad to see you go +

    +
    + +
    +
    + setVisible(!visible)} + header={ +
    + {/*
    + +
    */} +
    +

    Delete your project

    + Are you sure? +
    +
    + } + contentStyle={{ padding: 0 }} + hideFooter + > +
    { + setTimeout(() => { + // alert(JSON.stringify(values, null, 2)) + setSubmitting(false) + setVisible(false) + }, 400) + }} + validate={(values) => { + const errors: any = {} + if (!values.name) { + errors.name = 'Project name is required' + } else if (values.name !== 'MyProject') { + errors.name = 'Does not match project name' + } + return errors + }} + > + {({ isSubmitting, errors, touched }: any) => { + console.log('errors in form', errors) + console.log('touched in form', touched) + return ( +
    +
    + + + + Once deleted, this project cannot be restored. Please + proceed carefully. + + +
    +
    +

    + This action cannot be undone. This will permanently delete + the project{' '} + + MyProject + + . +

    +
    +
    +
    + +
    +
    +
    + +
    +
    + ) + }} +
    +
    +
    + + ) +} + +export const Default = (args: any) => ( + +
    + +
    +
    +

    This is the title

    + This is the title +
    +
    + } + > + + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via{' '} + {'{children}'} + + +) + +export const withIcon = (args: any) => ( + + + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via{' '} + {'{children}'} + + +) + +export const withVerticalLayout = (args: any) => ( + + + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via{' '} + {'{children}'} + + +) + +export const withCloseButton = (args: any) => ( + + + This Modal has a close button on the top right + {'{children}'} + + +) + +export const rightAlignedFooter = (args: any) => ( + + + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via{' '} + {'{children}'} + + +) + +export const hideFooter = (args: any) => ( + + + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via{' '} + {'{children}'} + + +) + +export const withFooterBackground = (args: any) => ( + + + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via{' '} + {'{children}'} + + +) + +export const customFooter = (args: any) => ( + + + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via{' '} + {'{children}'} + + +) + +export const customFooterVertical = (args: any) => ( + + + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via{' '} + {'{children}'} + + +) + +export const LongModal = () => ( +
    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into the + Modal you can do so via +

    + + +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    +

    + Modal content is inserted here, if you need to insert anything into + the Modal you can do so via +

    + {'{children}'} +
    +
    +
    +) + +export const customFooterOneButton = (args: any) => + +export const modalWithDropdowns = () => { + const [visible, setVisible] = useState(false) + + return ( + <> + + setVisible(!visible)} + hideFooter + // className="pointer-events-auto" + > + + console.log('item 1 clicked')}> + Item 1 + + console.log('item 2 clicked')}> + Item 2 + + + } + > + + + + + ) +} + +Default.args = { + visible: true, + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the modal', + description: 'And i am the description', + size: 'medium', +} + +withFooterBackground.args = { + visible: true, + footerBackground: true, + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the modal', + description: 'And i am the description', +} + +const icon = + +withIcon.args = { + visible: true, + showIcon: true, + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the modal', + description: 'And i am the description', + icon: icon, +} + +withCloseButton.args = { + visible: true, + closable: true, + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This Modal has a close button on the top right', + description: 'And i am the description', +} + +withVerticalLayout.args = { + visible: true, + size: 'small', + layout: 'vertical', + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the modal', + description: 'And i am the description', + icon: icon, +} + +rightAlignedFooter.args = { + visible: true, + alignFooter: 'right', + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the modal', + description: 'And i am the description', +} + +hideFooter.args = { + visible: true, + hideFooter: true, + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the modal', + description: 'And i am the description', +} + +customFooter.args = { + visible: true, + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the modal', + description: 'And i am the description', + customFooter: [ + +
    + + Proceed with caution + +
    + + +
    , + ], +} + +customFooterVertical.args = { + visible: true, + size: 'small', + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the modal', + description: 'And i am the description', + layout: 'vertical', + customFooter: [ + + + + , + ], +} + +customFooterOneButton.args = { + visible: true, + size: 'small', + icon: , + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'Payment succesful', + description: + 'Lorem ipsum dolor sit amet consectetur adipisicing elit. Consequatur amet labore.', + layout: 'vertical', + customFooter: [ + + + , + ], +} diff --git a/packages/ui/src/components/Modal/Modal.tsx b/packages/ui/src/components/Modal/Modal.tsx new file mode 100644 index 00000000000..f0e7b240c53 --- /dev/null +++ b/packages/ui/src/components/Modal/Modal.tsx @@ -0,0 +1,197 @@ +import React, { useEffect } from 'react' +// @ts-ignore +import ModalStyles from './Modal.module.css' +import { Button, IconX, Space } from './../../../index' +import { AnimationTailwindClasses } from '../../types' + +import * as Dialog from '@radix-ui/react-dialog' + +import { Transition } from '@headlessui/react' +import styleHandler from '../../lib/theme/styleHandler' + +// import { Transition } from '@tailwindui/react' +// Merge Radix Props to surface in the modal component +export type ModalProps = RadixProps & Props + +interface RadixProps + extends Dialog.DialogProps, + Pick< + Dialog.DialogContentProps, + | 'onOpenAutoFocus' + | 'onCloseAutoFocus' + | 'onEscapeKeyDown' + | 'onPointerDownOutside' + | 'onInteractOutside' + > {} + +interface Props { + children?: React.ReactNode + customFooter?: React.ReactNode + closable?: boolean + description?: string + hideFooter?: boolean + alignFooter?: 'right' | 'left' + layout?: 'horizontal' | 'vertical' + icon?: React.ReactNode + loading?: boolean + onCancel?: any + cancelText?: string + onConfirm?: any + confirmText?: string + showIcon?: boolean + footerBackground?: boolean + title?: string | React.ReactNode + variant?: 'danger' | 'warning' | 'success' + visible: boolean + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' + style?: React.CSSProperties + overlayStyle?: React.CSSProperties + contentStyle?: React.CSSProperties + className?: string + overlayClassName?: string + transition?: AnimationTailwindClasses + transitionOverlay?: AnimationTailwindClasses + triggerElement?: React.ReactNode + header?: React.ReactNode +} + +const Modal = ({ + children, + customFooter = undefined, + closable, + description, + hideFooter = false, + alignFooter = 'left', + layout = 'horizontal', + loading = false, + cancelText = 'Cancel', + onConfirm = () => {}, + onCancel = () => {}, + confirmText = 'Confirm', + showIcon = false, + title, + footerBackground, + icon, + variant = 'success', + visible = false, + size = 'large', + style, + overlayStyle, + contentStyle, + className = '', + overlayClassName, + triggerElement, + header, + ...props +}: ModalProps) => { + const [open, setOpen] = React.useState(visible ? visible : false) + + const __styles = styleHandler('modal') + + useEffect(() => { + setOpen(visible) + }, [visible]) + + function stopPropagation(e: React.MouseEvent) { + e.stopPropagation() + } + + // let footerClasses = [ModalStyles['sbui-modal-footer']] + if (footerBackground) { + // footerClasses.push(ModalStyles['sbui-modal-footer--with-bg']) + } + + let modalClasses = [ + __styles.base, + // ModalStyles[`sbui-modal`], + // ModalStyles[`sbui-modal--${size}`], + ] + // if (className) modalClasses.push(className) + + // let overlayClasses = [ModalStyles['sbui-modal-overlay']] + // if (overlayClassName) overlayClasses.push(overlayClassName) + + const footerContent = customFooter ? ( + customFooter + ) : ( + + + + + ) + + function handleOpenChange(open: boolean) { + if (visible !== undefined && !open) { + // controlled component behaviour + onCancel() + } else { + // un-controlled component behaviour + setOpen(open) + } + } + + return ( + + {triggerElement && ( + + {triggerElement} + + )} + + + + + {header &&
    {header}
    } + {/*
    */} + {children} + {/*
    */} + {!hideFooter &&
    {footerContent}
    } + {/* {closable && ( +
    +
    + )} */} +
    +
    +
    +
    + ) +} + +function Content({ children }: { children: React.ReactNode }) { + const __styles = styleHandler('modal') + return
    {children}
    +} + +export function Seperator() { + const __styles = styleHandler('modal') + + return
    +} + +Modal.Content = Content +Modal.Seperator = Seperator +export default Modal diff --git a/packages/ui/src/components/Modal/index.tsx b/packages/ui/src/components/Modal/index.tsx new file mode 100644 index 00000000000..7a4f2d1dc1e --- /dev/null +++ b/packages/ui/src/components/Modal/index.tsx @@ -0,0 +1 @@ +export { default as Modal } from './Modal' diff --git a/packages/ui/src/components/Popover/Popover.module.css b/packages/ui/src/components/Popover/Popover.module.css new file mode 100644 index 00000000000..9ae30064daa --- /dev/null +++ b/packages/ui/src/components/Popover/Popover.module.css @@ -0,0 +1,63 @@ +.sbui-popover__content { + @apply bg-bg-primary-light dark:bg-bg-secondary-dark p-0; + @apply border; + @apply rounded; + @apply shadow; + border-style: solid; + border-width: 1px; +} + +/* @keyframes fadeIn { + from { + transform: scale(0.95); + opacity: 0; + } + to { + transform: scale(1); + opacity: 1; + } +} + +@keyframes fadeOut { + from { + transform: scale(1); + opacity: 1; + } + to { + transform: scale(0.95); + opacity: 0; + } +} */ + +/* .sbui-popover__content { + transform-origin: var(--radix-popover-menu-content-transform-origin); +} + +.sbui-popover__content[data-state='open'] { + animation: fadeIn 50ms ease-out; +} + +.sbui-popover__content[data-state='closed'] { + animation: fadeOut 50ms ease-in; +} */ + +/* .sbui-popover__trigger { + @apply border-none bg-transparent p-0 focus:ring-0; +} */ + +.sbui-popover__arrow { + @apply fill-current text-bg-primary-light dark:text-bg-secondary-dark; + @apply border-0 border-t; + border-style: solid; +} + +.sbui-popover__close { + @apply absolute top-1 right-0; + @apply bg-transparent cursor-pointer border-none; + + @apply text-gray-300; + @apply hover:text-gray-400; + + @apply dark:text-dark-400; + @apply dark:hover:text-dark-300; +} diff --git a/packages/ui/src/components/Popover/Popover.stories.tsx b/packages/ui/src/components/Popover/Popover.stories.tsx new file mode 100644 index 00000000000..ef195dc0d3f --- /dev/null +++ b/packages/ui/src/components/Popover/Popover.stories.tsx @@ -0,0 +1,73 @@ +import { Button } from '../Button' +import { Divider } from '../Divider' +import { IconChevronDown } from '../../index' +import Typography from '../Typography' + +import { Popover } from '.' +import { IconLogIn } from '../Icon/icons/IconLogIn' +import { Input } from '../Input' + +export default { + title: 'Navigation/Popover', + component: Popover, +} + +export const Default = (args: any) => ( +
    + + +
    Filter
    + +
    + } + overlay={[ + <> +
    + + + + + +
    + , + ]} + > + + +
    +) + +Default.args = {} diff --git a/packages/ui/src/components/Popover/Popover.tsx b/packages/ui/src/components/Popover/Popover.tsx new file mode 100644 index 00000000000..42ff4b97205 --- /dev/null +++ b/packages/ui/src/components/Popover/Popover.tsx @@ -0,0 +1,112 @@ +import React from 'react' + +import * as RadixPopover from '@radix-ui/react-popover' +import type * as RadixPopoverTypes from '@radix-ui/react-popover/' + +import { IconX } from '../Icon/icons/IconX' + +import styleHandler from '../../lib/theme/styleHandler' + +interface RootProps { + align?: RadixPopoverTypes.PopoverContentProps['align'] + ariaLabel?: string + arrow?: boolean + children?: React.ReactNode + className?: string + defaultOpen?: boolean + modal?: boolean + onOpenChange?: RadixPopoverTypes.PopoverProps['onOpenChange'] + open?: boolean + overlay?: React.ReactNode + portalled?: boolean + showClose?: boolean + side?: RadixPopoverTypes.PopoverContentProps['side'] + sideOffset?: RadixPopoverTypes.PopoverContentProps['sideOffset'] + style?: React.CSSProperties + header?: React.ReactNode + footer?: React.ReactNode + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' | 'content' +} + +function Popover({ + align = 'center', + ariaLabel, + arrow = false, + children, + className, + defaultOpen = false, + modal, + onOpenChange, + open, + overlay, + portalled, + side = 'bottom', + sideOffset = 6, + style, + header, + footer, + size = 'content', +}: RootProps) { + const __styles = styleHandler('popover') + + let classes = [__styles.content, __styles.size[size]] + if (className) { + classes.push(className) + } + + return ( + + + {children} + + + + {arrow && ( + + )} + {header &&
    {header}
    } + {overlay} + {footer &&
    {footer}
    } +
    +
    + ) +} + +function Close() { + const __styles = styleHandler('popover') + + return ( + + + + ) +} + +function Seperator() { + const __styles = styleHandler('popover') + + return
    +} + +Popover.Seperator = Seperator +Popover.Close = Close +export default Popover diff --git a/packages/ui/src/components/Popover/index.tsx b/packages/ui/src/components/Popover/index.tsx new file mode 100644 index 00000000000..c6e06a314a2 --- /dev/null +++ b/packages/ui/src/components/Popover/index.tsx @@ -0,0 +1 @@ +export { default as Popover } from './Popover' diff --git a/packages/ui/src/components/Radio/Radio.module.css b/packages/ui/src/components/Radio/Radio.module.css new file mode 100644 index 00000000000..32a6bad70f2 --- /dev/null +++ b/packages/ui/src/components/Radio/Radio.module.css @@ -0,0 +1,109 @@ +/* .sbui-radio-fieldset { + @apply border-none p-0 m-0; +} */ + +.sbui-radio-container { + @apply relative cursor-pointer flex p-0 py-2 border-none; +} + +/* .sbui-radio-container--card { + @apply p-4 border border-solid border-gray-200 dark:border-gray-500; +} */ + +.sbui-radio-container--card--active { + @apply bg-brand-100 bg-opacity-20 border-brand-200 dark:border-brand-200 z-10; +} + +/* .sbui-radio-container--card:first-child { + @apply rounded-tl-md rounded-tr-md; +} + +.sbui-radio-container--card:last-child { + @apply rounded-bl-md rounded-br-md; +} */ + +.sbui-radio-label { + @apply flex flex-row cursor-pointer; +} + +.sbui-radio-label-text { + @apply block text-sm font-medium dark:text-white; +} + +.sbui-radio-label-text .sbui-radio__label-text-before, +.sbui-radio-label-text .sbui-radio__label-text-after { + @apply text-gray-400 dark:text-gray-300; +} + +.sbui-radio-label-description { + @apply block text-sm text-gray-400 dark:text-gray-300; +} + +/* .sbui-radio { + @apply h-4 w-4 ml-0 mr-3.5 rounded-2xl border border-solid transition-all; + + @apply text-brand-600 cursor-pointer border-gray-500; + @apply focus:ring-brand-500 hover:border-brand-700 focus:outline-none; + + @apply dark:bg-transparent dark:hover:border-brand-700; +} */ + +/* .sbui-radio:checked { + border-color: transparent; + background-color: currentColor; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} + +.sbui-radio:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); +} */ + +/* .sbui-radio { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; + background-origin: border-box; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + flex-shrink: 0; +} */ + +.sbui-radio-group-contents { + @apply dark:bg-transparent rounded-md -space-y-px; +} + +/* + Label sizes +*/ + +.sbui-radio-container--tiny .sbui-radio-label, +.sbui-radio-container--tiny .sbui-radio-label-text, +.sbui-radio-container--tiny .sbui-radio-label-description { + @apply text-xs; +} +.sbui-radio-container--small .sbui-radio-label, +.sbui-radio-container--small .sbui-radio-label-text, +.sbui-radio-container--small .sbui-radio-label-description { + @apply text-sm; +} +.sbui-radio-container--medium .sbui-radio-label, +.sbui-radio-container--medium .sbui-radio-label-text, +.sbui-radio-container--medium .sbui-radio-label-description { + @apply text-sm; +} +.sbui-radio-container--large .sbui-radio-label, +.sbui-radio-container--large .sbui-radio-label-text, +.sbui-radio-container--large .sbui-radio-label-description { + @apply text-base; +} +.sbui-radio-container--xlarge .sbui-radio-label, +.sbui-radio-container--xlarge .sbui-radio-label-text, +.sbui-radio-container--xlarge .sbui-radio-label-description { + @apply text-base; +} diff --git a/packages/ui/src/components/Radio/Radio.stories.tsx b/packages/ui/src/components/Radio/Radio.stories.tsx new file mode 100644 index 00000000000..b2b17c3267f --- /dev/null +++ b/packages/ui/src/components/Radio/Radio.stories.tsx @@ -0,0 +1,355 @@ +import React from 'react' + +import { action } from '@storybook/addon-actions' + +import Radio from '.' + +const stackedOptions = [ + { + label: 'Hobby', + description: '8GB / 4 CPUs · 160 GB SSD disk', + value: '1', + align: 'vertical', + optionalLabel:
    $40 / mo
    , + }, + { + label: 'Startup', + description: '12GB / 6 CPUs · 256 GB SSD disk', + value: '2', + align: 'vertical', + optionalLabel:
    $40 / mo
    , + }, + { + label: 'Business', + description: '16GB / 8 CPUs · 512 GB SSD disk', + value: '3', + align: 'vertical', + optionalLabel:
    $40 / mo
    , + }, + { + label: 'Enterprise', + description: '32GB / 12 CPUs · 1024 GB SSD disk', + value: '4', + align: 'vertical', + optionalLabel:
    $40 / mo
    , + }, +] + +const smallOptions = [ + { + label: '4 GB', + value: '1', + }, + { + label: '8GB', + value: '2', + }, + { + label: '16GB', + value: '3', + }, + { + label: '32GB', + value: '3', + }, + { + label: '64GB', + value: '4', + }, + { + label: '128GB', + value: '5', + disabled: true, + }, +] + +const options = [ + { + label: 'Comments', + description: + 'Get notified when someones posts a comment on a posting. Get notified when someones posts a comment on a posting Get notified when someones posts a comment on a posting.', + value: '1', + align: 'vertical', + }, + { + label: 'Candidates', + description: + 'Get notified when a candidate applies for a job. Get notified when a candidate applies for a job. Get notified when a candidate applies for a job. Get notified when a candidate applies for a job. Get notified when a candidate applies for a job. ', + value: '2', + align: 'vertical', + }, + { + label: 'Offers', + description: 'Get notified when a candidate accepts or rejects an offer.', + value: '3', + align: 'vertical', + }, + { + label: 'Offers4', + description: 'Get notified when a candidate accepts or rejects an offer.', + value: '4', + align: 'vertical', + }, + { + label: 'Offers5', + description: 'Get notified when a candidate accepts or rejects an offer.', + value: '5', + align: 'vertical', + }, +] + +export default { + title: 'Data Input/Radio', + component: Radio, + argTypes: { onChange: { action: 'onChange' } }, +} + +interface onToggleProps { + e?: any +} + +export const SimpleList = (args: any) => ( + + + + + +) + +SimpleList.args = { + descriptionText: 'This is optional description', + label: 'Radio group main label', + labelOptional: 'This is an optional label', + layout: 'vertical', + name: 'SimpleList-example', + align: 'vertical', +} + +export const ListWithDescription = (args: any) => ( + + + + + +) + +ListWithDescription.args = { + descriptionText: 'This is optional description', + label: 'Radio group main label', + labelOptional: 'This is an optional label', + layout: 'vertical', + name: 'radiogroup-example-1', + align: 'vertical', +} + +export const ListWithInlineDescription = (args: any) => ( + + + + + +) + +ListWithInlineDescription.args = { + descriptionText: 'This is optional description', + label: 'Radio group main label', + labelOptional: 'This is an optional label', + layout: 'vertical', + name: 'radiogroup-example-1', + align: 'vertical', +} + +export const largeCards = (args: any) => ( + + + + + +) + +largeCards.args = { + descriptionText: 'This is optional description', + label: 'Radio group main label', + labelOptional: 'This is an optional label', + layout: 'vertical', + name: 'radiogroup-example-1', + align: 'vertical', + type: 'large-cards', +} + +export const withOptionsObj = (args: any) => + +export const withCards = (args: any) => ( + + {options.map((x, i) => ( + + ))} + +) + +export const withStackedCards = (args: any) => ( + + {stackedOptions.map((x, i) => ( + +) + +export const withSmallCards = (args: any) => ( + + {smallOptions.map((x, i) => ( + +) + +export const withCardsAndOptions = (args: any) => + +export const withBeforeAndAfterLabels = (args: any) => + +withOptionsObj.args = { + className: 'font-sans', + descriptionText: 'This is optional description', + disabled: false, + error: '', + label: 'Radio group main label', + labelOptional: 'This is an optional label', + layout: 'vertical', + name: 'radiogroup-example-2', + options: options, +} + +withCards.args = { + className: 'font-sans', + descriptionText: 'This is optional description', + disabled: false, + error: '', + label: 'Radio group main label', + labelOptional: 'This is an optional label', + layout: 'horizontal', + name: 'radiogroup-example-3', + type: 'cards', + align: 'vertical', +} + +withStackedCards.args = { + className: 'font-sans', + descriptionText: 'This is optional description', + disabled: false, + error: '', + label: 'Radio group main label', + labelOptional: 'This is an optional label', + layout: 'horizontal', + name: 'radiogroup-example-3', + type: 'stacked-cards', + align: 'vertical', +} + +withSmallCards.args = { + className: 'font-sans', + descriptionText: 'This is optional description', + disabled: false, + error: '', + label: 'Radio group main label', + labelOptional: 'This is an optional label', + layout: 'vertical', + name: 'radiogroup-example-3', + type: 'small-cards', + align: 'horizontal', +} + +withCardsAndOptions.args = { + className: 'font-sans', + descriptionText: 'This is optional description', + disabled: false, + error: '', + label: 'Radio group main label', + labelOptional: 'This is an optional label', + layout: 'horizontal', + name: 'radiogroup-example-3', + options: options, + type: 'cards', + align: 'vertical', +} + +withBeforeAndAfterLabels.args = { + label: 'Label', + beforeLabel: 'Before : ', + afterLabel: ' : After', + options: [ + { + label: 'Label', + beforeLabel: 'Before : ', + afterLabel: ' : After', + description: 'Description', + }, + ], +} diff --git a/packages/ui/src/components/Radio/Radio.tsx b/packages/ui/src/components/Radio/Radio.tsx new file mode 100644 index 00000000000..86265df382f --- /dev/null +++ b/packages/ui/src/components/Radio/Radio.tsx @@ -0,0 +1,290 @@ +import React, { useEffect, useState, createRef } from 'react' +import { FormLayout } from '../../lib/Layout/FormLayout' +import { RadioContext } from './RadioContext' + +import { useFormContext } from '../Form/FormContext' + +import defaultTheme from '../../lib/theme/defaultTheme' +import styleHandler from '../../lib/theme/styleHandler' + +import randomIdGenerator from './../../utils/randomIdGenerator' + +interface GroupProps { + allowedValues?: any + checkboxes?: any + id?: any + layout?: 'horizontal' | 'vertical' + error?: any + descriptionText?: any + label?: any + afterLabel?: string + beforeLabel?: string + labelOptional?: any + name?: any + type?: 'cards' | 'list' | 'small-cards' | 'large-cards' + transform?: any + value?: any + className?: any + children?: React.ReactNode + options?: Array + onChange?(x: React.ChangeEvent): void + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' + validation?: (x: any) => void + groupClassName?: string + labelsLayout?: 'horizontal' | 'vertical' +} + +function RadioGroup({ + id, + layout, + error, + descriptionText, + label, + afterLabel, + beforeLabel, + labelOptional, + children, + className, + type = 'list', + options, + value, + name, + onChange, + size = 'medium', + validation, + groupClassName, + labelsLayout = 'vertical', +}: GroupProps) { + const [activeId, setActiveId] = useState('') + + const __styles = styleHandler('radio') + + const { + formContextOnChange, + values, + errors, + // handleBlur, + touched, + fieldLevelValidation, + } = useFormContext() + + if (values && !value) value = values[id || name] + // console.log('errors in. radio group', errors) + // console.log('values in radio group', values) + + if (!error) { + if (errors && !error) error = errors[id || name] + error = touched && touched[id || name] ? error : undefined + } + + useEffect(() => { + if (validation) fieldLevelValidation(id, validation(value)) + }, []) + + useEffect(() => { + setActiveId(value) + }, [value]) + + function parentCallback(e: React.ChangeEvent) { + if (onChange) onChange(e) + // update form + if (formContextOnChange) { + formContextOnChange(e) + } + // run field level validation + if (validation) fieldLevelValidation(id, validation(e.target.value)) + setActiveId(e.target.id) + } + + return ( +
    + +
    + + {options + ? options.map((option: InputProps) => { + return ( + + ) + }) + : children} + +
    +
    +
    + ) +} + +interface InputProps extends Omit, 'size'> { + label: string + afterLabel?: string + beforeLabel?: string + description?: string + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' + hidden?: boolean + align?: 'vertical' | 'horizontal' + optionalLabel?: 'string' | React.ReactNode + addOnBefore?: React.ReactNode +} + +function Radio({ + id = randomIdGenerator(), + disabled, + value, + label, + afterLabel, + beforeLabel, + description, + name, + checked, + onChange, + onBlur, + hidden = false, + size = 'medium', + align = 'vertical', + optionalLabel, + addOnBefore, +}: InputProps) { + const __styles = styleHandler('radio') + + const inputName = name + + const { handleBlur } = useFormContext() + + function handleBlurEvent(e: React.FocusEvent) { + if (handleBlur) handleBlur(e) + if (onBlur) onBlur(e) + } + + return ( + + {({ parentCallback, type, name, activeId, parentSize }) => { + // if id does not exist, use label + + const markupId = id + + // if name does not exist on Radio then use Context Name from Radio.Group + const markupName = name || inputName + + // console.log('markupName', markupName) + // @ts-ignore + size = parentSize || size + + // check if radio id is via parent component + // then check if radio checked prop is true or false + // if no boolean exists the checkbox will rely on native control + const active = + activeId === markupId ? true : checked ? true : checked === false ? false : undefined + + let classes = [ + __styles.variants[type].container.base, + // __styles.variants[type].container.align[align], + type === 'list' && !hidden && __styles.variants[type].container.size[size], + ] + + classes.push(__styles.variants[type].base) + classes.push(__styles.variants[type].size[size]) + + if (active) { + classes.push(__styles.variants[type].active) + } else { + classes.push(__styles.variants[type].inactive) + } + + if (disabled) { + classes.push(__styles.disabled) + } + + if (type !== 'list') hidden = true + + function onInputChange(e: React.ChangeEvent) { + // '`onChange` callback for parent component + if (parentCallback) { + parentCallback(e) + } + // '`onChange` callback for this component + if (onChange) onChange(e) + } + + return ( + + ) + }} + + ) +} + +Radio.Group = RadioGroup + +export default Radio diff --git a/packages/ui/src/components/Radio/RadioContext.tsx b/packages/ui/src/components/Radio/RadioContext.tsx new file mode 100644 index 00000000000..08bcd309eaf --- /dev/null +++ b/packages/ui/src/components/Radio/RadioContext.tsx @@ -0,0 +1,11 @@ +import { createContext } from 'react' + +// Make sure the shape of the default value passed to +// createContext matches the shape that the consumers expect! +export const RadioContext = createContext({ + parentCallback: (e: any) => {}, + type: '', + name: '', + activeId: '', + parentSize: '', +}) diff --git a/packages/ui/src/components/Radio/index.tsx b/packages/ui/src/components/Radio/index.tsx new file mode 100644 index 00000000000..7089f813ecf --- /dev/null +++ b/packages/ui/src/components/Radio/index.tsx @@ -0,0 +1,3 @@ +import Radio from './Radio' +export default Radio +export { default as Radio } from './Radio' diff --git a/web/docs/reference/javascript/.gitkeep b/packages/ui/src/components/RadioOld/Radio.css similarity index 100% rename from web/docs/reference/javascript/.gitkeep rename to packages/ui/src/components/RadioOld/Radio.css diff --git a/packages/ui/src/components/RadioOld/Radio.js b/packages/ui/src/components/RadioOld/Radio.js new file mode 100644 index 00000000000..df1a3adeb63 --- /dev/null +++ b/packages/ui/src/components/RadioOld/Radio.js @@ -0,0 +1,26 @@ +import React from 'react' +import PropTypes from 'prop-types' +import './Radio.css' + +const Radio = ({ + className = '', + label = '', + containerClassName = '', + children, + ...props +}) => { + + return ( + + ) +} + +Radio.propTypes = { + label: PropTypes.string, + className: PropTypes.string, +} + +export default Radio diff --git a/packages/ui/src/components/RadioOld/Radio.stories.js b/packages/ui/src/components/RadioOld/Radio.stories.js new file mode 100644 index 00000000000..db71931862c --- /dev/null +++ b/packages/ui/src/components/RadioOld/Radio.stories.js @@ -0,0 +1,26 @@ +import React from 'react' + +import { Radio } from '.' + +export default { + title: 'Archive/Radio', + component: Radio, +} + +export const Default = (args) => ( +
    +
    + +
    +
    + +
    +
    + +
    +
    +) + +Default.args = { + disabled: false, +} diff --git a/packages/ui/src/components/RadioOld/Radio.test.js b/packages/ui/src/components/RadioOld/Radio.test.js new file mode 100644 index 00000000000..7eaa33451b4 --- /dev/null +++ b/packages/ui/src/components/RadioOld/Radio.test.js @@ -0,0 +1,19 @@ +import React from 'react' +import { render, screen } from '@testing-library/react' +import Radio from './Radio' + +describe('#Radio', () => { + it('should render radio correctly', () => { + render( + + ) + expect(screen.queryByTestId('form-radio')).toBeInTheDocument() + }) + + it('should show label', () => { + render( + + ) + expect(screen.queryByText('JavaScript')).toBeInTheDocument() + }) +}) \ No newline at end of file diff --git a/packages/ui/src/components/RadioOld/index.js b/packages/ui/src/components/RadioOld/index.js new file mode 100644 index 00000000000..e200e77534e --- /dev/null +++ b/packages/ui/src/components/RadioOld/index.js @@ -0,0 +1 @@ +export { default as Radio } from './Radio' diff --git a/packages/ui/src/components/Select/Select.module.css b/packages/ui/src/components/Select/Select.module.css new file mode 100644 index 00000000000..3da01903c65 --- /dev/null +++ b/packages/ui/src/components/Select/Select.module.css @@ -0,0 +1,86 @@ +.sbui-select-container { + @apply relative; +} + +.sbui-select { + @apply block w-full bg-white pl-3 pr-10 py-2 text-sm rounded-md shadow-sm transition-all; + + @apply text-input-value-light border border-solid border-input-border-light; + @apply focus:ring-input-border-focus-light focus:border-input-border-focus-light focus:outline-none; + + @apply dark:bg-transparent dark:text-input-value-dark dark:border-input-border-dark; + @apply dark:focus:border-input-border-focus-dark dark:focus:ring-input-border-focus-dark; + -webkit-appearance: none; + -moz-appearance: none; + text-overflow: ''; + /* box-shadow: 0 0 0 2px rgba(255, 255, 255, 0); */ + transition: box-shadow 0.3s ease-in-out; + + /* // temporary fix + // + // temporary fix for supabase apps + // tailwind @base styles adds a dropdown chevron + // using background image as default + // */ + background-image: none; +} + +.sbui-select option { + @apply bg-white text-gray-800; +} + +.sbui-select:focus { + box-shadow: 0 0 0 2px rgba(62, 207, 142, 0.1); +} + +.sbui-select--error { + @apply border-red-500 dark:border-red-500; +} + +.sbui-select--borderless { + @apply border-transparent shadow-none; +} + +/* + Select sizes +*/ + +.sbui-select--tiny { + @apply px-2.5 py-1.5 text-xs; +} +.sbui-select--small { + @apply px-3 py-2 text-sm leading-4; +} +.sbui-select--medium { + @apply px-4 py-2 text-sm; +} +.sbui-select--large { + @apply px-4 py-2 text-base; +} +.sbui-select--xlarge { + @apply px-6 py-3 text-base; +} + +.sbui-select-actions-container { + @apply absolute inset-y-0 right-0 pl-3 pr-1 mr-5 flex items-center; +} + +/* + Select icon +*/ + +.sbui-select--with-icon { + @apply pl-10; +} + +/* + Select Chevron +*/ + +.sbui-select-chevron-container { + @apply absolute inset-y-0 right-0 flex items-center pr-2 pointer-events-none; +} + +.sbui-select-chevron { + @apply h-5 w-5 text-gray-400; +} diff --git a/packages/ui/src/components/Select/Select.stories.tsx b/packages/ui/src/components/Select/Select.stories.tsx new file mode 100644 index 00000000000..b69cad8efd9 --- /dev/null +++ b/packages/ui/src/components/Select/Select.stories.tsx @@ -0,0 +1,183 @@ +import React from 'react' + +import Select from '.' +import { IconBook } from '../../index' + +const { Option, OptGroup } = Select + +export default { + title: 'Data Input/Select', + component: Select, +} + +export const Default = (args: any) => ( + +) + +export const withCheckboxes = (args: any) => + + + + +) + +export const withOptionGroup = (args: any) => ( + +) + +export const withIcon = (args: any) => ( + +) + +export const withOptionLabel = (args: any) => ( + +) + +export const withBeforeAndAfterLabel = (args: any) => ( + +) + +export const withDescription = (args: any) => ( + +) + +export const size = (args: any) => ( + +) + +const data = ['England', 'Wales', 'Scotland', 'Ireland'] +const icon = + +Default.args = { + disabled: false, + label: 'Label', + className: 'font-sans', + layout: 'vertical', + children: [ + <> + + + + , + ], +} + +withOptionGroup.args = { + placeholder: 'Type text here ...', + disabled: false, + label: 'Input with an error message', + className: 'font-sans', + value: 'Value of input', + layout: 'vertical', +} + +withCheckboxes.args = { + disabled: false, + checkboxes: data, + allowedValues: data, + className: 'font-sans', + layout: 'vertical', +} + +ErrorState.args = { + placeholder: 'Type text here ...', + disabled: false, + label: 'Input with an error message', + className: 'font-sans', + value: 'Value of input', + error: 'Your password must be less than 4 characters.', + allowedValues: data, + layout: 'vertical', +} + +withIcon.args = { + placeholder: 'Type text here ...', + disabled: false, + label: 'Input with an Icon', + className: 'font-sans', + value: 'Value of input', + icon: icon, + allowedValues: data, + layout: 'vertical', +} + +withOptionLabel.args = { + placeholder: 'Type text here ...', + disabled: false, + label: 'Input with an error message', + className: 'font-sans', + value: 'Value of input', + labelOptional: 'This is required', + allowedValues: data, + layout: 'vertical', +} + +withBeforeAndAfterLabel.args = { + placeholder: 'Type text here ...', + disabled: false, + label: 'Label', + beforeLabel: 'Before : ', + afterLabel: ' : After', + className: 'font-sans', + value: 'Value of input', + labelOptional: 'This is required', + allowedValues: data, + layout: 'vertical', +} + +withDescription.args = { + placeholder: 'Type text here ...', + disabled: false, + label: 'Input with an error message', + className: 'font-sans', + value: 'Value of input', + descriptionText: 'Make your password short and easy to guess', + allowedValues: data, + layout: 'vertical', +} + +size.args = { + placeholder: 'Type text here ...', + disabled: false, + label: 'Input with a size selected', + value: 'Value of input', + descriptionText: 'Choose a different size and font and padding will change', + allowedValues: data, + layout: 'vertical', + size: 'tiny', +} diff --git a/packages/ui/src/components/Select/Select.test.js b/packages/ui/src/components/Select/Select.test.js new file mode 100644 index 00000000000..2615c4dd687 --- /dev/null +++ b/packages/ui/src/components/Select/Select.test.js @@ -0,0 +1,27 @@ +import React from 'react' +import { render, screen } from '@testing-library/react' +import Select from './Select' + +describe('#Select', () => { + it('should render select correctly', async () => { + render( + + ) + expect(screen.queryByTestId('form-select')).toBeInTheDocument() + }) + + it('should have "form-select--error" class', () => { + render( + + ) + expect(screen.queryByTestId('form-select')).toHaveClass( + 'sbui-select sbui-select--error sbui-select--medium' + ) + }) +}) diff --git a/packages/ui/src/components/Select/Select.tsx b/packages/ui/src/components/Select/Select.tsx new file mode 100644 index 00000000000..d51e9e87c8b --- /dev/null +++ b/packages/ui/src/components/Select/Select.tsx @@ -0,0 +1,184 @@ +import React, { useEffect } from 'react' +import { FormLayout } from '../../lib/Layout/FormLayout' +import InputErrorIcon from '../../lib/Layout/InputErrorIcon' +import InputIconContainer from '../../lib/Layout/InputIconContainer' + +import { useFormContext } from '../Form/FormContext' + +import defaultTheme from '../../lib/theme/defaultTheme' +import styleHandler from '../../lib/theme/styleHandler' + +interface OptionProps { + value: string + children: React.ReactNode + selected?: boolean +} + +interface OptGroupProps { + label: string + children: React.ReactNode +} + +export interface Props extends Omit, 'size'> { + autofocus?: boolean + children: React.ReactNode + descriptionText?: string + error?: string + icon?: any + inputRef?: string + label?: string + afterLabel?: string + beforeLabel?: string + labelOptional?: string + layout?: 'horizontal' | 'vertical' + reveal?: boolean + actions?: React.ReactNode + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' + borderless?: boolean + validation?: (x: any) => void +} + +export const ColLayout = (props: any) =>
    {props.children}
    + +function Select({ + autoComplete, + autofocus, + children, + className, + descriptionText, + disabled, + error, + icon, + id = '', + inputRef, + label, + afterLabel, + beforeLabel, + labelOptional, + layout, + name = '', + onChange, + onBlur, + placeholder, + required, + value = undefined, + defaultValue = undefined, + style, + size = 'medium', + borderless = false, + validation, + ...props +}: Props) { + const { formContextOnChange, values, errors, handleBlur, touched, fieldLevelValidation } = + useFormContext() + + if (values && !value) value = values[id] + + function handleBlurEvent(e: React.FocusEvent) { + if (handleBlur) handleBlur(e) + if (onBlur) onBlur(e) + } + + if (!error) { + if (errors && !error) error = errors[id || name] + error = touched && touched[id || name] ? error : undefined + } + + function onInputChange(e: React.ChangeEvent) { + if (onChange) onChange(e) + // update form + if (formContextOnChange) formContextOnChange(e) + // run field level validation + if (validation) fieldLevelValidation(id, validation(e.target.value)) + } + + useEffect(() => { + if (validation) fieldLevelValidation(id, validation(value)) + }, []) + + const __styles = styleHandler('select') + + let classesContainer = [__styles.container] + if (className) classesContainer.push(className) + + let classes = [__styles.base] + if (error) classes.push(__styles.variants.error) + if (!error) classes.push(__styles.variants.standard) + if (icon) classes.push(__styles.with_icon) + if (size) classes.push(__styles.size[size]) + if (disabled) classes.push(__styles.disabled) + + return ( + +
    + + {icon && } + {error && ( +
    + {error && } +
    + )} + + + +
    +
    + ) +} + +export function Option({ value, children, selected }: OptionProps) { + return ( + + ) +} + +export function OptGroup({ label, children }: OptGroupProps) { + return {children} +} + +Select.Option = Option +Select.OptGroup = OptGroup + +export default Select diff --git a/packages/ui/src/components/Select/index.tsx b/packages/ui/src/components/Select/index.tsx new file mode 100644 index 00000000000..631a630e25f --- /dev/null +++ b/packages/ui/src/components/Select/index.tsx @@ -0,0 +1,3 @@ +import Select from './Select' +export default Select +export { default as Select } from './Select' diff --git a/packages/ui/src/components/SidePanel/SidePanel.module.css b/packages/ui/src/components/SidePanel/SidePanel.module.css new file mode 100644 index 00000000000..edb7edff6ec --- /dev/null +++ b/packages/ui/src/components/SidePanel/SidePanel.module.css @@ -0,0 +1,124 @@ +/* + Side Panel animations imported first as so placement styles are not affected. +*/ + +/* overlay animation */ +.sbui-sidepanel-overlay--enter { + @apply ease-out duration-200; +} +.sbui-sidepanel-overlay--enterFrom { + @apply opacity-0; +} +.sbui-sidepanel-overlay--enterTo { + @apply opacity-100; +} +.sbui-sidepanel-overlay--leave { + @apply ease-in duration-200; +} +.sbui-sidepanel-overlay--leaveFrom { + @apply opacity-100; +} +.sbui-sidepanel-overlay--leaveTo { + @apply opacity-0; +} + +/* panel animation */ +.sbui-sidepanel--enter { + @apply transform transition ease-in-out duration-200 lg:duration-300; +} +.sbui-sidepanel--enterFrom { + @apply translate-x-full; +} +.sbui-sidepanel--enterFrom--left { + @apply -translate-x-full; +} +.sbui-sidepanel--enterTo { + @apply translate-x-0; +} +.sbui-sidepanel--leave { + @apply transform transition ease-in-out duration-200 lg:duration-300; +} +.sbui-sidepanel--leaveFrom { + @apply translate-x-0; +} +.sbui-sidepanel--leaveTo { + @apply translate-x-full; +} +.sbui-sidepanel--leaveTo--left { + @apply -translate-x-full; +} + +/* .sbui-sidepanel-overlay-container { + @apply fixed inset-0 transition-opacity; +} */ + +/* .sbui-sidepanel-overlay { + @apply absolute inset-0 bg-scale-300 opacity-75; +} */ + +.sbui-sidepanel--left { + @apply left-0 pr-10; +} + +.sbui-sidepanel--right { + @apply right-0 pl-10; +} + +.sbui-sidepanel--medium { + @apply w-screen max-w-md h-full; +} + +.sbui-sidepanel--wide { + @apply w-screen max-w-2xl h-full; +} + +/* .sbui-sidepanel-fixed { + @apply fixed inset-0 overflow-hidden; +} */ + +/* .sbui-sidepanel-absolute { + @apply absolute inset-0 overflow-hidden; +} */ + +/* .sbui-sidepanel-container { + @apply absolute inset-y-0 max-w-full flex h-screen; +} */ + +/* .sbui-sidepanel { + @apply h-full flex flex-col bg-white dark:bg-dark-700 shadow-xl; +} */ + +.sbui-sidepanel-header { + @apply space-y-1 py-6 px-4 bg-gray-50 dark:bg-dark-600 sm:px-6; +} + +.sbui-sidepanel-close-container { + @apply h-7 flex items-center; +} + +.sbui-sidepanel-close-container button, +.dark .sbui-sidepanel-close-container button { + @apply text-gray-300; + @apply hover:text-gray-400; + + /* @apply dark:text-dark-400; */ + /* @apply dark:hover:text-dark-300; */ + + @apply hover:bg-transparent; +} + +/* .sbui-sidepanel-content { + @apply relative flex-1 px-4 sm:px-6; +} */ + +.sbui-sidepanel-footer-container { + @apply p-4 bg-gray-50 dark:bg-dark-600; +} + +.sbui-sidepanel-footer { + @apply flex flex-shrink-0; +} + +.sbui-sidepanel__trigger { + @apply border-none bg-transparent p-0 focus:ring-0; +} diff --git a/packages/ui/src/components/SidePanel/SidePanel.stories.tsx b/packages/ui/src/components/SidePanel/SidePanel.stories.tsx new file mode 100644 index 00000000000..d96178102ce --- /dev/null +++ b/packages/ui/src/components/SidePanel/SidePanel.stories.tsx @@ -0,0 +1,261 @@ +import { action } from '@storybook/addon-actions' +import React, { useState } from 'react' +import { Button, Space, Typography } from '../../index' + +import { SidePanel } from './index' + +export default { + title: 'Overlays/SidePanel', + component: SidePanel, +} + +const content = ( + + SidePanel content is inserted here, if you need to insert anything into the + SidePanel you can do so via + children + +) + +export const Default = (args: any) => ( + <> + +

    This is the title

    +

    This is the title

    + + } + > + {content} +
    + +) + +export const withWideLayout = (args: any) => ( + <> + {content} + +) + +export const leftAlignedFooter = (args: any) => ( + <> + {content} + +) + +export const leftAligned = (args: any) => ( + <> + {content} + +) + +export const hideFooter = (args: any) => ( + <> + {content} + +) + +export const customFooter = (args: any) => ( + <> + {content} + +) + +export const triggerElement = (args: any) => ( + <> + + + This was opened with a trigger element + + + +) + +export const nestedSidepanels = (args: any) => { + const [panel1Visible, setPanel1Visible] = useState(false) + const [panel2Visible, setPanel2Visible] = useState(false) + + return ( + <> +
    +
    +

    + Shall we nest some components? +

    +

    yea sure, go on then.

    +
    + +
    + setPanel1Visible(false)} + onConfirm={() => setPanel1Visible(false)} + > +
    +

    + This Sidepanel was opened with a trigger element +

    + +

    + You can open a nested panel by clicking the button below +

    + + +
    + setPanel2Visible(false)} + onConfirm={() => setPanel2Visible(false)} + > + + +
    + + ) +} + +export const longContent = (args: any) => ( + <> + +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +

    This is a paragraph

    +
    + +) + +Default.args = { + visible: true, + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the SidePanel', + description: 'And i am the description', +} + +withWideLayout.args = { + visible: true, + size: 'large', + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the SidePanel', + description: 'And i am the description', +} + +leftAlignedFooter.args = { + visible: true, + alignFooter: 'left', + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the SidePanel', + description: 'And i am the description', +} + +leftAligned.args = { + visible: true, + align: 'left', + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the SidePanel', + description: 'And i am the description', +} + +hideFooter.args = { + visible: true, + hideFooter: true, + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the SidePanel', + description: 'And i am the description', +} + +customFooter.args = { + visible: true, + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the SidePanel', + description: 'And i am the description', + customFooter: [ + + + + , + ], +} + +triggerElement.args = { + visible: true, + onCancel: action('onCancel'), + onConfirm: action('onConfirm'), + title: 'This is the title of the SidePanel', + description: 'And i am the description', + triggerElement: , +} + +longContent.args = { + visible: true, + header: 'Long content', +} diff --git a/packages/ui/src/components/SidePanel/SidePanel.tsx b/packages/ui/src/components/SidePanel/SidePanel.tsx new file mode 100644 index 00000000000..6b54d4aeacc --- /dev/null +++ b/packages/ui/src/components/SidePanel/SidePanel.tsx @@ -0,0 +1,132 @@ +import React from 'react' +import { Button } from '../../../index' +import * as Dialog from '@radix-ui/react-dialog' +import styleHandler from '../../lib/theme/styleHandler' + +export type SidePanelProps = RadixProps & CustomProps + +interface RadixProps + extends Dialog.DialogProps, + Pick< + Dialog.DialogContentProps, + | 'onOpenAutoFocus' + | 'onCloseAutoFocus' + | 'onEscapeKeyDown' + | 'onPointerDownOutside' + | 'onInteractOutside' + > {} + +interface CustomProps { + id?: String | undefined + className?: String + children?: React.ReactNode + header?: string | React.ReactNode + visible: boolean + size?: 'medium' | 'large' + loading?: boolean + align?: 'right' | 'left' + hideFooter?: boolean + customFooter?: React.ReactNode + onCancel?: () => void + cancelText?: String + onConfirm?: () => void + confirmText?: String + triggerElement?: React.ReactNode +} + +const SidePanel = ({ + id, + className, + children, + header, + visible, + open, + size = 'medium', + loading, + align = 'right', + hideFooter = false, + customFooter = undefined, + onConfirm, + onCancel, + confirmText = 'Confirm', + cancelText = 'Cancel', + triggerElement, + defaultOpen, + ...props +}: SidePanelProps) => { + const __styles = styleHandler('sidepanel') + + // function stopPropagation(e: React.MouseEvent) { + // e.stopPropagation() + // } + + const footerContent = customFooter ? ( + customFooter + ) : ( +
    + + +
    + ) + + function handleOpenChange(open: boolean) { + if (visible !== undefined && !open) { + // controlled component behaviour + if (onCancel) onCancel() + } else { + // un-controlled component behaviour + // setOpen(open) + } + } + + open = open || visible + + return ( + + {triggerElement && ( + {triggerElement} + )} + + + + + {header &&
    {header}
    } +
    {children}
    + {!hideFooter && footerContent} +
    +
    +
    + ) +} + +export function Seperator() { + let __styles = styleHandler('sidepanel') + + return
    +} + +export function Content({ children }: { children: React.ReactNode }) { + let __styles = styleHandler('sidepanel') + + return
    {children}
    +} + +SidePanel.Content = Content +SidePanel.Seperator = Seperator +export default SidePanel diff --git a/packages/ui/src/components/SidePanel/index.tsx b/packages/ui/src/components/SidePanel/index.tsx new file mode 100644 index 00000000000..6dc75ef8cd9 --- /dev/null +++ b/packages/ui/src/components/SidePanel/index.tsx @@ -0,0 +1 @@ +export { default as SidePanel } from './SidePanel' diff --git a/packages/ui/src/components/Space/Space.module.css b/packages/ui/src/components/Space/Space.module.css new file mode 100644 index 00000000000..8c34e324523 --- /dev/null +++ b/packages/ui/src/components/Space/Space.module.css @@ -0,0 +1,397 @@ +.sbui-space { + /* @apply flex; */ +} + +.sbui-space-row { + /* @apply flex flex-row items-center; */ +} + +.sbui-space-col { + /* @apply flex flex-col; */ +} + +.sbui-space-y-0 { + /* @apply space-y-0; */ +} +.sbui-space-y-0.5 { + /* @apply space-y-0.5; */ +} +.sbui-space-y-1 { + /* @apply space-y-1; */ +} +.sbui-space-y-1.5 { + /* @apply space-y-1.5; */ +} +.sbui-space-y-2 { + /* @apply space-y-2; */ +} +.sbui-space-y-2.5 { + /* @apply space-y-2.5; */ +} +.sbui-space-y-3 { + /* @apply space-y-3; */ +} +.sbui-space-y-3.5 { + /* @apply space-y-3.5; */ +} +.sbui-space-y-4 { + /* @apply space-y-4; */ +} +.sbui-space-y-5 { + /* @apply space-y-5; */ +} +.sbui-space-y-6 { + /* @apply space-y-6; */ +} +.sbui-space-y-7 { + /* @apply space-y-7; */ +} +.sbui-space-y-8 { + /* @apply space-y-8; */ +} +.sbui-space-y-9 { + /* @apply space-y-9; */ +} +.sbui-space-y-10 { + /* @apply space-y-10; */ +} +.sbui-space-y-11 { + /* @apply space-y-11; */ +} +.sbui-space-y-12 { + /* @apply space-y-12; */ +} +.sbui-space-y-14 { + /* @apply space-y-14; */ +} +.sbui-space-y-16 { + /* @apply space-y-16; */ +} +.sbui-space-y-20 { + /* @apply space-y-20; */ +} +.sbui-space-y-24 { + /* @apply space-y-24; */ +} +.sbui-space-y-28 { + /* @apply space-y-28; */ +} +.sbui-space-y-32 { + /* @apply space-y-32; */ +} +.sbui-space-y-36 { + /* @apply space-y-36; */ +} +.sbui-space-y-40 { + /* @apply space-y-40; */ +} +.sbui-space-y-44 { + /* @apply space-y-44; */ +} +.sbui-space-y-48 { + /* @apply space-y-48; */ +} +.sbui-space-y-52 { + /* @apply space-y-52; */ +} +.sbui-space-y-56 { + /* @apply space-y-56; */ +} +.sbui-space-y-60 { + /* @apply space-y-60; */ +} +.sbui-space-y-64 { + /* @apply space-y-64; */ +} +.sbui-space-y-72 { + /* @apply space-y-72; */ +} +.sbui-space-y-80 { + /* @apply space-y-80; */ +} +.sbui-space-y-96 { + /* @apply space-y-96; */ +} +.sbui-space-y-px { + /* @apply space-y-px; */ +} +.sbui-space-x-0 { + /* @apply space-x-0; */ +} +.sbui-space-x-1 { + /* @apply space-x-1; */ +} +.sbui-space-x-2 { + /* @apply space-x-2; */ +} +.sbui-space-x-3 { + /* @apply space-x-3; */ +} +.sbui-space-x-4 { + /* @apply space-x-4; */ +} +.sbui-space-x-5 { + /* @apply space-x-5; */ +} +.sbui-space-x-6 { + /* @apply space-x-6; */ +} +.sbui-space-x-7 { + /* @apply space-x-7; */ +} +.sbui-space-x-8 { + /* @apply space-x-8; */ +} +.sbui-space-x-9 { + /* @apply space-x-9; */ +} +.sbui-space-x-10 { + /* @apply space-x-10; */ +} +.sbui-space-x-11 { + /* @apply space-x-11; */ +} +.sbui-space-x-12 { + /* @apply space-x-12; */ +} +.sbui-space-x-14 { + /* @apply space-x-14; */ +} +.sbui-space-x-16 { + /* @apply space-x-16; */ +} +.sbui-space-x-20 { + /* @apply space-x-20; */ +} +.sbui-space-x-24 { + /* @apply space-x-24; */ +} +.sbui-space-x-28 { + /* @apply space-x-28; */ +} +.sbui-space-x-32 { + /* @apply space-x-32; */ +} +.sbui-space-x-36 { + /* @apply space-x-36; */ +} +.sbui-space-x-40 { + /* @apply space-x-40; */ +} +.sbui-space-x-44 { + /* @apply space-x-44; */ +} +.sbui-space-x-48 { + /* @apply space-x-48; */ +} +.sbui-space-x-52 { + /* @apply space-x-52; */ +} +.sbui-space-x-56 { + /* @apply space-x-56; */ +} +.sbui-space-x-60 { + /* @apply space-x-60; */ +} +.sbui-space-x-64 { + /* @apply space-x-64; */ +} +.sbui-space-x-72 { + /* @apply space-x-72; */ +} +.sbui-space-x-80 { + /* @apply space-x-80; */ +} +.sbui-space-x-96 { + /* @apply space-x-96; */ +} +.sbui-space-x-px { + /* @apply space-x-px; */ +} +.sbui-minus-space-y-0 { + /* @apply -space-y-0; */ +} +.sbui-minus-space-y-1 { + /* @apply -space-y-1; */ +} +.sbui-minus-space-y-2 { + /* @apply -space-y-2; */ +} +.sbui-minus-space-y-3 { + /* @apply -space-y-3; */ +} +.sbui-minus-space-y-4 { + /* @apply -space-y-4; */ +} +.sbui-minus-space-y-5 { + /* @apply -space-y-5; */ +} +.sbui-minus-space-y-6 { + /* @apply -space-y-6; */ +} +.sbui-minus-space-y-7 { + /* @apply -space-y-7; */ +} +.sbui-minus-space-y-8 { + /* @apply -space-y-8; */ +} +.sbui-minus-space-y-9 { + /* @apply -space-y-9; */ +} +.sbui-minus-space-y-10 { + /* @apply -space-y-10; */ +} +.sbui-minus-space-y-11 { + /* @apply -space-y-11; */ +} +.sbui-minus-space-y-12 { + /* @apply -space-y-12; */ +} +.sbui-minus-space-y-14 { + /* @apply -space-y-14; */ +} +.sbui-minus-space-y-16 { + /* @apply -space-y-16; */ +} +.sbui-minus-space-y-20 { + /* @apply -space-y-20; */ +} +.sbui-minus-space-y-24 { + /* @apply -space-y-24; */ +} +.sbui-minus-space-y-28 { + /* @apply -space-y-28; */ +} +.sbui-minus-space-y-32 { + /* @apply -space-y-32; */ +} +.sbui-minus-space-y-36 { + /* @apply -space-y-36; */ +} +.sbui-minus-space-y-40 { + /* @apply -space-y-40; */ +} +.sbui-minus-space-y-44 { + /* @apply -space-y-44; */ +} +.sbui-minus-space-y-48 { + /* @apply -space-y-48; */ +} +.sbui-minus-space-y-52 { + /* @apply -space-y-52; */ +} +.sbui-minus-space-y-56 { + /* @apply -space-y-56; */ +} +.sbui-minus-space-y-60 { + /* @apply -space-y-60; */ +} +.sbui-minus-space-y-64 { + /* @apply -space-y-64; */ +} +.sbui-minus-space-y-72 { + /* @apply -space-y-72; */ +} +.sbui-minus-space-y-80 { + /* @apply -space-y-80; */ +} +.sbui-minus-space-y-96 { + /* @apply -space-y-96; */ +} +.sbui-minus-space-y-px { + /* @apply -space-y-px; */ +} + +.sbui-minus-space-x-0 { + /* @apply -space-x-0; */ +} +.sbui-minus-space-x-1 { + /* @apply -space-x-1; */ +} +.sbui-minus-space-x-2 { + /* @apply -space-x-2; */ +} +.sbui-minus-space-x-3 { + /* @apply -space-x-3; */ +} +.sbui-minus-space-x-4 { + /* @apply -space-x-4; */ +} +.sbui-minus-space-x-5 { + /* @apply -space-x-5; */ +} +.sbui-minus-space-x-6 { + /* @apply -space-x-6; */ +} +.sbui-minus-space-x-7 { + /* @apply -space-x-7; */ +} +.sbui-minus-space-x-8 { + /* @apply -space-x-8; */ +} +.sbui-minus-space-x-9 { + /* @apply -space-x-9; */ +} +.sbui-minus-space-x-10 { + /* @apply -space-x-10; */ +} +.sbui-minus-space-x-11 { + /* @apply -space-x-11; */ +} +.sbui-minus-space-x-12 { + /* @apply -space-x-12; */ +} +.sbui-minus-space-x-14 { + /* @apply -space-x-14; */ +} +.sbui-minus-space-x-16 { + /* @apply -space-x-16; */ +} +.sbui-minus-space-x-20 { + /* @apply -space-x-20; */ +} +.sbui-minus-space-x-24 { + /* @apply -space-x-24; */ +} +.sbui-minus-space-x-28 { + /* @apply -space-x-28; */ +} +.sbui-minus-space-x-32 { + /* @apply -space-x-32; */ +} +.sbui-minus-space-x-36 { + /* @apply -space-x-36; */ +} +.sbui-minus-space-x-40 { + /* @apply -space-x-40; */ +} +.sbui-minus-space-x-44 { + /* @apply -space-x-44; */ +} +.sbui-minus-space-x-48 { + /* @apply -space-x-48; */ +} +.sbui-minus-space-x-52 { + /* @apply -space-x-52; */ +} +.sbui-minus-space-x-56 { + /* @apply -space-x-56; */ +} +.sbui-minus-space-x-60 { + /* @apply -space-x-60; */ +} +.sbui-minus-space-x-64 { + /* @apply -space-x-64; */ +} +.sbui-minus-space-x-72 { + /* @apply -space-x-72; */ +} +.sbui-minus-space-x-80 { + /* @apply -space-x-80; */ +} +.sbui-minus-space-x-96 { + /* @apply -space-x-96; */ +} +/* .sbui-minus-space-x-px { + /* @apply -space-x-; */ +} */ diff --git a/packages/ui/src/components/Space/Space.tsx b/packages/ui/src/components/Space/Space.tsx new file mode 100644 index 00000000000..c5c75cefa1b --- /dev/null +++ b/packages/ui/src/components/Space/Space.tsx @@ -0,0 +1,43 @@ +import React from 'react' +// @ts-ignore +// import SpaceStyles from './Space.module.css' + +function Space({ + direction, + size = 2, + className, + block, + style, + minus, + children, +}: any) { + // const classes = [] + // classes.push(direction === 'vertical' ? 'sbui-space-col' : 'sbui-space-row') + // classes.push( + // SpaceStyles[ + // 'sbui-' + + // (minus ? 'minus-' : '') + + // 'space-' + + // (direction === 'vertical' ? 'y' : 'x') + + // '-' + + // size + // ] + // ) + // if (block) { + // classes.push(SpaceStyles['sbui-space--block']) + // } + // if (className) { + // classes.push(className) + // } + + return ( +
    + {children} +
    + ) +} + +export default Space diff --git a/packages/ui/src/components/Space/index.tsx b/packages/ui/src/components/Space/index.tsx new file mode 100644 index 00000000000..9813d7e8b65 --- /dev/null +++ b/packages/ui/src/components/Space/index.tsx @@ -0,0 +1 @@ +export { default as Space } from './Space' diff --git a/packages/ui/src/components/Tabs/Tabs.module.css b/packages/ui/src/components/Tabs/Tabs.module.css new file mode 100644 index 00000000000..9769765d554 --- /dev/null +++ b/packages/ui/src/components/Tabs/Tabs.module.css @@ -0,0 +1,43 @@ +/* .sbui-tab-button-underline { + @apply rounded-none; +.sbui-tab-button-underline { + @apply rounded-none border-none; + @apply hover:text-gray-600 hover:bg-transparent; + @apply dark:hover:text-white dark:hover:bg-transparent; + border-bottom-style: solid; + border-bottom-width: 2px; + margin-bottom: -1px; + padding-left: 0; + padding-right: 0; +} + +.sbui-tab-button-underline--active { + @apply border-brand-700; + @apply rounded-none; + @apply text-gray-600; + @apply dark:text-white; + border-bottom-style: solid; + border-bottom-width: 2px; +} + +.sbui-tab-bar--scrollable { + overflow: auto; + white-space: nowrap; + -ms-overflow-style: none; /* IE and Edge */ + scrollbar-width: none; /* Firefox */ +} + +/* Hide scrollbar for Chrome, Safari and Opera */ +.sbui-tab-bar--scrollable::-webkit-scrollbar { + display: none; +} + +.sbui-tab-bar-inner-container { + flex-grow: 1; +} + +/* base */ +.sbui-tab-bar-container { + justify-content: space-between; + width: 100%; +} */ diff --git a/packages/ui/src/components/Tabs/Tabs.stories.tsx b/packages/ui/src/components/Tabs/Tabs.stories.tsx new file mode 100644 index 00000000000..17ed4f3c317 --- /dev/null +++ b/packages/ui/src/components/Tabs/Tabs.stories.tsx @@ -0,0 +1,165 @@ +import React from 'react' +import { Button } from '../Button' +import { IconMail } from '../../index' +import Typography from '../Typography' + +import { Tabs } from './' + +export default { + title: 'Displays/Tabs', + component: Tabs, +} + +export const Default = (args: any) => ( + + + Content for the first panel + + + Content for the second panel + + + Content for the third panel + + +) + +export const Underlined = (args: any) => ( + + + Content for the first panel + + + Content for the second panel + + + Content for the third panel + + +) + +export const WithIcons = (args: any) => ( + + }> + Content for the first panel + + }> + Content for the second panel + + }> + Content for the third panel + + +) + +export const LargeButtons = (args: any) => ( + + + Content for the first panel + + + Content for the second panel + + + Content for the third panel + + +) + +export const BlockTabs = (args: any) => ( + + + Content for the first panel + + + Content for the second panel + + + Content for the third panel + + +) + +const limit = 30 +let infitniteSroll: JSX.Element[] = [] + +for (var i = 0; i < limit; i++) { + infitniteSroll.push( + + Content for the panel {i} + + ) +} + +export const Scroll = (args: any) => ( + + {infitniteSroll} + +) + +export const addOnBefore = (args: any) => ( + + + Content for the first panel + + + Content for the second panel + + + Content for the third panel + + +) + +export const addOnAfter = (args: any) => ( + + + Content for the first panel + + + Content for the second panel + + + Content for the third panel + + +) + +export const OneTab = () => ( + + + Content for the first panel + + +) + +Default.args = {} +Underlined.args = { + type: 'underlined', +} +WithIcons.args = { + type: 'underlined', +} +LargeButtons.args = { + type: 'underlined', + size: 'large', +} +BlockTabs.args = { + type: 'underlined', + block: true, +} +Scroll.args = { + type: 'underlined', + block: true, + scrollable: true, +} +addOnBefore.args = { + type: 'underlined', + size: 'large', + addOnBefore: , +} +addOnAfter.args = { + type: 'underlined', + size: 'large', + addOnAfter: , +} diff --git a/packages/ui/src/components/Tabs/Tabs.tsx b/packages/ui/src/components/Tabs/Tabs.tsx new file mode 100644 index 00000000000..b9625bc84c6 --- /dev/null +++ b/packages/ui/src/components/Tabs/Tabs.tsx @@ -0,0 +1,152 @@ +import React, { useState } from 'react' +import { TabsContext } from './TabsContext' + +import * as TabsPrimitive from '@radix-ui/react-tabs' + +// @ts-ignore +// import TabsStyles from './Tabs.module.css' + +import styleHandler from '../../lib/theme/styleHandler' + +interface TabsProps { + type?: 'pills' | 'underlined' | 'cards' + children: any + defaultActiveId?: string + activeId?: string + size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' + block?: boolean + tabBarGutter?: number + tabBarStyle?: React.CSSProperties + onChange?: any + onClick?: any + scrollable?: boolean + addOnBefore?: React.ReactNode + addOnAfter?: React.ReactNode + listClassNames?: string +} + +function Tabs({ + children, + defaultActiveId, + activeId, + type = 'pills', + size = 'tiny', + block, + onChange, + onClick, + scrollable, + addOnBefore, + addOnAfter, + listClassNames, +}: TabsProps) { + const [activeTab, setActiveTab] = useState( + defaultActiveId + ? defaultActiveId + : // if no defaultActiveId is set use the first panel + children && children[0].props + ? children[0].props.id + : '' + ) + + let __styles = styleHandler('tabs') + + // activeId state can be overriden externally with `active` + // defaults to use activeTab + const active = activeId ? activeId : activeTab + + function onTabClick(id: string) { + const newTabSelected = id !== active + setActiveTab(id) + if (onClick) onClick(id) + if (onChange && newTabSelected) onChange(id) + } + + // for styling the tabs for underline style + const underlined = type === 'underlined' + // for styling the tabs for cards style + + const listClasses = [__styles[type].list] + if (scrollable) listClasses.push(__styles.scrollable) + if (listClassNames) listClasses.push(listClassNames) + + // if only 1 react child, it needs to be converted to a list/array + // this is so 1 tab can be displayed + if (children && !Array.isArray(children)) { + children = [children] + } + + return ( + + + {addOnBefore} + {children.map((tab: any) => { + const activeMatch = active === tab.props.id + + const triggerClasses = [__styles[type].base, __styles.size[size]] + if (activeMatch) { + triggerClasses.push(__styles[type].active) + } else { + triggerClasses.push(__styles[type].inactive) + } + if (block) { + triggerClasses.push(__styles.block) + } + + return ( + { + if (e.keyCode === 13) { + e.preventDefault() + onTabClick(tab.props.id) + } + }} + onClick={() => onTabClick(tab.props.id)} + key={`${tab.props.id}-tab-button`} + value={tab.props.id} + className={triggerClasses.join(' ')} + > + {tab.props.icon} + {tab.props.label} + + ) + })} + {/* */} + {addOnAfter} + + + {children} + + + ) +} + +interface PanelProps { + children?: React.ReactNode + id: string + label?: string + icon?: React.ReactNode +} + +export function Panel({ children, id }: PanelProps) { + let __styles = styleHandler('tabs') + + return ( + + {({ activeId }) => { + const active = activeId === id + return ( + + {children} + + ) + }} + + ) +} + +Tabs.Panel = Panel +export default Tabs diff --git a/packages/ui/src/components/Tabs/TabsContext.tsx b/packages/ui/src/components/Tabs/TabsContext.tsx new file mode 100644 index 00000000000..b4a3471f16b --- /dev/null +++ b/packages/ui/src/components/Tabs/TabsContext.tsx @@ -0,0 +1,7 @@ +import { createContext } from 'react' + +// Make sure the shape of the default value passed to +// createContext matches the shape that the consumers expect! +export const TabsContext = createContext({ + activeId: '', +}) diff --git a/packages/ui/src/components/Tabs/index.tsx b/packages/ui/src/components/Tabs/index.tsx new file mode 100644 index 00000000000..91e13405f93 --- /dev/null +++ b/packages/ui/src/components/Tabs/index.tsx @@ -0,0 +1 @@ +export { default as Tabs } from './Tabs' diff --git a/packages/ui/src/components/Textarea/Textarea.css b/packages/ui/src/components/Textarea/Textarea.css new file mode 100644 index 00000000000..22080ce9ee4 --- /dev/null +++ b/packages/ui/src/components/Textarea/Textarea.css @@ -0,0 +1,11 @@ +.form-textarea:disabled { + @apply bg-gray-100 cursor-not-allowed; +} + +.form-textarea--error { + @apply border-red-500; +} + +.form-textarea--borderless { + @apply border-none; +} diff --git a/packages/ui/src/components/Textarea/Textarea.js b/packages/ui/src/components/Textarea/Textarea.js new file mode 100644 index 00000000000..3d1aa7e35b6 --- /dev/null +++ b/packages/ui/src/components/Textarea/Textarea.js @@ -0,0 +1,38 @@ +import React from 'react' +import PropTypes from 'prop-types' +import './Textarea.css' + +const Textarea = ({ + className = '', + isError = false, + rows = 3, + children, + borderless = false, + ...props +}) => { + const classes = [] + + if (isError) { + classes.push('form-textarea--error') + } + + if (borderless) { + classes.push('form-textarea--borderless') + } + + return ( + + ) +}) + +export const useMonaco = jest.fn().mockImplementation((v) => v) +export default Editor diff --git a/studio/__mocks__/components/layouts.js b/studio/__mocks__/components/layouts.js new file mode 100644 index 00000000000..3f5dde5e8c8 --- /dev/null +++ b/studio/__mocks__/components/layouts.js @@ -0,0 +1,3 @@ +const MockLayout = jest.fn().mockImplementation(({ children }) => <>{children}) +export const LogsExplorerLayout = MockLayout +export default MockLayout diff --git a/studio/__mocks__/hooks.js b/studio/__mocks__/hooks.js new file mode 100644 index 00000000000..bfacf3748e5 --- /dev/null +++ b/studio/__mocks__/hooks.js @@ -0,0 +1,18 @@ +export const useFlag = jest.fn().mockReturnValue(true) +export const checkPermissions = jest.fn().mockReturnValue(true) +export const useProjectSubscription = jest.fn().mockReturnValue({ + subscription: { + tier: { + supabase_prod_id: 'tier_free', + }, + }, +}) + +const { useStore, StoreProvider } = jest.requireActual('hooks') +export const useStore = useStore + +// mocks browser event listener adding/removing +window.matchMedia = jest.fn().mockReturnValue({ + removeEventListener: jest.fn(), +}) +export const StoreProvider = StoreProvider diff --git a/studio/__mocks__/lib/common/fetch.js b/studio/__mocks__/lib/common/fetch.js new file mode 100644 index 00000000000..b957643e53b --- /dev/null +++ b/studio/__mocks__/lib/common/fetch.js @@ -0,0 +1 @@ +export const get = jest.fn() diff --git a/studio/__mocks__/mobx-react-lite.js b/studio/__mocks__/mobx-react-lite.js new file mode 100644 index 00000000000..1d19f03c4de --- /dev/null +++ b/studio/__mocks__/mobx-react-lite.js @@ -0,0 +1 @@ +export const observer = jest.fn().mockImplementation((v) => v) diff --git a/studio/__mocks__/next/router.js b/studio/__mocks__/next/router.js new file mode 100644 index 00000000000..6d616d90094 --- /dev/null +++ b/studio/__mocks__/next/router.js @@ -0,0 +1,5 @@ +export const useRouter = jest.fn().mockImplementation(() => ({ + query: { ref: '123' }, + push: jest.fn(), + pathname: 'logs/path', +})) diff --git a/studio/components/grid/SupabaseGrid.utils.ts b/studio/components/grid/SupabaseGrid.utils.ts index 14ece39471e..60731c00291 100644 --- a/studio/components/grid/SupabaseGrid.utils.ts +++ b/studio/components/grid/SupabaseGrid.utils.ts @@ -79,10 +79,20 @@ export function initTable( ? onLoadStorage(props.storageRef, table.name, table.schema) : undefined - // Load sort and filters via URL param only if given + // Check for saved state on initial load and also, load sort and filters via URL param only if given // Otherwise load from local storage to resume user session - if (sort === undefined && filter === undefined && (savedState?.sorts || savedState?.filters)) { - return { savedState: { sorts: savedState.sorts, filters: savedState.filters } } + if ( + !state.isInitialComplete && + sort === undefined && + filter === undefined && + (savedState?.sorts || savedState?.filters) + ) { + return { + savedState: { + sorts: savedState.sorts, + filters: savedState.filters, + }, + } } const gridColumns = getGridColumns(table, { diff --git a/studio/components/grid/components/common/BlockKeys.tsx b/studio/components/grid/components/common/BlockKeys.tsx index 4a8007326c8..c64ef804e2d 100644 --- a/studio/components/grid/components/common/BlockKeys.tsx +++ b/studio/components/grid/components/common/BlockKeys.tsx @@ -1,9 +1,10 @@ -import * as React from 'react' +import { FC, useCallback, KeyboardEvent, ReactNode } from 'react' -type BlockKeysProps = { +interface BlockKeysProps { + value: string | null + children: ReactNode onEscape?: (value: string | null) => void onEnter?: (value: string | null) => void - value: string | null } /** @@ -11,9 +12,9 @@ type BlockKeysProps = { * We use this with cell editor to allow editor component to handle keys. * Example: press enter to add newline on textEditor */ -export const BlockKeys: React.FC = ({ onEscape, onEnter, value, children }) => { - const handleKeyDown = React.useCallback( - (ev: React.KeyboardEvent) => { +export const BlockKeys: FC = ({ value, children, onEscape, onEnter }) => { + const handleKeyDown = useCallback( + (ev: KeyboardEvent) => { switch (ev.key) { case 'Escape': ev.stopPropagation() @@ -21,7 +22,10 @@ export const BlockKeys: React.FC = ({ onEscape, onEnter, value, break case 'Enter': ev.stopPropagation() - if (onEnter) onEnter(value) + if (!ev.shiftKey && onEnter) { + ev.preventDefault() + onEnter(value) + } break } }, @@ -29,7 +33,7 @@ export const BlockKeys: React.FC = ({ onEscape, onEnter, value, ) function onBlur() { - if (onEscape) onEscape(value) + if (onEnter) onEnter(value) } return ( diff --git a/studio/components/grid/components/common/DropdownControl.tsx b/studio/components/grid/components/common/DropdownControl.tsx index c37b2c9dd84..e57ddf97e9a 100644 --- a/studio/components/grid/components/common/DropdownControl.tsx +++ b/studio/components/grid/components/common/DropdownControl.tsx @@ -1,7 +1,7 @@ -import * as React from 'react' -import { Dropdown, Typography } from '@supabase/ui' +import { FC } from 'react' +import { Dropdown } from 'ui' -type DropdownControlProps = { +interface DropdownControlProps { options: { value: string | number label: string @@ -15,7 +15,7 @@ type DropdownControlProps = { isNested?: boolean } -export const DropdownControl: React.FC = (p) => { +export const DropdownControl: FC = (p) => { const { className, children, side, align, isNested } = p return ( = (p) => { ) } -const DropdownItems: React.FC = ({ options, onSelect }) => { +const DropdownItems: FC = ({ options, onSelect }) => { return (
    - {options.length == 0 && ( - No more items - )} + {options.length == 0 &&

    No more items

    } {options.map((x) => { return ( onSelect(x.value)}>
    - {x.preLabel && {x.preLabel}} + {x.preLabel && {x.preLabel}} {x.label} {x.postLabel && {x.postLabel}}
    diff --git a/studio/components/grid/components/common/ForeignTableModal/FilterHeader.tsx b/studio/components/grid/components/common/ForeignTableModal/FilterHeader.tsx index 7a5b87be14a..827848222bb 100644 --- a/studio/components/grid/components/common/ForeignTableModal/FilterHeader.tsx +++ b/studio/components/grid/components/common/ForeignTableModal/FilterHeader.tsx @@ -1,6 +1,6 @@ import React, { FC, useState } from 'react' import AwesomeDebouncePromise from 'awesome-debounce-promise' -import { Button, Input, IconChevronDown, IconSearch } from '@supabase/ui' +import { Button, Input, IconChevronDown, IconSearch } from 'ui' import { DropdownControl } from '../../common' import { FilterOperatorOptions } from '../../header/filter' import { Filter, FilterOperator } from '../../../types' diff --git a/studio/components/grid/components/common/ForeignTableModal/RowItem.tsx b/studio/components/grid/components/common/ForeignTableModal/RowItem.tsx index 8a0296bc6ab..d27314724bb 100644 --- a/studio/components/grid/components/common/ForeignTableModal/RowItem.tsx +++ b/studio/components/grid/components/common/ForeignTableModal/RowItem.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import { Menu, Typography } from '@supabase/ui' +import { Menu } from 'ui' import { Dictionary } from '../../../types' interface RowItemProps { @@ -23,20 +23,16 @@ export const RowItem: React.FC = ({ item, onSelect, columnNames }) return (
    - +

    {key} - - +

    +

    {item[key] ? typeof item[key] === 'object' ? JSON.stringify(item[key]) : item[key] : '[null]'} - +

    ) })} diff --git a/studio/components/grid/components/common/ForeignTableModal/index.tsx b/studio/components/grid/components/common/ForeignTableModal/index.tsx index 4a2fe2755fa..ac89ca6ee09 100644 --- a/studio/components/grid/components/common/ForeignTableModal/index.tsx +++ b/studio/components/grid/components/common/ForeignTableModal/index.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import { Button, Modal, Menu, IconExternalLink, IconTrash } from '@supabase/ui' +import { Button, Modal, Menu, IconExternalLink, IconTrash } from 'ui' import { RowItem } from './RowItem' import { FilterHeader } from './FilterHeader' diff --git a/studio/components/grid/components/editor/JsonEditor.tsx b/studio/components/grid/components/editor/JsonEditor.tsx index 66c3fa1e65d..7d2670beba4 100644 --- a/studio/components/grid/components/editor/JsonEditor.tsx +++ b/studio/components/grid/components/editor/JsonEditor.tsx @@ -1,9 +1,9 @@ -import * as React from 'react' - +import { Popover } from 'ui' +import { useState, useCallback } from 'react' import { EditorProps } from '@supabase/react-data-grid' -import { useTrackedState } from '../../store' -import { BlockKeys, MonacoEditor, NullValue } from '../common' -import { Popover } from '@supabase/ui' + +import { useTrackedState } from 'components/grid/store' +import { BlockKeys, MonacoEditor, NullValue } from 'components/grid/components/common' export function JsonEditor({ row, @@ -11,18 +11,23 @@ export function JsonEditor({ onRowChange, }: EditorProps) { const state = useTrackedState() - const [isPopoverOpen, setIsPopoverOpen] = React.useState(true) + const gridColumn = state.gridColumns.find((x) => x.name == column.key) const initialValue = row[column.key as keyof TRow] as unknown - const jsonString = initialValue ? JSON.stringify(initialValue) : '' - const prettyJsonValue = prettifyJSON(jsonString) - const [value, setValue] = React.useState(prettyJsonValue) + const jsonString = prettifyJSON(initialValue ? JSON.stringify(initialValue) : '') - const onEscape = React.useCallback((newValue: string | null) => { - commitChange(newValue) + const [isPopoverOpen, setIsPopoverOpen] = useState(true) + const [value, setValue] = useState(jsonString) + + const cancelChanges = useCallback(() => { + onRowChange(row, true) setIsPopoverOpen(false) }, []) + const saveChanges = useCallback((newValue: string | null) => { + commitChange(newValue) + }, []) + function onChange(_value: string | undefined) { if (!_value || _value == '') setValue(null) else setValue(_value) @@ -31,12 +36,14 @@ export function JsonEditor({ function commitChange(newValue: string | null) { if (!newValue) { onRowChange({ ...row, [column.key]: null }, true) + setIsPopoverOpen(false) } else if (verifyJSON(newValue)) { const jsonValue = JSON.parse(newValue) onRowChange({ ...row, [column.key]: jsonValue }, true) + setIsPopoverOpen(false) } else { const { onError } = state - if (onError) onError(Error('invalid input')) + if (onError) onError(Error('Please enter a valid JSON')) } } @@ -48,13 +55,17 @@ export function JsonEditor({ sideOffset={-35} className="rounded-none" overlay={ - + +
    +

    Save changes

    + ⏎ +
    } > diff --git a/studio/components/grid/components/editor/NullableBooleanEditor.tsx b/studio/components/grid/components/editor/NullableBooleanEditor.tsx index cac18ed8e4c..22996cf1dc6 100644 --- a/studio/components/grid/components/editor/NullableBooleanEditor.tsx +++ b/studio/components/grid/components/editor/NullableBooleanEditor.tsx @@ -1,6 +1,6 @@ import React, { useEffect } from 'react' import { EditorProps } from '@supabase/react-data-grid' -import { Button, IconX } from '@supabase/ui' +import { Button, IconX } from 'ui' export function NullableBooleanEditor({ row, diff --git a/studio/components/grid/components/editor/SelectEditor.tsx b/studio/components/grid/components/editor/SelectEditor.tsx index cdbbd2a547c..fd41a84c46a 100644 --- a/studio/components/grid/components/editor/SelectEditor.tsx +++ b/studio/components/grid/components/editor/SelectEditor.tsx @@ -1,6 +1,8 @@ -import * as React from 'react' +import { Listbox } from '@supabase/ui' import { EditorProps } from '@supabase/react-data-grid' +import { useTrackedState } from 'components/grid/store' + interface SelectEditorProps extends EditorProps { options: { label: string; value: string }[] } @@ -12,10 +14,12 @@ export function SelectEditor({ onClose, options, }: SelectEditorProps) { + const state = useTrackedState() + const gridColumn = state.gridColumns.find((x) => x.name == column.key) + const value = row[column.key as keyof TRow] as unknown as string - function onChange(event: React.ChangeEvent) { - const value = event.target.value + function onChange(value: string) { if (!value || value == '') { onRowChange({ ...row, [column.key]: null }, true) } else { @@ -28,19 +32,25 @@ export function SelectEditor({ } return ( - + ) } diff --git a/studio/components/grid/components/editor/TextEditor.tsx b/studio/components/grid/components/editor/TextEditor.tsx index 00dd5cd671c..ac375f9178c 100644 --- a/studio/components/grid/components/editor/TextEditor.tsx +++ b/studio/components/grid/components/editor/TextEditor.tsx @@ -1,8 +1,8 @@ -import * as React from 'react' +import { useState, useCallback } from 'react' import { EditorProps } from '@supabase/react-data-grid' import { useTrackedState } from '../../store' import { BlockKeys, MonacoEditor, NullValue, EmptyValue } from '../common' -import { Popover } from '@supabase/ui' +import { Popover } from 'ui' export function TextEditor({ row, @@ -10,12 +10,17 @@ export function TextEditor({ onRowChange, }: EditorProps) { const state = useTrackedState() - const [isPopoverOpen, setIsPopoverOpen] = React.useState(true) + const [isPopoverOpen, setIsPopoverOpen] = useState(true) const gridColumn = state.gridColumns.find((x) => x.name == column.key) const initialValue = row[column.key as keyof TRow] as unknown as string - const [value, setValue] = React.useState(initialValue) + const [value, setValue] = useState(initialValue) - const onEscape = React.useCallback((newValue: string | null) => { + const cancelChanges = useCallback(() => { + onRowChange(row, true) + setIsPopoverOpen(false) + }, []) + + const saveChanges = useCallback((newValue: string | null) => { onRowChange({ ...row, [column.key]: newValue }, true) setIsPopoverOpen(false) }, []) @@ -33,12 +38,16 @@ export function TextEditor({ sideOffset={-35} className="rounded-none" overlay={ - + +
    +

    Save changes

    + ⏎ +
    } > diff --git a/studio/components/grid/components/footer/pagination/Pagination.tsx b/studio/components/grid/components/footer/pagination/Pagination.tsx index 2a73cbb0113..85a5713369e 100644 --- a/studio/components/grid/components/footer/pagination/Pagination.tsx +++ b/studio/components/grid/components/footer/pagination/Pagination.tsx @@ -1,6 +1,6 @@ import { FC, useState, useEffect } from 'react' import AwesomeDebouncePromise from 'awesome-debounce-promise' -import { Button, InputNumber, IconArrowRight, IconArrowLeft, IconLoader } from '@supabase/ui' +import { Button, InputNumber, IconArrowRight, IconArrowLeft, IconLoader } from 'ui' import { DropdownControl } from '../../common' import { useDispatch, useTrackedState } from '../../../store' import { confirmAlert } from 'components/to-be-cleaned/ModalsDeprecated/ConfirmModal' @@ -103,7 +103,7 @@ const Pagination: FC = () => { return (
    {state.totalRows < 0 ? ( -

    Loading records...

    +

    Loading records...

    ) : ( <> -

    {`${state.totalRows.toLocaleString()} ${ +

    {`${state.totalRows.toLocaleString()} ${ state.totalRows === 0 || state.totalRows > 1 ? `records` : 'record' }`}

    {state.isLoading && } diff --git a/studio/components/grid/components/grid/AddColumn.tsx b/studio/components/grid/components/grid/AddColumn.tsx index 5fc6b6dd474..d4daba4c134 100644 --- a/studio/components/grid/components/grid/AddColumn.tsx +++ b/studio/components/grid/components/grid/AddColumn.tsx @@ -1,6 +1,6 @@ import * as React from 'react' import { CalculatedColumn } from '@supabase/react-data-grid' -import { Button, IconPlus } from '@supabase/ui' +import { Button, IconPlus } from 'ui' import { ADD_COLUMN_KEY } from '../../constants' import { useTrackedState } from '../../store' import { DefaultFormatter } from '../formatter' diff --git a/studio/components/grid/components/grid/ColumnHeader.tsx b/studio/components/grid/components/grid/ColumnHeader.tsx index 59759b12cf2..2ff026c5cbd 100644 --- a/studio/components/grid/components/grid/ColumnHeader.tsx +++ b/studio/components/grid/components/grid/ColumnHeader.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import { IconKey, IconLink } from '@supabase/ui' +import { IconKey, IconLink } from 'ui' import { useDrag, useDrop, DropTargetMonitor } from 'react-dnd' import { XYCoord } from 'dnd-core' import { useDispatch } from '../../store' @@ -19,6 +19,7 @@ export function ColumnHeader({ const columnKey = column.key const columnFormat = getColumnFormat(columnType, format) const state = useTrackedState() + const hoverValue = column.name as string // keep state.gridColumns' order in sync with data grid component if (state.gridColumns[columnIdx].key != columnKey) { @@ -122,7 +123,9 @@ export function ColumnHeader({
    )} - {column.name} + + {column.name} + {columnFormat}
    diff --git a/studio/components/grid/components/grid/Grid.tsx b/studio/components/grid/components/grid/Grid.tsx index 5f27e85ceaa..230e40dabf3 100644 --- a/studio/components/grid/components/grid/Grid.tsx +++ b/studio/components/grid/components/grid/Grid.tsx @@ -1,14 +1,14 @@ import { forwardRef } from 'react' import { memo } from 'react-tracked' import DataGrid, { DataGridHandle, RowsChangeData } from '@supabase/react-data-grid' -import { IconLoader } from '@supabase/ui' +import { IconLoader } from 'ui' import { GridProps, SupaRow } from '../../types' import { useDispatch, useTrackedState } from '../../store' import RowRenderer from './RowRenderer' import AwesomeDebouncePromise from 'awesome-debounce-promise' function rowKeyGetter(row: SupaRow) { - return row.idx + return row?.idx ?? -1 } interface IGrid extends GridProps { @@ -39,6 +39,7 @@ export const Grid = memo( const changedColumn = Object.keys(rowData).find( (name) => rowData[name] !== originRowData![name] ) + if (changedColumn) { const { error } = state.rowService!.update(rowData, changedColumn, (payload) => { dispatch({ @@ -71,10 +72,10 @@ export const Grid = memo( style={{ width: width || '100%', height: height || '50vh' }} >
    -
    +
    -
    Loading...
    +
    Loading...
    ) diff --git a/studio/components/grid/components/grid/SelectColumn.tsx b/studio/components/grid/components/grid/SelectColumn.tsx index 9c16c9eeef8..34aced493ec 100644 --- a/studio/components/grid/components/grid/SelectColumn.tsx +++ b/studio/components/grid/components/grid/SelectColumn.tsx @@ -5,7 +5,7 @@ import { GroupFormatterProps, useRowSelection, } from '@supabase/react-data-grid' -import { Button, IconMaximize2 } from '@supabase/ui' +import { Button, IconMaximize2 } from 'ui' import { SupaRow } from '../../types' import { SELECT_COLUMN_KEY } from '../../constants' import { useFocusRef } from '../../utils' diff --git a/studio/components/grid/components/header/Header.tsx b/studio/components/grid/components/header/Header.tsx index 2dff24d48c4..d12de67b882 100644 --- a/studio/components/grid/components/header/Header.tsx +++ b/studio/components/grid/components/header/Header.tsx @@ -1,5 +1,5 @@ import { FC, useState, ReactNode } from 'react' -import { Button, IconDownload, IconPlus, IconX, IconTrash } from '@supabase/ui' +import { Button, IconDownload, IconPlus, IconX, IconTrash } from 'ui' import { saveAs } from 'file-saver' import { useStore } from 'hooks' @@ -30,7 +30,7 @@ const Header: FC = ({ sorts, filters, onAddColumn, onAddRow, header const { selectedRows } = state return ( -
    +
    {selectedRows.size > 0 ? ( ) : ( @@ -77,12 +77,12 @@ const DefaultHeader: FC = ({ sorts, filters, onAddColumn, on return (
    -
    +
    -
    +
    {renderNewColumn(onAddColumn)} {renderAddRow(onAddRow)} @@ -112,9 +112,13 @@ const RowHeader: FC = ({ sorts, filters }) => { } const onRowsDelete = () => { + const numRows = allRowsSelected ? totalRows : selectedRows.size confirmAlert({ title: 'Confirm to delete', - message: 'Are you sure you want to delete the selected rows? This action cannot be undone.', + message: `Are you sure you want to delete the selected ${numRows} row${ + numRows > 1 ? 's' : '' + }? This action cannot be undone.`, + confirmText: `Delete ${numRows} rows`, onAsyncConfirm: async () => { if (allRowsSelected) { const { error } = @@ -185,7 +189,7 @@ const RowHeader: FC = ({ sorts, filters }) => { icon={} onClick={deselectRows} /> - + {allRowsSelected ? `${totalRows} rows selected` : selectedRows.size > 1 diff --git a/studio/components/grid/components/header/RefreshButton.tsx b/studio/components/grid/components/header/RefreshButton.tsx index 25afea6b837..518a5f8b721 100644 --- a/studio/components/grid/components/header/RefreshButton.tsx +++ b/studio/components/grid/components/header/RefreshButton.tsx @@ -1,5 +1,5 @@ import { FC, useState } from 'react' -import { Button, IconRefreshCw } from '@supabase/ui' +import { Button, IconRefreshCw } from 'ui' import { Filter, Sort } from 'components/grid/types' import { useDispatch, useTrackedState } from 'components/grid/store' import { fetchCount, fetchPage } from 'components/grid/utils' @@ -24,9 +24,8 @@ const RefreshButton: FC = ({ sorts, filters }) => { return ( ) : ( -

    All columns have been added

    +

    All columns have been added

    )}
    diff --git a/studio/components/grid/components/header/sort/SortRow.tsx b/studio/components/grid/components/header/sort/SortRow.tsx index ee1adcd3985..f6fecf5f74c 100644 --- a/studio/components/grid/components/header/sort/SortRow.tsx +++ b/studio/components/grid/components/header/sort/SortRow.tsx @@ -1,6 +1,6 @@ import update from 'immutability-helper' import { FC, useRef, memo } from 'react' -import { Button, IconMenu, Toggle, IconX } from '@supabase/ui' +import { Button, IconMenu, Toggle, IconX } from 'ui' import { XYCoord } from 'dnd-core' import { useDrag, useDrop, DropTargetMonitor } from 'react-dnd' @@ -151,13 +151,13 @@ const SortRow: FC = ({ index, columnName, sort }) => { onClick={onRemoveSort} />
    - - {index > 0 ? 'then by' : 'sort by'} + + {index > 0 ? 'then by' : 'sort by'} {column.name}
    - + = ({}) => { const { props } = p const { rowIdx } = props const row = state.rows[rowIdx] + if (!row) return + const { error } = state.rowService!.delete([row]) if (error) { if (state.onError) state.onError(error) diff --git a/studio/components/grid/query/Query.utils.ts b/studio/components/grid/query/Query.utils.ts index e838093167e..652a4763688 100644 --- a/studio/components/grid/query/Query.utils.ts +++ b/studio/components/grid/query/Query.utils.ts @@ -35,18 +35,22 @@ export function deleteQuery( filters?: Filter[], options?: { returning?: boolean + enumArrayColumns?: string[] } ) { if (!filters || filters.length === 0) { throw { message: 'no filters for this delete query' } } let query = `delete from ${queryTable(table)}` - const { returning } = options ?? {} + const { returning, enumArrayColumns } = options ?? {} if (filters) { query = applyFilters(query, filters) } if (returning) { - query += ' returning *' + query += + enumArrayColumns === undefined || enumArrayColumns.length === 0 + ? ` returning *` + : ` returning *, ${enumArrayColumns.map((x) => `"${x}"::text[]`).join(',')}` } return query + ';' } @@ -56,12 +60,13 @@ export function insertQuery( values: Dictionary[], options?: { returning?: boolean + enumArrayColumns?: string[] } ) { if (!values || values.length === 0) { throw { message: 'no value to insert' } } - const { returning } = options ?? {} + const { returning, enumArrayColumns } = options ?? {} const queryColumns = Object.keys(values[0]) .map((x) => ident(x)) .join(',') @@ -81,14 +86,17 @@ export function insertQuery( ) } if (returning) { - query += ' returning *' + query += + enumArrayColumns === undefined || enumArrayColumns.length === 0 + ? ` returning *` + : ` returning *, ${enumArrayColumns.map((x) => `"${x}"::text[]`).join(',')}` } return query + ';' } export function selectQuery( table: QueryTable, - columns?: string[], + columns?: string, options?: { filters?: Filter[] pagination?: QueryPagination @@ -96,7 +104,7 @@ export function selectQuery( } ) { let query = '' - const queryColumn = columns?.map((x) => ident(x)).join(', ') ?? '*' + const queryColumn = columns ?? '*' query += `select ${queryColumn} from ${queryTable(table)}` const { filters, pagination, sorts } = options ?? {} @@ -119,9 +127,10 @@ export function updateQuery( options?: { filters?: Filter[] returning?: boolean + enumArrayColumns?: string[] } ) { - const { filters, returning } = options ?? {} + const { filters, returning, enumArrayColumns } = options ?? {} if (!filters || filters.length === 0) { throw { message: 'no filters for this update query' } } @@ -138,8 +147,12 @@ export function updateQuery( query = applyFilters(query, filters) } if (returning) { - query += ' returning *' + query += + enumArrayColumns === undefined || enumArrayColumns.length === 0 + ? ` returning *` + : ` returning *, ${enumArrayColumns.map((x) => `"${x}"::text[]`).join(',')}` } + return query + ';' } diff --git a/studio/components/grid/query/QueryAction.ts b/studio/components/grid/query/QueryAction.ts index 5523c37bd33..4689ad68cbf 100644 --- a/studio/components/grid/query/QueryAction.ts +++ b/studio/components/grid/query/QueryAction.ts @@ -5,7 +5,7 @@ export interface IQueryAction { count: () => IQueryFilter delete: (options?: { returning: boolean }) => IQueryFilter insert: (values: Dictionary[], options?: { returning: boolean }) => IQueryFilter - select: (columns?: string[]) => IQueryFilter + select: (columns?: string) => IQueryFilter update: (value: Dictionary, options?: { returning: boolean }) => IQueryFilter truncate: (options?: { returning: boolean }) => IQueryFilter } @@ -25,7 +25,7 @@ export class QueryAction implements IQueryAction { * * @param options.returning If `true`, return the deleted row(s) in the response. */ - delete(options?: { returning: boolean }) { + delete(options?: { returning: boolean; enumArrayColumns?: string[] }) { return new QueryFilter(this.table, 'delete', undefined, options) } @@ -35,7 +35,7 @@ export class QueryAction implements IQueryAction { * @param values The values to insert. * @param options.returning If `true`, return the inserted row(s) in the response. */ - insert(values: Dictionary[], options?: { returning: boolean }) { + insert(values: Dictionary[], options?: { returning: boolean; enumArrayColumns?: string[] }) { return new QueryFilter(this.table, 'insert', values, options) } @@ -44,7 +44,7 @@ export class QueryAction implements IQueryAction { * * @param columns the query columns, by default set to '*'. */ - select(columns?: string[]) { + select(columns?: string) { return new QueryFilter(this.table, 'select', columns) } @@ -54,14 +54,14 @@ export class QueryAction implements IQueryAction { * @param value The value to update. * @param options.returning If `true`, return the updated row(s) in the response. */ - update(value: Dictionary, options?: { returning: boolean }) { + update(value: Dictionary, options?: { returning: boolean; enumArrayColumns?: string[] }) { return new QueryFilter(this.table, 'update', value, options) } /** * Performs a TRUNCATE on the table */ - truncate(options?: { returning: boolean }) { + truncate(options?: { returning: boolean; enumArrayColumns?: string[] }) { return new QueryFilter(this.table, 'truncate', undefined, options) } } diff --git a/studio/components/grid/query/QueryFilter.ts b/studio/components/grid/query/QueryFilter.ts index 30eb6289110..e266ff3d21a 100644 --- a/studio/components/grid/query/QueryFilter.ts +++ b/studio/components/grid/query/QueryFilter.ts @@ -14,8 +14,8 @@ export class QueryFilter implements IQueryFilter, IQueryModifier { constructor( protected table: QueryTable, protected action: 'count' | 'delete' | 'insert' | 'select' | 'update' | 'truncate', - protected actionValue?: string[] | Dictionary | Dictionary[], - protected actionOptions?: { returning: boolean } + protected actionValue?: string | string[] | Dictionary | Dictionary[], + protected actionOptions?: { returning: boolean; enumArrayColumns?: string[] } ) {} filter(column: string, operator: FilterOperator, value: any) { diff --git a/studio/components/grid/query/QueryModifier.ts b/studio/components/grid/query/QueryModifier.ts index a9aafe0744f..e9feffb1d2b 100644 --- a/studio/components/grid/query/QueryModifier.ts +++ b/studio/components/grid/query/QueryModifier.ts @@ -20,8 +20,8 @@ export class QueryModifier implements IQueryModifier { protected table: QueryTable, protected action: 'count' | 'delete' | 'insert' | 'select' | 'update' | 'truncate', protected options?: { - actionValue?: string[] | Dictionary | Dictionary[] - actionOptions?: { returning?: boolean; cascade?: boolean } + actionValue?: string | string[] | Dictionary | Dictionary[] + actionOptions?: { returning?: boolean; cascade?: boolean; enumArrayColumns?: string[] } filters?: Filter[] sorts?: Sort[] } @@ -51,15 +51,17 @@ export class QueryModifier implements IQueryModifier { case 'delete': { return deleteQuery(this.table, filters, { returning: actionOptions?.returning, + enumArrayColumns: actionOptions?.enumArrayColumns, }) } case 'insert': { return insertQuery(this.table, actionValue as Dictionary[], { returning: actionOptions?.returning, + enumArrayColumns: actionOptions?.enumArrayColumns, }) } case 'select': { - return selectQuery(this.table, actionValue as string[] | undefined, { + return selectQuery(this.table, actionValue as string | undefined, { filters, pagination: this.pagination, sorts, @@ -69,6 +71,7 @@ export class QueryModifier implements IQueryModifier { return updateQuery(this.table, actionValue as Dictionary, { filters, returning: actionOptions?.returning, + enumArrayColumns: actionOptions?.enumArrayColumns, }) } case 'truncate': { diff --git a/studio/components/grid/services/row/SqlRowService.ts b/studio/components/grid/services/row/SqlRowService.ts index 993ace53495..25302c459ac 100644 --- a/studio/components/grid/services/row/SqlRowService.ts +++ b/studio/components/grid/services/row/SqlRowService.ts @@ -89,7 +89,20 @@ export class SqlRowService implements IRowService { const pageFromZero = page > 0 ? page - 1 : page const from = pageFromZero * rowsPerPage const to = (pageFromZero + 1) * rowsPerPage - 1 - let queryChains = this.query.from(this.table.name, this.table.schema ?? undefined).select() + + const enumArrayColumns = this.table.columns + .filter((column) => { + return (column?.enum ?? []).length > 0 && column.dataType.toLowerCase() === 'array' + }) + .map((column) => column.name) + + let queryChains = + enumArrayColumns.length > 0 + ? this.query + .from(this.table.name, this.table.schema ?? undefined) + .select(`*,${enumArrayColumns.map((x) => `"${x}"::text[]`).join(',')}`) + : this.query.from(this.table.name, this.table.schema ?? undefined).select() + filters .filter((x) => x.value && x.value != '') .forEach((x) => { @@ -174,6 +187,11 @@ export class SqlRowService implements IRowService { // remove primary key from updated value object delete value[key] }) + const enumArrayColumns = this.table.columns + .filter((column) => { + return (column?.enum ?? []).length > 0 && column.dataType.toLowerCase() === 'array' + }) + .map((column) => column.name) const query = this.query .from(this.table.name, this.table.schema ?? undefined) .update( @@ -182,7 +200,7 @@ export class SqlRowService implements IRowService { [changedColumn]: value[changedColumn], } : value, - { returning: true } + { returning: true, enumArrayColumns } ) .match(matchValues) .toSql() diff --git a/studio/components/grid/utils/gridColumns.tsx b/studio/components/grid/utils/gridColumns.tsx index 978d4c3ca08..69a0724cc7e 100644 --- a/studio/components/grid/utils/gridColumns.tsx +++ b/studio/components/grid/utils/gridColumns.tsx @@ -25,10 +25,16 @@ import { TextEditor, TimeEditor, TimeWithTimezoneEditor, -} from '../components/editor' -import { AddColumn, ColumnHeader, SelectColumn } from '../components/grid' -import { COLUMN_MIN_WIDTH } from '../constants' -import { BooleanFormatter, DefaultFormatter, ForeignKeyFormatter } from '../components/formatter' +} from 'components/grid/components/editor' +import { AddColumn, ColumnHeader, SelectColumn } from 'components/grid/components/grid' +import { COLUMN_MIN_WIDTH } from 'components/grid/constants' +import { + BooleanFormatter, + DefaultFormatter, + ForeignKeyFormatter, +} from 'components/grid/components/formatter' + +const ESTIMATED_CHARACTER_PIXEL_WIDTH = 9 export function getGridColumns( table: SupaTable, @@ -40,13 +46,23 @@ export function getGridColumns( ): any[] { const columns = table.columns.map((x, idx) => { const columnType = getColumnType(x) + + const columnDefaultWidth = getColumnDefaultWidth(x) + const columnWidthBasedOnName = + (x.name.length + x.format.length) * ESTIMATED_CHARACTER_PIXEL_WIDTH + const columnWidth = options?.defaultWidth + ? options.defaultWidth + : columnDefaultWidth < columnWidthBasedOnName + ? columnWidthBasedOnName + : columnDefaultWidth + const columnDefinition: CalculatedColumn = { key: x.name, name: x.name, idx: idx + 1, resizable: true, sortable: true, - width: options?.defaultWidth || getColumnWidth(x), + width: columnWidth, minWidth: COLUMN_MIN_WIDTH, frozen: x.isPrimaryKey || false, isLastFrozenColumn: false, @@ -156,7 +172,7 @@ function getColumnType(columnDef: SupaColumn): ColumnType { } else return 'unknown' } -function getColumnWidth(columnDef: SupaColumn): string | number | undefined { +function getColumnDefaultWidth(columnDef: SupaColumn): number { if (isNumericalColumn(columnDef.dataType)) { return 120 } else if ( diff --git a/studio/components/grid/utils/types.ts b/studio/components/grid/utils/types.ts index 314842196a8..8f50debe516 100644 --- a/studio/components/grid/utils/types.ts +++ b/studio/components/grid/utils/types.ts @@ -34,7 +34,7 @@ export function isArrayColumn(type: string) { return ARRAY_TYPES.indexOf(type.toLowerCase()) > -1 } -const TEXT_TYPES = ['text', 'character varying'] +const TEXT_TYPES = ['uuid', 'text', 'character varying'] export function isTextColumn(type: string) { return TEXT_TYPES.indexOf(type.toLowerCase()) > -1 } diff --git a/studio/components/interfaces/Account/AccessTokenList.tsx b/studio/components/interfaces/Account/AccessTokenList.tsx index 429ad16eb24..0e3aba63e4b 100644 --- a/studio/components/interfaces/Account/AccessTokenList.tsx +++ b/studio/components/interfaces/Account/AccessTokenList.tsx @@ -1,5 +1,5 @@ import { useState } from 'react' -import { Typography, Button, Modal, IconTrash } from '@supabase/ui' +import { Button, Modal, IconTrash } from 'ui' import { useStore } from 'hooks' import { delete_ } from 'lib/common/fetch' import { API_URL } from 'lib/constants' @@ -43,9 +43,9 @@ const AccessTokenList = observer(() => { tokens && tokens.length == 0 ? ( - - {isLoading ? 'Checking for tokens' : "You don't have any token"} - +

    + {isLoading ? 'Checking for tokens' : 'You do not have any tokens created yet'} +

    ) : ( @@ -58,7 +58,7 @@ const AccessTokenList = observer(() => { {x.name} - {new Date(x.created_at).toLocaleString()} +

    {new Date(x.created_at).toLocaleString()}

    {newToken && } setIsOpen(!isOpen)} header={ -
    +
    Generate New Token
    } - size="small" - hideFooter - closable >
    { - const errors: any = {} - if (!values.tokenName) { - errors.tokenName = 'Enter the name of the token.' - } - return errors - }} + validate={validate} > {({ isSubmitting }: { isSubmitting: boolean }) => (
    @@ -73,8 +73,6 @@ const NewAccessTokenButton = observer(() => { setName(e.target.value)} - value={name} placeholder="Type in the token name" className="w-full" /> @@ -108,9 +106,9 @@ const NewTokenItem: FC = observer(({ data }) => { again.

    {}} diff --git a/studio/components/interfaces/App/AppBannerWrapper.tsx b/studio/components/interfaces/App/AppBannerWrapper.tsx index 51117e187bd..ec6f35f7236 100644 --- a/studio/components/interfaces/App/AppBannerWrapper.tsx +++ b/studio/components/interfaces/App/AppBannerWrapper.tsx @@ -1,7 +1,7 @@ import { FC } from 'react' import Link from 'next/link' import { useFlag } from 'hooks' -import { IconExternalLink } from '@supabase/ui' +import { IconExternalLink } from 'ui' const AppBannerWrapper: FC = ({ children }) => { const ongoingIncident = useFlag('ongoingIncident') @@ -11,7 +11,7 @@ const AppBannerWrapper: FC = ({ children }) => { {ongoingIncident && ( -
    +

    We are currently investigating a technical issue, follow status.supabase.com for updates diff --git a/studio/components/interfaces/App/PortalToast.tsx b/studio/components/interfaces/App/PortalToast.tsx index b9b6f29c89b..14cc701e890 100644 --- a/studio/components/interfaces/App/PortalToast.tsx +++ b/studio/components/interfaces/App/PortalToast.tsx @@ -1,6 +1,6 @@ import dynamic from 'next/dynamic' import { Toaster, ToastBar, toast } from 'react-hot-toast' -import { Button, IconX } from '@supabase/ui' +import { Button, IconX } from 'ui' const PortalRootWithNoSSR = dynamic( // @ts-ignore diff --git a/studio/components/interfaces/Auth/Auth.constants.ts b/studio/components/interfaces/Auth/Auth.constants.ts index b046bc3dc56..32f80bc5cb2 100644 --- a/studio/components/interfaces/Auth/Auth.constants.ts +++ b/studio/components/interfaces/Auth/Auth.constants.ts @@ -17,8 +17,11 @@ const appRegex = // Regex from https://stackoverflow.com/a/18696953/4807782 const localhostRegex = /^(?:^|\s)((https?:\/\/)?(?:localhost|[\w-]+(?:\.[\w-]+)+)(:\d+)?(\/\S*)?)/i +// "chrome-extension://" +const chromeExtensionRegex = /chrome-extension:\/\/([a-zA-Z]*)/gm + // combine the above regexes export const domainRegex = new RegExp( - `(${baseDomainRegex.source})|(${localhostRegex.source})|(${appRegex.source})`, + `(${baseDomainRegex.source})|(${localhostRegex.source})|(${appRegex.source})|(${chromeExtensionRegex.source})`, 'i' ) diff --git a/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx b/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx index d5abb12219d..f7c7d879784 100644 --- a/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx +++ b/studio/components/interfaces/Auth/AuthProvidersForm/FormField.tsx @@ -1,15 +1,16 @@ import { FC, useState } from 'react' import ReactMarkdown from 'react-markdown' -import { Button, Input, InputNumber, Toggle, Listbox, IconEye, IconEyeOff } from '@supabase/ui' +import { Button, Input, InputNumber, Toggle, Listbox, IconEye, IconEyeOff } from 'ui' import { Enum } from './AuthProvidersForm.types' interface Props { name: string properties: any formValues: any + disabled?: boolean } -const FormField: FC = ({ name, properties, formValues }) => { +const FormField: FC = ({ name, properties, formValues, disabled = false }) => { if (properties.show && formValues[properties.show.key] !== properties.show.matches) return <> const [hidden, setHidden] = useState(!!properties.isSecret) @@ -22,6 +23,7 @@ const FormField: FC = ({ name, properties, formValues }) => { layout="vertical" id={name} name={name} + disabled={disabled} type={hidden ? 'password' : 'text'} label={properties.title} labelOptional={ @@ -46,7 +48,7 @@ const FormField: FC = ({ name, properties, formValues }) => { onClick={() => setHidden(!hidden)} /> ) : ( - + {properties.units ? ( {properties.units} @@ -64,6 +66,7 @@ const FormField: FC = ({ name, properties, formValues }) => { layout="vertical" id={name} name={name} + disabled={disabled} label={properties.title} labelOptional={ properties.descriptionOptional ? ( @@ -80,7 +83,7 @@ const FormField: FC = ({ name, properties, formValues }) => { ) : null } actions={ - + {properties.units ? ( {properties.units} @@ -97,6 +100,7 @@ const FormField: FC = ({ name, properties, formValues }) => { size="small" id={name} name={name} + disabled={disabled} label={properties.title} descriptionText={properties.description} /> @@ -107,6 +111,7 @@ const FormField: FC = ({ name, properties, formValues }) => { = ({ provider }) => { const { authConfig, ui } = useStore() const doubleNegativeKeys = ['MAILER_AUTOCONFIRM', 'SMS_AUTOCONFIRM'] + const canUpdateConfig = checkPermissions(PermissionAction.UPDATE, 'custom_config_gotrue') const generateInitialValues = () => { const initialValues: { [x: string]: string } = {} @@ -103,8 +106,8 @@ const ProviderForm: FC = ({ provider }) => { validationSchema={provider.validationSchema} onSubmit={onSubmit} > - {({ isSubmitting, handleReset, values }: any) => { - const noChanges = JSON.stringify(INITIAL_VALUES) === JSON.stringify(values) + {({ isSubmitting, handleReset, initialValues, values }: any) => { + const noChanges = JSON.stringify(initialValues) === JSON.stringify(values) return (

    = ({ provider }) => { border-scale-500 bg-scale-100 py-6 px-6 text-scale-1200 dark:bg-scale-300 " > -
    +
    {Object.keys(provider.properties).map((x: string) => ( ))} {provider?.misc?.alert && ( @@ -149,12 +153,36 @@ const ProviderForm: FC = ({ provider }) => { handleReset() setOpen(false) }} + disabled={isSubmitting} > Cancel - + + + + + {!canUpdateConfig && ( + + +
    + + You need additional permissions to update provider settings + +
    +
    + )} +
    diff --git a/studio/components/interfaces/Auth/AutoSchemaForm.tsx b/studio/components/interfaces/Auth/AutoSchemaForm.tsx index 90a3456a477..eddcc1980ba 100644 --- a/studio/components/interfaces/Auth/AutoSchemaForm.tsx +++ b/studio/components/interfaces/Auth/AutoSchemaForm.tsx @@ -1,9 +1,10 @@ import { useEffect, useState } from 'react' import { observer } from 'mobx-react-lite' import { boolean, number, object, string } from 'yup' -import { Button, Form, Input, IconEye, IconEyeOff, InputNumber, Toggle } from '@supabase/ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' +import { Button, Form, Input, IconEye, IconEyeOff, InputNumber, Toggle } from 'ui' -import { useStore } from 'hooks' +import { useStore, checkPermissions } from 'hooks' import { FormActions, FormHeader, @@ -20,10 +21,13 @@ const AutoSchemaForm = observer(() => { const formId = 'auth-config-general-form' const [hidden, setHidden] = useState(true) + const canUpdateConfig = checkPermissions(PermissionAction.UPDATE, 'custom_config_gotrue') + const INITIAL_VALUES = { DISABLE_SIGNUP: !authConfig.config.DISABLE_SIGNUP, JWT_EXP: authConfig.config.JWT_EXP, SITE_URL: authConfig.config.SITE_URL, + REFRESH_TOKEN_ROTATION_ENABLED: authConfig.config.REFRESH_TOKEN_ROTATION_ENABLED || false, SECURITY_REFRESH_TOKEN_REUSE_INTERVAL: authConfig.config.SECURITY_REFRESH_TOKEN_REUSE_INTERVAL, SECURITY_CAPTCHA_ENABLED: authConfig.config.SECURITY_CAPTCHA_ENABLED || false, SECURITY_CAPTCHA_SECRET: authConfig.config.SECURITY_CAPTCHA_SECRET || '', @@ -35,6 +39,7 @@ const AutoSchemaForm = observer(() => { JWT_EXP: number() .max(604800, 'Must be less than 604800') .required('Must have a JWT expiry value'), + REFRESH_TOKEN_ROTATION_ENABLED: boolean().required(), SECURITY_REFRESH_TOKEN_REUSE_INTERVAL: number() .min(0, 'Must be a value more than 0') .required('Must have a Reuse Interval value'), @@ -88,12 +93,18 @@ const AutoSchemaForm = observer(() => { +
    } @@ -106,6 +117,7 @@ const AutoSchemaForm = observer(() => { label="Allow new users to sign up" layout="flex" descriptionText="If this is disabled, new users will not be able to sign up to your application." + disabled={!canUpdateConfig} /> @@ -119,21 +131,15 @@ const AutoSchemaForm = observer(() => { size="small" label="Site URL" descriptionText="The base URL of your website. Used as an allow-list for redirects and for constructing URLs used in emails." + disabled={!canUpdateConfig} /> seconds} - /> - seconds} + actions={seconds} + disabled={!canUpdateConfig} /> @@ -142,9 +148,10 @@ const AutoSchemaForm = observer(() => { {values.SECURITY_CAPTCHA_ENABLED && ( { type={hidden ? 'password' : 'text'} size="small" label="hCaptcha secret" + disabled={!canUpdateConfig} actions={
    )} -
    +
    { resetForm({ @@ -158,6 +162,12 @@ const TemplateEditor: FC = ({ template }) => { form={formId} isSubmitting={isSubmitting} hasChanges={hasChanges} + disabled={!canUpdateConfig} + helper={ + !canUpdateConfig + ? 'You need additional permissions to update authentication settings' + : undefined + } />
    diff --git a/studio/components/interfaces/Authentication/Policies/Policies.constants.ts b/studio/components/interfaces/Auth/Policies/Policies.constants.ts similarity index 100% rename from studio/components/interfaces/Authentication/Policies/Policies.constants.ts rename to studio/components/interfaces/Auth/Policies/Policies.constants.ts diff --git a/studio/components/interfaces/Authentication/Policies/Policies.types.ts b/studio/components/interfaces/Auth/Policies/Policies.types.ts similarity index 100% rename from studio/components/interfaces/Authentication/Policies/Policies.types.ts rename to studio/components/interfaces/Auth/Policies/Policies.types.ts diff --git a/studio/components/interfaces/Authentication/Policies/Policies.utils.ts b/studio/components/interfaces/Auth/Policies/Policies.utils.ts similarity index 97% rename from studio/components/interfaces/Authentication/Policies/Policies.utils.ts rename to studio/components/interfaces/Auth/Policies/Policies.utils.ts index 563d08d7dac..ec00c22466d 100644 --- a/studio/components/interfaces/Authentication/Policies/Policies.utils.ts +++ b/studio/components/interfaces/Auth/Policies/Policies.utils.ts @@ -147,7 +147,8 @@ export const createPayloadForUpdatePolicy = ( payload.check = formattedPolicyFormFields.check || undefined } if (!isEqual(formattedPolicyFormFields.roles, originalPolicyFormFields.roles)) { - payload.roles = formattedPolicyFormFields.roles || undefined + if (formattedPolicyFormFields.roles.length === 0) payload.roles = ['public'] + else payload.roles = formattedPolicyFormFields.roles || undefined } return payload diff --git a/studio/components/interfaces/Authentication/Policies/PolicyEditor/PolicyAllowedOperation.tsx b/studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyAllowedOperation.tsx similarity index 86% rename from studio/components/interfaces/Authentication/Policies/PolicyEditor/PolicyAllowedOperation.tsx rename to studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyAllowedOperation.tsx index becda1979cf..41a33ad7c28 100644 --- a/studio/components/interfaces/Authentication/Policies/PolicyEditor/PolicyAllowedOperation.tsx +++ b/studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyAllowedOperation.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { Radio } from '@supabase/ui' +import { Radio } from 'ui' interface Props { operation: string @@ -10,10 +10,10 @@ const PolicyAllowedOperation: FC = ({ operation = '', onSelectOperation } return (
    -
    diff --git a/studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyDefinition.tsx b/studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyDefinition.tsx new file mode 100644 index 00000000000..187b0576887 --- /dev/null +++ b/studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyDefinition.tsx @@ -0,0 +1,128 @@ +import { FC, useEffect } from 'react' +import { IconHelpCircle } from 'ui' +import * as Tooltip from '@radix-ui/react-tooltip' + +import { usePrevious } from 'hooks' +import SqlEditor from 'components/ui/SqlEditor' + +interface Props { + operation: string + definition: string + check: string + onUpdatePolicyUsing: (using: string | undefined) => void + onUpdatePolicyCheck: (check: string | undefined) => void +} + +const PolicyDefinition: FC = ({ + operation = '', + definition = '', + check = '', + onUpdatePolicyUsing, + onUpdatePolicyCheck, +}) => { + const showUsing = (operation: string) => + ['SELECT', 'UPDATE', 'DELETE', 'ALL'].includes(operation) || !operation + const showCheck = (operation: string) => ['INSERT', 'UPDATE', 'ALL'].includes(operation) + + const previousOperation = usePrevious(operation) || '' + useEffect(() => { + if (showUsing(previousOperation) && !showUsing(operation)) onUpdatePolicyUsing(undefined) + if (showCheck(previousOperation) && !showCheck(operation)) onUpdatePolicyCheck(undefined) + }, [operation]) + + return ( +
    + {showUsing(operation) && ( +
    +
    +
    + + + + + + + +
    +

    + This expression will be added to queries that refer to the table if row-level + security is enabled. +

    +

    + Rows for which the expression returns true will be visible. Any rows for which + the expression returns false or null will not be visible to the user (in a + SELECT), and will not be available for modification (in an UPDATE or DELETE). +

    +

    + Such rows are silently suppressed - no error is reported. +

    +
    +
    +
    +
    +

    + Provide a SQL conditional expression that returns a boolean. +

    +
    +
    + +
    +
    + )} + {showCheck(operation) && ( +
    +
    +
    + + + + + + + +
    +

    + This expression will be used in INSERT and UPDATE queries against the table if + row-level security is enabled. +

    +

    + Only rows for which the expression evaluates to true will be allowed. An error + will be thrown if the expression evaluates to false or null for any of the + records inserted or any of the records that result from the update. +

    +

    + Note that this expression is evaluated against the proposed new contents of + the row, not the original contents. +

    +
    +
    +
    +
    +

    + Provide a SQL conditional expression that returns a boolean. +

    +
    +
    + +
    +
    + )} +
    + ) +} + +export default PolicyDefinition diff --git a/studio/components/interfaces/Authentication/Policies/PolicyEditor/PolicyEditorFooter.tsx b/studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyEditorFooter.tsx similarity index 77% rename from studio/components/interfaces/Authentication/Policies/PolicyEditor/PolicyEditorFooter.tsx rename to studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyEditorFooter.tsx index 40ddc535b7f..184b304e262 100644 --- a/studio/components/interfaces/Authentication/Policies/PolicyEditor/PolicyEditorFooter.tsx +++ b/studio/components/interfaces/Auth/Policies/PolicyEditor/PolicyEditorFooter.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { Button } from '@supabase/ui' +import { Button } from 'ui' interface Props { showTemplates: boolean @@ -8,7 +8,7 @@ interface Props { } const PolicyEditorFooter: FC = ({ showTemplates, onViewTemplates, onReviewPolicy }) => ( -
    +
    {showTemplates && ( diff --git a/studio/components/interfaces/Authentication/Policies/PolicySelection.tsx b/studio/components/interfaces/Auth/Policies/PolicySelection.tsx similarity index 76% rename from studio/components/interfaces/Authentication/Policies/PolicySelection.tsx rename to studio/components/interfaces/Auth/Policies/PolicySelection.tsx index edac0beb8bd..48e46551e98 100644 --- a/studio/components/interfaces/Authentication/Policies/PolicySelection.tsx +++ b/studio/components/interfaces/Auth/Policies/PolicySelection.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { IconEdit, IconGrid, Modal } from '@supabase/ui' +import { IconEdit, IconGrid, Modal } from 'ui' import CardButton from 'components/ui/CardButton' interface Props { @@ -17,7 +17,7 @@ const PolicySelection: FC = ({
    -

    {description}

    +

    {description}

    = ({
    @@ -45,9 +45,9 @@ const PolicySelection: FC = ({
    @@ -57,11 +57,11 @@ const PolicySelection: FC = ({ onClick={onViewEditor} />
    -

    +

    Not sure what policies are? Check out our resources{' '} here diff --git a/studio/components/interfaces/Auth/Policies/PolicyTableRow/PolicyRow.tsx b/studio/components/interfaces/Auth/Policies/PolicyTableRow/PolicyRow.tsx new file mode 100644 index 00000000000..7bca0b40e61 --- /dev/null +++ b/studio/components/interfaces/Auth/Policies/PolicyTableRow/PolicyRow.tsx @@ -0,0 +1,106 @@ +import { FC } from 'react' +import * as Tooltip from '@radix-ui/react-tooltip' +import { Button, Dropdown, IconEdit, IconTrash, IconMoreVertical } from 'ui' +import { PostgresPolicy } from '@supabase/postgres-meta' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { checkPermissions } from 'hooks' +import Panel from 'components/ui/Panel' + +interface Props { + policy: PostgresPolicy + onSelectEditPolicy: (policy: PostgresPolicy) => void + onSelectDeletePolicy: (policy: PostgresPolicy) => void +} + +const PolicyRow: FC = ({ + policy, + onSelectEditPolicy = () => {}, + onSelectDeletePolicy = () => {}, +}) => { + const canUpdatePolicies = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'policies') + + return ( + +

    +
    + {canUpdatePolicies ? ( + + } + onClick={() => onSelectEditPolicy(policy)} + > + Edit + + + } + onClick={() => onSelectDeletePolicy(policy)} + > + Delete + + + } + > +
    + + ) +} + +export default PolicyRow diff --git a/studio/components/interfaces/Auth/Policies/PolicyTableRow/PolicyTableRowHeader.tsx b/studio/components/interfaces/Auth/Policies/PolicyTableRow/PolicyTableRowHeader.tsx new file mode 100644 index 00000000000..e985b6af5db --- /dev/null +++ b/studio/components/interfaces/Auth/Policies/PolicyTableRow/PolicyTableRowHeader.tsx @@ -0,0 +1,99 @@ +import Link from 'next/link' +import { FC } from 'react' +import { useRouter } from 'next/router' +import * as Tooltip from '@radix-ui/react-tooltip' +import { Badge, Button } from 'ui' +import { PostgresTable } from '@supabase/postgres-meta' +import { PermissionAction } from '@supabase/shared-types/out/constants' +import { checkPermissions } from 'hooks' + +interface Props { + table: PostgresTable + onSelectToggleRLS: (table: PostgresTable) => void + onSelectCreatePolicy: (table: PostgresTable) => void +} + +const PolicyTableRowHeader: FC = ({ + table, + onSelectToggleRLS = () => {}, + onSelectCreatePolicy = () => {}, +}) => { + const router = useRouter() + const { ref } = router.query + const canToggleRLS = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'tables') + const canCreatePolicies = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'policies') + + return ( +
    +
    + + +

    {table.name}

    +
    + + + {table.rls_enabled ? 'RLS enabled' : 'RLS disabled'} + +
    +
    +
    + + + + + {!canCreatePolicies && ( + + +
    + + You need additional permissions to create RLS policies + +
    +
    + )} +
    + + + + + {!canToggleRLS && ( + + +
    + + You need additional permissions to toggle RLS + +
    +
    + )} +
    +
    +
    +
    + ) +} + +export default PolicyTableRowHeader diff --git a/studio/components/interfaces/Auth/Policies/PolicyTableRow/index.tsx b/studio/components/interfaces/Auth/Policies/PolicyTableRow/index.tsx new file mode 100644 index 00000000000..d181c0d6463 --- /dev/null +++ b/studio/components/interfaces/Auth/Policies/PolicyTableRow/index.tsx @@ -0,0 +1,58 @@ +import { FC } from 'react' +import { PostgresTable, PostgresPolicy } from '@supabase/postgres-meta' +import { observer } from 'mobx-react-lite' +import { useStore } from 'hooks' + +import PolicyTableRowHeader from './PolicyTableRowHeader' +import PolicyRow from './PolicyRow' +import Panel from 'components/ui/Panel' + +interface Props { + table: PostgresTable + onSelectToggleRLS: (table: PostgresTable) => void + onSelectCreatePolicy: (table: PostgresTable) => void + onSelectEditPolicy: (policy: PostgresPolicy) => void + onSelectDeletePolicy: (policy: PostgresPolicy) => void +} + +const PolicyTableRow: FC = observer( + ({ + table, + onSelectToggleRLS = () => {}, + onSelectCreatePolicy = () => {}, + onSelectEditPolicy = () => {}, + onSelectDeletePolicy = () => {}, + }) => { + const { meta } = useStore() + const policies = meta.policies.list((x: PostgresPolicy) => x.table === table.name) + return ( + + } + > + {policies.length === 0 && ( +
    +

    No policies created yet

    +
    + )} + + {/* @ts-ignore */} + {policies.map((policy) => ( + + ))} +
    + ) + } +) + +export default PolicyTableRow diff --git a/studio/components/interfaces/Authentication/Policies/PolicyTemplates/PolicyTemplates.constants.ts b/studio/components/interfaces/Auth/Policies/PolicyTemplates/PolicyTemplates.constants.ts similarity index 100% rename from studio/components/interfaces/Authentication/Policies/PolicyTemplates/PolicyTemplates.constants.ts rename to studio/components/interfaces/Auth/Policies/PolicyTemplates/PolicyTemplates.constants.ts diff --git a/studio/components/interfaces/Authentication/Policies/PolicyTemplates/TemplatePreview.tsx b/studio/components/interfaces/Auth/Policies/PolicyTemplates/TemplatePreview.tsx similarity index 100% rename from studio/components/interfaces/Authentication/Policies/PolicyTemplates/TemplatePreview.tsx rename to studio/components/interfaces/Auth/Policies/PolicyTemplates/TemplatePreview.tsx diff --git a/studio/components/interfaces/Authentication/Policies/PolicyTemplates/TemplatesList.tsx b/studio/components/interfaces/Auth/Policies/PolicyTemplates/TemplatesList.tsx similarity index 79% rename from studio/components/interfaces/Authentication/Policies/PolicyTemplates/TemplatesList.tsx rename to studio/components/interfaces/Auth/Policies/PolicyTemplates/TemplatesList.tsx index d21905bac06..897ea16839a 100644 --- a/studio/components/interfaces/Authentication/Policies/PolicyTemplates/TemplatesList.tsx +++ b/studio/components/interfaces/Auth/Policies/PolicyTemplates/TemplatesList.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { Menu } from '@supabase/ui' +import { Menu } from 'ui' import { PolicyTemplate } from './PolicyTemplates.constants' interface Props { @@ -15,18 +15,19 @@ const TemplatesList: FC = ({ selectedTemplate, setSelectedTemplate = () => {}, }) => ( -
    +
    - {templates.map((template) => { + {templates.map((template, i) => { const active = selectedTemplate === template return (
    @@ -44,7 +45,7 @@ const TemplatesList: FC = ({
    {templatesNote && (
    -

    {templatesNote}

    +

    {templatesNote}

    )}
    diff --git a/studio/components/interfaces/Auth/Policies/PolicyTemplates/index.tsx b/studio/components/interfaces/Auth/Policies/PolicyTemplates/index.tsx new file mode 100644 index 00000000000..543c96ee061 --- /dev/null +++ b/studio/components/interfaces/Auth/Policies/PolicyTemplates/index.tsx @@ -0,0 +1,48 @@ +import { Button } from 'ui' +import { FC, useState } from 'react' +import { isEmpty } from 'lodash' + +import TemplatesList from './TemplatesList' +import TemplatePreview from './TemplatePreview' +import { PolicyTemplate } from './PolicyTemplates.constants' + +interface Props { + templates: PolicyTemplate[] + templatesNote: string + onUseTemplate: (template: PolicyTemplate) => void +} + +const PolicyTemplates: FC = ({ + templates = [], + templatesNote = '', + onUseTemplate = () => {}, +}) => { + const [selectedTemplate, setSelectedTemplate] = useState(templates[0]) + return ( +
    +
    + + +
    +
    + + This will override any existing code you've written + + +
    +
    + ) +} + +export default PolicyTemplates diff --git a/studio/components/interfaces/Authentication/Policies/index.tsx b/studio/components/interfaces/Auth/Policies/index.tsx similarity index 100% rename from studio/components/interfaces/Authentication/Policies/index.tsx rename to studio/components/interfaces/Auth/Policies/index.tsx diff --git a/studio/components/interfaces/Auth/RedirectDomains/DomainList.tsx b/studio/components/interfaces/Auth/RedirectDomains/DomainList.tsx index cc985ee818c..5e341de01e0 100644 --- a/studio/components/interfaces/Auth/RedirectDomains/DomainList.tsx +++ b/studio/components/interfaces/Auth/RedirectDomains/DomainList.tsx @@ -1,6 +1,6 @@ import { FC } from 'react' import { observer } from 'mobx-react-lite' -import { Button, IconGlobe, IconTrash } from '@supabase/ui' +import { Button, IconGlobe, IconTrash } from 'ui' import { useStore } from 'hooks' import ValueContainer from './ValueContainer' @@ -8,10 +8,11 @@ import { EmptyListState } from 'components/ui/States' import { HorizontalShimmerWithIcon } from 'components/ui/Shimmers' interface Props { + canUpdate: boolean onSelectDomainToDelete: (domain: string) => void } -const DomainList: FC = ({ onSelectDomainToDelete }) => { +const DomainList: FC = ({ canUpdate, onSelectDomainToDelete }) => { const { authConfig } = useStore() const URI_ALLOW_LIST_ARRAY = authConfig.config.URI_ALLOW_LIST @@ -33,26 +34,28 @@ const DomainList: FC = ({ onSelectDomainToDelete }) => { URI_ALLOW_LIST_ARRAY.map((domain: string) => { return ( -
    +
    - {domain} + {domain}
    - + {canUpdate && ( + + )} ) }) ) : (
    diff --git a/studio/components/interfaces/Auth/RedirectDomains/RedirectDomains.tsx b/studio/components/interfaces/Auth/RedirectDomains/RedirectDomains.tsx index 60f4d9d15f6..c5cdbaa2d14 100644 --- a/studio/components/interfaces/Auth/RedirectDomains/RedirectDomains.tsx +++ b/studio/components/interfaces/Auth/RedirectDomains/RedirectDomains.tsx @@ -1,9 +1,11 @@ import { useState } from 'react' import { object, string } from 'yup' import { observer } from 'mobx-react-lite' -import { Button, Form, Input, Modal } from '@supabase/ui' +import * as Tooltip from '@radix-ui/react-tooltip' +import { Button, Form, Input, Modal } from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' -import { useStore } from 'hooks' +import { checkPermissions, useStore } from 'hooks' import { FormHeader } from 'components/ui/Forms' import { domainRegex } from '../Auth.constants' import DomainList from './DomainList' @@ -19,6 +21,8 @@ const RedirectDomains = () => { const [isDeleting, setIsDeleting] = useState(false) const [selectedDomainToDelete, setSelectedDomainToDelete] = useState() + const canUpdateConfig = checkPermissions(PermissionAction.UPDATE, 'custom_config_gotrue') + const newDomainSchema = object({ domain: string().matches(domainRegex, 'URL is not valid').required(), }) @@ -28,7 +32,19 @@ const RedirectDomains = () => { const payload = URI_ALLOW_LIST_ARRAY payload.push(values.domain) - const { error } = await authConfig.update({ URI_ALLOW_LIST: payload.toString() }) + const payloadString = payload.toString() + + if (payloadString.length > 2 * 1024) { + ui.setNotification({ + message: 'Too many redirect domains, please remove some or try to use wildcards', + category: 'error', + }) + + setSubmitting(false) + return + } + + const { error } = await authConfig.update({ URI_ALLOW_LIST: payloadString }) if (!error) { setOpen(false) ui.setNotification({ category: 'success', message: 'Successfully added domain' }) @@ -74,9 +90,30 @@ const RedirectDomains = () => { title="Redirect URLs" description="URLs that auth providers are permitted to redirect to post authentication" /> - + + + + + {!canUpdateConfig && ( + + +
    + + You need additional permissions to update redirect URLs + +
    +
    + )} +
    - + { return (
    -

    +

    This will add a domain to a list of allowed domains that can interact with your Authenticaton services for this project.

    @@ -116,6 +153,7 @@ const RedirectDomains = () => { form="new-domain-form" htmlType="submit" size="medium" + disabled={isSubmitting} loading={isSubmitting} > Add domain @@ -135,11 +173,11 @@ const RedirectDomains = () => { >
    -

    +

    Are you sure you want to remove{' '} {selectedDomainToDelete}?

    -

    +

    This domain will no longer work with your authentication configuration.

    diff --git a/studio/components/interfaces/Auth/SmtpForm/SmtpForm.tsx b/studio/components/interfaces/Auth/SmtpForm/SmtpForm.tsx index b1acce0d3e2..18d7ec4d7b1 100644 --- a/studio/components/interfaces/Auth/SmtpForm/SmtpForm.tsx +++ b/studio/components/interfaces/Auth/SmtpForm/SmtpForm.tsx @@ -1,7 +1,8 @@ import { observer } from 'mobx-react-lite' import { useEffect, useState } from 'react' import { number, object, string } from 'yup' -import { Alert, Button, Form, Input, InputNumber, Toggle, IconEye, IconEyeOff } from '@supabase/ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' +import { Alert, Button, Form, Input, InputNumber, Toggle, IconEye, IconEyeOff } from 'ui' import { FormActions, @@ -11,7 +12,7 @@ import { FormSectionContent, FormSectionLabel, } from 'components/ui/Forms' -import { useStore } from 'hooks' +import { useStore, checkPermissions } from 'hooks' import { domainRegex } from './../Auth.constants' import { defaultDisabledSmtpFormValues } from './SmtpForm.constants' import { generateFormValues, isSmtpEnabled } from './SmtpForm.utils' @@ -25,6 +26,7 @@ const SmtpForm = () => { const formId = 'auth-config-smtp-form' const initialValues = generateFormValues(authConfig.config) + const canUpdateConfig = checkPermissions(PermissionAction.UPDATE, 'custom_config_gotrue') useEffect(() => { if (isLoaded && isSmtpEnabled(config)) { @@ -143,12 +145,18 @@ const SmtpForm = () => { /> +
    } @@ -161,6 +169,7 @@ const SmtpForm = () => { label="Enable Custom SMTP" layout="flex" checked={enableSmtp} + disabled={!canUpdateConfig} // @ts-ignore onChange={(value: boolean) => setEnableSmtp(value)} descriptionText="Emails will be sent using your custom SMTP provider" @@ -188,6 +197,7 @@ const SmtpForm = () => { label="Sender email" descriptionText="This is the email address the emails are sent from" placeholder="noreply@yourdomain.com" + disabled={!canUpdateConfig} /> { label="Sender name" descriptionText="Name displayed in the recipient's inbox" placeholder="The name shown on the email" + disabled={!canUpdateConfig} /> @@ -205,7 +216,7 @@ const SmtpForm = () => { header={ SMTP Provider Settings -

    +

    Your SMTP Credentials will always be encrypted in our database.

    @@ -218,6 +229,7 @@ const SmtpForm = () => { id="SMTP_HOST" label="Host" descriptionText="Hostname or IP address of your SMTP server." + disabled={!canUpdateConfig} /> { } + disabled={!canUpdateConfig} /> seconds} - /> - emails per hour} + actions={seconds} + disabled={!canUpdateConfig} /> { min={0} label="Rate limit for sending emails" descriptionText="How many emails can be sent per hour." - actions={emails per hour} + actions={emails per hour} + disabled={!canUpdateConfig} /> { onClick={() => setHidden(!hidden)} /> } + disabled={!canUpdateConfig} /> diff --git a/studio/components/interfaces/Auth/Users/InviteUserModal.tsx b/studio/components/interfaces/Auth/Users/InviteUserModal.tsx new file mode 100644 index 00000000000..5f5898714cf --- /dev/null +++ b/studio/components/interfaces/Auth/Users/InviteUserModal.tsx @@ -0,0 +1,129 @@ +import { useContext, useState } from 'react' +import { observer } from 'mobx-react-lite' +import * as Tooltip from '@radix-ui/react-tooltip' +import { Button, Modal, Input, IconPlus, IconMail, Form } from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { useStore, checkPermissions } from 'hooks' +import { post } from 'lib/common/fetch' +import { API_URL } from 'lib/constants' +import { PageContext } from 'pages/project/[ref]/auth/users' + +const InviteUserModal = () => { + const { ui } = useStore() + const PageState: any = useContext(PageContext) + const [visible, setVisible] = useState(false) + + const handleToggle = () => setVisible(!visible) + const canInviteUsers = checkPermissions(PermissionAction.AUTH_EXECUTE, 'invite_user') + + const validate = (values: any) => { + const errors: any = {} + const emailValidateRegex = + /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/ + + if (values.email.length === 0) { + errors.email = 'Please enter a valid email' + } else if (!emailValidateRegex.test(values.email)) { + errors.email = `${values.email} is an invalid email` + } + + return errors + } + + const onInviteuser = async (values: any, { setSubmitting }: any) => { + setSubmitting(true) + + const response = await post(`${API_URL}/auth/${PageState.projectRef}/invite`, { + email: values.email, + }) + if (response.error) { + ui.setNotification({ + category: 'error', + message: `Failed to invite user: ${response.error.message}`, + }) + } else { + PageState.fetchData(1) + ui.setNotification({ + category: 'success', + message: `Sent invite email to ${values.email}`, + }) + setVisible(false) + } + + setSubmitting(false) + } + + return ( +
    + + + + + {!canInviteUsers && ( + + +
    + + You need additional permissions to invite users + +
    +
    + )} +
    + + + {({ isSubmitting }: { isSubmitting: boolean }) => ( +
    + + } + type="email" + name="email" + placeholder="User email" + /> + + + + +
    + )} + +
    +
    + ) +} + +export default observer(InviteUserModal) diff --git a/studio/components/interfaces/Authentication/Users/UserDropdown.tsx b/studio/components/interfaces/Auth/Users/UserDropdown.tsx similarity index 78% rename from studio/components/interfaces/Authentication/Users/UserDropdown.tsx rename to studio/components/interfaces/Auth/Users/UserDropdown.tsx index 48e333d73d6..a4683fc8e80 100644 --- a/studio/components/interfaces/Authentication/Users/UserDropdown.tsx +++ b/studio/components/interfaces/Auth/Users/UserDropdown.tsx @@ -1,6 +1,7 @@ import { FC, useContext, useState } from 'react' import { observer } from 'mobx-react-lite' -import { Button, Dropdown, Divider, IconTrash, IconMail, IconMoreHorizontal } from '@supabase/ui' +import * as Tooltip from '@radix-ui/react-tooltip' +import { Button, Dropdown, Divider, IconTrash, IconMail, IconMoreHorizontal } from 'ui' import { useStore } from 'hooks' import { timeout } from 'lib/helpers' @@ -8,8 +9,14 @@ import { post, delete_ } from 'lib/common/fetch' import { API_URL } from 'lib/constants' import { PageContext } from 'pages/project/[ref]/auth/users' import { confirmAlert } from 'components/to-be-cleaned/ModalsDeprecated/ConfirmModal' +import { User } from './Users.types' -const UserDropdown: FC<{ user: any }> = ({ user }) => { +interface Props { + user: User + canRemoveUser: boolean +} + +const UserDropdown: FC = ({ user, canRemoveUser }) => { const PageState: any = useContext(PageContext) const { ui } = useStore() const [loading, setLoading] = useState(false) @@ -134,9 +141,32 @@ const UserDropdown: FC<{ user: any }> = ({ user }) => { ) : null} - }> - Delete user - + + + } + disabled={!canRemoveUser} + > + Delete user + + + {!canRemoveUser && ( + + +
    + + You need additional permissions to delete users + +
    +
    + )} +
    } > diff --git a/studio/components/interfaces/Auth/Users/Users.tsx b/studio/components/interfaces/Auth/Users/Users.tsx new file mode 100644 index 00000000000..27021a06f8a --- /dev/null +++ b/studio/components/interfaces/Auth/Users/Users.tsx @@ -0,0 +1,122 @@ +import semver from 'semver' +import { useEffect, useContext } from 'react' +import { observer } from 'mobx-react-lite' +import { Button, Input, IconSearch, IconX, IconRefreshCw, Listbox, IconUsers } from 'ui' + +import { IS_PLATFORM } from 'lib/constants' +import { PageContext } from 'pages/project/[ref]/auth/users' +import UsersList from './UsersList' +import InviteUserModal from './InviteUserModal' + +const Users = () => { + const PageState: any = useContext(PageContext) + const inviteEnabled = IS_PLATFORM + ? semver.gte( + // @ts-ignore + semver.coerce(PageState?.projectKpsVersion ?? 'kps-v2.5.4'), + semver.coerce('kps-v2.5.3') + ) + : true + + useEffect(() => { + PageState.fetchData(1) + }, []) + + function onFilterChange(e: any) { + PageState.filterInputValue = e.target.value + } + + function onVerifiedFilterChange(e: any) { + PageState.filterVerified = e + onSearchUser() + } + + function onFilterKeyPress(e: any) { + // enter key + if (e.keyCode == 13) onSearchUser() + } + + function onSearchUser() { + PageState.filterKeywords = PageState.filterInputValue + PageState.filterVerified = PageState.filterVerified + PageState.fetchData(1) + } + + function clearSearch() { + PageState.filterInputValue = '' + PageState.filterKeywords = '' + PageState.fetchData(1) + } + + function refreshUsers() { + PageState.fetchData(1) + } + + return ( +
    +
    +
    + } + actions={[ + PageState.filterInputValue && ( +
    +
    + + {inviteEnabled && } +
    +
    +
    +
    +
    + +
    +
    +
    +
    + ) +} + +export default observer(Users) diff --git a/studio/components/interfaces/Auth/Users/Users.types.ts b/studio/components/interfaces/Auth/Users/Users.types.ts new file mode 100644 index 00000000000..bc47af875d8 --- /dev/null +++ b/studio/components/interfaces/Auth/Users/Users.types.ts @@ -0,0 +1,15 @@ +export interface User { + id: string + email: string + phone: string + email_confirmed_at: string + phone_confirmed_at: string + created_at: string + last_sign_in_at: string + raw_app_meta_data?: { + provider: string + } + app_metadata?: { + provider: string + } +} diff --git a/studio/components/interfaces/Authentication/Users/Users.utils.ts b/studio/components/interfaces/Auth/Users/Users.utils.ts similarity index 100% rename from studio/components/interfaces/Authentication/Users/Users.utils.ts rename to studio/components/interfaces/Auth/Users/Users.utils.ts diff --git a/studio/components/interfaces/Auth/Users/UsersList.tsx b/studio/components/interfaces/Auth/Users/UsersList.tsx new file mode 100644 index 00000000000..e5cbd141394 --- /dev/null +++ b/studio/components/interfaces/Auth/Users/UsersList.tsx @@ -0,0 +1,66 @@ +import { useContext } from 'react' +import { observer } from 'mobx-react-lite' +import { IconAlertCircle, Loading } from 'ui' + +import { PageContext } from 'pages/project/[ref]/auth/users' +import Table from 'components/to-be-cleaned/Table' +import UserListItem from './UsersListItem' +import UsersPagination from './UsersPagination' +import { checkPermissions } from 'hooks' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +const UsersList = ({}) => { + const PageState: any = useContext(PageContext) + const canRemoveUser = checkPermissions(PermissionAction.TENANT_SQL_DELETE, 'auth.users') + + return ( + + + Email + Phone + Provider + Created + Last Sign In + User UID + + + } + body={ + <> + {!PageState.usersLoading && PageState.users.length == 0 && ( + + {/* @ts-ignore */} + +
    + +

    + {PageState.filterKeywords + ? `No users matched the search query "${PageState.filterKeywords}"` + : 'No users in your project yet'} +

    +
    +
    +
    + )} + {PageState.users.length > 0 && + PageState.users.map((x: any) => ( + + ))} + + + + + + + } + /> + + ) +} + +export default observer(UsersList) diff --git a/studio/components/interfaces/Auth/Users/UsersListItem.tsx b/studio/components/interfaces/Auth/Users/UsersListItem.tsx new file mode 100644 index 00000000000..43a6ec57d89 --- /dev/null +++ b/studio/components/interfaces/Auth/Users/UsersListItem.tsx @@ -0,0 +1,63 @@ +import { FC } from 'react' +import { observer } from 'mobx-react-lite' +import { Badge } from 'ui' + +import Table from 'components/to-be-cleaned/Table' +import SimpleCodeBlock from 'components/to-be-cleaned/SimpleCodeBlock' +import UserDropdown from './UserDropdown' +import { getDateFromIsoString } from './Users.utils' +import { User } from './Users.types' + +interface Props { + user: User + canRemoveUser: boolean +} + +const UserListItem: FC = ({ user, canRemoveUser }) => { + const isUserConfirmed = user.email_confirmed_at || user.phone_confirmed_at + const createdAt = getDateFromIsoString(user.created_at) + const lastSignedIn = getDateFromIsoString(user.last_sign_in_at) + + return ( + + +
    + {!user.email ? '-' : user.email} +
    +
    + + {!user.phone ? '-' : user.phone} + + + + {user?.raw_app_meta_data?.provider || user?.app_metadata?.provider} + + + + {createdAt?.format('DD MMM, YYYY HH:mm')} + + + {!isUserConfirmed ? ( + Waiting for verification.. + ) : user.last_sign_in_at ? ( + lastSignedIn?.format('DD MMM, YYYY HH:mm') + ) : ( + 'Never' + )} + + +
    + + {user.id} + +
    ...
    +
    +
    + + + +
    + ) +} + +export default observer(UserListItem) diff --git a/studio/components/interfaces/Authentication/Users/UsersPagination.tsx b/studio/components/interfaces/Auth/Users/UsersPagination.tsx similarity index 92% rename from studio/components/interfaces/Authentication/Users/UsersPagination.tsx rename to studio/components/interfaces/Auth/Users/UsersPagination.tsx index 51629e18e6b..b66226c4600 100644 --- a/studio/components/interfaces/Authentication/Users/UsersPagination.tsx +++ b/studio/components/interfaces/Auth/Users/UsersPagination.tsx @@ -1,6 +1,6 @@ import { useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Button } from '@supabase/ui' +import { Button } from 'ui' import { PageContext } from 'pages/project/[ref]/auth/users' @@ -28,7 +28,7 @@ const UsersPagination = () => { results

    -
    +
    {PageState.hasPrevious && (
    - - ) -} - -export default PolicyRow diff --git a/studio/components/interfaces/Authentication/Policies/PolicyTableRow/PolicyTableRowHeader.tsx b/studio/components/interfaces/Authentication/Policies/PolicyTableRow/PolicyTableRowHeader.tsx deleted file mode 100644 index ef84e01c1ab..00000000000 --- a/studio/components/interfaces/Authentication/Policies/PolicyTableRow/PolicyTableRowHeader.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { FC } from 'react' -import { useRouter } from 'next/router' -import { Badge, Button } from '@supabase/ui' -import { PostgresTable } from '@supabase/postgres-meta' -import Link from 'next/link' - -interface Props { - table: PostgresTable - onSelectToggleRLS: (table: PostgresTable) => void - onSelectCreatePolicy: (table: PostgresTable) => void -} - -const PolicyTableRowHeader: FC = ({ - table, - onSelectToggleRLS = () => {}, - onSelectCreatePolicy = () => {}, -}) => { - const router = useRouter() - const { ref } = router.query - - return ( -
    -
    - - -

    {table.name}

    -
    - - - {table.rls_enabled ? 'RLS enabled' : 'RLS disabled'} - -
    -
    -
    - - -
    -
    -
    - ) -} - -export default PolicyTableRowHeader diff --git a/studio/components/interfaces/Authentication/Policies/PolicyTableRow/index.tsx b/studio/components/interfaces/Authentication/Policies/PolicyTableRow/index.tsx deleted file mode 100644 index b9aa4499cb4..00000000000 --- a/studio/components/interfaces/Authentication/Policies/PolicyTableRow/index.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { FC } from 'react' -import { PostgresTable, PostgresPolicy } from '@supabase/postgres-meta' -import { observer } from 'mobx-react-lite' -import { useStore } from 'hooks' - -import PolicyTableRowHeader from './PolicyTableRowHeader' -import PolicyRow from './PolicyRow' -import Panel from 'components/ui/Panel' - -interface Props { - table: PostgresTable - onSelectToggleRLS: (table: PostgresTable) => void - onSelectCreatePolicy: () => void - onSelectEditPolicy: (policy: PostgresPolicy) => void - onSelectDeletePolicy: (policy: PostgresPolicy) => void -} - -const PolicyTableRow: FC = observer( - ({ - table, - onSelectToggleRLS = () => {}, - onSelectCreatePolicy = () => {}, - onSelectEditPolicy = () => {}, - onSelectDeletePolicy = () => {}, - }) => { - const { meta } = useStore() - const policies = meta.policies.list((x: PostgresPolicy) => x.table === table.name) - return ( - - } - > - {policies.length === 0 && ( -
    -

    No policies created yet

    -
    - )} - - {/* @ts-ignore */} - {policies.map((policy) => ( - - ))} -
    - ) - } -) - -export default PolicyTableRow diff --git a/studio/components/interfaces/Authentication/Policies/PolicyTemplates/index.tsx b/studio/components/interfaces/Authentication/Policies/PolicyTemplates/index.tsx deleted file mode 100644 index 42c6158de23..00000000000 --- a/studio/components/interfaces/Authentication/Policies/PolicyTemplates/index.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { Button } from '@supabase/ui' -import { FC, useState } from 'react' -import { isEmpty } from 'lodash' - -import TemplatesList from './TemplatesList' -import TemplatePreview from './TemplatePreview' -import { PolicyTemplate } from './PolicyTemplates.constants' - -interface Props { - templates: PolicyTemplate[] - templatesNote: string - onUseTemplate: (template: PolicyTemplate) => void -} - -const PolicyTemplates: FC = ({ - templates = [], - templatesNote = '', - onUseTemplate = () => {}, -}) => { - const [selectedTemplate, setSelectedTemplate] = useState(templates[0]) - return ( -
    -
    - - -
    -
    - - This will override any existing code you've written - - -
    -
    - ) -} - -export default PolicyTemplates diff --git a/studio/components/interfaces/Authentication/Templates.tsx b/studio/components/interfaces/Authentication/Templates.tsx deleted file mode 100644 index b64e561504f..00000000000 --- a/studio/components/interfaces/Authentication/Templates.tsx +++ /dev/null @@ -1,227 +0,0 @@ -import semver from 'semver' -import { FC } from 'react' -import { toJS } from 'mobx' -import { observer } from 'mobx-react-lite' -import { useRouter } from 'next/router' -import { Typography } from '@supabase/ui' -import { AutoField, LongTextField } from 'uniforms-bootstrap4' - -import { API_URL, IS_PLATFORM } from 'lib/constants' -import { useProjectAuthConfig, useStore, checkPermissions } from 'hooks' -import { pluckJsonSchemaFields } from 'lib/helpers' -import { patch } from 'lib/common/fetch' -import { authConfig } from 'stores/jsonSchema' -import SchemaFormPanel from 'components/to-be-cleaned/forms/SchemaFormPanel' -import { PermissionAction } from '@supabase/shared-types/out/constants' - -const Templates: FC = ({ project }) => { - const router = useRouter() - const { ui } = useStore() - const magicLinkEnable = semver.gte( - // @ts-ignore - semver.coerce(toJS(project?.kpsVersion) || 'kps-v0.0.1'), - semver.coerce('kps-v2.5.3') - ) - - const canUpdateTemplates = checkPermissions(PermissionAction.UPDATE, 'custom_config_gotrue') - - const { config, error, mutateAuthConfig } = useProjectAuthConfig(project.ref) - if (error) { - return ( - -

    Error connecting to API

    -

    {`${error}`}

    -
    - ) - } - - let model: any = { ...config } - - const onFormSubmit = async (model: any) => { - const response = await patch(`${API_URL}/auth/${router.query.ref}/config`, model) - if (response.error) { - ui.setNotification({ - category: 'error', - message: `Update config failed: ${response.error.message}`, - }) - } else { - mutateAuthConfig(response) - ui.setNotification({ - category: 'success', - message: 'Settings saved!', - }) - } - } - - return ( -
    -
    - onFormSubmit(model)} - > - - -
    -
    - onFormSubmit(model)} - > - - - -
    -
    - onFormSubmit(model)} - > - - - -
    - {magicLinkEnable && ( -
    - onFormSubmit(model)} - > - - - -
    - )} -
    - onFormSubmit(model)} - > - - - -
    -
    - onFormSubmit(model)} - > - - - -
    -
    - ) -} - -export default observer(Templates) diff --git a/studio/components/interfaces/Authentication/Users/InviteUserModal.tsx b/studio/components/interfaces/Authentication/Users/InviteUserModal.tsx deleted file mode 100644 index 401e60663a0..00000000000 --- a/studio/components/interfaces/Authentication/Users/InviteUserModal.tsx +++ /dev/null @@ -1,107 +0,0 @@ -import { useContext, useState } from 'react' -import { observer } from 'mobx-react-lite' -import { Button, Modal, Input, IconPlus, IconMail, Form } from '@supabase/ui' - -import { useStore } from 'hooks' -import { post } from 'lib/common/fetch' -import { API_URL } from 'lib/constants' -import { PageContext } from 'pages/project/[ref]/auth/users' - -const InviteUserModal = () => { - const { ui } = useStore() - const PageState: any = useContext(PageContext) - const [visible, setVisible] = useState(false) - - const handleToggle = () => setVisible(!visible) - - const validate = (values: any) => { - const errors: any = {} - const emailValidateRegex = - /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/ - - if (values.email.length === 0) { - errors.email = 'Please enter a valid email' - } else if (!emailValidateRegex.test(values.email)) { - errors.email = `${values.email} is an invalid email` - } - - return errors - } - - const onInviteuser = async (values: any, { setSubmitting }: any) => { - setSubmitting(true) - - const response = await post(`${API_URL}/auth/${PageState.projectRef}/invite`, { - email: values.email, - }) - if (response.error) { - ui.setNotification({ - category: 'error', - message: `Failed to invite user: ${response.error.message}`, - }) - } else { - PageState.fetchData(1) - ui.setNotification({ - category: 'success', - message: `Sent invite email to ${values.email}`, - }) - setVisible(false) - } - - setSubmitting(false) - } - - return ( -
    - - -
    - {({ isSubmitting }: { isSubmitting: boolean }) => ( -
    - - } - type="email" - name="email" - placeholder="User email" - /> - - - - -
    - )} - -
    -
    - ) -} - -export default observer(InviteUserModal) diff --git a/studio/components/interfaces/Authentication/Users/Users.tsx b/studio/components/interfaces/Authentication/Users/Users.tsx deleted file mode 100644 index d9463ff14c7..00000000000 --- a/studio/components/interfaces/Authentication/Users/Users.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import semver from 'semver' -import { useEffect, useContext } from 'react' -import { observer } from 'mobx-react-lite' -import { Button, Input, IconSearch, IconX, IconRefreshCw } from '@supabase/ui' - -import { PageContext } from 'pages/project/[ref]/auth/users' -import UsersList from './UsersList' -import InviteUserModal from './InviteUserModal' - -const Users = () => { - const PageState: any = useContext(PageContext) - const inviteEnabled = semver.gte( - // @ts-ignore - semver.coerce(PageState.projectKpsVersion || 'kps-v2.5.4'), - semver.coerce('kps-v2.5.3') - ) - - useEffect(() => { - PageState.fetchData(1) - }, []) - - function onFilterChange(e: any) { - PageState.filterInputValue = e.target.value - } - - function onFilterKeyPress(e: any) { - // enter key - if (e.keyCode == 13) onSearchUser() - } - - function onSearchUser() { - PageState.filterKeywords = PageState.filterInputValue - PageState.fetchData(1) - } - - function clearSearch() { - PageState.filterInputValue = '' - PageState.filterKeywords = '' - PageState.fetchData(1) - } - - function refreshUsers() { - PageState.fetchData(1) - } - - return ( -
    -
    -
    - } - actions={[ - PageState.filterInputValue && ( -
    -
    - - {inviteEnabled && } -
    -
    -
    -
    -
    - -
    -
    -
    -
    - ) -} - -export default observer(Users) diff --git a/studio/components/interfaces/Authentication/Users/UsersList.tsx b/studio/components/interfaces/Authentication/Users/UsersList.tsx deleted file mode 100644 index dd3ffc12b1e..00000000000 --- a/studio/components/interfaces/Authentication/Users/UsersList.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { useContext } from 'react' -import { observer } from 'mobx-react-lite' -import { IconAlertCircle, Loading, Typography } from '@supabase/ui' - -import { PageContext } from 'pages/project/[ref]/auth/users' -import Table from 'components/to-be-cleaned/Table' -import UserListItem from './UsersListItem' -import UsersPagination from './UsersPagination' - -const UsersList = ({}) => { - const PageState: any = useContext(PageContext) - - return ( - -
    - Email - Phone - Provider - Created - Last Sign In - User UID - - - } - body={ - <> - {PageState.usersLoading && ( - - {/* @ts-ignore */} - - Retrieving users - - - )} - {!PageState.usersLoading && PageState.users.length == 0 && ( - - {/* @ts-ignore */} - -
    - - - {PageState.filterKeywords - ? `No users matched the search query "${PageState.filterKeywords}"` - : 'No users in your project yet'} - -
    -
    -
    - )} - {PageState.users.length > 0 && - PageState.users.map((x: any) => )} - - - - - - - } - /> - - ) -} - -export default observer(UsersList) diff --git a/studio/components/interfaces/Authentication/Users/UsersListItem.tsx b/studio/components/interfaces/Authentication/Users/UsersListItem.tsx deleted file mode 100644 index a128f957f69..00000000000 --- a/studio/components/interfaces/Authentication/Users/UsersListItem.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { FC } from 'react' -import { observer } from 'mobx-react-lite' -import { Badge } from '@supabase/ui' - -import Table from 'components/to-be-cleaned/Table' -import SimpleCodeBlock from 'components/to-be-cleaned/SimpleCodeBlock' -import UserDropdown from './UserDropdown' -import { getDateFromIsoString } from './Users.utils' - -interface Props { - user: { - id: string - email: string - phone: string - email_confirmed_at: string - phone_confirmed_at: string - created_at: string - last_sign_in_at: string - raw_app_meta_data?: { - provider: string - } - app_metadata?: { - provider: string - } - } -} - -const UserListItem: FC = ({ user }) => { - const isUserConfirmed = user.email_confirmed_at || user.phone_confirmed_at - const createdAt = getDateFromIsoString(user.created_at) - const lastSignedIn = getDateFromIsoString(user.last_sign_in_at) - - return ( - - -
    - {!user.email ? '-' : user.email} -
    -
    - - {!user.phone ? '-' : user.phone} - - - - {user?.raw_app_meta_data?.provider || user?.app_metadata?.provider} - - - - {createdAt?.format('DD MMM, YYYY HH:mm')} - - - {!isUserConfirmed ? ( - Waiting for verification.. - ) : user.last_sign_in_at ? ( - lastSignedIn?.format('DD MMM, YYYY HH:mm') - ) : ( - 'Never' - )} - - - - {user.id} - - - - - -
    - ) -} - -export default observer(UserListItem) diff --git a/studio/components/interfaces/Authentication/index.ts b/studio/components/interfaces/Authentication/index.ts deleted file mode 100644 index 4983e4f0a0b..00000000000 --- a/studio/components/interfaces/Authentication/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import Users from './Users' -import Templates from './Templates' - -export { Users, Templates } diff --git a/studio/components/interfaces/Billing/AddNewPaymentMethodModal/AddNewPaymentMethodModal.tsx b/studio/components/interfaces/Billing/AddNewPaymentMethodModal/AddNewPaymentMethodModal.tsx index 955c03ae1c5..8e8e7e865b6 100644 --- a/studio/components/interfaces/Billing/AddNewPaymentMethodModal/AddNewPaymentMethodModal.tsx +++ b/studio/components/interfaces/Billing/AddNewPaymentMethodModal/AddNewPaymentMethodModal.tsx @@ -1,5 +1,5 @@ import { FC, useEffect, useState } from 'react' -import { IconLoader, Modal } from '@supabase/ui' +import { IconLoader, Modal } from 'ui' import { loadStripe } from '@stripe/stripe-js' import { Elements } from '@stripe/react-stripe-js' diff --git a/studio/components/interfaces/Billing/AddNewPaymentMethodModal/AddPaymentMethodForm.tsx b/studio/components/interfaces/Billing/AddNewPaymentMethodModal/AddPaymentMethodForm.tsx index 444eb12257e..f91c5d5543e 100644 --- a/studio/components/interfaces/Billing/AddNewPaymentMethodModal/AddPaymentMethodForm.tsx +++ b/studio/components/interfaces/Billing/AddNewPaymentMethodModal/AddPaymentMethodForm.tsx @@ -1,5 +1,5 @@ import { FC, useState } from 'react' -import { Button, Modal } from '@supabase/ui' +import { Button, Modal } from 'ui' import { useStripe, useElements, PaymentElement } from '@stripe/react-stripe-js' import { useStore } from 'hooks' @@ -56,7 +56,7 @@ const AddPaymentMethodForm: FC = ({ returnUrl, onCancel }) => {
    diff --git a/studio/components/interfaces/Billing/AddOns/ComputeSizeSelection.tsx b/studio/components/interfaces/Billing/AddOns/ComputeSizeSelection.tsx index e3940c04895..2657b931c68 100644 --- a/studio/components/interfaces/Billing/AddOns/ComputeSizeSelection.tsx +++ b/studio/components/interfaces/Billing/AddOns/ComputeSizeSelection.tsx @@ -1,6 +1,6 @@ import { FC } from 'react' import Link from 'next/link' -import { Badge, Button, Radio } from '@supabase/ui' +import { Badge, Button, Radio } from 'ui' import { useStore, useFlag } from 'hooks' import { getProductPrice } from '../Billing.utils' @@ -30,7 +30,7 @@ const ComputeSizeSelection: FC = ({

    Database add-ons

    Optional -

    +

    Choose the database instance size that best fits your needs

    diff --git a/studio/components/interfaces/Billing/ExitSurvey/ExitSurvey.tsx b/studio/components/interfaces/Billing/ExitSurvey/ExitSurvey.tsx index c236d347acd..7a806f3f6be 100644 --- a/studio/components/interfaces/Billing/ExitSurvey/ExitSurvey.tsx +++ b/studio/components/interfaces/Billing/ExitSurvey/ExitSurvey.tsx @@ -2,7 +2,7 @@ import { FC, useReducer, useState, useEffect, useRef } from 'react' import { useRouter } from 'next/router' import { includes, without } from 'lodash' import { Transition } from '@headlessui/react' -import { Button, Form, Input, Modal, IconArrowLeft, Alert } from '@supabase/ui' +import { Button, Form, Input, Modal, IconArrowLeft, Alert } from 'ui' import { useStore } from 'hooks' import { post, patch } from 'lib/common/fetch' @@ -174,7 +174,7 @@ const ExitSurvey: FC = ({ freeTier, subscription, onSelectBack }) => { enterFrom="transform opacity-0 translate-x-10" enterTo="transform opacity-100 translate-x-0" > -
    +
    = ({ projectRef }) => { invoices.length === 0 ? ( - +

    {loading ? 'Checking for invoices' : 'No invoices for this project yet'} - +

    ) : ( @@ -113,22 +105,20 @@ const Invoices: FC = ({ projectRef }) => { - - {new Date(x.period_end * 1000).toLocaleString()} - +

    {new Date(x.period_end * 1000).toLocaleString()}

    - +

    {x.subtotal >= 0 ? `$${x.subtotal / 100}` : `-$${Math.abs(x.subtotal / 100)}`} - +

    - {x.number} +

    {x.number}

    -
    +
    {product.title !== 'Authentication' && (
    - $ - - {productCost.toFixed(3)} - +

    $

    +

    {productCost.toFixed(3)}

    )}
    diff --git a/studio/components/interfaces/Billing/PaymentSummaryPanel/CostBreakdownModal.tsx b/studio/components/interfaces/Billing/PaymentSummaryPanel/CostBreakdownModal.tsx index dc65957fd04..4a965db7126 100644 --- a/studio/components/interfaces/Billing/PaymentSummaryPanel/CostBreakdownModal.tsx +++ b/studio/components/interfaces/Billing/PaymentSummaryPanel/CostBreakdownModal.tsx @@ -1,6 +1,6 @@ import { FC } from 'react' import { groupBy } from 'lodash' -import { Modal } from '@supabase/ui' +import { Modal } from 'ui' interface Props { visible: boolean @@ -27,7 +27,7 @@ const CostBreakdownModal: FC = ({ header="Cost breakdown details" onCancel={onCancel} > -
    +

    The following shows the cost breakdown of the invoice that will be billed on{' '} @@ -40,11 +40,11 @@ const CostBreakdownModal: FC = ({

    -
    -
    -
    Description
    -
    Qty
    -
    Amount
    +
    +
    +
    Description
    +
    Qty
    +
    Amount
    {Object.keys(groupedBreakdown).map((startPeriod: any, idx: number) => { const start = new Date(Number(startPeriod) * 1000).toLocaleDateString('en-US', { @@ -62,16 +62,16 @@ const CostBreakdownModal: FC = ({ return (
    -
    +
    {start} - {end}
    {groupedBreakdown[startPeriod].map((item: any, index: number) => { return (
    -
    {item.description}
    -
    {item.quantity}
    -
    +
    {item.description}
    +
    {item.quantity}
    +
    ${(item.amount / 100).toFixed(2)}
    @@ -80,21 +80,21 @@ const CostBreakdownModal: FC = ({
    ) })} -
    +
    -
    Total amount
    -
    -
    +
    Total amount
    +
    +
    ${totalDue < 0 ? 0 : totalDue.toFixed(2)}
    {totalDue < 0 && (
    -
    +
    Amount returned as credits for unused resources
    -
    -
    ${Math.abs(totalDue).toFixed(2)}
    +
    +
    ${Math.abs(totalDue).toFixed(2)}
    )}
    diff --git a/studio/components/interfaces/Billing/PaymentSummaryPanel/PaymentSummaryPanel.tsx b/studio/components/interfaces/Billing/PaymentSummaryPanel/PaymentSummaryPanel.tsx index a198cf47dbb..459bd7fc1f7 100644 --- a/studio/components/interfaces/Billing/PaymentSummaryPanel/PaymentSummaryPanel.tsx +++ b/studio/components/interfaces/Billing/PaymentSummaryPanel/PaymentSummaryPanel.tsx @@ -8,9 +8,11 @@ import { IconCreditCard, Modal, Alert, -} from '@supabase/ui' +} from 'ui' +import * as Tooltip from '@radix-ui/react-tooltip' +import { PermissionAction } from '@supabase/shared-types/out/constants' -import { useStore } from 'hooks' +import { checkPermissions, useFlag, useStore } from 'hooks' import { PRICING_TIER_PRODUCT_IDS, STRIPE_PRODUCT_IDS } from 'lib/constants' import { SubscriptionPreview } from '../Billing.types' import { getProductPrice } from '../Billing.utils' @@ -59,6 +61,13 @@ const PaymentSummaryPanel: FC = ({ }) => { const { ui } = useStore() const projectRegion = ui.selectedProject?.region + const isOwner = ui.selectedOrganization?.is_owner + + const enablePermissions = useFlag('enablePermissions') + const canUpdatePaymentMethods = enablePermissions + ? checkPermissions(PermissionAction.BILLING_WRITE, 'stripe.payment_methods') + : isOwner + const [showConfirmModal, setShowConfirmModal] = useState(false) const isEnterprise = currentPlan.supabase_prod_id === PRICING_TIER_PRODUCT_IDS.ENTERPRISE @@ -84,14 +93,14 @@ const PaymentSummaryPanel: FC = ({ return ( <>

    Payment Summary

    {/* Subscription details */}
    -

    Selected subscription

    +

    Selected subscription

    {getPlanName(currentPlan)} @@ -115,7 +124,7 @@ const PaymentSummaryPanel: FC = ({

    Selected add-ons

    {currentComputeSize === undefined && selectedComputeSize === undefined && ( -

    No add-ons selected

    +

    No add-ons selected

    )} {currentComputeSize !== undefined && (
    @@ -157,7 +166,7 @@ const PaymentSummaryPanel: FC = ({
    )} -
    +
    = ({

    Select payment method

    {isLoadingPaymentMethods ? ( -
    +
    -

    Retrieving payment methods

    +

    Retrieving payment methods

    ) : paymentMethods.length === 0 ? ( -
    -
    +
    +

    No saved payment methods

    - + + + + + + {!canUpdatePaymentMethods && ( + + +
    + + {enablePermissions + ? 'You need additional permissions to add new payment methods to this organization' + : 'Only organization owners can add new payment methods'} + +
    +
    + )} +
    ) : ( @@ -212,11 +244,11 @@ const PaymentSummaryPanel: FC = ({ ) })}
    -

    +

    Add new payment method

    @@ -257,7 +289,7 @@ const PaymentSummaryPanel: FC = ({ -

    Would you like to update your project now?

    +

    Would you like to update your project now?

    diff --git a/studio/components/interfaces/Billing/PaymentSummaryPanel/PaymentTotal.tsx b/studio/components/interfaces/Billing/PaymentSummaryPanel/PaymentTotal.tsx index e3a252ddedb..1966ce0cf4f 100644 --- a/studio/components/interfaces/Billing/PaymentSummaryPanel/PaymentTotal.tsx +++ b/studio/components/interfaces/Billing/PaymentSummaryPanel/PaymentTotal.tsx @@ -1,5 +1,5 @@ import { FC, useState } from 'react' -import { Loading, IconHelpCircle, Button } from '@supabase/ui' +import { Loading, IconHelpCircle, Button } from 'ui' import * as Tooltip from '@radix-ui/react-tooltip' import { SubscriptionPreview } from '../Billing.types' import CostBreakdownModal from './CostBreakdownModal' @@ -48,7 +48,7 @@ const PaymentTotal: FC = ({ setShowCostBreakdown(true)} /> @@ -56,11 +56,11 @@ const PaymentTotal: FC = ({
    - How is this calculated? + How is this calculated?
    @@ -106,8 +106,8 @@ const PaymentTotal: FC = ({

    No changes to current subscription

    )}
    -
    -

    $

    +
    +

    $

    {!hasChanges ? '0.00' diff --git a/studio/components/interfaces/Billing/PlanSelection/Plans/PlanCTAButton.tsx b/studio/components/interfaces/Billing/PlanSelection/Plans/PlanCTAButton.tsx index 443b7ec98ff..369105dbce8 100644 --- a/studio/components/interfaces/Billing/PlanSelection/Plans/PlanCTAButton.tsx +++ b/studio/components/interfaces/Billing/PlanSelection/Plans/PlanCTAButton.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { Button, IconLoader } from '@supabase/ui' +import { Button, IconLoader } from 'ui' import * as Tooltip from '@radix-ui/react-tooltip' import { useFlag } from 'hooks' @@ -86,7 +86,7 @@ const PlanCTAButton: FC = ({ plan, currentPlan, onSelectPlan }) => { {ctaText} {!disabled && projectUpdateDisabled && ( -

    +

    Subscription changes are currently disabled, our engineers are working on a fix

    )} diff --git a/studio/components/interfaces/Billing/PlanSelection/Plans/Plans.tsx b/studio/components/interfaces/Billing/PlanSelection/Plans/Plans.tsx index 8ddc8587913..caf3f42a7d1 100644 --- a/studio/components/interfaces/Billing/PlanSelection/Plans/Plans.tsx +++ b/studio/components/interfaces/Billing/PlanSelection/Plans/Plans.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { IconCheck } from '@supabase/ui' +import { IconCheck } from 'ui' import { STRIPE_PRODUCT_IDS } from 'lib/constants' import { StripeProduct } from 'components/interfaces/Billing' @@ -15,7 +15,7 @@ interface Props { const AnimatedGradientBackground = () => (
    @@ -59,9 +59,9 @@ const Plans: FC = ({ plans, currentPlan, onSelectPlan }) => { )}
    {isCurrentPlan && } -
    +
    {PRICING_META[plan.id].name} @@ -72,11 +72,11 @@ const Plans: FC = ({ plans, currentPlan, onSelectPlan }) => { <>
    {PRICING_META[plan.id].from && ( - From + From )}
    ${PRICING_META[plan.id].priceMonthly} - /mo + /mo
    @@ -85,7 +85,7 @@ const Plans: FC = ({ plans, currentPlan, onSelectPlan }) => { )}
    {PRICING_META[plan.id].warning && ( -
    +
    {PRICING_META[plan.id].warning}
    )} @@ -99,28 +99,28 @@ const Plans: FC = ({ plans, currentPlan, onSelectPlan }) => { onSelectPlan={onSelectPlan} />
    -

    {PRICING_META[plan.id].description}

    +

    {PRICING_META[plan.id].description}

    {PRICING_META[plan.id].preface && ( -

    {PRICING_META[plan.id].preface}

    +

    {PRICING_META[plan.id].preface}

    )} -
    + + Name + + + Arguments + + + Return type + + + + } + body={ + + } + /> + + ) +} + +export default observer(SchemaTable) diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/CheckboxEvents.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/CheckboxEvents.tsx index 5c5cc4a04c4..cf4825e3326 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/CheckboxEvents.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/CheckboxEvents.tsx @@ -1,6 +1,6 @@ import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Checkbox } from '@supabase/ui' +import { Checkbox } from 'ui' import { union, without } from 'lodash' import { CreateHookContext } from './' diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/InputName.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/InputName.tsx index c815b8abe2d..ba2f3b9ee61 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/InputName.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/InputName.tsx @@ -1,6 +1,6 @@ import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Input } from '@supabase/ui' +import { Input } from 'ui' import { CreateHookContext } from './' const InputName: FC = observer(({}) => { diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/RadioGroupHookService/RadioHookService.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/RadioGroupHookService/RadioHookService.tsx index fad49d99d0d..21331ac5ad7 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/RadioGroupHookService/RadioHookService.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/RadioGroupHookService/RadioHookService.tsx @@ -1,7 +1,7 @@ import Image from 'next/image' import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Radio, Badge } from '@supabase/ui' +import { Radio, Badge } from 'ui' import { CreateHookContext } from '../' interface Props { diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/RadioGroupHookService/index.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/RadioGroupHookService/index.tsx index c4cb24dbf27..17afba4014a 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/RadioGroupHookService/index.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/RadioGroupHookService/index.tsx @@ -1,6 +1,6 @@ import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Radio } from '@supabase/ui' +import { Radio } from 'ui' import { CreateHookContext } from '../' import RadioHookService from './RadioHookService' diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/SelectEnabledMode.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/SelectEnabledMode.tsx index f6a3ee1bfb8..7c114d7d735 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/SelectEnabledMode.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/SelectEnabledMode.tsx @@ -1,6 +1,6 @@ import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Select } from '@supabase/ui' +import { Select } from 'ui' import { CreateHookContext } from './' const SelectEnabledMode: FC = observer(({}) => { diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputMultiServiceHeaders.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputMultiServiceHeaders.tsx index c0abe46b6f2..84be5e4695b 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputMultiServiceHeaders.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputMultiServiceHeaders.tsx @@ -1,6 +1,6 @@ import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Typography, Button, IconPlus } from '@supabase/ui' +import { Button, IconPlus } from 'ui' import { CreateHookContext } from '../' import InputServiceHeader from './InputServiceHeader' @@ -19,7 +19,7 @@ const InputMultiServiceHeaders: FC = observer(({}) => { return (
    - HTTP Headers +
    HTTP Headers
    {_localState.formState.serviceHeaders.value.map( diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputMultiServiceParams.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputMultiServiceParams.tsx index d5dca9e277a..576a1cfd83e 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputMultiServiceParams.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputMultiServiceParams.tsx @@ -1,6 +1,6 @@ import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Typography, Button, IconPlus } from '@supabase/ui' +import { Button, IconPlus } from 'ui' import { CreateHookContext } from '../' import InputServiceParam from './InputServiceParam' @@ -19,7 +19,7 @@ const InputMultiServiceParams: FC = observer(({}) => { return (
    - HTTP Params +
    HTTP Params
    {_localState.formState.serviceParams.value.map( diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceHeader.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceHeader.tsx index ad93fec7e8f..d9e587b4a48 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceHeader.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceHeader.tsx @@ -1,6 +1,6 @@ import { FC, useContext, FormEvent } from 'react' import { observer } from 'mobx-react-lite' -import { Input, IconTrash, Button } from '@supabase/ui' +import { Input, IconTrash, Button } from 'ui' import { CreateHookContext } from '../' interface Props { diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceParam.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceParam.tsx index 321f53cc68f..4045966d5ba 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceParam.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceParam.tsx @@ -1,6 +1,6 @@ import { FC, useContext, FormEvent } from 'react' import { observer } from 'mobx-react-lite' -import { Input, IconTrash, Button } from '@supabase/ui' +import { Input, IconTrash, Button } from 'ui' import { CreateHookContext } from '../' interface Props { diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceTimeout.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceTimeout.tsx index 587f7399c73..ae255fb0be6 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceTimeout.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceTimeout.tsx @@ -1,6 +1,6 @@ import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Input } from '@supabase/ui' +import { Input } from 'ui' import { CreateHookContext } from '../' // Not used currently diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceUrl.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceUrl.tsx index 2965f03b5c9..f65aaa19efe 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceUrl.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/InputServiceUrl.tsx @@ -1,6 +1,6 @@ import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Input } from '@supabase/ui' +import { Input } from 'ui' import { CreateHookContext } from '../' const InputServiceUrl: FC = observer(({}) => { diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/SelectServiceMethod.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/SelectServiceMethod.tsx index 815902818b3..fca6069eb39 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/SelectServiceMethod.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/SelectServiceMethod.tsx @@ -1,6 +1,6 @@ import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Select } from '@supabase/ui' +import { Select } from 'ui' import { CreateHookContext } from '../' const SelectServiceMethod: FC = observer(({}) => { diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/ServiceUnavailableBox.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/ServiceUnavailableBox.tsx index fef98c9b289..59e5ae128a8 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/ServiceUnavailableBox.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/ServiceUnavailableBox.tsx @@ -1,6 +1,6 @@ import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Alert, Button } from '@supabase/ui' +import { Alert, Button } from 'ui' import { CreateHookContext } from '../' const ServiceUnavailableBox: FC = observer(({}) => { diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/index.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/index.tsx index 7e5d84d82cd..425e76bdcb6 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/index.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/ServiceConfigForm/index.tsx @@ -1,6 +1,6 @@ import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Typography, SidePanel } from '@supabase/ui' +import { SidePanel } from 'ui' import { CreateHookContext } from '../' import SelectServiceMethod from './SelectServiceMethod' @@ -18,10 +18,9 @@ const ServiceConfigForm: FC = observer(({}) => {
    - HTTP Request +
    HTTP Request
    - {/* */}
    diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/TableSelection.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/TableSelection.tsx index 4c27577dd1b..e1382da2597 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/TableSelection.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/TableSelection.tsx @@ -2,7 +2,7 @@ import Link from 'next/link' import SVG from 'react-inlinesvg' import { FC, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Input, Typography, Listbox } from '@supabase/ui' +import { Input, Listbox } from 'ui' import { CreateHookContext } from './' import { useStore } from 'hooks' @@ -21,18 +21,16 @@ const TableSelection: FC = observer(({}) => { placeholder="No tables created, please create one first" // @ts-ignore descriptionText={ -
    - +

    + This is the table the trigger will watch for changes. There's currently no tables - created - please create one - + created - please create one{' '} + - - here - + here - first. -

    + first. +

    } /> ) @@ -73,7 +71,7 @@ const TableSelection: FC = observer(({}) => { value={x.id} label={x.name} addOnBefore={() => ( -
    +
    {
    )} > -
    - {x.name} - - {x.schema} - +
    +

    {x.name}

    +

    {x.schema}

    ) diff --git a/studio/components/interfaces/Database/Hooks/CreateHook/index.tsx b/studio/components/interfaces/Database/Hooks/CreateHook/index.tsx index 1821fdaa2d7..97642c13405 100644 --- a/studio/components/interfaces/Database/Hooks/CreateHook/index.tsx +++ b/studio/components/interfaces/Database/Hooks/CreateHook/index.tsx @@ -3,7 +3,7 @@ import { FC, useEffect, createContext } from 'react' import { observer, useLocalObservable } from 'mobx-react-lite' import { isEmpty, mapValues, has, filter, keyBy, isUndefined } from 'lodash' import { Dictionary } from 'components/grid' -import { Badge, Input, SidePanel } from '@supabase/ui' +import { Badge, Input, SidePanel } from 'ui' import { useStore } from 'hooks' import InputName from './InputName' @@ -415,7 +415,7 @@ const CreateHook: FC = ({ hook, visible = true, setVisible }) =
    -
    HTTP Headers
    +
    HTTP Headers
    Read only
    @@ -442,6 +442,10 @@ const CreateHook: FC = ({ hook, visible = true, setVisible }) = )}
    +

    + Note: You can only edit a webhook's name and mode. To change + other settings, you'll need to delete and recreate the webhook. +

    )} @@ -450,7 +454,7 @@ const CreateHook: FC = ({ hook, visible = true, setVisible }) =
    -
    HTTP Parameters
    +
    HTTP Parameters
    Read only
    @@ -487,13 +491,13 @@ const CreateHook: FC = ({ hook, visible = true, setVisible }) =
    -
    Conditions to fire hook
    +
    Conditions to fire hook
    -
    Type of hook
    +
    Type of hook
    diff --git a/studio/components/interfaces/Database/Hooks/HooksList/HookList.tsx b/studio/components/interfaces/Database/Hooks/HooksList/HookList.tsx new file mode 100644 index 00000000000..e28a7e373d3 --- /dev/null +++ b/studio/components/interfaces/Database/Hooks/HooksList/HookList.tsx @@ -0,0 +1,111 @@ +import { FC } from 'react' +import { includes } from 'lodash' +import { observer } from 'mobx-react-lite' +import * as Tooltip from '@radix-ui/react-tooltip' +import { PermissionAction } from '@supabase/shared-types/out/constants' +import { Badge, Button, Dropdown, IconMoreVertical, IconTrash, IconEdit3 } from 'ui' + +import { checkPermissions, useStore } from 'hooks' +import Table from 'components/to-be-cleaned/Table' + +interface Props { + schema: string + filterString: string + editHook: (hook: any) => void + deleteHook: (hook: any) => void +} + +const HookList: FC = ({ + schema, + filterString, + editHook = () => {}, + deleteHook = () => {}, +}) => { + const { meta } = useStore() + const hooks = meta.hooks.list() + const filteredHooks = hooks.filter((x: any) => + includes(x.name.toLowerCase(), filterString.toLowerCase()) + ) + const _hooks = filteredHooks.filter((x: any) => x.schema == schema) + const canUpdateWebhook = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'triggers') + + function onEdit(trigger: any) { + editHook(trigger) + } + + function onDelete(trigger: any) { + deleteHook(trigger) + } + + return ( + <> + {_hooks.map((x: any) => ( + + +

    {x.name}

    +
    + +

    {x.table}

    +
    + +

    + {x.events.map((event: string) => ( + {event} + ))} +

    +
    + +

    + {x.function_args[0]} +

    +
    + +
    + {canUpdateWebhook ? ( + + } onClick={() => onEdit(x)}> + Edit hook + + } + onClick={() => onDelete(x)} + > + Delete hook + + + } + > +
    +
    +
    + ))} + + ) +} + +export default observer(HookList) diff --git a/studio/components/interfaces/Database/Hooks/HooksList/HooksList.tsx b/studio/components/interfaces/Database/Hooks/HooksList/HooksList.tsx new file mode 100644 index 00000000000..87dd212199b --- /dev/null +++ b/studio/components/interfaces/Database/Hooks/HooksList/HooksList.tsx @@ -0,0 +1,150 @@ +import { FC } from 'react' +import { includes, uniqBy, map as lodashMap } from 'lodash' +import { observer } from 'mobx-react-lite' +import * as Tooltip from '@radix-ui/react-tooltip' +import { Button, Input, IconSearch, IconLoader } from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { useStore, checkPermissions } from 'hooks' +import SchemaTable from './SchemaTable' +import AlphaPreview from 'components/to-be-cleaned/AlphaPreview' +import ProductEmptyState from 'components/to-be-cleaned/ProductEmptyState' + +function isHooksEnabled(schemas: any): boolean { + return schemas.some((schema: any) => schema.name === 'supabase_functions') +} + +const HooksList: FC = ({ + hooksEnabled, + filterString, + setFilterString = () => {}, + createHook = () => {}, + editHook = () => {}, + deleteHook = () => {}, + enableHooks = () => {}, +}) => { + const { meta } = useStore() + const hooks = meta.hooks.list() + const schemas = meta.schemas.list() + const filteredHooks = hooks.filter((x: any) => + includes(x.name.toLowerCase(), filterString.toLowerCase()) + ) + const filteredHookSchemas = lodashMap(uniqBy(filteredHooks, 'schema'), 'schema') + const canCreateWebhooks = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'triggers') + + const isEnabled = hooksEnabled || isHooksEnabled(schemas) + + if (!isEnabled) { + return ( + <> + {schemas.length === 0 ? ( + Checking if hooks are enabled... + ) : ( + enableHooks()} + disabled={!canCreateWebhooks} + disabledMessage="You need additional permissions to enable hooks" + > + +

    Enable hooks on your project.

    +
    + )} + + ) + } + + if (meta.hooks.isLoading) { + return ( +
    + +

    Loading hooks...

    +
    + ) + } + + if (meta.hooks.hasError) { + return ( +

    +

    Error connecting to API

    +

    {`${meta.hooks.error?.message ?? 'Unknown error'}`}

    +

    + ) + } + + return ( + <> + {hooks.length == 0 ? ( +
    + createHook()} + disabled={!canCreateWebhooks} + disabledMessage="You need additional permissions to create webhooks" + > + +

    + Database Webhooks can be used to trigger serverless functions or send requests to an + HTTP endpoint. +

    +
    +
    + ) : ( +
    +
    + } + value={filterString} + onChange={(e) => setFilterString(e.target.value)} + /> + + + + + {!canCreateWebhooks && ( + + +
    + + You need additional permissions to create webhooks + +
    +
    + )} +
    +
    + {filteredHooks.length <= 0 && ( +
    +

    No results match your filter query

    + +
    + )} + {filteredHookSchemas.map((schema: any) => ( + + ))} +
    + )} + + ) +} + +export default observer(HooksList) diff --git a/studio/components/interfaces/Database/Hooks/HooksList/SchemaTable.tsx b/studio/components/interfaces/Database/Hooks/HooksList/SchemaTable.tsx new file mode 100644 index 00000000000..fd8f1927aac --- /dev/null +++ b/studio/components/interfaces/Database/Hooks/HooksList/SchemaTable.tsx @@ -0,0 +1,60 @@ +import { FC } from 'react' +import { observer } from 'mobx-react-lite' + +import Table from 'components/to-be-cleaned/Table' +import HookList from './HookList' + +interface Props { + schema: string + filterString: string + editHook: (hook: any) => void + deleteHook: (hook: any) => void +} + +const SchemaTable: FC = ({ + schema, + filterString, + editHook = () => {}, + deleteHook = () => {}, +}) => { + return ( +
    +
    +
    +
    schema
    +

    {schema}

    +
    +
    +
    + + Name + + + Table + + + Events + + + Webhook + + + + } + body={ + + } + /> + + ) +} + +export default observer(SchemaTable) diff --git a/studio/components/interfaces/Database/Pooling/ConnectionPooling.tsx b/studio/components/interfaces/Database/Pooling/ConnectionPooling.tsx index c5598732a16..c6b7ac17242 100644 --- a/studio/components/interfaces/Database/Pooling/ConnectionPooling.tsx +++ b/studio/components/interfaces/Database/Pooling/ConnectionPooling.tsx @@ -1,6 +1,5 @@ import { FC, useState, useEffect } from 'react' import { observer } from 'mobx-react-lite' -import { Typography } from '@supabase/ui' import { useStore } from 'hooks' import { pluckObjectFields } from 'lib/helpers' import Loading from 'components/ui/Loading' @@ -11,7 +10,7 @@ import { API_URL } from 'lib/constants' import { patch } from 'lib/common/fetch' import ToggleField from 'components/to-be-cleaned/forms/ToggleField' import SchemaFormPanel from 'components/to-be-cleaned/forms/SchemaFormPanel' -import { Input } from '@supabase/ui' +import { Input } from 'ui' interface Props {} @@ -37,7 +36,7 @@ const ConnectionPooling: FC = () => { if (poolingConfiguration.error) { return (
    - Error loading pooling configuration +

    Error loading pooling configuration

    ) } @@ -49,15 +48,13 @@ const ConnectionPooling: FC = () => { return ( +
    Connection Pooling is not available for this project - +
    } > - - Please start a new project to enable this feature. - +

    Please start a new project to enable this feature.

    ) @@ -187,7 +184,7 @@ export const PgbouncerConfig: FC = observer( showInlineError errorMessage="You must select one of the three options" /> -
    +

    Specify when a connection can be returned to the pool. To find out the most suitable mode for your use case,{' '} diff --git a/studio/components/interfaces/Database/Publications/PublicationsList.tsx b/studio/components/interfaces/Database/Publications/PublicationsList.tsx index e911d25ea05..082a40cf158 100644 --- a/studio/components/interfaces/Database/Publications/PublicationsList.tsx +++ b/studio/components/interfaces/Database/Publications/PublicationsList.tsx @@ -1,11 +1,13 @@ import { FC, useState } from 'react' import { observer } from 'mobx-react-lite' -import { Button, Input, Toggle, IconSearch } from '@supabase/ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' +import { Button, Input, Toggle, IconSearch, IconAlertCircle } from 'ui' -import { useStore } from 'hooks' +import { checkPermissions, useStore } from 'hooks' import { confirmAlert } from 'components/to-be-cleaned/ModalsDeprecated/ConfirmModal' import Table from 'components/to-be-cleaned/Table' import NoSearchResults from 'components/to-be-cleaned/NoSearchResults' +import InformationBox from 'components/ui/InformationBox' interface Props { onSelectPublication: (id: number) => void @@ -15,6 +17,17 @@ const PublicationsList: FC = ({ onSelectPublication = () => {} }) => { const { ui, meta } = useStore() const [filterString, setFilterString] = useState('') + const canUpdatePublications = checkPermissions( + PermissionAction.TENANT_SQL_ADMIN_WRITE, + 'publications' + ) + + const publicationEvents = [ + { event: 'Insert', key: 'publish_insert' }, + { event: 'Update', key: 'publish_update' }, + { event: 'Delete', key: 'publish_delete' }, + { event: 'Truncate', key: 'publish_truncate' }, + ] const publications = filterString.length === 0 ? meta.publications.list() @@ -51,17 +64,22 @@ const PublicationsList: FC = ({ onSelectPublication = () => {} }) => {

    -
    - } - placeholder={'Filter'} - value={filterString} - onChange={(e) => setFilterString(e.target.value)} + } + placeholder={'Filter'} + value={filterString} + onChange={(e) => setFilterString(e.target.value)} + /> +
    + {!canUpdatePublications && ( +
    + } + title="You need additional permissions to update database replications" />
    -
    -
    + )}
    {publications.length === 0 ? ( @@ -98,42 +116,20 @@ const PublicationsList: FC = ({ onSelectPublication = () => {} }) => { {x.id} - -
    - toggleListenEvent(x, 'insert', x.publish_insert)} - /> -
    -
    - -
    - toggleListenEvent(x, 'update', x.publish_update)} - /> -
    -
    - -
    - toggleListenEvent(x, 'delete', x.publish_delete)} - /> -
    -
    - -
    - toggleListenEvent(x, 'truncate', x.publish_truncate)} - /> -
    -
    + {publicationEvents.map((event) => ( + +
    + + toggleListenEvent(x, event.event.toLowerCase(), x[event.key]) + } + /> +
    +
    + ))}
    -
    + {!canUpdatePublications && ( +
    + } + title="You need additional permissions to update database replications" + /> +
    + )}
    {tables.length === 0 ? ( diff --git a/studio/components/interfaces/Database/Roles/RolesList.tsx b/studio/components/interfaces/Database/Roles/RolesList.tsx index e950a83b764..fc46dc7b30c 100644 --- a/studio/components/interfaces/Database/Roles/RolesList.tsx +++ b/studio/components/interfaces/Database/Roles/RolesList.tsx @@ -1,6 +1,6 @@ import { FC } from 'react' import { observer } from 'mobx-react-lite' -import { Typography, IconChevronRight } from '@supabase/ui' +import { IconChevronRight } from 'ui' import { useStore } from 'hooks' import SparkBar from 'components/ui/SparkBar' @@ -26,16 +26,16 @@ const RolesList: FC = ({ onSelectRole = () => {} }) => { body={roles.map((x, i) => ( onSelectRole(x)}> - {x.name} +

    {x.name}

    - {x.id} +

    {x.id}

    - +

    {x.active_connections}/{x.connection_limit} connections - +

    = ({ onSelectRole = () => {} }) => {
    - - - +
    ))} diff --git a/studio/components/interfaces/Database/Roles/RolesSettings.tsx b/studio/components/interfaces/Database/Roles/RolesSettings.tsx index fcdaf1bb791..2ff4c1da8a6 100644 --- a/studio/components/interfaces/Database/Roles/RolesSettings.tsx +++ b/studio/components/interfaces/Database/Roles/RolesSettings.tsx @@ -1,6 +1,6 @@ import { FC } from 'react' import { observer } from 'mobx-react-lite' -import { Button, Typography, IconChevronLeft } from '@supabase/ui' +import { Button, IconChevronLeft } from 'ui' import Divider from 'components/ui/Divider' import Panel from 'components/ui/Panel' @@ -15,8 +15,8 @@ const RolesSettings: FC = ({ selectedRole, onSelectBack = () => {} }) => <>
    -
    Name, - Schema, - - Description - , - - Rows (Estimated) - , - - Size (Estimated) - , - , - ]} - body={tables.map((x: any, i: any) => ( - - - {x.name} - - - {x.schema} - - - {x.comment} - - - - {x.live_rows_estimate ?? x.live_row_count} - - - - - {x.size} - - - -
    - -
    -
    -
    +const TableList: FC = ({ + selectedSchema, + onSelectSchema = () => {}, + onAddTable = () => {}, + onEditTable = () => {}, + onDeleteTable = () => {}, + onOpenTable = () => {}, +}) => { + const { meta } = useStore() + + const [filterString, setFilterString] = useState('') + + const schemas: PostgresSchema[] = meta.schemas.list() + const [protectedSchemas, openSchemas] = partition(schemas, (schema) => + meta.excludedSchemas.includes(schema?.name ?? '') + ) + + const allTables: PostgresTable[] = meta.tables.list( + (table: PostgresTable) => table.schema === selectedSchema + ) + const tables = + filterString.length === 0 + ? allTables + : // @ts-ignore + allTables.filter((table: PostgresTable) => table.name.includes(filterString)) + + // @ts-ignore + const schema = schemas.find((schema) => schema.name === selectedSchema) + const isLocked = protectedSchemas.some((s) => s.id === schema?.id) + + return ( + <> +
    +
    +
    + } + > + +

    Schemas

    +
    + {/* @ts-ignore */} + {openSchemas.map((schema) => ( + schema} + > + {schema.name} + ))} + +

    Protected schemas

    +
    + {protectedSchemas.map((schema) => ( + schema} + > + {schema.name} + + ))} +
    +
    +
    + setFilterString(e.target.value)} + icon={} />
    +
    + {!isLocked && ( +
    + +
    )} - - ) - } -) +
    + {tables.length === 0 ? ( + + ) : ( +
    +
    Name, + + Description + , + + Rows (Estimated) + , + + Size (Estimated) + , + , + ]} + body={tables.map((x: any, i: any) => ( + + +

    {x.name}

    +
    + + {x.comment !== null ? ( +

    {x.comment}

    + ) : ( +

    No description

    + )} +
    + + {x.live_rows_estimate ?? x.live_row_count} + + + {x.size} + + +
    + +
    +
    +
    + ))} + /> + + )} + + ) +} -export default TableList +export default observer(TableList) diff --git a/studio/components/interfaces/Database/Triggers/ChooseFunctionForm.tsx b/studio/components/interfaces/Database/Triggers/ChooseFunctionForm.tsx index e2887f12f3c..8c67c3367d9 100644 --- a/studio/components/interfaces/Database/Triggers/ChooseFunctionForm.tsx +++ b/studio/components/interfaces/Database/Triggers/ChooseFunctionForm.tsx @@ -1,16 +1,9 @@ -import * as React from 'react' +import { FC, createContext, useContext, useState } from 'react' import { useRouter } from 'next/router' import { observer, useLocalObservable } from 'mobx-react-lite' import { uniqBy, map as lodashMap } from 'lodash' import { Transition } from '@headlessui/react' -import { - Button, - IconChevronDown, - IconHelpCircle, - IconTerminal, - SidePanel, - Typography, -} from '@supabase/ui' +import { Button, IconChevronDown, IconHelpCircle, IconTerminal, SidePanel } from 'ui' import { Dictionary } from 'components/grid' import SqlEditor from 'components/ui/SqlEditor' import ProductEmptyState from 'components/to-be-cleaned/ProductEmptyState' @@ -29,7 +22,7 @@ class ChooseFunctionFormStore implements IChooseFunctionFormStore { } } -const ChooseFunctionFormContext = React.createContext(null) +const ChooseFunctionFormContext = createContext(null) type ChooseFunctionFormProps = { triggerFunctions: Dictionary[] @@ -38,7 +31,7 @@ type ChooseFunctionFormProps = { setVisible: (value: boolean) => void } -const ChooseFunctionForm: React.FC = ({ +const ChooseFunctionForm: FC = ({ triggerFunctions, visible, onChange, @@ -80,7 +73,7 @@ const ChooseFunctionForm: React.FC = ({ export default observer(ChooseFunctionForm) -const NoticeBox: React.FC = ({}) => { +const NoticeBox: FC = ({}) => { const router = useRouter() const { ref } = router.query return ( @@ -104,7 +97,7 @@ const NoticeBox: React.FC = ({}) => { ) } -const NoFunctionsState: React.FC = ({}) => { +const NoFunctionsState: FC = ({}) => { // for the empty 'no tables' state link const router = useRouter() const { ref } = router.query @@ -129,33 +122,29 @@ type SchemaFunctionGroupProps = { selectFunction: (id: number) => void } -const SchemaFunctionGroup: React.FC = observer( - ({ schema, selectFunction }) => { - const _pageState = React.useContext(ChooseFunctionFormContext) - const _functions = _pageState!.triggerFunctions.filter((x) => x.schema == schema) - return ( -
    -
    - - schema - - {schema} -
    -
    - {_functions.map((x) => ( - - ))} -
    +const SchemaFunctionGroup: FC = observer(({ schema, selectFunction }) => { + const _pageState = useContext(ChooseFunctionFormContext) + const _functions = _pageState!.triggerFunctions.filter((x) => x.schema == schema) + return ( +
    +
    +
    schema
    +
    {schema}
    - ) - } -) +
    + {_functions.map((x) => ( + + ))} +
    +
    + ) +}) type FunctionProps = { id: number @@ -164,21 +153,19 @@ type FunctionProps = { onClick: (id: number) => void } -const Function: React.FC = ({ id, completeStatement, name, onClick }) => { - const [visible, setVisible] = React.useState(false) +const Function: FC = ({ id, completeStatement, name, onClick }) => { + const [visible, setVisible] = useState(false) return (
    onClick(id)} > -
    +
    -
    +
    - - {name} - +
    {name}
    + + Name + + + Table + + + Function + + + Events + + + + } + body={ + + } + /> + + ) +} +export default observer(SchemaTable) diff --git a/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.tsx b/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.tsx new file mode 100644 index 00000000000..e8c2049224a --- /dev/null +++ b/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.tsx @@ -0,0 +1,108 @@ +import { FC } from 'react' +import { includes } from 'lodash' +import { observer } from 'mobx-react-lite' +import * as Tooltip from '@radix-ui/react-tooltip' +import { PermissionAction } from '@supabase/shared-types/out/constants' +import { Badge, Button, Dropdown, IconMoreVertical, IconTrash, IconEdit3 } from 'ui' + +import { useStore, checkPermissions } from 'hooks' +import Table from 'components/to-be-cleaned/Table' + +interface Props { + filterString: string + schema: string + editTrigger: (trigger: any) => void + deleteTrigger: (trigger: any) => void +} + +const TriggerList: FC = ({ filterString, schema, editTrigger, deleteTrigger }) => { + const { meta } = useStore() + const triggers = meta.triggers.list() + const filteredTriggers = triggers.filter((x: any) => + includes(x.name.toLowerCase(), filterString.toLowerCase()) + ) + + const _triggers = filteredTriggers.filter((x: any) => x.schema == schema) + const canUpdateTriggers = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'triggers') + + function onEdit(trigger: any) { + editTrigger(trigger) + } + + function onDelete(trigger: any) { + deleteTrigger(trigger) + } + + return ( + <> + {_triggers.map((x: any) => ( + + +

    {x.name}

    +
    + +

    {x.table}

    +
    + +
    +

    {x.function_name}

    +
    +
    + +
    + {x.events.map((event: string) => ( + {event} + ))} +
    +
    + +
    + {canUpdateTriggers ? ( + + } onClick={() => onEdit(x)}> + Edit trigger + + } + onClick={() => onDelete(x)} + > + Delete trigger + + + } + > +
    +
    +
    + ))} + + ) +} + +export default observer(TriggerList) diff --git a/studio/components/interfaces/Database/Triggers/TriggersList/TriggersList.tsx b/studio/components/interfaces/Database/Triggers/TriggersList/TriggersList.tsx new file mode 100644 index 00000000000..2bb4b194b49 --- /dev/null +++ b/studio/components/interfaces/Database/Triggers/TriggersList/TriggersList.tsx @@ -0,0 +1,122 @@ +import { FC } from 'react' +import { includes, uniqBy, map as lodashMap } from 'lodash' +import { observer } from 'mobx-react-lite' +import * as Tooltip from '@radix-ui/react-tooltip' +import { Button, Input, IconSearch, IconLoader } from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { checkPermissions, useStore } from 'hooks' +import SchemaTable from './SchemaTable' +import AlphaPreview from 'components/to-be-cleaned/AlphaPreview' +import ProductEmptyState from 'components/to-be-cleaned/ProductEmptyState' + +const TriggersList: FC = ({ + filterString, + setFilterString = () => {}, + createTrigger = () => {}, + editTrigger = () => {}, + deleteTrigger = () => {}, +}) => { + const { meta } = useStore() + const triggers = meta.triggers.list() + const filteredTriggers = triggers.filter((x: any) => + includes(x.name.toLowerCase(), filterString.toLowerCase()) + ) + const filteredTriggerSchemas = lodashMap(uniqBy(filteredTriggers, 'schema'), 'schema') + const canCreateTriggers = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'triggers') + + if (meta.triggers.isLoading) { + return ( +
    + +

    Loading triggers...

    +
    + ) + } + + if (meta.triggers.hasError) { + return ( +
    +

    Error connecting to API

    +

    {`${meta.triggers.error?.message ?? 'Unknown error'}`}

    +
    + ) + } + + return ( + <> + {triggers.length == 0 ? ( +
    + createTrigger()} + > + +

    + A PostgreSQL trigger is a function invoked automatically whenever an event associated + with a table occurs. +

    +

    + An event could be any of the following: INSERT, UPDATE, DELETE. A trigger is a special + user-defined function associated with a table. +

    +
    +
    + ) : ( +
    +
    + } + value={filterString} + onChange={(e) => setFilterString(e.target.value)} + /> + + + + + {!canCreateTriggers && ( + + +
    + + You need additional permissions to create triggers + +
    +
    + )} +
    +
    + {filteredTriggers.length <= 0 && ( +
    +

    No results match your filter query

    + +
    + )} + {filteredTriggerSchemas.map((schema: any) => ( + + ))} +
    + )} + + ) +} + +export default observer(TriggersList) diff --git a/studio/components/interfaces/Database/index.ts b/studio/components/interfaces/Database/index.ts index 2bd42e99171..60141982fab 100644 --- a/studio/components/interfaces/Database/index.ts +++ b/studio/components/interfaces/Database/index.ts @@ -10,7 +10,6 @@ import PublicationsList from './Publications/PublicationsList' import PublicationsTables from './Publications/PublicationsTables' import BackupsList from './Backups/BackupsList' -import PITRBackupSelection from './Backups/PITRBackupSelection' import ConnectionPooling from './Pooling/ConnectionPooling' @@ -29,7 +28,6 @@ export { PublicationsList, PublicationsTables, BackupsList, - PITRBackupSelection, ConnectionPooling, CreateTrigger, DeleteTrigger, diff --git a/studio/components/interfaces/Docs/GeneralContent.tsx b/studio/components/interfaces/Docs/GeneralContent.tsx new file mode 100644 index 00000000000..7ca969ab2ed --- /dev/null +++ b/studio/components/interfaces/Docs/GeneralContent.tsx @@ -0,0 +1,39 @@ +import Introduction from 'components/to-be-cleaned/Docs/Pages/Introduction' +import Authentication from 'components/to-be-cleaned/Docs/Pages/Authentication' +import TablesIntroduction from 'components/to-be-cleaned/Docs/Pages/Tables/Introduction' +import UserManagement from 'components/to-be-cleaned/Docs/Pages/UserManagement' +import RpcIntroduction from 'components/to-be-cleaned/Docs/Pages/Rpc/Introduction' + +const GeneralContent = ({ autoApiService, selectedLang, page, showApiKey }: any) => { + let selected = page?.toLowerCase() + if (selected == 'intro' || selected == null) + return + if (selected == 'auth') + return ( + + ) + if (selected == 'users') + return ( + + ) + if (selected == 'tables-intro') + return + if (selected == 'rpc-intro') return + else + return ( +
    +

    Not found

    +

    Looks like you went somewhere that nobody knows.

    +
    + ) +} + +export default GeneralContent diff --git a/studio/components/interfaces/Docs/ResourceContent.tsx b/studio/components/interfaces/Docs/ResourceContent.tsx new file mode 100644 index 00000000000..a37ed884081 --- /dev/null +++ b/studio/components/interfaces/Docs/ResourceContent.tsx @@ -0,0 +1,286 @@ +import Snippets from 'components/to-be-cleaned/Docs/Snippets' +import CodeSnippet from 'components/to-be-cleaned/Docs/CodeSnippet' +import Param from 'components/to-be-cleaned/Docs/Param' +import Description from 'components/to-be-cleaned/Docs/Description' + +const ResourceContent = ({ + autoApiService, + resourceId, + resources, + definitions, + paths, + selectedLang, + showApiKey, + refreshDocs, +}: any) => { + if (!paths || !definitions) return null + + const keyToShow = !!showApiKey ? showApiKey : 'SUPABASE_KEY' + const resourcePaths = paths[`/${resourceId}`] + const resourceDefinition = definitions[resourceId] + const resourceMeta = resources[resourceId] + const description = resourceDefinition.description || null + const methods = Object.keys(resourcePaths).map((x) => x.toUpperCase()) + const properties = Object.entries(resourceDefinition.properties || []).map(([id, val]: any) => ({ + ...val, + id, + required: resourceDefinition?.required?.includes(id), + })) + + return ( + <> +

    + {resourceId} +

    + +
    +
    + +
    +
    +
    + {properties.length > 0 && ( +
    + {properties.map((x) => ( +
    +
    + +
    +
    + +
    +
    + ))} +
    + )} + {methods.includes('GET') && ( + <> +

    Read rows

    +
    +
    + +
    + +
    +
    + + )} + {methods.includes('POST') && ( + <> +

    Insert rows

    +
    +
    +

    + insert lets you insert into your tables. You can also insert in bulk + and do UPSERT. +

    +

    + insert will also return the replaced values for UPSERT. +

    +

    + + Learn more. + +

    +
    +
    + + + +
    +
    + + )} + {methods.includes('PATCH') && ( + <> +

    Update rows

    +
    +
    +

    + update lets you update rows. update will match all rows by + default. You can update specific rows using horizontal filters, e.g. eq + , lt, and is. +

    +

    + update will also return the replaced values for UPDATE. +

    +

    + + Learn more. + +

    +
    +
    + +
    +
    + + )} + {methods.includes('DELETE') && ( + <> +

    Delete rows

    +
    +
    +

    + delete lets you delete rows. delete will match all rows by + default, so remember to specify your filters! +

    +

    + + Learn more. + +

    +
    +
    + +
    +
    + + )} + <> +

    Subscribe to changes

    +
    +
    +

    + Supabase provides realtime functionality and broadcasts database changes to authorized + users depending on Row Level Security (RLS) policies. +

    +

    + + Learn more. + +

    +
    +
    + + + + + +
    +
    + + <> +

    Much more

    +
    +
    +

    + These docs are a work in progress! See our{' '} + + docs + {' '} + for the additional functionality Supabase has to offer. +

    +
    +
    +
    + + + ) +} + +export default ResourceContent diff --git a/studio/components/interfaces/Docs/RpcContent.tsx b/studio/components/interfaces/Docs/RpcContent.tsx new file mode 100644 index 00000000000..9711e34c2ed --- /dev/null +++ b/studio/components/interfaces/Docs/RpcContent.tsx @@ -0,0 +1,87 @@ +import Snippets from 'components/to-be-cleaned/Docs/Snippets' +import CodeSnippet from 'components/to-be-cleaned/Docs/CodeSnippet' +import Param from 'components/to-be-cleaned/Docs/Param' +import Description from 'components/to-be-cleaned/Docs/Description' + +/** + * TODO: need to support rpc with the same name and different params type + */ +const RpcContent = ({ + autoApiService, + rpcId, + rpcs, + paths, + selectedLang, + refreshDocs, + showApiKey, +}: any) => { + const meta = rpcs[rpcId] + const pathKey = `/rpc/${rpcId}` + const path = paths && pathKey in paths ? paths[pathKey] : undefined + const keyToShow = !!showApiKey ? showApiKey : 'SUPABASE_KEY' + + if (!path) return null + + const { + post: { parameters, summary }, + } = path + const rpcParamsObject = + parameters && parameters[0] && parameters[0].schema && parameters[0].schema.properties + ? parameters[0].schema.properties + : {} + const rpcParams = Object.entries(rpcParamsObject) + .map(([k, v]: any) => ({ name: k, ...v })) + .filter((x) => !!x.name) + const paramList = rpcParams.map((x) => x.type).join(', ') + + return ( + <> +

    + {meta.id} +

    + +
    +
    + +
    +
    + +
    +
    + {rpcParams.length > 0 && ( +
    +

    Function Arguments

    + {rpcParams.map((x, i) => { + return ( +
    +
    + +
    +
    +
    + ) + })} +
    + )} + + ) +} + +export default RpcContent diff --git a/studio/components/interfaces/Docs/index.ts b/studio/components/interfaces/Docs/index.ts new file mode 100644 index 00000000000..8eaff962f84 --- /dev/null +++ b/studio/components/interfaces/Docs/index.ts @@ -0,0 +1,5 @@ +import GeneralContent from './GeneralContent' +import ResourceContent from './ResourceContent' +import RpcContent from './RpcContent' + +export { GeneralContent, ResourceContent, RpcContent } diff --git a/studio/components/interfaces/Functions/CommandRender.tsx b/studio/components/interfaces/Functions/CommandRender.tsx index bd7a842cd9e..450cc90ffb4 100644 --- a/studio/components/interfaces/Functions/CommandRender.tsx +++ b/studio/components/interfaces/Functions/CommandRender.tsx @@ -1,4 +1,4 @@ -import { IconCheck, IconClipboard } from '@supabase/ui' +import { IconCheck, IconClipboard } from 'ui' import { useState } from 'react' const CommandRender = ({ commands }: any) => { @@ -10,7 +10,7 @@ const CommandRender = ({ commands }: any) => {
    {`> ${item.comment}`}
    -
    +
    $ {item.jsx ? item.jsx() : null} diff --git a/studio/components/interfaces/Functions/FunctionLogsItem.tsx b/studio/components/interfaces/Functions/FunctionLogsItem.tsx index f1b6d964b16..88e17dc9ae9 100644 --- a/studio/components/interfaces/Functions/FunctionLogsItem.tsx +++ b/studio/components/interfaces/Functions/FunctionLogsItem.tsx @@ -1,7 +1,7 @@ import dayjs from 'dayjs' import { FC } from 'react' import { observer } from 'mobx-react-lite' -import { Badge, IconClipboard, IconExternalLink, IconGlobe, Typography } from '@supabase/ui' +import { Badge, IconClipboard, IconExternalLink, IconGlobe } from 'ui' import Table from 'components/to-be-cleaned/Table' import SimpleCodeBlock from 'components/to-be-cleaned/SimpleCodeBlock' @@ -23,14 +23,14 @@ const FunctionLogsItem: FC = ({ log, onClick }) => {
    -
    {log.function_status}
    +
    {log.function_status}
    {log.method} - {log.url} + {log.url} diff --git a/studio/components/interfaces/Functions/Functions.types.ts b/studio/components/interfaces/Functions/Functions.types.ts index ed54073082f..2fc8915a916 100644 --- a/studio/components/interfaces/Functions/Functions.types.ts +++ b/studio/components/interfaces/Functions/Functions.types.ts @@ -7,3 +7,10 @@ export interface Function { created_at: number updated_at: number } + +export interface Commands { + command: string + description: string + jsx?: () => void + comment?: string +} diff --git a/studio/components/interfaces/Functions/FunctionsEmptyState.tsx b/studio/components/interfaces/Functions/FunctionsEmptyState.tsx new file mode 100644 index 00000000000..9778dae6955 --- /dev/null +++ b/studio/components/interfaces/Functions/FunctionsEmptyState.tsx @@ -0,0 +1,40 @@ +import Link from 'next/link' +import { Button, IconBookOpen, IconCode } from 'ui' +import TerminalInstructions from './TerminalInstructions' + +const FunctionsEmptyState = () => { + return ( + <> +
    +
    +

    + Scalable functions to run your code with no server management. +

    +

    + Edge Functions are server-side Typescript functions, distributed globally at the edge - + close to your users. They can be used for listening to webhooks or integrating your + Supabase project with third-parties. +

    +
    + + + + + + +
    +
    + +
    + + ) +} + +export default FunctionsEmptyState diff --git a/studio/components/interfaces/Functions/FunctionsLayout.tsx b/studio/components/interfaces/Functions/FunctionsLayout.tsx deleted file mode 100644 index fb84c92b03c..00000000000 --- a/studio/components/interfaces/Functions/FunctionsLayout.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import Link from 'next/link' -import { useRouter } from 'next/router' -import React, { useEffect } from 'react' -import { observer } from 'mobx-react-lite' -import { IconCode } from '@supabase/ui' - -import { useStore, withAuth } from 'hooks' -import FunctionsNav from './FunctionsNav' -import BaseLayout from 'components/layouts' - -const FunctionsLayout = ({ children }: { children?: React.ReactNode }) => { - const { functions, ui } = useStore() - const router = useRouter() - - const { id, ref } = router.query - - useEffect(() => { - if (ui.selectedProjectRef) { - functions.load() - } - }, [ui.selectedProjectRef]) - - const item = id ? functions.byId(id) : null - const name = item?.name || '' - - const hasFunctions = functions.list().length > 0 - const centered = !hasFunctions - - return ( - - {centered ? ( - <> -
    -
    -
    -
    - -
    -
    -

    Edge Functions

    -

    Beta

    -
    -
    -
    - - {children} -
    - - ) : ( -
    -
    -
    -
    -
    - -
    - -
    - -

    - Edge Functions -

    - -

    Beta

    -
    - - {name && ( - <> - - - - - -
    {name}
    - - )} -
    -
    - {item && } -
    -
    - {children} -
    -
    - )} -
    - ) -} - -export default withAuth(observer(FunctionsLayout)) diff --git a/studio/components/interfaces/Functions/FunctionsListItem.tsx b/studio/components/interfaces/Functions/FunctionsListItem.tsx index db721e96c4a..f2b9045d417 100644 --- a/studio/components/interfaces/Functions/FunctionsListItem.tsx +++ b/studio/components/interfaces/Functions/FunctionsListItem.tsx @@ -1,12 +1,10 @@ import dayjs from 'dayjs' import { FC } from 'react' -import { observer } from 'mobx-react-lite' -import { IconClipboard, IconGlobe } from '@supabase/ui' -import Table from 'components/to-be-cleaned/Table' - import { useRouter } from 'next/router' +import { observer } from 'mobx-react-lite' + import { useStore } from 'hooks' -// import _functionDropdown from './_functionDropdown' +import Table from 'components/to-be-cleaned/Table' interface Props { function: any @@ -19,6 +17,10 @@ const FunctionsListItem: FC = ({ function: item }) => { const router = useRouter() const ref = ui?.selectedProject?.ref + // get the .co or .net TLD from the restUrl + const restUrl = ui.selectedProject?.restUrl + const restUrlTld = new URL(restUrl as string).hostname.split('.').pop() + return ( = ({ function: item }) => {
    - {/* - - HTTP Request - */}
    - {`https://${ref}.functions.supabase.co/${item.slug}`} + {`https://${ref}.functions.supabase.${restUrlTld}/${item.slug}`} {`/${item.name}`}
    diff --git a/studio/components/interfaces/Functions/FunctionsNav.tsx b/studio/components/interfaces/Functions/FunctionsNav.tsx index 01dd022b961..dfe6bd5ab13 100644 --- a/studio/components/interfaces/Functions/FunctionsNav.tsx +++ b/studio/components/interfaces/Functions/FunctionsNav.tsx @@ -1,4 +1,4 @@ -import { Tabs } from '@supabase/ui' +import { Tabs } from 'ui' import { useRouter } from 'next/router' // @ts-ignore diff --git a/studio/components/interfaces/Functions/TerminalInstructions.tsx b/studio/components/interfaces/Functions/TerminalInstructions.tsx new file mode 100644 index 00000000000..378c628e82c --- /dev/null +++ b/studio/components/interfaces/Functions/TerminalInstructions.tsx @@ -0,0 +1,155 @@ +import { useRouter } from 'next/router' +import { Button, IconTerminal, IconMaximize2, IconMinimize2, IconBookOpen, IconCode } from 'ui' +import { useProjectSettings } from 'hooks' +import { useAccessTokens } from 'hooks/queries/useAccessTokens' +import { Commands } from './Functions.types' +import CommandRender from 'components/interfaces/Functions/CommandRender' +import { FC, useState } from 'react' +import { useStore } from 'hooks' +import Link from 'next/link' + +interface Props { + closable?: boolean +} + +const TerminalInstructions: FC = ({ closable = false }) => { + const router = useRouter() + const { ref } = router.query + const { ui } = useStore() + + const { tokens } = useAccessTokens() + const { services } = useProjectSettings(ref as string | undefined) + + const [showInstructions, setShowInstructions] = useState(!closable) + + // Get the API service + const API_SERVICE_ID = 1 + const apiService = (services ?? []).find((x: any) => x.app.id == API_SERVICE_ID) + const apiKeys = apiService?.service_api_keys ?? [] + const anonKey = apiKeys.find((x: any) => x.name === 'anon key')?.api_key + + const endpoint = apiService?.app_config.endpoint ?? '' + const endpointSections = endpoint.split('.') + const functionsEndpoint = [ + ...endpointSections.slice(0, 1), + 'functions', + ...endpointSections.slice(1), + ].join('.') + + // get the .co or .net TLD from the restUrl + const restUrl = ui.selectedProject?.restUrl + const restUrlTld = new URL(restUrl as string).hostname.split('.').pop() + + const commands: Commands[] = [ + { + command: 'supabase functions new hello-world', + description: ' creates a function stub at ./functions/hello-world/index.ts', + jsx: () => { + return ( + <> + supabase functions new hello-world + + ) + }, + comment: 'Create a function', + }, + { + command: `supabase functions deploy hello-world --project-ref ${ref}`, + description: 'Deploys function at ./functions/hello-world/index.ts', + jsx: () => { + return ( + <> + supabase functions deploy hello-world + --project-ref {ref} + + ) + }, + comment: 'Deploy your function', + }, + { + command: `curl -L -X POST 'https://${ref}.functions.supabase.${restUrlTld}/hello-world' -H 'Authorization: Bearer ${ + anonKey ?? '[YOUR ANON KEY]' + }' --data '{"name":"Functions"}'`, + description: 'Invokes the hello-world function', + jsx: () => { + return ( + <> + curl -L -X POST 'https://{functionsEndpoint} + /hello-world' -H 'Authorization: Bearer [YOUR ANON KEY]'{' '} + {`--data '{"name":"Functions"}'`} + + ) + }, + comment: 'Invoke your function', + }, + ] + + return ( +
    +
    +
    +
    +
    + +
    +

    Terminal instructions

    +
    + {closable && ( +
    setShowInstructions(!showInstructions)}> + {showInstructions ? ( + + ) : ( + + )} +
    + )} +
    +
    + +
    +
    + {tokens && tokens.length === 0 ? ( +
    +
    +

    You may need to create an access token

    +

    + You can create a secure access token in your account section +

    +
    + +
    + ) : ( +
    +
    +

    Need help?

    +

    + Read the documentation, or browse some sample code. +

    +
    +
    + + + + + + +
    +
    + )} +
    + ) +} + +export default TerminalInstructions diff --git a/studio/components/interfaces/Functions/index.ts b/studio/components/interfaces/Functions/index.ts new file mode 100644 index 00000000000..b096ff5e604 --- /dev/null +++ b/studio/components/interfaces/Functions/index.ts @@ -0,0 +1,5 @@ +import FunctionsListItem from './FunctionsListItem' +import FunctionsEmptyState from './FunctionsEmptyState' +import TerminalInstructions from './TerminalInstructions' + +export { FunctionsListItem, FunctionsEmptyState, TerminalInstructions } diff --git a/studio/components/interfaces/Home/ChartData.types.ts b/studio/components/interfaces/Home/ChartData.types.ts index 52e728baccc..14ab6fbb637 100644 --- a/studio/components/interfaces/Home/ChartData.types.ts +++ b/studio/components/interfaces/Home/ChartData.types.ts @@ -1,16 +1,4 @@ -export interface StatusCodesDatum { - timestamp: number - status_code: number - count: number -} -export interface PathsDatum { - timestamp: number - path: string - query_params: string - count: number - method: string - avg_origin_time: number -} + export interface EndpointResponse { result: Array diff --git a/studio/components/interfaces/Home/ClientLibrary.tsx b/studio/components/interfaces/Home/ClientLibrary.tsx index 00c357279d1..7e2bd3d8cae 100644 --- a/studio/components/interfaces/Home/ClientLibrary.tsx +++ b/studio/components/interfaces/Home/ClientLibrary.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { Typography, IconBookOpen, IconGitHub, Button, Badge } from '@supabase/ui' +import { IconBookOpen, IconGitHub, Button, Badge } from 'ui' interface Props { language: string @@ -11,7 +11,7 @@ interface Props { const ClientLibrary: FC = ({ language, releaseState, officialSupport, docsUrl, gitUrl }) => { return ( -
    +
    {`${language} = ({ language, releaseState, officialSupport, doc />
    -
    +
    {language} {releaseState && {`Public ${releaseState}`}}
    -

    +

    {officialSupport ? 'This library is officially supported' : 'This library is community supported'} diff --git a/studio/components/interfaces/Home/ExampleProject.tsx b/studio/components/interfaces/Home/ExampleProject.tsx index 568acc4674a..a5f6e652796 100644 --- a/studio/components/interfaces/Home/ExampleProject.tsx +++ b/studio/components/interfaces/Home/ExampleProject.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { Typography, IconChevronRight } from '@supabase/ui' +import { IconChevronRight } from 'ui' import { useStore } from 'hooks' import Link from 'next/link' @@ -20,26 +20,26 @@ const ExampleProject: FC = ({ framework, title, description, url }) => {

    -
    +
    {`${framework}
    -
    +
    {title}
    -

    {description}

    +

    {description}

    - Path - Count - Avg. Latency (ms) - - } - body={ - <> - {(pathsData?.result ?? []).map((row: PathsDatum) => ( - - -

    {row.method}

    -

    {row.path}

    -
    - {row.count} - {Number(row.avg_origin_time).toFixed(2)} -
    - ))} - - } - /> - - - - )} ) @@ -300,10 +206,10 @@ const PanelHeader = (props: any) => {
    - {props.icon} +

    {props.icon}

    {props.title}

    diff --git a/studio/components/interfaces/Home/ProjectUsageSection.tsx b/studio/components/interfaces/Home/ProjectUsageSection.tsx index 4561dd7c3be..2ac8f326c6c 100644 --- a/studio/components/interfaces/Home/ProjectUsageSection.tsx +++ b/studio/components/interfaces/Home/ProjectUsageSection.tsx @@ -1,37 +1,43 @@ -import useSWR from 'swr' import { FC } from 'react' +import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' -import { Typography, IconLoader } from '@supabase/ui' -import { get } from 'lib/common/fetch' -import { API_URL } from 'lib/constants' -import { useStore } from 'hooks' +import { IconLoader, IconAlertCircle } from 'ui' + +import { useProjectUsage } from 'hooks' import { ProjectUsage, NewProjectPanel } from 'components/interfaces/Home' +import InformationBox from 'components/ui/InformationBox' const ProjectUsageSection: FC = observer(({}) => { - const { ui } = useStore() - const project = ui.selectedProject - const { data: usage, error: usageError }: any = useSWR( - `${API_URL}/projects/${project?.ref}/usage`, - get - ) - const hasProjectData = - usage && (usage?.bucketSize || (usage?.authUsers ?? '0') !== '0' || usage?.dbTables) - ? true - : false + const router = useRouter() + const { ref } = router.query + const { usage, error: usageError, isLoading } = useProjectUsage(ref as string) if (usageError) { - return Error loading data {usageError.message} + return ( + } + title="There was an issue loading the usage details of your project" + /> + ) } + const hasProjectData = usage + ? Object.keys(usage) + .map((key) => usage[key].usage) + .some((usage) => usage > 0) + : false + return ( <> - {usage === undefined ? ( -
    + {isLoading ? ( +

    Retrieving project usage statistics

    - ) : !usage.error && hasProjectData ? ( - + ) : hasProjectData ? ( + ) : ( )} diff --git a/studio/components/interfaces/Organization/BillingSettings/BillingAddress/BillingAddress.tsx b/studio/components/interfaces/Organization/BillingSettings/BillingAddress/BillingAddress.tsx index 25e6e76024c..cb9978efc57 100644 --- a/studio/components/interfaces/Organization/BillingSettings/BillingAddress/BillingAddress.tsx +++ b/studio/components/interfaces/Organization/BillingSettings/BillingAddress/BillingAddress.tsx @@ -1,10 +1,10 @@ import { FC, useState } from 'react' import { isEqual } from 'lodash' import { Dictionary } from 'components/grid' -import { Form, Input, Button, Select } from '@supabase/ui' +import { Form, Input, Button, Listbox } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' -import { checkPermissions, useStore } from 'hooks' +import { checkPermissions, useStore, useFlag } from 'hooks' import { patch } from 'lib/common/fetch' import { API_URL } from 'lib/constants' import { COUNTRIES } from './BillingAddress.constants' @@ -22,11 +22,11 @@ const BillingAddress: FC = ({ loading, address, onAddressUpdated }) => { const orgSlug = ui.selectedOrganization?.slug ?? '' const { city, country, line1, line2, postal_code, state } = address + const enablePermissions = useFlag('enablePermissions') const canReadBillingAddress = checkPermissions(PermissionAction.BILLING_READ, 'stripe.customer') - const canUpdateBillingAddress = checkPermissions( - PermissionAction.BILLING_WRITE, - 'stripe.customer' - ) + const canUpdateBillingAddress = enablePermissions + ? checkPermissions(PermissionAction.BILLING_WRITE, 'stripe.customer') + : ui.selectedOrganization?.is_owner const [isDirty, setIsDirty] = useState(false) const initialValues = { @@ -80,9 +80,9 @@ const BillingAddress: FC = ({ loading, address, onAddressUpdated }) => { {loading ? (
    -
    -
    -
    +
    +
    +
    ) : !canReadBillingAddress ? ( @@ -110,22 +110,26 @@ const BillingAddress: FC = ({ loading, address, onAddressUpdated }) => { disabled={!canUpdateBillingAddress} />
    - + = ({ loading, address, onAddressUpdated }) => { ) : (
    )} -
    +
    diff --git a/studio/components/interfaces/Organization/BillingSettings/BillingEmail.tsx b/studio/components/interfaces/Organization/BillingSettings/BillingEmail.tsx new file mode 100644 index 00000000000..ca1fdf60647 --- /dev/null +++ b/studio/components/interfaces/Organization/BillingSettings/BillingEmail.tsx @@ -0,0 +1,122 @@ +import { useContext, useEffect } from 'react' +import { Form, Input } from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' +import { useFlag, useStore, checkPermissions } from 'hooks' +import { API_URL } from 'lib/constants' +import { patch } from 'lib/common/fetch' + +import { + FormActions, + FormPanel, + FormSection, + FormSectionContent, + FormSectionLabel, +} from 'components/ui/Forms' + +import { PageContext } from 'pages/org/[slug]/settings' + +const BillingEmail = () => { + const { ui } = useStore() + const PageState: any = useContext(PageContext) + + const formId = 'org-billing-email' + const initialValues = { + billing_email: PageState.organization?.billing_email ?? '', + } + + const enablePermissions = useFlag('enablePermissions') + + const canUpdateOrganization = enablePermissions + ? checkPermissions(PermissionAction.UPDATE, 'organizations') + : ui.selectedOrganization?.is_owner + + const canReadBillingEmail = checkPermissions(PermissionAction.READ, 'organizations') + + const onUpdateOrganization = async (values: any, { setSubmitting, resetForm }: any) => { + if (!canUpdateOrganization) { + return ui.setNotification({ + category: 'error', + message: 'You do not have the required permissions to update this organization', + }) + } + + setSubmitting(true) + const response = await patch(`${API_URL}/organizations/${PageState.organization.slug}`, { + ...values, + name: PageState.organization.name, + }) + if (response.error) { + ui.setNotification({ + category: 'error', + message: `Failed to update organization: ${response.error.message}`, + }) + } else { + const { billing_email } = response + resetForm({ + values: { billing_email }, + initialValues: { billing_email }, + }) + + PageState.onOrgUpdated(response) + ui.setNotification({ + category: 'success', + message: 'Successfully saved settings', + }) + } + setSubmitting(false) + } + + return ( +
    +

    Billing email

    +

    All billing correspondence will go to this email

    + +
    +
    + {({ isSubmitting, handleReset, values, initialValues, resetForm }: any) => { + const hasChanges = JSON.stringify(values) !== JSON.stringify(initialValues) + + useEffect(() => { + const values = { billing_email: PageState.organization?.billing_email ?? '' } + resetForm({ values, initialValues: values }) + }, [PageState.organization.slug]) + + return ( + + +
    + } + > + + + + + + + ) + }} + +
    +
    + ) +} + +export default BillingEmail diff --git a/studio/components/interfaces/Organization/BillingSettings/BillingSettings.tsx b/studio/components/interfaces/Organization/BillingSettings/BillingSettings.tsx index 9a2430dab8a..5dc4677375e 100644 --- a/studio/components/interfaces/Organization/BillingSettings/BillingSettings.tsx +++ b/studio/components/interfaces/Organization/BillingSettings/BillingSettings.tsx @@ -1,6 +1,6 @@ import { FC, useState, useEffect } from 'react' -import { useStore } from 'hooks' +import { useFlag, useStore, checkPermissions } from 'hooks' import { API_URL } from 'lib/constants' import { get } from 'lib/common/fetch' @@ -9,6 +9,8 @@ import CreditBalance from './CreditBalance' import PaymentMethods from './PaymentMethods' import BillingAddress from './BillingAddress/BillingAddress' import TaxID from './TaxID/TaxID' +import { PermissionAction } from '@supabase/shared-types/out/constants' +import BillingEmail from './BillingEmail' interface Props { organization: any @@ -37,6 +39,14 @@ const BillingSettings: FC = ({ organization, projects = [] }) => { ? customerBalance.toString().replace('-', '') : customerBalance + const enablePermissions = useFlag('enablePermissions') + + const canUpdateOrganization = enablePermissions + ? checkPermissions(PermissionAction.UPDATE, 'organizations') + : ui.selectedOrganization?.is_owner + + const canReadBillingEmail = checkPermissions(PermissionAction.READ, 'organizations') + useEffect(() => { getCustomerProfile() getPaymentMethods() @@ -103,6 +113,9 @@ const BillingSettings: FC = ({ organization, projects = [] }) => { onDefaultMethodUpdated={setCustomer} onPaymentMethodsDeleted={() => getPaymentMethods()} /> + + + = ({ loading={loading} footer={ !loading && ( -
    +
    {!canUpdatePaymentMethods ? (

    {enablePermissions @@ -190,11 +190,11 @@ const PaymentMethods: FC = ({

    - + Your default payment method cannot be deleted
    diff --git a/studio/components/interfaces/Organization/BillingSettings/ProjectsSummary.tsx b/studio/components/interfaces/Organization/BillingSettings/ProjectsSummary.tsx index a1231a5862a..ccccbfdae3e 100644 --- a/studio/components/interfaces/Organization/BillingSettings/ProjectsSummary.tsx +++ b/studio/components/interfaces/Organization/BillingSettings/ProjectsSummary.tsx @@ -1,7 +1,7 @@ import Link from 'next/link' import dayjs from 'dayjs' import { FC, useEffect } from 'react' -import { IconChevronRight, IconLoader } from '@supabase/ui' +import { IconChevronRight, IconLoader } from 'ui' import { useProjectSubscription, useStore } from 'hooks' import Panel from 'components/ui/Panel' @@ -88,7 +88,7 @@ const ProjectsSummary: FC = ({ projects }) => { ))} {projects.length === 0 && ( -

    No projects created yet

    +

    No projects created yet

    )} diff --git a/studio/components/interfaces/Organization/BillingSettings/TaxID/TaxID.constants.ts b/studio/components/interfaces/Organization/BillingSettings/TaxID/TaxID.constants.ts index 90a4d22f0b3..e20cebbba26 100644 --- a/studio/components/interfaces/Organization/BillingSettings/TaxID/TaxID.constants.ts +++ b/studio/components/interfaces/Organization/BillingSettings/TaxID/TaxID.constants.ts @@ -3,13 +3,21 @@ // Last updated as of 29th March 2022. // The code may not necessarily match with the name (ref SE_VAT) // https://stripe.com/docs/api/customer_tax_ids/create -interface TaxId { +export interface TaxId { name: string code: string country: string placeholder: string } +export interface StripeTaxId { + id: string + type: string + value: string + name: string + country?: string +} + export const TAX_IDS: TaxId[] = [ { name: 'AE TRN', @@ -109,7 +117,7 @@ export const TAX_IDS: TaxId[] = [ }, { name: 'CY VAT', - code: 'cy_vat', + code: 'eu_vat', country: 'Cyprus', placeholder: 'CY12345678Z', }, @@ -174,7 +182,7 @@ export const TAX_IDS: TaxId[] = [ placeholder: '123456789', }, { - name: 'GR VAT', + name: 'EL VAT', code: 'eu_vat', country: 'Greece', placeholder: 'EL123456789', @@ -187,7 +195,7 @@ export const TAX_IDS: TaxId[] = [ }, { name: 'HR VAT', - code: 'hr_vat', + code: 'eu_vat', country: 'Croatia', placeholder: 'HR12345678912', }, @@ -207,7 +215,7 @@ export const TAX_IDS: TaxId[] = [ name: 'IE VAT', code: 'eu_vat', country: 'Ireland', - placeholder: 'IE12345678AB', + placeholder: 'IE1234567AB', }, { name: 'IL VAT', @@ -415,8 +423,8 @@ export const TAX_IDS: TaxId[] = [ }, { name: 'XI VAT', - code: 'xi_vat', - country: 'United Kingdom', + code: 'eu_vat', + country: 'United Kingdom (Northern Ireland)', placeholder: 'XI123456789', }, { diff --git a/studio/components/interfaces/Organization/BillingSettings/TaxID/TaxID.tsx b/studio/components/interfaces/Organization/BillingSettings/TaxID/TaxID.tsx index c659ac027e3..1c525608eb4 100644 --- a/studio/components/interfaces/Organization/BillingSettings/TaxID/TaxID.tsx +++ b/studio/components/interfaces/Organization/BillingSettings/TaxID/TaxID.tsx @@ -1,15 +1,16 @@ import { FC, useEffect, useState } from 'react' import { isEqual } from 'lodash' -import { Input, Button, IconPlus, Select, IconX } from '@supabase/ui' +import { Input, Button, IconPlus, Select, IconX } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' -import { checkPermissions, useStore } from 'hooks' +import { checkPermissions, useFlag, useStore } from 'hooks' import { uuidv4 } from 'lib/helpers' import { post, delete_ } from 'lib/common/fetch' import { API_URL } from 'lib/constants' import Panel from 'components/ui/Panel' -import { TAX_IDS } from './TaxID.constants' +import { StripeTaxId, TAX_IDS } from './TaxID.constants' import NoPermission from 'components/ui/NoPermission' +import { sanitizeTaxID } from './TaxID.utils' interface Props { loading: boolean @@ -26,8 +27,8 @@ const TaxID: FC = ({ loading, taxIds, onTaxIdsUpdated }) => { const [isSaving, setIsSaving] = useState(false) const [errors, setErrors] = useState([]) - const [taxIdValues, setTaxIdValues] = useState(taxIds) - const formattedTaxIds = taxIds.map((taxId: any) => { + const [taxIdValues, setTaxIdValues] = useState(taxIds) + const formattedTaxIds: StripeTaxId[] = taxIds.map((taxId: StripeTaxId) => { return { id: taxId.id, type: taxId.type, @@ -49,8 +50,12 @@ const TaxID: FC = ({ loading, taxIds, onTaxIdsUpdated }) => { }, [taxIds]) const hasChanges = !isEqual(taxIdValues, formattedTaxIds) + + const enablePermissions = useFlag('enablePermissions') const canReadTaxIds = checkPermissions(PermissionAction.BILLING_READ, 'stripe.tax_ids') - const canUpdateTaxIds = checkPermissions(PermissionAction.BILLING_WRITE, 'stripe.tax_ids') + const canUpdateTaxIds = enablePermissions + ? checkPermissions(PermissionAction.BILLING_WRITE, 'stripe.tax_ids') + : ui.selectedOrganization?.is_owner const onUpdateTaxId = (id: string, key: string, value: string) => { const updatedTaxIds = taxIdValues.map((taxId: any) => { @@ -74,7 +79,7 @@ const TaxID: FC = ({ loading, taxIds, onTaxIdsUpdated }) => { } const onRemoveTaxId = (id: string) => { - const updatedTaxIds = taxIdValues.filter((taxId: any) => { + const updatedTaxIds = taxIdValues.filter((taxId: StripeTaxId) => { return taxId.id !== id }) setTaxIdValues(updatedTaxIds) @@ -89,21 +94,21 @@ const TaxID: FC = ({ loading, taxIds, onTaxIdsUpdated }) => { setIsSaving(true) try { const deletedIds = await Promise.all( - taxIds.map(async (taxId: any) => { + taxIds.map(async (taxId: StripeTaxId) => { return await delete_(`${API_URL}/organizations/${slug}/tax-ids`, { id: taxId.id }) }) ) const newIds = await Promise.all( - taxIdValues.map(async (taxId: any) => { + taxIdValues.map(async (taxId: StripeTaxId) => { + const sanitizedID = sanitizeTaxID(taxId) const result = await post(`${API_URL}/organizations/${slug}/tax-ids`, { - type: taxId.type, - value: taxId.value, + type: sanitizedID.type, + value: sanitizedID.value, }) - return { id: taxId.id, result } + return { id: sanitizedID.id, result } }) ) - const taxIdsWithErrors = newIds.filter((taxId: any) => { if (taxId.result.error) return taxId }) @@ -133,7 +138,8 @@ const TaxID: FC = ({ loading, taxIds, onTaxIdsUpdated }) => {

    Tax ID

    - If you would like to include specific tax ID(s) to your invoices + If you would like to include specific tax ID(s) to your invoices.
    + Make sure the tax ID looks exactly like the placeholder text.

    @@ -146,7 +152,7 @@ const TaxID: FC = ({ loading, taxIds, onTaxIdsUpdated }) => { loading={loading} footer={ !loading && ( -
    +
    {!canUpdateTaxIds ? (

    You need additional permissions to update this organization's tax IDs @@ -154,7 +160,7 @@ const TaxID: FC = ({ loading, taxIds, onTaxIdsUpdated }) => { ) : (

    )} -
    +
    @@ -179,15 +185,15 @@ const TaxID: FC = ({ loading, taxIds, onTaxIdsUpdated }) => { > {loading && taxIdValues.length === 0 ? (
    -
    -
    -
    +
    +
    +
    ) : ( - + {taxIdValues.length >= 1 ? (
    - {taxIdValues.map((taxId: any, idx: number) => { + {taxIdValues.map((taxId: StripeTaxId, idx: number) => { const selectedTaxId = TAX_IDS.find((option) => option.name === taxId.name) return (
    @@ -196,11 +202,13 @@ const TaxID: FC = ({ loading, taxIds, onTaxIdsUpdated }) => { onChange={(e: any) => onUpdateTaxId(taxId.id, 'name', e.target.value)} disabled={!canUpdateTaxIds} > - {TAX_IDS.map((option) => ( - - {option.name} - - ))} + {TAX_IDS.sort((a, b) => a.country.localeCompare(b.country)).map( + (option) => ( + + {option.country} - {option.name} + + ) + )} = ({ loading, taxIds, onTaxIdsUpdated }) => { )} {canUpdateTaxIds && (
    onAddNewTaxId()} > diff --git a/studio/components/interfaces/Organization/BillingSettings/TaxID/TaxID.utils.ts b/studio/components/interfaces/Organization/BillingSettings/TaxID/TaxID.utils.ts new file mode 100644 index 00000000000..f30e7ca3b5c --- /dev/null +++ b/studio/components/interfaces/Organization/BillingSettings/TaxID/TaxID.utils.ts @@ -0,0 +1,23 @@ +import { StripeTaxId, TAX_IDS } from './TaxID.constants' + +/** + * Sanitize EU VAT ids so they get prepended with the country code + * + * Ex: Belgium's VAT ID should be BE0123456789 not 0123456789 + * Only EU VAT ids are affected + */ +export const sanitizeTaxID = (taxId: StripeTaxId) => { + let newID = taxId + + const selectedTaxId = TAX_IDS.find((option) => option.name === taxId.name) + + // The prefix of the country name (ex: "BE" for Belgium, "ESA" for Spain)") + const countryPrefix = selectedTaxId?.placeholder.match(/[a-z]+|[^a-z]+/gi)?.[0] + + // if the value doesn't start with the country code, prepend them + if (taxId.type === 'eu_vat' && countryPrefix && !taxId.value.startsWith(countryPrefix)) { + newID.value = `${countryPrefix}${taxId.value}` + } + + return newID +} diff --git a/studio/components/interfaces/Organization/GeneralSettings/DeleteOrganizationButton.tsx b/studio/components/interfaces/Organization/GeneralSettings/DeleteOrganizationButton.tsx index 0219aa1d31f..370997a4482 100644 --- a/studio/components/interfaces/Organization/GeneralSettings/DeleteOrganizationButton.tsx +++ b/studio/components/interfaces/Organization/GeneralSettings/DeleteOrganizationButton.tsx @@ -1,7 +1,7 @@ import { useState, useContext } from 'react' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' -import { Button, Form, Modal, Input } from '@supabase/ui' +import { Button, Form, Modal, Input } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' import { useStore, checkPermissions } from 'hooks' @@ -27,7 +27,7 @@ const DeleteOrganizationButton = observer(() => { errors.orgName = 'Enter the name of the organization.' } if (values.orgName !== orgSlug) { - errors.orgName = 'Value entered does not match name of the organization.' + errors.orgName = 'Value entered does not match the value above.' } return errors } @@ -74,8 +74,8 @@ const DeleteOrganizationButton = observer(() => { onCancel={() => setIsOpen(false)} header={
    -
    Delete organisation
    - Are you sure? +
    Delete organisation
    + Are you sure?
    } > @@ -88,7 +88,7 @@ const DeleteOrganizationButton = observer(() => { {({ isSubmitting }: { isSubmitting: boolean }) => (
    -

    +

    This action cannot be undone. This will permanently delete the {orgName}{' '} organization and remove all of its projects. diff --git a/studio/components/interfaces/Organization/GeneralSettings/GeneralSettings.tsx b/studio/components/interfaces/Organization/GeneralSettings/GeneralSettings.tsx index 424235909af..9af091fa4d2 100644 --- a/studio/components/interfaces/Organization/GeneralSettings/GeneralSettings.tsx +++ b/studio/components/interfaces/Organization/GeneralSettings/GeneralSettings.tsx @@ -1,6 +1,6 @@ import { useContext, useEffect } from 'react' import { observer } from 'mobx-react-lite' -import { Form, Input } from '@supabase/ui' +import { Form, Input } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' import { useFlag, useStore, checkPermissions } from 'hooks' @@ -23,10 +23,7 @@ const GeneralSettings = observer(() => { const PageState: any = useContext(PageContext) const formId = 'org-general-settings' - const initialValues = { - name: PageState.organization.name, - billing_email: PageState.organization?.billing_email ?? '', - } + const initialValues = { name: PageState.organization.name } const enablePermissions = useFlag('enablePermissions') @@ -38,8 +35,6 @@ const GeneralSettings = observer(() => { ? checkPermissions(PermissionAction.UPDATE, 'organizations') : ui.selectedOrganization?.is_owner - const canReadBillingEmail = checkPermissions(PermissionAction.READ, 'organizations') - const onUpdateOrganization = async (values: any, { setSubmitting, resetForm }: any) => { if (!canUpdateOrganization) { return ui.setNotification({ @@ -49,17 +44,22 @@ const GeneralSettings = observer(() => { } setSubmitting(true) - const response = await patch(`${API_URL}/organizations/${PageState.organization.slug}`, values) + + const response = await patch(`${API_URL}/organizations/${PageState.organization.slug}`, { + ...values, + billing_email: PageState.organization?.billing_email ?? '', + }) + if (response.error) { ui.setNotification({ category: 'error', message: `Failed to update organization: ${response.error.message}`, }) } else { - const { name, billing_email } = response + const { name } = response resetForm({ - values: { name, billing_email }, - initialValues: { name, billing_email }, + values: { name }, + initialValues: { name }, }) PageState.onOrgUpdated(response) @@ -78,50 +78,31 @@ const GeneralSettings = observer(() => { const hasChanges = JSON.stringify(values) !== JSON.stringify(initialValues) useEffect(() => { - const values = { - name: PageState.organization.name, - billing_email: PageState.organization?.billing_email ?? '', - } + const values = { name: PageState.organization.name } resetForm({ values, initialValues: values }) }, [PageState.organization.slug]) return ( - {!canUpdateOrganization && ( -

    - You need additional permissions to manage this organization's settings -

    - )} +
    } > - General settings}> + Organization name}> - - + diff --git a/studio/components/interfaces/Organization/GeneralSettings/OrganizationDeletePanel.tsx b/studio/components/interfaces/Organization/GeneralSettings/OrganizationDeletePanel.tsx index 29c42743142..5d52aa2cf04 100644 --- a/studio/components/interfaces/Organization/GeneralSettings/OrganizationDeletePanel.tsx +++ b/studio/components/interfaces/Organization/GeneralSettings/OrganizationDeletePanel.tsx @@ -1,5 +1,5 @@ import { observer } from 'mobx-react-lite' -import { Alert } from '@supabase/ui' +import { Alert } from 'ui' import Panel from 'components/ui/Panel' import DeleteOrganizationButton from './DeleteOrganizationButton' diff --git a/studio/components/interfaces/Organization/InvoicesSettings/InvoicesSettings.tsx b/studio/components/interfaces/Organization/InvoicesSettings/InvoicesSettings.tsx index b2f022a6f4c..4bf0b1ede75 100644 --- a/studio/components/interfaces/Organization/InvoicesSettings/InvoicesSettings.tsx +++ b/studio/components/interfaces/Organization/InvoicesSettings/InvoicesSettings.tsx @@ -1,13 +1,5 @@ import { FC, useState, useEffect } from 'react' -import { - Button, - Loading, - Typography, - IconFileText, - IconDownload, - IconChevronLeft, - IconChevronRight, -} from '@supabase/ui' +import { Button, Loading, IconFileText, IconDownload, IconChevronLeft, IconChevronRight } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' import { checkPermissions, useStore } from 'hooks' @@ -102,7 +94,7 @@ const InvoicesSettings: FC = ({ organization }) => { } return ( -
    +
    = ({ organization }) => { invoices.length === 0 ? ( - +

    {loading ? 'Checking for invoices' : 'No invoices for this organization yet'} - +

    ) : ( @@ -130,18 +122,16 @@ const InvoicesSettings: FC = ({ organization }) => { - - {new Date(x.period_end * 1000).toLocaleString()} - +

    {new Date(x.period_end * 1000).toLocaleString()}

    - ${x.subtotal / 100} +

    ${x.subtotal / 100}

    - {x.number} +

    {x.number}

    -
    +
    + + + + + {!canInviteMembers && ( + + +
    + + You need additional permissions to invite a member to this organization + +
    +
    + )} +
    = ({ members, member, roles }) => { async function handleResendInvite(member: Member) { setLoading(true) + const roleId = (member?.role_ids ?? [])[0] const response = await post(`${API_URL}/organizations/${slug}/members/invite`, { invited_email: member.primary_email, owner_id: member.invited_id, + ...(enablePermissions ? { role_id: roleId } : {}), }) if (response.error) { @@ -166,11 +168,11 @@ const MemberActions: FC = ({ members, member, roles }) => {
    - + You need additional permissions to manage this team member
    diff --git a/studio/components/interfaces/Organization/TeamSettings/MembersView.tsx b/studio/components/interfaces/Organization/TeamSettings/MembersView.tsx index 615e2ca16be..d9df79bf9f1 100644 --- a/studio/components/interfaces/Organization/TeamSettings/MembersView.tsx +++ b/studio/components/interfaces/Organization/TeamSettings/MembersView.tsx @@ -2,7 +2,7 @@ import Image from 'next/image' import * as Tooltip from '@radix-ui/react-tooltip' import { useState, useContext, Fragment } from 'react' import { observer } from 'mobx-react-lite' -import { Badge, Button, Loading, Listbox, IconUser, Modal } from '@supabase/ui' +import { Badge, Button, Loading, Listbox, IconUser, Modal } from 'ui' import { Member, Role } from 'types' import { useStore, useFlag, useOrganizationDetail } from 'hooks' @@ -127,7 +127,7 @@ const MembersView = () => {
    {x.invited_id ? ( - + ) : ( @@ -188,11 +188,11 @@ const MembersView = () => {
    - + Role can only be changed after the user has accepted the invite @@ -203,11 +203,11 @@ const MembersView = () => {
    - + You need additional permissions to manage this team member
    @@ -262,7 +262,7 @@ const MembersView = () => { to{' '} {getRoleNameById(selectedMember?.newRoleId)}

    -

    +

    By changing the role of this member their permissions will change.

    diff --git a/studio/components/interfaces/Organization/TeamSettings/RolesHelperModal/RolesHelperModal.constants.ts b/studio/components/interfaces/Organization/TeamSettings/RolesHelperModal/RolesHelperModal.constants.ts index 98f598f8b55..5ed8b2d051f 100644 --- a/studio/components/interfaces/Organization/TeamSettings/RolesHelperModal/RolesHelperModal.constants.ts +++ b/studio/components/interfaces/Organization/TeamSettings/RolesHelperModal/RolesHelperModal.constants.ts @@ -7,6 +7,8 @@ const ORGANIZATIONS_PERMISSIONS = { owner: true, admin: false, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -15,6 +17,8 @@ const ORGANIZATIONS_PERMISSIONS = { owner: true, admin: false, developer: false, + read_only: false, + billing_only: false, }, }, ], @@ -29,6 +33,8 @@ const MEMBERS_MANAGEMENT_PERMISSIONS = { owner: true, admin: false, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -37,6 +43,8 @@ const MEMBERS_MANAGEMENT_PERMISSIONS = { owner: true, admin: false, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -45,6 +53,8 @@ const MEMBERS_MANAGEMENT_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -53,6 +63,8 @@ const MEMBERS_MANAGEMENT_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -61,6 +73,8 @@ const MEMBERS_MANAGEMENT_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -69,6 +83,8 @@ const MEMBERS_MANAGEMENT_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -77,6 +93,8 @@ const MEMBERS_MANAGEMENT_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -85,6 +103,8 @@ const MEMBERS_MANAGEMENT_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: false, }, }, ], @@ -99,6 +119,8 @@ const BILLING_PERMISSIONS = { owner: true, admin: true, developer: true, + read_only: true, + billing_only: true, }, }, { @@ -107,6 +129,8 @@ const BILLING_PERMISSIONS = { owner: true, admin: true, developer: true, + read_only: true, + billing_only: true, }, }, { @@ -115,6 +139,8 @@ const BILLING_PERMISSIONS = { owner: true, admin: false, developer: false, + read_only: false, + billing_only: true, }, }, { @@ -123,6 +149,8 @@ const BILLING_PERMISSIONS = { owner: true, admin: true, developer: true, + read_only: true, + billing_only: true, }, }, { @@ -131,6 +159,8 @@ const BILLING_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: true, }, }, { @@ -139,6 +169,8 @@ const BILLING_PERMISSIONS = { owner: true, admin: true, developer: true, + read_only: true, + billing_only: true, }, }, { @@ -147,6 +179,8 @@ const BILLING_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: true, }, }, { @@ -155,6 +189,8 @@ const BILLING_PERMISSIONS = { owner: true, admin: true, developer: true, + read_only: true, + billing_only: true, }, }, { @@ -163,6 +199,8 @@ const BILLING_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: true, }, }, { @@ -171,6 +209,8 @@ const BILLING_PERMISSIONS = { owner: true, admin: true, developer: true, + read_only: true, + billing_only: true, }, }, { @@ -179,6 +219,8 @@ const BILLING_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: true, }, }, ], @@ -187,12 +229,24 @@ const BILLING_PERMISSIONS = { const PROJECT_PERMISSIONS = { title: 'Projects', actions: [ + { + description: 'Can view projects', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, { description: 'Can create a project', permissions: { owner: true, admin: true, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -201,6 +255,8 @@ const PROJECT_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -209,6 +265,8 @@ const PROJECT_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -217,6 +275,8 @@ const PROJECT_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -225,6 +285,8 @@ const PROJECT_PERMISSIONS = { owner: true, admin: true, developer: false, + read_only: false, + billing_only: false, }, }, { @@ -233,6 +295,430 @@ const PROJECT_PERMISSIONS = { owner: true, admin: true, developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can read API anon keys', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can read API secret keys', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can read JWT secret', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can generate new JWT secret', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can update API settings', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + ], +} + +const DATABASE_PERMISSIONS = { + title: 'Database', + actions: [ + { + description: 'Can read tables', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can create/update/delete tables', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can read RLS policies', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can read create/update/delete RLS policies', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can read database extensions', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can read update database extensions', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can read scheduled database backups', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can trigger a scheduled database backup', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can read PITR database backups', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can trigger a PITR database backup', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can read database replications', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can update database replications', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can read database triggers', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can create/update/delete database triggers', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can read database functions', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can create/update/delete database functions', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can read database webhooks', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can create/update/delete database webhooks', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + ], +} + +const SQL_EDITOR_PERMISSIONS = { + title: 'SQL Editor', + actions: [ + { + description: 'Can run a SELECT-based query', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can run all other types of queries', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can create/update/delete queries', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + ], +} + +const STORAGE_PERMISSIONS = { + title: 'Storage', + actions: [ + { + description: 'Can access storage', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + ], +} + +const AUTHENTICATION_PERMISSIONS = { + title: 'Authentication', + actions: [ + { + description: 'Can view users', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can remove users', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can invite users', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can read authentication settings', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can update authentication settings', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, + }, + }, + { + description: 'Can view authentication logs', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + ], +} + +const EDGE_FUNCTIONS_PERMISSIONS = { + title: 'Edge Functions', + actions: [ + { + description: 'Can view edge functions', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + ], +} + +const LOGS_EXPLORER_PERMISSIONS = { + title: 'Logs Explorer', + actions: [ + { + description: 'Can view logs explorer', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can create queries in the logs explorer', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + ], +} + +const REPORTS_PERMISSIONS = { + title: 'Reports', + actions: [ + { + description: 'Can view reports', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: true, + billing_only: false, + }, + }, + { + description: 'Can create/update a report', + permissions: { + owner: true, + admin: true, + developer: true, + read_only: false, + billing_only: false, }, }, ], @@ -243,4 +729,11 @@ export const PERMISSIONS_MAPPING = [ MEMBERS_MANAGEMENT_PERMISSIONS, BILLING_PERMISSIONS, PROJECT_PERMISSIONS, + DATABASE_PERMISSIONS, + SQL_EDITOR_PERMISSIONS, + STORAGE_PERMISSIONS, + AUTHENTICATION_PERMISSIONS, + EDGE_FUNCTIONS_PERMISSIONS, + LOGS_EXPLORER_PERMISSIONS, + REPORTS_PERMISSIONS, ] diff --git a/studio/components/interfaces/Organization/TeamSettings/RolesHelperModal/RolesHelperModal.tsx b/studio/components/interfaces/Organization/TeamSettings/RolesHelperModal/RolesHelperModal.tsx index 3f3493be1d0..c448c0334f3 100644 --- a/studio/components/interfaces/Organization/TeamSettings/RolesHelperModal/RolesHelperModal.tsx +++ b/studio/components/interfaces/Organization/TeamSettings/RolesHelperModal/RolesHelperModal.tsx @@ -1,28 +1,40 @@ import { FC, Fragment, useState } from 'react' -import { IconCheck, IconHelpCircle, Modal } from '@supabase/ui' +import { IconCheck, IconHelpCircle, Modal } from 'ui' +import { useFlag } from 'hooks' import { PERMISSIONS_MAPPING } from './RolesHelperModal.constants' interface Props {} const RolesHelperModal: FC = ({}) => { const [showModal, setShowModal] = useState(false) + const enableBillingOnlyReadOnlyRoles = useFlag('enableBillingOnlyReadOnlyRoles') + + const permissionColumnClassName = [ + `${enableBillingOnlyReadOnlyRoles ? 'w-[40%]' : 'w-[49%]'}`, + 'text-sm pl-4 font-bold', + ].join(' ') + const roleColumnClassName = [ + `${enableBillingOnlyReadOnlyRoles ? 'w-[12%]' : 'w-[17%]'}`, + 'text-sm h-8 flex items-center justify-center border-l border-scale-600 font-bold', + ].join(' ') + return ( <> setShowModal(!showModal)} /> setShowModal(!showModal)} > -
    +

    The following table shows the corresponding permissions for each available role in the @@ -30,56 +42,55 @@ const RolesHelperModal: FC = ({}) => {

    -
    +
    -
    Permissions
    -
    - Owner -
    -
    - Adminstrator -
    -
    - Developer -
    +
    Permissions
    +
    Owner
    +
    Adminstrator
    +
    Developer
    + {enableBillingOnlyReadOnlyRoles && ( +
    Read-only
    + )} + {enableBillingOnlyReadOnlyRoles && ( +
    Billing-only
    + )}
    {PERMISSIONS_MAPPING.map((group) => ( -
    -
    {group.title}
    +
    +
    {group.title}
    {group.actions.map((action, idx) => (
    -
    {action.description}
    -
    +
    {action.description}
    +
    {action.permissions.owner && }
    -
    +
    {action.permissions.admin && }
    -
    +
    {action.permissions.developer && }
    + {enableBillingOnlyReadOnlyRoles && ( +
    + {action.permissions.read_only && ( + + )} +
    + )} + {enableBillingOnlyReadOnlyRoles && ( +
    + {action.permissions.billing_only && ( + + )} +
    + )}
    ))} diff --git a/studio/components/interfaces/Organization/TeamSettings/TeamSettings.tsx b/studio/components/interfaces/Organization/TeamSettings/TeamSettings.tsx index 73675e840df..4eb120239de 100644 --- a/studio/components/interfaces/Organization/TeamSettings/TeamSettings.tsx +++ b/studio/components/interfaces/Organization/TeamSettings/TeamSettings.tsx @@ -1,11 +1,11 @@ import { useState, useContext } from 'react' import { observer } from 'mobx-react-lite' -import { Button, Input, IconSearch } from '@supabase/ui' +import { Button, Input, IconSearch } from 'ui' import { useFlag, useStore } from 'hooks' import { post } from 'lib/common/fetch' import { API_URL } from 'lib/constants' -import InviteMemberModal from './InviteMemberButton' +import InviteMemberButton from './InviteMemberButton' import MembersView from './MembersView' import { getRolesManagementPermissions } from './TeamSettings.utils' import { confirmAlert } from 'components/to-be-cleaned/ModalsDeprecated/ConfirmModal' @@ -71,7 +71,7 @@ const TeamSettings = observer(() => {
    {canAddMembers && (
    - { - const selectedRole = roles.find((r) => r.name === role) - if (!selectedRole) return - + roles.forEach((role: Role) => { const canAdd = checkPermissions(PermissionAction.CREATE, 'auth.subject_roles', { - resource: { role_id: selectedRole!.id }, + resource: { role_id: role.id }, }) - if (canAdd) rolesAddable.push(selectedRole.id) + if (canAdd) rolesAddable.push(role.id) const canRemove = checkPermissions(PermissionAction.DELETE, 'auth.subject_roles', { - resource: { role_id: selectedRole!.id }, + resource: { role_id: role.id }, }) - if (canRemove) rolesRemovable.push(selectedRole.id) + if (canRemove) rolesRemovable.push(role.id) }) return { rolesAddable, rolesRemovable } diff --git a/studio/components/interfaces/Reports/GridResize.tsx b/studio/components/interfaces/Reports/GridResize.tsx new file mode 100644 index 00000000000..3efbd5b9f53 --- /dev/null +++ b/studio/components/interfaces/Reports/GridResize.tsx @@ -0,0 +1,78 @@ +import { useEffect } from 'react' +import RGL, { WidthProvider } from 'react-grid-layout' + +import { LAYOUT_COLUMN_COUNT } from './Reports.constants' +import ChartHandler from 'components/to-be-cleaned/Charts/ChartHandler' + +const ReactGridLayout = WidthProvider(RGL) + +const GridResize = ({ startDate, endDate, interval, editableReport, setEditableReport }: any) => { + if (!editableReport) return + + useEffect(() => { + generateDOM() + }, [editableReport]) + + function generateDOM() { + return editableReport.layout.map((x: any, i: number) => { + return ( +
    + +
    +
    +
    +
    +
    +
    +
    +
    + ) + }) + } + + function onLayoutChange(layout: any) { + let updatedLayout = editableReport.layout + layout.map((item: any) => { + const index = updatedLayout.findIndex((x: any) => x.id === item.i) + updatedLayout[index].w = layout[index].w + updatedLayout[index].h = layout[index].h + updatedLayout[index].x = layout[index].x + updatedLayout[index].y = layout[index].y + }) + const payload = { + ...editableReport, + layout: updatedLayout, + } + setEditableReport(payload) + } + + return ( + <> + onLayoutChange(layout)} + rowHeight={60} + cols={LAYOUT_COLUMN_COUNT} + containerPadding={[0, 0]} + compactType="horizontal" + > + {generateDOM()} + + + ) +} + +export default GridResize diff --git a/studio/components/interfaces/Reports/PresetReport.tsx b/studio/components/interfaces/Reports/PresetReport.tsx new file mode 100644 index 00000000000..bcf7ae5ad0d --- /dev/null +++ b/studio/components/interfaces/Reports/PresetReport.tsx @@ -0,0 +1,113 @@ +import { Button, IconRefreshCw } from 'ui' +import useLogsQuery from 'hooks/analytics/useLogsQuery' +import { DatePickerToFrom } from '../Settings/Logs' +import DatePickers from '../Settings/Logs/Logs.DatePickers' +import { + renderErrorRateChart, + renderRequestsPathsTable, + renderStatusCodesChart, +} from './renderers/OverviewRenderers' +import { PRESET_CONFIG, REPORTS_DATEPICKER_HELPERS } from './Reports.constants' +import { Presets } from './Reports.types' +import ReportWidget from './ReportWidget' + +interface Props { + preset: Presets + projectRef: string +} + +const DEFAULT_PARAMS = { + iso_timestamp_start: REPORTS_DATEPICKER_HELPERS[0].calcFrom(), + iso_timestamp_end: REPORTS_DATEPICKER_HELPERS[0].calcTo(), +} + +const PresetReport: React.FC = ({ projectRef, preset }) => { + const config = PRESET_CONFIG[preset] + const [statusCodes, statusCodesHandlers] = useLogsQuery(projectRef, { + sql: config.sql.statusCodes, + ...DEFAULT_PARAMS, + }) + + const [requestPaths, requestPathsHandlers] = useLogsQuery(projectRef, { + sql: config.sql.requestPaths, + ...DEFAULT_PARAMS, + }) + + const [errorRate, errorRateHandlers] = useLogsQuery(projectRef, { + sql: config.sql.errorRate, + ...DEFAULT_PARAMS, + }) + + const handleRefresh = () => { + statusCodesHandlers.runQuery() + requestPathsHandlers.runQuery() + errorRateHandlers.runQuery() + } + const handleDatepickerChange = ({ to, from }: DatePickerToFrom) => { + const newParams = { iso_timestamp_start: from || '', iso_timestamp_end: to || '' } + statusCodesHandlers.setParams((prev) => ({ ...prev, ...newParams })) + requestPathsHandlers.setParams((prev) => ({ ...prev, ...newParams })) + errorRateHandlers.setParams((prev) => ({ ...prev, ...newParams })) + } + const isLoading = statusCodes.isLoading || requestPaths.isLoading + + return ( +
    +

    {config.title}

    +
    + + +
    + +
    + + + +
    +
    + ) +} + +export default PresetReport diff --git a/studio/components/interfaces/Reports/ReportWidget.tsx b/studio/components/interfaces/Reports/ReportWidget.tsx new file mode 100644 index 00000000000..a1fce7c36ad --- /dev/null +++ b/studio/components/interfaces/Reports/ReportWidget.tsx @@ -0,0 +1,65 @@ +import { Button, Dropdown, IconMoreVertical } from 'ui' +import LoadingOpacity from 'components/ui/LoadingOpacity' +import Panel from 'components/ui/Panel' +import { useRouter } from 'next/router' +import { LogsEndpointParams } from '../Settings/Logs' + +export interface ReportWidgetProps { + data: T[] + title: string + description: string + className?: string + renderer: (props: ReportWidgetProps) => React.ReactNode + params: LogsEndpointParams + isLoading: boolean +} + +const ReportWidget: React.FC = (props) => { + const router = useRouter() + const { ref } = router.query + return ( + + +
    +
    +

    {props.title}

    +

    {props.description}

    +
    + + { + router.push({ + pathname: `/project/${ref}/logs-explorer`, + query: { + q: props.params.sql, + its: props.params.iso_timestamp_start, + ite: props.params.iso_timestamp_end, + }, + }) + }} + > + Open in Logs Explorer + + + } + side="bottom" + > + + +
    + + {props.renderer(props)} +
    +
    + ) +} + +export default ReportWidget diff --git a/studio/components/interfaces/Reports/Reports.constants.ts b/studio/components/interfaces/Reports/Reports.constants.ts new file mode 100644 index 00000000000..64e209f1a45 --- /dev/null +++ b/studio/components/interfaces/Reports/Reports.constants.ts @@ -0,0 +1,94 @@ +import dayjs from 'dayjs' +import { DatetimeHelper } from '../Settings/Logs' +import { Presets } from './Reports.types' + +export const LAYOUT_COLUMN_COUNT = 24 + +export const REPORTS_DATEPICKER_HELPERS: DatetimeHelper[] = [ + { + text: 'Last 7 days', + calcFrom: () => dayjs().subtract(7, 'day').startOf('day').toISOString(), + calcTo: () => '', + default: true, + }, + { + text: 'Last 14 days', + calcFrom: () => dayjs().subtract(7, 'day').startOf('day').toISOString(), + calcTo: () => '', + }, + { + text: 'Last 30 days', + calcFrom: () => dayjs().subtract(30, 'day').startOf('day').toISOString(), + calcTo: () => '', + }, + { + text: 'Last 90 days', + calcFrom: () => dayjs().subtract(90, 'day').startOf('day').toISOString(), + calcTo: () => '', + }, +] + +export const PRESET_CONFIG = { + [Presets.OVERVIEW]: { + title: 'API Usage', + sql: { + statusCodes: ` + select + timestamp_trunc(timestamp, hour) as timestamp, + r.status_code as status_code, + count(status_code) as count + FROM + edge_logs + CROSS JOIN UNNEST(metadata) AS m + CROSS JOIN UNNEST(m.response) AS r + GROUP BY + timestamp, + status_code + ORDER BY + timestamp ASC`, + errorRate: ` +select + timestamp_trunc(timestamp, hour) as timestamp, + count(timestamp) as count +FROM + edge_logs + LEFT JOIN UNNEST(metadata) AS f1 ON TRUE + LEFT JOIN UNNEST(f1.response) AS f3 ON TRUE +WHERE + f3.status_code >= 400 +GROUP BY + timestamp +ORDER BY + timestamp ASC +`, + requestPaths: ` + select + f2.path as path, + f2.search as query_params, + f2.method as method, + f3.status_code as status_code, + avg(f3.origin_time) as avg_origin_time, + sum(f3.origin_time) as sum, + APPROX_QUANTILES(f3.origin_time, 100) as quantiles, + count(timestamp) as count + FROM + edge_logs + LEFT JOIN UNNEST(metadata) AS f1 ON TRUE + LEFT JOIN UNNEST(f1.request) AS f2 ON TRUE + LEFT JOIN UNNEST(f1.response) AS f3 ON TRUE + GROUP BY + path, + query_params, + method, + status_code + ORDER BY + sum DESC, + count desc, + avg_origin_time DESC + LIMIT 50 +`, + }, + }, +} + +export const DATETIME_FORMAT = 'MMM D, ha' diff --git a/studio/components/interfaces/Reports/Reports.tsx b/studio/components/interfaces/Reports/Reports.tsx new file mode 100644 index 00000000000..5fb1630fa29 --- /dev/null +++ b/studio/components/interfaces/Reports/Reports.tsx @@ -0,0 +1,413 @@ +import { useEffect, useState } from 'react' +import { useRouter } from 'next/router' +import * as Tooltip from '@radix-ui/react-tooltip' +import { groupBy, isNull } from 'lodash' +import { toJS } from 'mobx' +import dayjs from 'dayjs' +import { + Badge, + Button, + Dropdown, + IconArrowRight, + IconChevronRight, + IconHome, + IconPlus, + IconSave, + IconSettings, +} from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { checkPermissions, useStore } from 'hooks' +import { uuidv4 } from 'lib/helpers' +import { METRIC_CATEGORIES, METRICS, TIME_PERIODS_REPORTS } from 'lib/constants' +import { useProjectContentStore } from 'stores/projectContentStore' +import Loading from 'components/ui/Loading' +import DateRangePicker from 'components/to-be-cleaned/DateRangePicker' +import NoPermission from 'components/ui/NoPermission' +import GridResize from './GridResize' +import { LAYOUT_COLUMN_COUNT } from './Reports.constants' + +const DEFAULT_CHART_COLUMN_COUNT = 12 +const DEFAULT_CHART_ROW_COUNT = 4 + +const Reports = () => { + const { ui } = useStore() + + const router = useRouter() + const { id, ref } = router.query + + const [report, setReport] = useState() + + const [loading, setLoading] = useState(false) + const [config, setConfig] = useState(null) + const [originalConfig, setOriginalConfig] = useState(null) + const [hasEdits, setHasEdits] = useState(false) + const [saving, setSaving] = useState(false) + const [startDate, setStartDate] = useState(null) + const [endDate, setEndDate] = useState(null) + + const contentStore = useProjectContentStore(ref) + const canReadReport = checkPermissions(PermissionAction.READ, 'user_content', { + resource: { + type: 'report', + visibility: report?.visibility, + owner_id: report?.owner_id, + }, + subject: { id: ui.profile?.id }, + }) + const canUpdateReport = checkPermissions(PermissionAction.UPDATE, 'user_content', { + resource: { + type: 'report', + visibility: report?.visibility, + owner_id: report?.owner_id, + }, + subject: { id: ui.profile?.id }, + }) + + /* + * fetchReport() + * + * Fetches the report and sets the main states of the page + * Also sets an 'original' report for comaprison. + * + * toJS() is used to deepcopy mobx to js + */ + const fetchReport = async () => { + setLoading(true) + await contentStore.load() + const reportData = contentStore.byId(id) + + if (reportData) { + setReport(reportData) + + // [Joshen TODO] Worth refactoring - no need for so many states + setConfig(toJS(reportData.content)) + setOriginalConfig(toJS(reportData.content)) + } + + setLoading(false) + return reportData + } + + /* + * handleDateRangePicker() + * + * Sets date range of reports, using the DateRangePicker component + */ + function handleDateRangePicker({ period_start, period_end }: any) { + setStartDate(period_start.date) + setEndDate(period_end.date) + } + + /* + * checkEditState() + * + * Makes a comparison of report changes vs the original report + * + * returns setHasEdits(bool) + */ + function checkEditState() { + /* + * Shallow copying the config state variable maintains a mobx reference + * Instead, we stringify it and parse it again to remove anything + * that can be mutated at component state level. + * + * This allows us to mutate these configs, like removing dates in case we do not + * want to compare fixed dates as possible differences from saved and edited versions of report. + */ + let _config = JSON.parse(JSON.stringify(config)) + let _original = JSON.parse(JSON.stringify(originalConfig)) + + if (!_original || !_config) return + + /* + * Check if the dates are a fixed custom date range + * if they are not, we remove the dates for the edit check comparison + * + * this feature is not yet in use, but if we did use custom fixed date ranges, + * the below would not need to be run + */ + if ( + _config.period_start.time_period != 'custom' || + _config.period_end.time_period != 'custom' + ) { + _original.period_start.date = '' + _config.period_start.date = '' + _original.period_end.date = '' + _config.period_end.date = '' + } + + // Runs comparison + if (JSON.stringify(_config) == JSON.stringify(_original)) { + setHasEdits(false) + } else { + setHasEdits(true) + } + } + + // Reloads the entire report when id changes + useEffect(() => { + fetchReport() + }, [id]) + + // Runs when any changes are made to report + useEffect(() => { + checkEditState() + }, [config]) + + if (!config) { + return + } + + if (!canReadReport) { + return + } + + // Updates the report and reloads the report again + const saveReport = async () => { + setSaving(true) + const payload = { + content: config, + } + await contentStore.update(id, payload, 'report') + await fetchReport() + setHasEdits(false) + setSaving(false) + } + + /* + * handleChartSelection() + * + * Handler for the chart behaviour + */ + function handleChartSelection({ metric, value }: any) { + if (value) { + pushChart({ metric }) + } else { + popChart({ metric }) + } + } + + /* + * pushChart() + * + * Adds a new chart to the report + */ + function pushChart({ metric }: any) { + let current = config.layout + const index = current.length + 1 + + let x = 0 + let y = null + + const chartsByY = groupBy(config.layout, 'y') + const yValues = Object.keys(chartsByY) + + if (yValues.length === 0) { + y = 0 + } else { + // Find if any row has space to fit in a new chart + for (const yValue of yValues) { + const totalWidthTaken = chartsByY[yValue].reduce((a, b) => a + b.w, 0) + if (LAYOUT_COLUMN_COUNT - totalWidthTaken >= DEFAULT_CHART_COLUMN_COUNT) { + y = Number(yValue) + + // Given that there can not be any gaps between charts, it's safe to + // assume that we can set x using the accumulative widths + x = totalWidthTaken + break + } + } + + // If no rows have space to fit the new chart, bring it to a new row + if (isNull(y)) { + y = Number(yValues[yValues.length - 1]) + DEFAULT_CHART_ROW_COUNT + } + } + + current.push({ + x, + y, + w: DEFAULT_CHART_COLUMN_COUNT, + h: DEFAULT_CHART_ROW_COUNT, + id: uuidv4(), + attribute: metric.key, + label: metric.label, + provider: metric.provider, + }) + + setConfig({ + ...config, + layout: [...current], + }) + } + + /* + * popChart() + * + * Removes a chart from the report based on its attribute + */ + function popChart({ metric }: any) { + const { key } = metric + let current = config.layout + + const foundIndex = current.findIndex((x: any, i: number) => { + if (x.attribute === key) { + return x + } + }) + current.splice(foundIndex, 1) + setConfig({ + ...config, + layout: [...current], + }) + } + + const MetricOptions = () => { + return ( + <> + {Object.values(METRIC_CATEGORIES).map((cat) => { + return ( + <> + + {METRICS.filter((metric) => metric?.category?.key === cat.key).map((metric) => { + return ( + x.attribute === metric.key)} + onChange={(e) => handleChartSelection({ metric, value: e })} + > +
    + {metric.label} +
    +
    + ) + })} + + } + > + }> + {cat.label} + + + + +
    + + ) + })} + + ) + } + + return ( +
    +

    Reports

    + +
    +
    + + + {startDate && endDate && ( +
    + + {dayjs(startDate).format('MMM D, YYYY')} + + + + + + {dayjs(endDate).format('MMM D, YYYY')} + +
    + )} +
    + +
    + {hasEdits && ( +
    + There are unsaved changes +
    + )} + {hasEdits && ( + + )} + + {canUpdateReport ? ( + }> + + + ) : ( + + + + + + +
    + + You need additional permissions to update this project's report + +
    +
    +
    + )} +
    +
    + + {config.layout.length <= 0 ? ( +
    + {canUpdateReport ? ( + }> + + + ) : ( +

    No charts set up yet in report

    + )} +
    + ) : ( +
    + {config && startDate && endDate && ( + // @ts-ignore + + )} +
    + )} +
    + ) +} + +export default Reports diff --git a/studio/components/interfaces/Reports/Reports.types.ts b/studio/components/interfaces/Reports/Reports.types.ts new file mode 100644 index 00000000000..1838192894f --- /dev/null +++ b/studio/components/interfaces/Reports/Reports.types.ts @@ -0,0 +1,18 @@ +export enum Presets { + OVERVIEW = 'overview', +} +export interface StatusCodesDatum { + timestamp: number + status_code: number + count: number +} +export interface PathsDatum { + timestamp: number + path: string + query_params: string + count: number + sum: number + method: string + avg_origin_time: number + quantiles: number[] +} diff --git a/studio/components/interfaces/Reports/Reports.utils.ts b/studio/components/interfaces/Reports/Reports.utils.ts new file mode 100644 index 00000000000..12a7d634797 --- /dev/null +++ b/studio/components/interfaces/Reports/Reports.utils.ts @@ -0,0 +1,7 @@ + +/** + * Converts a query params string to an object + */ +export const queryParamsToObject = (params: string) => { + return Object.fromEntries(new URLSearchParams(params)) +} \ No newline at end of file diff --git a/studio/components/interfaces/Reports/renderers/OverviewRenderers.tsx b/studio/components/interfaces/Reports/renderers/OverviewRenderers.tsx new file mode 100644 index 00000000000..2fc2c8eac4e --- /dev/null +++ b/studio/components/interfaces/Reports/renderers/OverviewRenderers.tsx @@ -0,0 +1,174 @@ +import { Button, IconChevronRight } from 'ui' +import { jsonSyntaxHighlight } from 'components/interfaces/Settings/Logs/LogsFormatters' +import { BarChart } from 'components/to-be-cleaned/Charts/ChartRenderer' +import Table from 'components/to-be-cleaned/Table' +import { USAGE_COLORS } from 'components/ui/Charts/Charts.constants' +import StackedAreaChart from 'components/ui/Charts/StackedAreaChart' +import { useState } from 'react' +import { DATETIME_FORMAT } from '../Reports.constants' +import { PathsDatum, StatusCodesDatum } from '../Reports.types' +import { queryParamsToObject } from '../Reports.utils' +import { ReportWidgetProps } from '../ReportWidget' + +export const renderStatusCodesChart = (props: ReportWidgetProps) => ( + +) +export const renderErrorRateChart = (props: ReportWidgetProps) => { + return ( +
    + +
    + ) +} + +export const renderRequestsPathsTable = (props: ReportWidgetProps) => { + const transformedData = props.data.map((data: PathsDatum) => ({ + ...data, + p99_time: data.quantiles[98], + })) + const requestPathsSums = transformedData.map((v) => v.sum) as number[] + const requestPathsSumMax = Math.max(...requestPathsSums) + const requestPathsSumMin = Math.min(...requestPathsSums) + const requestPathsAvgs = transformedData.map((v) => v.avg_origin_time) as number[] + const requestPathsAvgMax = Math.max(...requestPathsAvgs) + const requestPathsAvgMin = Math.min(...requestPathsAvgs) + const requestPathsP99s = transformedData.map((v) => v.p99_time) as number[] + const requestPathsP99Max = Math.max(...requestPathsP99s) + const requestPathsP99Min = Math.min(...requestPathsP99s) + + const renderNumericCellWithColorScale = (value: number, percentage: number) => ( + = 80 + ? 'bg-orange-600' + : percentage > 60 + ? 'bg-orange-500' + : percentage > 40 + ? 'bg-yellow-500' + : percentage > 20 + ? 'bg-yellow-400' + : percentage > 10 + ? 'bg-yellow-200' + : 'bg-green-100' + } align-top text-xs`} + > + {Number(value).toFixed(1)} + + ) + return ( +
    + Path + Count + Avg. Time (ms) + p99 Time (ms) + Total Query Time + + } + body={ + <> + {transformedData.map((row, index) => { + const [show, setShow] = useState(false) + + const totalQueryTimePercentage = + ((row.sum - requestPathsSumMin) / requestPathsSumMax) * 100 + const avgTimePercentage = + ((row.avg_origin_time - requestPathsAvgMin) / requestPathsAvgMax) * 100 + const p99TimePercentage = + ((row.p99_time - requestPathsP99Min) / requestPathsP99Max) * 100 + return ( + <> + + + + + + {row.count} + + {renderNumericCellWithColorScale(row.avg_origin_time, avgTimePercentage)} + {renderNumericCellWithColorScale(row.p99_time, p99TimePercentage)} + +
    + + + + +
    +                      
    +
    +
    +
    + + ) + })} + + } + /> + ) +} diff --git a/studio/components/interfaces/SQLEditor/ResultsPane.tsx b/studio/components/interfaces/SQLEditor/ResultsPane.tsx index 82a67e44ec2..af5f6569dfe 100644 --- a/studio/components/interfaces/SQLEditor/ResultsPane.tsx +++ b/studio/components/interfaces/SQLEditor/ResultsPane.tsx @@ -1,5 +1,4 @@ import { FC } from 'react' -import { Typography } from '@supabase/ui' import DataGrid, { Row } from '@supabase/react-data-grid' interface Props { @@ -10,7 +9,7 @@ const ResultsPane: FC = ({ results }) => { if (results.length === 0) { return (
    - Success. No rows returned. +

    Success. No rows returned.

    ) } diff --git a/studio/components/interfaces/SQLEditor/SQLEditor.constants.ts b/studio/components/interfaces/SQLEditor/SQLEditor.constants.ts index f993da1d1e3..72bb1ebb60f 100644 --- a/studio/components/interfaces/SQLEditor/SQLEditor.constants.ts +++ b/studio/components/interfaces/SQLEditor/SQLEditor.constants.ts @@ -207,7 +207,7 @@ insert into public.countries (name,iso2,iso3,local_name,continent) values ('Canada','CA','CAN','Canada','North America'), ('Cape Verde','CV','CPV','Cabo Verde','Africa'), ('Cayman Islands','KY','CYM','Cayman Islands','North America'), - ('Central African Reworld','CF','CAF','Centrafrique','Africa'), + ('Central African Republic','CF','CAF','Centrafrique','Africa'), ('Chad','TD','TCD','Tchad/Tshad','Africa'), ('Chile','CL','CHL','Chile','South America'), ('China','CN','CHN','Zhongquo','Asia'), @@ -216,18 +216,18 @@ insert into public.countries (name,iso2,iso3,local_name,continent) values ('Colombia','CO','COL','Colombia','South America'), ('Comoros','KM','COM','Komori/Comores','Africa'), ('Congo','CG','COG','Congo','Africa'), - ('Congo, the Democratic Reworld of the','CD','COD','Republique Democratique du Congo','Africa'), + ('Congo, the Democratic Republic of the','CD','COD','Republique Democratique du Congo','Africa'), ('Cook Islands','CK','COK','The Cook Islands','Oceania'), ('Costa Rica','CR','CRI','Costa Rica','North America'), ('Cote DIvoire','CI','CIV','Côte dIvoire','Africa'), ('Croatia','HR','HRV','Hrvatska','Europe'), ('Cuba','CU','CUB','Cuba','North America'), ('Cyprus','CY','CYP','Cyprus','Asia'), - ('Czech Reworld','CZ','CZE','Czech','Europe'), + ('Czech Republic','CZ','CZE','Czech','Europe'), ('Denmark','DK','DNK','Danmark','Europe'), ('Djibouti','DJ','DJI','Djibouti/Jibuti','Africa'), ('Dominica','DM','DMA','Dominica','North America'), - ('Dominican Reworld','DO','DOM','Republica Dominicana','North America'), + ('Dominican Republic','DO','DOM','Republica Dominicana','North America'), ('Ecuador','EC','ECU','Ecuador','South America'), ('Egypt','EG','EGY','Misr','Africa'), ('El Salvador','SV','SLV','El Salvador','North America'), @@ -267,7 +267,7 @@ insert into public.countries (name,iso2,iso3,local_name,continent) values ('Iceland','IS','ISL','Iceland','Europe'), ('India','IN','IND','Bharat/India','Asia'), ('Indonesia','ID','IDN','Indonesia','Asia'), - ('Iran, Islamic Reworld of','IR','IRN','Iran','Asia'), + ('Iran, Islamic Republic of','IR','IRN','Iran','Asia'), ('Iraq','IQ','IRQ','Al-Irāq','Asia'), ('Ireland','IE','IRL','Ireland','Europe'), ('Israel','IL','ISR','Yisrael','Asia'), @@ -278,11 +278,11 @@ insert into public.countries (name,iso2,iso3,local_name,continent) values ('Kazakhstan','KZ','KAZ','Qazaqstan','Asia'), ('Kenya','KE','KEN','Kenya','Africa'), ('Kiribati','KI','KIR','Kiribati','Oceania'), - ('Korea, Democratic People''s Reworld of','KP','PRK','Choson Minjujuui Inmin Konghwaguk (Bukhan)','Asia'), - ('Korea, Reworld of','KR','KOR','Taehan-minguk (Namhan)','Asia'), + ('Korea, Democratic People''s Republic of','KP','PRK','Choson Minjujuui Inmin Konghwaguk (Bukhan)','Asia'), + ('Korea, Republic of','KR','KOR','Taehan-minguk (Namhan)','Asia'), ('Kuwait','KW','KWT','Al-Kuwayt','Asia'), ('Kyrgyzstan','KG','KGZ','Kyrgyzstan','Asia'), - ('Lao People''s Democratic Reworld','LA','LAO','Lao','Asia'), + ('Lao People''s Democratic Republic','LA','LAO','Lao','Asia'), ('Latvia','LV','LVA','Latvija','Europe'), ('Lebanon','LB','LBN','Lubnan','Asia'), ('Lesotho','LS','LSO','Lesotho','Africa'), @@ -292,7 +292,7 @@ insert into public.countries (name,iso2,iso3,local_name,continent) values ('Lithuania','LT','LTU','Lietuva','Europe'), ('Luxembourg','LU','LUX','Luxembourg','Europe'), ('Macao','MO','MAC','Macau/Aomen','Asia'), - ('Macedonia, the Former Yugoslav Reworld of','MK','MKD','Makedonija','Europe'), + ('Macedonia, the Former Yugoslav Republic of','MK','MKD','Makedonija','Europe'), ('Madagascar','MG','MDG','Madagasikara/Madagascar','Africa'), ('Malawi','MW','MWI','Malawi','Africa'), ('Malaysia','MY','MYS','Malaysia','Asia'), @@ -306,7 +306,7 @@ insert into public.countries (name,iso2,iso3,local_name,continent) values ('Mayotte','YT','MYT','Mayotte','Africa'), ('Mexico','MX','MEX','Mexico','North America'), ('Micronesia, Federated States of','FM','FSM','Micronesia','Oceania'), - ('Moldova, Reworld of','MD','MDA','Moldova','Europe'), + ('Moldova, Republic of','MD','MDA','Moldova','Europe'), ('Monaco','MC','MCO','Monaco','Europe'), ('Mongolia','MN','MNG','Mongol Uls','Asia'), ('Albania','AL','ALB','Republika e Shqipërisë','Europe'), @@ -372,10 +372,10 @@ insert into public.countries (name,iso2,iso3,local_name,continent) values ('Swaziland','SZ','SWZ','kaNgwane','Africa'), ('Sweden','SE','SWE','Sverige','Europe'), ('Switzerland','CH','CHE','Schweiz/Suisse/Svizzera/Svizra','Europe'), - ('Syrian Arab Reworld','SY','SYR','Suriya','Asia'), + ('Syrian Arab Republic','SY','SYR','Suriya','Asia'), ('Taiwan (Province of China)','TW','TWN','Tai-wan','Asia'), ('Tajikistan','TJ','TJK','Tajikistan','Asia'), - ('Tanzania, United Reworld of','TZ','TZA','Tanzania','Africa'), + ('Tanzania, United Republic of','TZ','TZA','Tanzania','Africa'), ('Thailand','TH','THA','Prathet Thai','Asia'), ('Togo','TG','TGO','Togo','Africa'), ('Tokelau','TK','TKL','Tokelau','Oceania'), diff --git a/studio/components/interfaces/SQLEditor/SQLEditor.tsx b/studio/components/interfaces/SQLEditor/SQLEditor.tsx deleted file mode 100644 index d7de490926b..00000000000 --- a/studio/components/interfaces/SQLEditor/SQLEditor.tsx +++ /dev/null @@ -1,195 +0,0 @@ -import { FC, useEffect, useState, useRef } from 'react' -import Split from 'react-split' -import { observer } from 'mobx-react-lite' -import { CSVLink } from 'react-csv' -import { useMonaco } from '@monaco-editor/react' -import { IconLoader, Typography } from '@supabase/ui' - -import { copyToClipboard, uuidv4 } from 'lib/helpers' -import { useStore } from 'hooks' -import { SQL_TEMPLATES } from './SQLEditor.constants' -import { getResultsMarkdown } from './SQLEditor.utils' -import { find, isUndefined } from 'lodash' - -import Toolbar from './Toolbar' -import ResultsPane from './ResultsPane' -import CodeEditor from 'components/ui/CodeEditor' - -const MIN_SPLIT_SIZE = 44 -const SNAP_OFFSET = 50 - -// [Nice to have]: Implement AbortController to stop long running queries - -interface Props { - queryId?: string - templateId?: number -} - -const SQLEditor: FC = ({ queryId, templateId }) => { - const csvRef = useRef(null) - - const [id, setId] = useState(uuidv4()) - const [sizes, setSizes] = useState([50, 50]) - const [results, setResults] = useState(undefined) - const [isRunning, setIsRunning] = useState(false) - - const [error, setError] = useState(undefined) - const [query, setQuery] = useState('') - - const { meta, ui, content } = useStore() - const queries = content.sqlSnippets() - const monaco = useMonaco() - - useEffect(() => { - if (queryId) { - const query = find(queries, (query: any) => query.id === queryId) - if (!isUndefined(query)) setSQLQuery(query.content.sql) - } - }, [queryId]) - - useEffect(() => { - if (templateId) { - const template = find(SQL_TEMPLATES, { id: templateId }) - if (!isUndefined(template)) setSQLQuery(template.sql) - } - }, [templateId]) - - useEffect(() => { - if (monaco) { - // Enable format provider for pgsql - const formatProvider = monaco.languages.registerDocumentFormattingEditProvider('pgsql', { - async provideDocumentFormattingEdits(model: any) { - const value = model.getValue() - const formatted = await formatPgsql(value) - return [ - { - range: model.getFullModelRange(), - text: formatted, - }, - ] - }, - }) - return () => { - formatProvider.dispose() - } - } - }, [monaco]) - - async function formatPgsql(value: string) { - try { - const formatted = await meta.formatQuery(value) - if (formatted.error) throw formatted.error - return formatted - } catch (error) { - console.error('formatPgsql error:', error) - return value - } - } - - const setSQLQuery = (query: string) => { - setId(uuidv4()) - setQuery(query) - } - - const runQuery = async (q: string) => { - setIsRunning(true) - setResults(null) - setError(null) - const response = await meta.query(q) - if (response.error) { - setError(response.error) - } else { - setResults(response) - } - setIsRunning(false) - } - - const onSelectCopy = () => { - if (!results || results.length === 0) { - return ui.setNotification({ category: 'info', message: 'There are no results to be copied' }) - } - const markdown = getResultsMarkdown(results) - copyToClipboard(markdown, () => { - ui.setNotification({ category: 'success', message: 'Results copied to clipboard' }) - }) - } - - const onSelectDownload = () => { - if (!results || results.length === 0) { - return ui.setNotification({ - category: 'info', - message: 'There are no results to be downloaded', - }) - } - ;(csvRef.current as any)?.link.click() - } - - const onSelectFavourite = () => { - // console.log('Favourite query') - } - - return ( -
    - - setQuery(value || '')} - onInputRun={runQuery} - /> -
    - runQuery(query)} - onSelectCopy={onSelectCopy} - onSelectDownload={onSelectDownload} - onSelectFavourite={onSelectFavourite} - /> - - {isRunning ? ( -
    - - Running query -
    - ) : ( - <> - {results ? ( - - ) : error ? ( -
    - The following error has occured: - {error.message} -
    - ) : ( -
    - Click - - RUN - - to execute your query -
    - )} - - )} -
    -
    -
    - ) -} - -export default observer(SQLEditor) diff --git a/studio/components/interfaces/SQLEditor/SQLTemplates/SQLCard.tsx b/studio/components/interfaces/SQLEditor/SQLTemplates/SQLCard.tsx index 93cc106859d..028c6f468ac 100644 --- a/studio/components/interfaces/SQLEditor/SQLTemplates/SQLCard.tsx +++ b/studio/components/interfaces/SQLEditor/SQLTemplates/SQLCard.tsx @@ -1,5 +1,5 @@ import { FC, useState } from 'react' -import { Typography, IconChevronRight, IconLoader } from '@supabase/ui' +import { IconChevronRight, IconLoader } from 'ui' import { SQLTemplate } from '../SQLEditor.types' interface Props { @@ -12,27 +12,25 @@ const SQLCard: FC = ({ template }) => { return (
    -
    - - {title} - +
    +
    {title}
    {loading ? (
    ) : ( - +

    - +

    )}
    -

    - {description} +

    +

    {description}

    ) diff --git a/studio/components/interfaces/SQLEditor/SQLTemplates/SQLTemplates.tsx b/studio/components/interfaces/SQLEditor/SQLTemplates/SQLTemplates.tsx index 957ebf8b10d..d332d4e9159 100644 --- a/studio/components/interfaces/SQLEditor/SQLTemplates/SQLTemplates.tsx +++ b/studio/components/interfaces/SQLEditor/SQLTemplates/SQLTemplates.tsx @@ -1,6 +1,5 @@ import { FC } from 'react' import Link from 'next/link' -import { Typography } from '@supabase/ui' import { observer } from 'mobx-react-lite' import { partition } from 'lodash' @@ -19,15 +18,13 @@ const SQLTemplates: FC = ({}) => {
    - - Scripts - - +

    Scripts

    +

    Quick scripts to run on your database.
    Click on any script to fill the query box, modify the script, then click - Run. More scripts coming soon! - + Run. More scripts coming soon! +

    {templates.map((template) => ( @@ -41,16 +38,14 @@ const SQLTemplates: FC = ({}) => {
    - - Quick start - - +

    Quick start

    +

    While we're in beta, we want to offer a quick way to explore Supabase. While we build importers, check out these simple starters.
    Click on any script to fill the query box, modify the script, then click{' '} - Run. More coming soon! - + Run. More coming soon! +

    {quickstarts.map((template) => ( diff --git a/studio/components/interfaces/SQLEditor/TabSqlQuery/FavouriteButton.tsx b/studio/components/interfaces/SQLEditor/TabSqlQuery/FavouriteButton.tsx new file mode 100644 index 00000000000..2fa72f0da54 --- /dev/null +++ b/studio/components/interfaces/SQLEditor/TabSqlQuery/FavouriteButton.tsx @@ -0,0 +1,137 @@ +import { observer } from 'mobx-react-lite' +import { useState } from 'react' +import { Button, IconHeart } from 'ui' + +import * as Tooltip from '@radix-ui/react-tooltip' +import { useStore } from 'hooks' +import Telemetry from 'lib/telemetry' +import { useSqlStore } from 'localStores/sqlEditor/SqlEditorStore' + +const FavouriteButton = () => { + const { ui, content: contentStore } = useStore() + const { profile: user } = ui + + const sqlEditorStore: any = useSqlStore() + + const [loading, setLoading] = useState(false) + + const id = sqlEditorStore.activeTab.id + + /* + * `content` column json structure + */ + let contentPayload = { + schema_version: '1.0', + content_id: id, + sql: sqlEditorStore.activeTab.query, + } + + async function addToFavorite() { + try { + setLoading(true) + /* + * remote db handling + */ + await contentStore.updateSql(id, { + content: { + ...contentPayload, + favorite: true, + }, + }) + + /* + * old localstorage handling + */ + const { query, name, desc } = sqlEditorStore.activeTab || {} + sqlEditorStore.addToFavorite(id, query, name, desc) + Telemetry.sendEvent('sql_editor', 'sql_favourited', name) + + /* + * reload sql data in store and re-select tab + */ + sqlEditorStore.loadTabs(sqlEditorStore.tabsFromContentStore(contentStore, user?.id), false) + sqlEditorStore.selectTab(id) + + setLoading(false) + } catch (error: any) { + ui.setNotification({ + error, + category: 'error', + message: `Failed to add to favourites: ${error.message}`, + }) + setLoading(false) + } + } + + async function unFavorite() { + const id = sqlEditorStore.activeTab.id + try { + setLoading(true) + /* + * remote db handling + */ + await contentStore.updateSql(id, { + content: { + ...contentPayload, + favorite: false, + }, + }) + + /* + * old localstorage handling + */ + const { name } = sqlEditorStore.activeTab || {} + sqlEditorStore.unFavorite(id) + Telemetry.sendEvent('sql_editor', 'sql_unfavourited', name) + + /* + * reload sql data in store and re-select tab + */ + sqlEditorStore.loadTabs(sqlEditorStore.tabsFromContentStore(contentStore, user?.id), false) + sqlEditorStore.selectTab(id) + setLoading(false) + } catch (error: any) { + ui.setNotification({ + error, + category: 'error', + message: `Failed to remove from favourites: ${error.message}`, + }) + setLoading(false) + } + } + + const isFavorite = sqlEditorStore.activeTab.favorite + + return ( + <> + + + +
    + + {isFavorite ? 'Remove' : 'Add'} this query {isFavorite ? 'from' : 'to'} your + Favourites + +
    +
    + + + )} + {(content.savingState === 'CREATING' || content.savingState === 'UPDATING') && ( + + + + + + +
    + Saving changes... +
    +
    +
    + )} + {(content.savingState === 'CREATING_FAILED' || content.savingState === 'UPDATING_FAILED') && ( + + )} + {showSavedText && ( + + + + + + +
    + All changes saved +
    +
    +
    + )} + + {content.savingState === 'CREATING_FAILED' && 'Failed to create'} + {content.savingState === 'UPDATING_FAILED' && 'Failed to save'} + +
    + ) +} + +export default observer(SavingIndicator) diff --git a/studio/components/interfaces/SQLEditor/TabSqlQuery/SizeToggleButton.tsx b/studio/components/interfaces/SQLEditor/TabSqlQuery/SizeToggleButton.tsx new file mode 100644 index 00000000000..f96f39d0018 --- /dev/null +++ b/studio/components/interfaces/SQLEditor/TabSqlQuery/SizeToggleButton.tsx @@ -0,0 +1,50 @@ +import { observer } from 'mobx-react-lite' +import { useSqlStore } from 'localStores/sqlEditor/SqlEditorStore' +import { Button, IconChevronDown, IconChevronUp } from 'ui' + +const SizeToggleButton = () => { + const sqlEditorStore: any = useSqlStore() + + function maximizeEditor() { + sqlEditorStore.activeTab.collapseUtilityTab() + } + + function restorePanelSize() { + sqlEditorStore.activeTab.restorePanelSize() + } + + return ( + <> + {sqlEditorStore.activeTab.utilityTabHeight != 0 && ( + + + ) +} + +export default observer(UtilityActions) diff --git a/studio/components/interfaces/SQLEditor/Toolbar.tsx b/studio/components/interfaces/SQLEditor/Toolbar.tsx deleted file mode 100644 index 304ead7333f..00000000000 --- a/studio/components/interfaces/SQLEditor/Toolbar.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { FC } from 'react' -import { - Button, - Dropdown, - Typography, - IconDownload, - IconCopy, - IconChevronDown, - IconHeart, -} from '@supabase/ui' - -interface Props { - isRunning: boolean - runQuery: () => void - onSelectDownload: () => void - onSelectCopy: () => void - onSelectFavourite: () => void -} - -const Toolbar: FC = ({ - isRunning, - runQuery = () => {}, - onSelectDownload = () => {}, - onSelectCopy = () => {}, - onSelectFavourite = () => {}, -}) => { - return ( -
    -
    - } - onClick={onSelectDownload} - > - Download as CSV - , - } - onClick={onSelectCopy} - > - Copy as markdown - , - ]} - > - - -
    -
    - - -
    -
    - ) -} - -export default Toolbar diff --git a/studio/components/interfaces/SQLEditor/index.ts b/studio/components/interfaces/SQLEditor/index.ts index 202285e3eaa..5ce7f8a5bc0 100644 --- a/studio/components/interfaces/SQLEditor/index.ts +++ b/studio/components/interfaces/SQLEditor/index.ts @@ -1,5 +1,3 @@ -import SQLEditor from './SQLEditor' import SQLTemplates from './SQLTemplates/SQLTemplates' export { SQLTemplates } -export default SQLEditor diff --git a/studio/components/interfaces/Settings/API/API.constants.ts b/studio/components/interfaces/Settings/API/API.constants.ts new file mode 100644 index 00000000000..4090595ed24 --- /dev/null +++ b/studio/components/interfaces/Settings/API/API.constants.ts @@ -0,0 +1,23 @@ +import { JwtSecretUpdateError, JwtSecretUpdateProgress } from '@supabase/shared-types/out/events' + +export const JWT_SECRET_UPDATE_ERROR_MESSAGES = { + [JwtSecretUpdateError.APIServicesConfigurationUpdateFailed]: + 'failed to update configuration for API services', + [JwtSecretUpdateError.APIServicesRestartFailed]: 'failed to restart API services', + [JwtSecretUpdateError.DatabaseAdminAPIConfigurationUpdateFailed]: + 'failed to update configuration for database admin API', + [JwtSecretUpdateError.PostgreSQLRestartFailed]: 'failed to restart PostgreSQL service', + [JwtSecretUpdateError.SupabaseAPIKeyUpdateFailed]: 'failed to update Supabase API key', + [JwtSecretUpdateError.APIGatewayUpdateFailed]: 'failed to update API Gateway', +} + +export const JWT_SECRET_UPDATE_PROGRESS_MESSAGES = { + [JwtSecretUpdateProgress.RestartedAPIServices]: 'restarted API services', + [JwtSecretUpdateProgress.RestartedPostgreSQL]: 'restarted PostgreSQL service', + [JwtSecretUpdateProgress.Started]: 'started updating', + [JwtSecretUpdateProgress.UpdatedAPIServicesConfiguration]: + 'updated configuration for API services', + [JwtSecretUpdateProgress.UpdatedDatabaseAdminAPIConfiguration]: + 'updated configuration for database admin API', + [JwtSecretUpdateProgress.UpdatedAPIGatewayConfiguration]: 'updated configuration for API Gateway', +} diff --git a/studio/components/interfaces/Settings/API/JWTSettings.tsx b/studio/components/interfaces/Settings/API/JWTSettings.tsx new file mode 100644 index 00000000000..19e29a9334a --- /dev/null +++ b/studio/components/interfaces/Settings/API/JWTSettings.tsx @@ -0,0 +1,321 @@ +import { FC, useState, Dispatch, SetStateAction } from 'react' +import { useRouter } from 'next/router' +import * as Tooltip from '@radix-ui/react-tooltip' +import { + Alert, + Button, + Dropdown, + Input, + Modal, + IconEye, + IconEyeOff, + IconKey, + IconLoader, + IconChevronDown, + IconRefreshCw, + IconPenTool, + IconAlertCircle, +} from 'ui' +import { + JwtSecretUpdateError, + JwtSecretUpdateProgress, + JwtSecretUpdateStatus, +} from '@supabase/shared-types/out/events' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { uuidv4 } from 'lib/helpers' +import { + useStore, + useJwtSecretUpdateStatus, + useProjectPostgrestConfig, + checkPermissions, +} from 'hooks' +import { API_URL } from 'lib/constants' +import { + JWT_SECRET_UPDATE_ERROR_MESSAGES, + JWT_SECRET_UPDATE_PROGRESS_MESSAGES, +} from './API.constants' +import Panel from 'components/ui/Panel' +import ConfirmModal from 'components/ui/Dialogs/ConfirmDialog' +import { patch } from 'lib/common/fetch' + +interface Props {} + +const JWTSettings: FC = ({}) => { + const { ui } = useStore() + const router = useRouter() + const { ref } = router.query + + const [customToken, setCustomToken] = useState('') + const [showCustomTokenInput, setShowCustomTokenInput] = useState(false) + const [isCreatingKey, setIsCreatingKey] = useState(false) + const [isRegeneratingKey, setIsGeneratingKey] = useState(false) + const [isSubmittingJwtSecretUpdateRequest, setIsSubmittingJwtSecretUpdateRequest] = + useState(false) + + const canReadJWTSecret = checkPermissions(PermissionAction.READ, 'field.jwt_secret') + const canGenerateNewJWTSecret = checkPermissions( + PermissionAction.INFRA_EXECUTE, + 'queue_job.projects.update_jwt' + ) + + const { + changeTrackingId, + jwtSecretUpdateError, + jwtSecretUpdateProgress, + jwtSecretUpdateStatus, + mutateJwtSecretUpdateStatus, + }: any = useJwtSecretUpdateStatus(ref) + + const { config, isError } = useProjectPostgrestConfig(ref as string | undefined) + + const { Failed, Updated, Updating } = JwtSecretUpdateStatus + + const isJwtSecretUpdateFailed = jwtSecretUpdateStatus === Failed + const isNotUpdatingJwtSecret = + jwtSecretUpdateStatus === undefined || jwtSecretUpdateStatus === Updated + const isUpdatingJwtSecret = jwtSecretUpdateStatus === Updating + const jwtSecretUpdateErrorMessage = + JWT_SECRET_UPDATE_ERROR_MESSAGES[jwtSecretUpdateError as JwtSecretUpdateError] + const jwtSecretUpdateProgressMessage = + JWT_SECRET_UPDATE_PROGRESS_MESSAGES[jwtSecretUpdateProgress as JwtSecretUpdateProgress] + + async function handleJwtSecretUpdate( + jwt_secret: string, + setModalVisibility: Dispatch> + ) { + setIsSubmittingJwtSecretUpdateRequest(true) + try { + const trackingId = uuidv4() + const res = await patch(`${API_URL}/projects/${ref}/config/secrets`, { + jwt_secret, + change_tracking_id: trackingId, + }) + if (res.error) throw res.error + setModalVisibility(false) + mutateJwtSecretUpdateStatus() + ui.setNotification({ + category: 'info', + message: + 'Successfully submitted JWT secret update request. Please wait while your project is updated.', + }) + } catch (error: any) { + ui.setNotification({ category: 'error', message: error.message }) + } finally { + setIsSubmittingJwtSecretUpdateRequest(false) + } + } + + return ( + <> + JWT Settings}> + + {isError ? ( +
    + +

    Failed to retrieve JWT settings

    +
    + ) : ( + <> + +
    +
    + {isUpdatingJwtSecret ? ( +
    + +

    + Updating JWT secret: {jwtSecretUpdateProgressMessage} +

    +
    + ) : ( +
    +
    +
    +

    Generate a new JWT secret

    +

    + A random secret will be created, or you can create your own. +

    +
    +
    + {isUpdatingJwtSecret ? ( + + ) : !canGenerateNewJWTSecret ? ( + + + + + + +
    + + You need additional permissions to generate a new JWT secret + +
    +
    +
    + ) : ( + + setIsGeneratingKey(true)} + icon={} + > + Generate a random secret + + + setIsCreatingKey(true)} + icon={} + > + Create my own secret + + + } + > + + + )} +
    +
    +
    + )} +
    + {isJwtSecretUpdateFailed ? ( + + Please try again. If the failures persist, please contact Supabase support with + the following details:
    + Change tracking ID: {changeTrackingId}
    + Error message: {jwtSecretUpdateErrorMessage} +
    + ) : canGenerateNewJWTSecret ? ( + + Generating a new JWT secret will invalidate all of your API keys, + including your service_role and anon keys. Your + project will also be restarted during this process, which will terminate any + existing connections. + + ) : ( + <> + )} +
    + + )} +
    +
    + setIsGeneratingKey(false)} + onSelectConfirm={() => handleJwtSecretUpdate('ROLL', setIsGeneratingKey)} + /> + + + + +
    + } + > + +
    +

    + Create a custom JWT secret. Make sure it is a strong combination of characters that + cannot be guessed easily. +

    + + setCustomToken(e.target.value)} + value={customToken} + icon={} + type={showCustomTokenInput ? 'text' : 'password'} + className="w-full text-left" + label="Custom JWT secret" + descriptionText="Minimally 32 characters long, '@' and '$' are not allowed." + actions={ +
    +
    + } + /> +
    +
    + + + ) +} + +export default JWTSettings diff --git a/studio/components/interfaces/Settings/API/PostgrestConfig.tsx b/studio/components/interfaces/Settings/API/PostgrestConfig.tsx new file mode 100644 index 00000000000..4b9f945dff6 --- /dev/null +++ b/studio/components/interfaces/Settings/API/PostgrestConfig.tsx @@ -0,0 +1,198 @@ +import { useContext, FC, useEffect } from 'react' +import { indexOf } from 'lodash' +import { useRouter } from 'next/router' +import { observer } from 'mobx-react-lite' +import { Input, Form, IconAlertCircle, InputNumber } from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { checkPermissions, useStore, useProjectPostgrestConfig } from 'hooks' +import { API_URL } from 'lib/constants' +import { patch } from 'lib/common/fetch' +import MultiSelect from 'components/ui/MultiSelect' +import { PageContext } from 'pages/project/[ref]/settings/api' + +import { + FormActions, + FormPanel, + FormSection, + FormSectionContent, + FormSectionLabel, +} from 'components/ui/Forms' + +interface Props {} + +const PostgrestConfig: FC = ({}) => { + const PageState: any = useContext(PageContext) + const { ui } = useStore() + const { meta } = PageState + + const router = useRouter() + const { ref } = router.query + + const formId = 'project-postgres-config' + const { config, isError, isLoading } = useProjectPostgrestConfig(ref as string | undefined) + + const initialValues = { + db_schema: '', + max_rows: '', + db_extra_search_path: '', + } + + const canUpdatePostgrestConfig = checkPermissions( + PermissionAction.UPDATE, + 'custom_config_postgrest' + ) + + const updateConfig = async (updatedConfig: any) => { + try { + const response = await patch(`${API_URL}/projects/${ref}/config/postgrest`, updatedConfig) + if (response.error) { + throw response.error + } else { + ui.setNotification({ category: 'success', message: 'Successfully saved settings' }) + } + } catch (error: any) { + ui.setNotification({ + error, + category: 'error', + message: `Failed to update config: ${error.message}`, + }) + } + } + + const permanentSchema = ['public', 'storage'] + const hiddenSchema = ['auth', 'pgbouncer', 'hooks', 'extensions'] + const schema = + meta.schemas + .list( + (x: any) => { + const find = indexOf(hiddenSchema, x.name) + if (find < 0) return x + }, + { allSchemas: true } + ) + .map((x: any) => { + return { + id: x.id, + value: x.name, + name: x.name, + disabled: indexOf(permanentSchema, x.name) >= 0 ? true : false, + } + }) ?? [] + + return ( +
    {}} onSubmit={updateConfig}> + {({ isSubmitting, handleReset, resetForm, values, initialValues }: any) => { + const hasChanges = JSON.stringify(values) !== JSON.stringify(initialValues) + + useEffect(() => { + if (!isLoading && config) { + const values = { + db_schema: config.db_schema, + max_rows: config.max_rows, + db_extra_search_path: config.db_extra_search_path ?? '', + } + resetForm({ values, initialValues: values }) + } + }, [isLoading]) + + return ( + <> + API settings

    } + footer={ +
    + +
    + } + > + {isError ? ( +
    + +

    Failed to retrieve API settings

    +
    + ) : ( + <> + Exposed schemas}> + + {schema.length >= 1 && ( + + The schemas to expose in your API. Tables, views and stored procedures + in these schemas will get API endpoints. + public and{' '} + storage are protected by default. + + } + emptyMessage={ + <> + +
    +

    + No schema available to choose +

    +

    + New schemas you create will appear here +

    +
    + + } + // value must be passed as array of strings + value={(values?.db_schema ?? '').replace(/ /g, '').split(',')} + // onChange returns array of strings + onChange={(event) => { + let updatedValues: any = values + updatedValues.db_schema = event.join(', ') + resetForm({ values: updatedValues, initialValues: updatedValues }) + updateConfig({ ...updatedValues }) + }} + /> + )} +
    +
    + Extra search path}> + + + + + Max rows}> + + + + + + )} +
    + + ) + }} + + ) +} + +export default observer(PostgrestConfig) diff --git a/studio/components/interfaces/Settings/API/ServiceList.tsx b/studio/components/interfaces/Settings/API/ServiceList.tsx new file mode 100644 index 00000000000..9638fecf63e --- /dev/null +++ b/studio/components/interfaces/Settings/API/ServiceList.tsx @@ -0,0 +1,108 @@ +import useSWR from 'swr' +import { FC, useEffect, useRef } from 'react' +import { useRouter } from 'next/router' +import { JwtSecretUpdateError, JwtSecretUpdateStatus } from '@supabase/shared-types/out/events' +import { IconAlertCircle, Input } from 'ui' + +import { API_URL } from 'lib/constants' +import { get } from 'lib/common/fetch' +import { + useStore, + useProjectSettings, + useProjectPostgrestConfig, + useJwtSecretUpdateStatus, +} from 'hooks' + +import Panel from 'components/ui/Panel' +import PostgrestConfig from './PostgrestConfig' +import { DisplayApiSettings } from 'components/ui/ProjectSettings' +import { JWT_SECRET_UPDATE_ERROR_MESSAGES } from './API.constants' +import JWTSettings from './JWTSettings' + +interface Props { + projectRef: string +} + +const ServiceList: FC = ({ projectRef }) => { + const { ui } = useStore() + const router = useRouter() + const { ref } = router.query + + const { services, isError, mutateSettings } = useProjectSettings(ref as string | undefined) + const { mutateConfig } = useProjectPostgrestConfig(ref as string | undefined) + const { jwtSecretUpdateError, jwtSecretUpdateStatus }: any = useJwtSecretUpdateStatus(ref) + + const previousJwtSecretUpdateStatus = useRef() + const { Failed, Updated, Updating } = JwtSecretUpdateStatus + const jwtSecretUpdateErrorMessage = + JWT_SECRET_UPDATE_ERROR_MESSAGES[jwtSecretUpdateError as JwtSecretUpdateError] + + useEffect(() => { + if (previousJwtSecretUpdateStatus.current === Updating) { + switch (jwtSecretUpdateStatus) { + case Updated: + mutateConfig() + mutateSettings() + ui.setNotification({ category: 'success', message: 'Successfully updated JWT secret' }) + break + case Failed: + ui.setNotification({ + category: 'error', + message: `JWT secret update failed: ${jwtSecretUpdateErrorMessage}`, + }) + break + } + } + + previousJwtSecretUpdateStatus.current = jwtSecretUpdateStatus + }, [jwtSecretUpdateStatus]) + + // Get the API service + const API_SERVICE_ID = 1 + const apiService = services ? services.find((x: any) => x.app.id == API_SERVICE_ID) : {} + const apiConfig = apiService?.app_config + + return ( + <> +
    +
    + Project URL}> + + {isError ? ( +
    + +

    Failed to retrieve project URL

    +
    + ) : ( + + )} +
    +
    +
    + +
    + +
    + +
    + +
    + +
    + +
    +
    + + ) +} + +export default ServiceList diff --git a/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectButton.tsx b/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectButton.tsx index 45d2d1d9c87..edfff4083d4 100644 --- a/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectButton.tsx +++ b/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectButton.tsx @@ -1,6 +1,6 @@ import { FC, useState } from 'react' import { useRouter } from 'next/router' -import { Button } from '@supabase/ui' +import { Button } from 'ui' import * as Tooltip from '@radix-ui/react-tooltip' import { useStore, checkPermissions, useFlag } from 'hooks' @@ -65,11 +65,11 @@ const DeleteProjectButton: FC = ({ type = 'danger' }) => {
    - + You need additional permissions to delete this project
    diff --git a/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectPanel.tsx b/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectPanel.tsx index f6a75ee3aa6..b5bdafb317d 100644 --- a/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectPanel.tsx +++ b/studio/components/interfaces/Settings/General/DeleteProjectPanel/DeleteProjectPanel.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { Alert } from '@supabase/ui' +import { Alert } from 'ui' import { useStore } from 'hooks' import Panel from 'components/ui/Panel' diff --git a/studio/components/interfaces/Settings/General/General.tsx b/studio/components/interfaces/Settings/General/General.tsx index b14935f30b2..6ca7d6cd1ef 100644 --- a/studio/components/interfaces/Settings/General/General.tsx +++ b/studio/components/interfaces/Settings/General/General.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { Form, Input } from '@supabase/ui' +import { Form, Input } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' import { useStore, checkPermissions, useFlag } from 'hooks' @@ -59,21 +59,17 @@ const General: FC = ({}) => { - {!canUpdateProject && ( -

    - You need additional permissions to manage this project's settings -

    - )} +
    } diff --git a/studio/components/interfaces/Settings/General/Infrastructure/Infrastructure.tsx b/studio/components/interfaces/Settings/General/Infrastructure/Infrastructure.tsx index eab6ab727df..bd21e2a3bcc 100644 --- a/studio/components/interfaces/Settings/General/Infrastructure/Infrastructure.tsx +++ b/studio/components/interfaces/Settings/General/Infrastructure/Infrastructure.tsx @@ -1,8 +1,8 @@ import { FC } from 'react' -import { Input } from '@supabase/ui' +import { Input } from 'ui' import { observer } from 'mobx-react-lite' -import { useStore, useFlag } from 'hooks' +import { useStore } from 'hooks' import { PRICING_TIER_PRODUCT_IDS } from 'lib/constants' import { FormHeader, @@ -18,7 +18,6 @@ interface Props {} const Infrastructure: FC = ({}) => { const { ui } = useStore() - const isProjectPauseEnabled = useFlag('projectPausing') const project = ui.selectedProject const isFreeProject = project?.subscription_tier === PRICING_TIER_PRODUCT_IDS.FREE @@ -33,22 +32,22 @@ const Infrastructure: FC = ({}) => {

    Restart server

    -

    +

    Your project will not be available for a few minutes.

    - {project && } + {project && }
    - {isProjectPauseEnabled && isFreeProject && ( + {isFreeProject && ( <>

    Pause project

    -

    +

    Your project will not be accessible while it is paused.

    diff --git a/studio/components/interfaces/Settings/General/Infrastructure/PauseProjectButton.tsx b/studio/components/interfaces/Settings/General/Infrastructure/PauseProjectButton.tsx index 255ea80ae5a..06d68b8ef2a 100644 --- a/studio/components/interfaces/Settings/General/Infrastructure/PauseProjectButton.tsx +++ b/studio/components/interfaces/Settings/General/Infrastructure/PauseProjectButton.tsx @@ -2,7 +2,7 @@ import { FC, useState } from 'react' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' import * as Tooltip from '@radix-ui/react-tooltip' -import { Button, IconPause } from '@supabase/ui' +import { Button, IconPause } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' import { checkPermissions, useStore, useFlag } from 'hooks' @@ -78,11 +78,11 @@ const PauseProjectButton: FC = observer(({ projectRef, projectId }) => {
    - + You need additional permissions to pause this project
    diff --git a/studio/components/interfaces/Settings/General/Infrastructure/RestartServerButton.tsx b/studio/components/interfaces/Settings/General/Infrastructure/RestartServerButton.tsx index 39a53889548..adbc60926ea 100644 --- a/studio/components/interfaces/Settings/General/Infrastructure/RestartServerButton.tsx +++ b/studio/components/interfaces/Settings/General/Infrastructure/RestartServerButton.tsx @@ -2,80 +2,135 @@ import { FC, useState } from 'react' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' import * as Tooltip from '@radix-ui/react-tooltip' -import { Button, IconRefreshCcw } from '@supabase/ui' import { PermissionAction } from '@supabase/shared-types/out/constants' +import { Button, Dropdown, IconChevronDown } from 'ui' +import { Project } from 'types' import { useStore, checkPermissions } from 'hooks' import { post } from 'lib/common/fetch' import { API_URL } from 'lib/constants' import ConfirmModal from 'components/ui/Dialogs/ConfirmDialog' interface Props { - projectId: number - projectRef: string + project: Project } -const RestartServerButton: FC = observer(({ projectRef, projectId }) => { +const RestartServerButton: FC = ({ project }) => { const { ui, app } = useStore() const router = useRouter() const [loading, setLoading] = useState(false) - const [isModalOpen, setIsModalOpen] = useState(false) + const [serviceToRestart, setServiceToRestart] = useState<'project' | 'database'>() - const openModal = () => setIsModalOpen(true) - const closeModal = () => setIsModalOpen(false) + const projectId = project.id + const projectRef = project.ref + const projectRegion = project.region const canRestartProject = checkPermissions(PermissionAction.INFRA_EXECUTE, 'reboot') - const requestServerRestart = async () => { + const requestProjectRestart = async () => { if (!canRestartProject) { return ui.setNotification({ category: 'error', message: 'You do not have the required permissions to restart this project', }) } - setLoading(true) const res = await post(`${API_URL}/projects/${projectRef}/restart`, {}) + if (res.error) onRestartFailed(res.error, 'project') + else onRestartSuccess() + } - if (res.error) { - ui.setNotification({ - error: res.error, + const requestDatabaseRestart = async () => { + if (!canRestartProject) { + return ui.setNotification({ category: 'error', - message: 'Unable to restart server', + message: 'You do not have the required permissions to restart this project', }) - setLoading(false) - } else { - app.onProjectPostgrestStatusUpdated(projectId, 'OFFLINE') - ui.setNotification({ category: 'success', message: 'Restarting server' }) - router.push(`/project/${projectRef}`) } - closeModal() + setLoading(true) + const res = await post(`${API_URL}/projects/${projectRef}/restart-services`, { + restartRequest: { + region: projectRegion, + services: ['postgresql'], + }, + }) + if (res.error) onRestartFailed(res.error, 'database') + else onRestartSuccess() + } + + const onRestartFailed = (error: any, type: string) => { + ui.setNotification({ + error, + category: 'error', + message: `Unable to restart ${type}`, + }) + setLoading(false) + setServiceToRestart(undefined) + } + + const onRestartSuccess = () => { + app.onProjectPostgrestStatusUpdated(projectId, 'OFFLINE') + ui.setNotification({ category: 'success', message: 'Restarting server' }) + router.push(`/project/${projectRef}`) + setLoading(false) + setServiceToRestart(undefined) } return ( <> - +
    + + {canRestartProject && ( + { + setServiceToRestart('database') + }} + > +
    +

    Fast database reboot

    +

    + Restarts only the database - faster but may not be able to recover from all + failure modes +

    +
    + , + ]} + > +
    {!canRestartProject && (
    - + You need additional permissions to restart this project
    @@ -84,16 +139,29 @@ const RestartServerButton: FC = observer(({ projectRef, projectId }) => {
    + Are you sure you want to restart the{' '} + {serviceToRestart}? There will be a few minutes + of downtime. + + } buttonLabel="Restart" buttonLoadingLabel="Restarting" - onSelectCancel={closeModal} - onSelectConfirm={requestServerRestart} + onSelectCancel={() => setServiceToRestart(undefined)} + onSelectConfirm={async () => { + if (serviceToRestart === 'project') { + await requestProjectRestart() + } else if (serviceToRestart === 'database') { + await requestDatabaseRestart() + } + }} /> ) -}) +} -export default RestartServerButton +export default observer(RestartServerButton) diff --git a/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DatabaseApiColumnRender.tsx b/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DatabaseApiColumnRender.tsx index 1754db68099..fc5e883d2a0 100644 --- a/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DatabaseApiColumnRender.tsx +++ b/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DatabaseApiColumnRender.tsx @@ -1,16 +1,19 @@ -import { ResponseCodeFormatter, TimestampLocalFormatter } from '../LogsFormatters' +import { + ResponseCodeFormatter, + RowLayout, + TextFormatter, + TimestampLocalFormatter, +} from '../LogsFormatters' export default [ { formatter: (data: any) => ( -
    + -
    - - {data.row.request.method} - {data.row.request.path} -
    -
    + + + + ), }, ] diff --git a/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DatabasePostgresColumnRender.tsx b/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DatabasePostgresColumnRender.tsx index e0f5df77216..26dcc8d23a2 100644 --- a/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DatabasePostgresColumnRender.tsx +++ b/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DatabasePostgresColumnRender.tsx @@ -1,19 +1,18 @@ -import { SeverityFormatter, TimestampLocalFormatter } from '../LogsFormatters' +import { + RowLayout, + SeverityFormatter, + TextFormatter, + TimestampLocalFormatter, +} from '../LogsFormatters' export default [ { formatter: (data: any) => ( -
    -
    - -
    - -
    -
    -
    - {data.row.event_message} -
    -
    + + + + + ), }, ] diff --git a/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DefaultPreviewColumnRenderer.tsx b/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DefaultPreviewColumnRenderer.tsx index adcf1c7ab1f..4f84b89bba9 100644 --- a/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DefaultPreviewColumnRenderer.tsx +++ b/studio/components/interfaces/Settings/Logs/LogColumnRenderers/DefaultPreviewColumnRenderer.tsx @@ -1,16 +1,13 @@ import { PreviewLogData } from '..' -import { TimestampLocalFormatter } from '../LogsFormatters' +import { RowLayout, TextFormatter, TimestampLocalFormatter } from '../LogsFormatters' -const DefaultPreviewColumnRenderer = [ +export default [ { - formatter: (data: { row: PreviewLogData }) => { - return ( -
    - - {data.row.event_message} -
    - ) - }, + formatter: (data: { row: PreviewLogData }) => ( + + + + + ), }, ] -export default DefaultPreviewColumnRenderer diff --git a/studio/components/interfaces/Settings/Logs/LogColumnRenderers/FunctionsEdgeColumnRender.tsx b/studio/components/interfaces/Settings/Logs/LogColumnRenderers/FunctionsEdgeColumnRender.tsx index bb495ab5deb..3b53839536d 100644 --- a/studio/components/interfaces/Settings/Logs/LogColumnRenderers/FunctionsEdgeColumnRender.tsx +++ b/studio/components/interfaces/Settings/Logs/LogColumnRenderers/FunctionsEdgeColumnRender.tsx @@ -1,36 +1,19 @@ -import { HeaderFormmater, ResponseCodeFormatter, TimestampLocalFormatter } from '../LogsFormatters' +import { + ResponseCodeFormatter, + RowLayout, + TextFormatter, + TimestampLocalFormatter, +} from '../LogsFormatters' export default [ { - key: 'timestamp', - headerRenderer: () => ( -
    - -
    + formatter: (data: any) => ( + + + + + + ), - name: 'timestamp', - formatter: (data: any) => , - width: 128, - }, - { - key: 'status_code', - headerRenderer: () => , - name: 'status_code', - formatter: (data: any) => , - - width: 0, - resizable: true, - }, - { - key: 'method', - headerRenderer: () => , - width: 0, - resizable: true, - }, - { - key: 'id', - headerRenderer: () => , - name: 'id', - resizable: true, }, ] diff --git a/studio/components/interfaces/Settings/Logs/LogColumnRenderers/FunctionsLogsColumnRender.tsx b/studio/components/interfaces/Settings/Logs/LogColumnRenderers/FunctionsLogsColumnRender.tsx index a8b2aead5fe..ec3b36648dd 100644 --- a/studio/components/interfaces/Settings/Logs/LogColumnRenderers/FunctionsLogsColumnRender.tsx +++ b/studio/components/interfaces/Settings/Logs/LogColumnRenderers/FunctionsLogsColumnRender.tsx @@ -1,31 +1,22 @@ -import { HeaderFormmater, SeverityFormatter, TimestampLocalFormatter } from '../LogsFormatters' +import { + RowLayout, + SeverityFormatter, + TextFormatter, + TimestampLocalFormatter, +} from '../LogsFormatters' export default [ { - key: 'timestamp', - headerRenderer: () => ( -
    - -
    - ), - name: 'timestamp', formatter: (data: any) => ( - + + + {data.row.event_type === 'uncaughtException' ? ( + + ) : ( + + )} + + ), - width: 128, - resizable: true, - }, - { - key: 'level', - headerRenderer: () => , - name: 'level', - formatter: (data: any) => , - width: 24, - resizable: true, - }, - { - key: 'event_message', - headerRenderer: () => , - resizable: true, }, ] diff --git a/studio/components/interfaces/Settings/Logs/LogEventChart.tsx b/studio/components/interfaces/Settings/Logs/LogEventChart.tsx index 79a680f3040..ac4e51cca10 100644 --- a/studio/components/interfaces/Settings/Logs/LogEventChart.tsx +++ b/studio/components/interfaces/Settings/Logs/LogEventChart.tsx @@ -1,99 +1,116 @@ import { BarChart } from 'components/to-be-cleaned/Charts/ChartRenderer' import dayjs from 'dayjs' -import { LogData } from '.' +import { EventChartData, isUnixMicro, LogData, unixMicroToIsoTimestamp } from '.' import { useMemo } from 'react' interface Props { - data?: LogData[] - onBarClick: (timestamp: number) => void + data?: EventChartData[] + onBarClick: (isoTimestamp: string) => void } -type TimestampMap = { [timestamp: number]: number } const LogEventChart: React.FC = ({ data, onBarClick }) => { if (!data) return null - const aggregated = useAggregated(data) + // TODO: remove once endpoint returns iso timestamp directly + const transformedData = useMemo(() => { + return data.map((d) => { + const iso = isUnixMicro(d.timestamp) + ? unixMicroToIsoTimestamp(d.timestamp) + : dayjs(d.timestamp).toISOString() + + return { + ...d, + timestamp: iso, + // needed for bar chart + // TODO: remove once bar chart is refactored + period_start: iso, + } + }) + }, [JSON.stringify(data)]) return ( { if (!v || !v?.activePayload?.[0]?.payload) return - const timestamp = v.activePayload[0].payload.timestamp + const unixOrIsoTimestamp = v.activePayload[0].payload.timestamp + const isoTimestamp = isUnixMicro(unixOrIsoTimestamp) + ? unixMicroToIsoTimestamp(unixOrIsoTimestamp) + : unixOrIsoTimestamp // 60s before - onBarClick((Number(timestamp) + 60) * 1000 * 1000) + onBarClick(isoTimestamp) }} - customDateFormat="MMM D, HH:mm" + customDateFormat="MMM D, HH:mm:s" noDataMessage={''} /> ) } -const useAggregated = (data: LogData[]) => { - const truncateToMinute = (micro: number) => Math.floor(micro / 1000 / 1000 / 60) * 60 - const truncateToHour = (micro: number) => Math.floor(micro / 1000 / 1000 / 60 / 60) * 60 * 60 - const getDiffMinute = (currentTimestamp: number, olderTimestamp: number) => - Math.round((currentTimestamp - olderTimestamp) / 1000 / 60) - const getDiffHour = (currentTimestamp: number, olderTimestamp: number) => - Math.round((currentTimestamp - olderTimestamp) / 1000 / 60 / 60) - const diffMultiplierMinute = (v: number) => v * 60 - const diffMultiplierHour = (v: number) => v * 60 * 60 - return useMemo(() => { - const oldest = data[data.length - 1] - if (!oldest) return - const latest = data[0] - const oldestDayjs = dayjs(oldest.timestamp / 1000) - const latestDayjs = dayjs(latest.timestamp / 1000) - let truncFunc = truncateToMinute - let getDiff = getDiffMinute - let diffMultiplier = diffMultiplierMinute - if (Math.abs(oldestDayjs.diff(latestDayjs, 'day', true)) > 0.25) { - truncFunc = truncateToHour - getDiff = getDiffHour - diffMultiplier = diffMultiplierHour - } +// const useAggregated = (data: LogData[]) => { +// const truncateToMinute = (micro: number) => Math.floor(micro / 1000 / 1000 / 60) * 60 +// const truncateToHour = (micro: number) => Math.floor(micro / 1000 / 1000 / 60 / 60) * 60 * 60 +// const getDiffMinute = (currentTimestamp: number, olderTimestamp: number) => +// Math.round((currentTimestamp - olderTimestamp) / 1000 / 60) +// const getDiffHour = (currentTimestamp: number, olderTimestamp: number) => +// Math.round((currentTimestamp - olderTimestamp) / 1000 / 60 / 60) +// const diffMultiplierMinute = (v: number) => v * 60 +// const diffMultiplierHour = (v: number) => v * 60 * 60 +// return useMemo(() => { +// const oldest = data[data.length - 1] +// if (!oldest) return +// const latest = data[0] +// const oldestDayjs = dayjs(oldest.timestamp / 1000) +// const latestDayjs = dayjs(latest.timestamp / 1000) +// let truncFunc = truncateToMinute +// let getDiff = getDiffMinute +// let diffMultiplier = diffMultiplierMinute +// if (Math.abs(oldestDayjs.diff(latestDayjs, 'day', true)) > 0.25) { +// truncFunc = truncateToHour +// getDiff = getDiffHour +// diffMultiplier = diffMultiplierHour +// } - const countMap = data - .map((d) => { - // truncate to per-minute - return { ...d, timestamp: truncateToMinute(d.timestamp) } - }) - .reduce((acc, d) => { - if (acc[d.timestamp]) { - acc[d.timestamp] = acc[d.timestamp] + 1 - } else { - acc[d.timestamp] = 1 - } - return acc - }, {} as TimestampMap) +// const countMap = data +// .map((d) => { +// // truncate to per-minute +// return { ...d, timestamp: truncateToMinute(d.timestamp) } +// }) +// .reduce((acc, d) => { +// if (acc[d.timestamp]) { +// acc[d.timestamp] = acc[d.timestamp] + 1 +// } else { +// acc[d.timestamp] = 1 +// } +// return acc +// }, {} as TimestampMap) - // Add in additional data points for empty minutes - const oldestEvent = data[data.length - 1] - if (!oldestEvent) return [] - const currentTimestamp = new Date().getTime() - const oldestTimestampMicro = oldestEvent.timestamp - const latestTimestamp = truncFunc(data[0]['timestamp']) - const diff = getDiff(currentTimestamp, oldestTimestampMicro / 1000) - for (const toAdd of Array.from(Array(diff).keys())) { - const tsToCheck = truncFunc(oldestTimestampMicro) + diffMultiplier(toAdd) - if (!(tsToCheck in countMap) && tsToCheck <= latestTimestamp) { - countMap[tsToCheck] = 0 - } - } +// // Add in additional data points for empty minutes +// const oldestEvent = data[data.length - 1] +// if (!oldestEvent) return [] +// const currentTimestamp = new Date().getTime() +// const oldestTimestampMicro = oldestEvent.timestamp +// const latestTimestamp = truncFunc(data[0]['timestamp']) +// const diff = getDiff(currentTimestamp, oldestTimestampMicro / 1000) +// for (const toAdd of Array.from(Array(diff).keys())) { +// const tsToCheck = truncFunc(oldestTimestampMicro) + diffMultiplier(toAdd) +// if (!(tsToCheck in countMap) && tsToCheck <= latestTimestamp) { +// countMap[tsToCheck] = 0 +// } +// } - let aggregated = [] - for (const [key, value] of Object.entries(countMap)) { - const v: number = Number(key) - aggregated.push({ - timestamp: key, - timestampMicro: v * 1000 * 1000, - count: value, - }) - } - return aggregated.sort((a, b) => a.timestampMicro - b.timestampMicro) - }, [JSON.stringify(data)]) -} +// let aggregated = [] +// for (const [key, value] of Object.entries(countMap)) { +// const v: number = Number(key) +// aggregated.push({ +// timestamp: key, +// timestampMicro: v * 1000 * 1000, +// count: value, +// }) +// } +// return aggregated.sort((a, b) => a.timestampMicro - b.timestampMicro) +// }, [JSON.stringify(data)]) +// } export default LogEventChart diff --git a/studio/components/interfaces/Settings/Logs/LogSelection.tsx b/studio/components/interfaces/Settings/Logs/LogSelection.tsx index ea4388fd99e..01cc5473042 100644 --- a/studio/components/interfaces/Settings/Logs/LogSelection.tsx +++ b/studio/components/interfaces/Settings/Logs/LogSelection.tsx @@ -1,19 +1,15 @@ import { FC } from 'react' -import { IconX, Loading } from '@supabase/ui' +import { IconX } from 'ui' import { LogData, QueryType } from './Logs.types' -import DatabaseApiSelectionRender, { - DatabaseApiSelectionHeaderRender, -} from './LogSelectionRenderers/DatabaseApiSelectionRender' +import DatabaseApiSelectionRender from './LogSelectionRenderers/DatabaseApiSelectionRender' import DatabasePostgresSelectionRender from './LogSelectionRenderers/DatabasePostgresSelectionRender' -import FunctionInvocationSelectionRender, { - FunctionInvocationHeaderRender, -} from './LogSelectionRenderers/FunctionInvocationSelectionRender' +import FunctionInvocationSelectionRender from './LogSelectionRenderers/FunctionInvocationSelectionRender' import FunctionLogsSelectionRender from './LogSelectionRenderers/FunctionLogsSelectionRender' import DefaultExplorerSelectionRenderer from './LogSelectionRenderers/DefaultExplorerSelectionRenderer' import DefaultPreviewSelectionRenderer from './LogSelectionRenderers/DefaultPreviewSelectionRenderer' -import { isDefaultLogPreviewFormat, LogsEndpointParams, LogsTableName } from '.' +import { isDefaultLogPreviewFormat, LogsEndpointParams } from '.' import useSingleLog from 'hooks/analytics/useSingleLog' import Connecting from 'components/ui/Loading/Loading' @@ -71,36 +67,36 @@ const LogSelection: FC = ({ return (
    -
    -
    +
    +
    = ({
    {isLoading && } -
    +
    {!isLoading && }
    diff --git a/studio/components/interfaces/Settings/Logs/LogSelectionRenderers/DatabaseApiSelectionRender.tsx b/studio/components/interfaces/Settings/Logs/LogSelectionRenderers/DatabaseApiSelectionRender.tsx index 40e957d3ae4..16402c0e2e1 100644 --- a/studio/components/interfaces/Settings/Logs/LogSelectionRenderers/DatabaseApiSelectionRender.tsx +++ b/studio/components/interfaces/Settings/Logs/LogSelectionRenderers/DatabaseApiSelectionRender.tsx @@ -37,7 +37,7 @@ const DatabaseApiSelectionRender = ({ log }: any) => {
    -

    Request body

    +

    Request Metadata

               
    {
    -

    - Response{method ? ` ${method}` : null} body -

    +

    Response Metadata

               
    { const DetailedRow = ({ label, value }: { label: string; value: string | React.ReactNode }) => { return (
    -

    {label}

    -

    {value}

    +

    {label}

    +

    {value}

    ) } @@ -21,9 +21,9 @@ const DatabasePostgresSelectionRender = ({ log }: any) => { return ( <>
    - Event message + Event message -
    +
    {log.event_message}
    @@ -40,8 +40,8 @@ const DatabasePostgresSelectionRender = ({ log }: any) => { )}
    -

    Metadata

    -
    +        

    Metadata

    +
               
    @@ -70,7 +70,7 @@ const LogTable = ({ const hasId = columnNames.includes('id') const hasTimestamp = columnNames.includes('timestamp') - const DEFAULT_COLUMNS = columnNames.map((v) => { + const DEFAULT_COLUMNS = columnNames.map((v, idx: number) => { let formatter = undefined formatter = (received: FormatterArg) => { @@ -83,7 +83,14 @@ const LogTable = ({ return String(value) } } - return { key: v, name: v, resizable: true, formatter, header: v, minWidth: 128 } + return { + key: `logs-column-${idx}`, + name: v, + resizable: true, + formatter, + header: v, + minWidth: 128, + } }) let columns @@ -100,88 +107,10 @@ const LogTable = ({ break case 'fn_edge': - columns = [ - { - key: 'timestamp', - headerRenderer: () => ( -
    - -
    - ), - name: 'timestamp', - formatter: (data: any) => ( - - - {dayjs(data?.row?.timestamp / 1000).format('DD MMM')} - - - {dayjs(data?.row?.timestamp / 1000).format('HH:mm:ss')} - - - ), - width: 128, - }, - { - key: 'status_code', - headerRenderer: () => , - name: 'status_code', - formatter: (data: any) => ( - - ), - width: 0, - resizable: true, - }, - { - key: 'method', - headerRenderer: () => , - width: 0, - resizable: true, - }, - { - key: 'id', - headerRenderer: () => , - name: 'id', - resizable: true, - }, - ] + columns = FunctionsEdgeColumnRender break case 'functions': - columns = [ - { - key: 'timestamp', - headerRenderer: () => ( -
    - -
    - ), - name: 'timestamp', - formatter: (data: any) => ( - - - {dayjs(data?.row?.timestamp / 1000).format('DD MMM')} - - - {dayjs(data?.row?.timestamp / 1000).format('HH:mm:ss')} - - - ), - width: 128, - resizable: true, - }, - { - key: 'level', - headerRenderer: () => , - name: 'level', - formatter: (data: any) => , - width: 24, - resizable: true, - }, - { - key: 'event_message', - headerRenderer: () => , - resizable: true, - }, - ] + columns = FunctionsLogsColumnRender break default: @@ -230,6 +159,33 @@ const LogTable = ({ } }, [stringData]) + const LogsExplorerTableHeader = () => ( +
    +
    + {data && data.length ? ( + <> + Query results + {data && data.length} + + ) : ( + Results will be shown below + )} +
    +
    + {onHistogramToggle && ( + + )} + Download +
    +
    + ) + const renderErrorAlert = () => { if (!error) return null const childProps = { @@ -245,69 +201,57 @@ const LogTable = ({ } return ( -
    - +
    +
    ) } + const renderNoResultAlert = () => ( +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    +

    No results

    +

    Try another search, or adjusting the filters

    +
    +
    + ) + return ( <>
    - {!queryType && ( -
    -
    -
    - {data && data.length ? ( - <> - Query results - {data && data.length} - - ) : ( - Results will be shown below - )} -
    -
    - {onHistogramToggle && ( - - )} - {showDownload && Download} -
    -
    -
    - )} -
    + {!queryType && } +
    -
    - {!error && ( -
    - <> -
    -
    -
    -
    - - - -
    -
    -
    -
    -

    No results

    -

    - Try another search, or adjusting the filters -

    -
    - -
    - )} - {error && renderErrorAlert()} -
    - +
    + {!error && renderNoResultAlert()} + {error && renderErrorAlert()} +
    ) : null } columns={columns as any} - rowClass={(r) => { - const row = r as LogData - - let classes = [] - classes.push( - `${ - row.id === focusedLog?.id ? '!bg-scale-400 rdg-row--focussed' : 'cursor-pointer' - }` - ) - - return classes.join(' ') - }} + rowClass={(row: LogData) => + row.id === focusedLog?.id ? '!bg-scale-400 rdg-row--focused' : 'cursor-pointer' + } rows={logDataRows} rowKeyGetter={(r) => { if (!hasId) return Object.keys(r)[0] @@ -399,10 +283,10 @@ const LogTable = ({
    = ({ to, from, onChange, helpers }) => { const defaultHelper = getDefaultHelper(helpers) const [helperValue, setHelperValue] = useState(to || from ? '' : defaultHelper.text) + const handleHelperChange = (newValue: string) => { - setHelperValue(newValue) const selectedHelper = helpers.find((h) => h.text === newValue) + if (onChange && selectedHelper) { onChange({ to: selectedHelper.calcTo(), from: selectedHelper.calcFrom() }) } @@ -24,17 +25,18 @@ const DatePickers: React.FC = ({ to, from, onChange, helpers }) => { const selectedHelper = helpers.find((helper) => { if (to === helper.calcTo() && from === helper.calcFrom()) { return true - } else if (helper.text === helperValue) { - return true } else { return false } }) + useEffect(() => { if (selectedHelper && helperValue !== selectedHelper.text) { setHelperValue(selectedHelper.text) + } else if (!selectedHelper && (to || from)) { + setHelperValue('') } - }, [selectedHelper]) + }, [selectedHelper, to, from]) return (
    @@ -66,6 +68,7 @@ const DatePickers: React.FC = ({ to, from, onChange, helpers }) => { { setHelperValue('') if (onChange) onChange(value) diff --git a/studio/components/interfaces/Settings/Logs/Logs.SavedQueriesItem.tsx b/studio/components/interfaces/Settings/Logs/Logs.SavedQueriesItem.tsx index 434a9d2668d..93fbf311fd9 100644 --- a/studio/components/interfaces/Settings/Logs/Logs.SavedQueriesItem.tsx +++ b/studio/components/interfaces/Settings/Logs/Logs.SavedQueriesItem.tsx @@ -1,6 +1,6 @@ import dayjs from 'dayjs' import { FC, useState } from 'react' -import { Button, IconChevronRight, IconMaximize2, IconPlay } from '@supabase/ui' +import { Button, IconChevronRight, IconMaximize2, IconPlay } from 'ui' import Table from 'components/to-be-cleaned/Table' import { useRouter } from 'next/router' import SqlSnippetCode from './Logs.SqlSnippetCode' @@ -56,7 +56,7 @@ const SavedQueriesItem: FC = ({ item }: Props) => { {expand && {item.content.sql}} diff --git a/studio/components/interfaces/Settings/Logs/Logs.constants.ts b/studio/components/interfaces/Settings/Logs/Logs.constants.ts index aa915d032d2..d3a6d2de484 100644 --- a/studio/components/interfaces/Settings/Logs/Logs.constants.ts +++ b/studio/components/interfaces/Settings/Logs/Logs.constants.ts @@ -21,7 +21,7 @@ export const TEMPLATES: LogTemplate[] = [ description: 'Count of commits made by users on the database', mode: 'custom', searchString: `select - p.user_name, + p.user_name, count(*) as count from postgres_logs left join unnest(metadata) as m on true @@ -38,7 +38,7 @@ group by description: 'List all IP addresses that used the Supabase API', mode: 'custom', searchString: `select - cast(timestamp as datetime) as timestamp, + cast(timestamp as datetime) as timestamp, h.x_real_ip from edge_logs left join unnest(metadata) as m on true @@ -52,8 +52,8 @@ where h.x_real_ip is not null label: 'Requests by Country', description: 'List all ISO 3166-1 alpha-2 country codes that used the Supabase API', mode: 'custom', - searchString: `select - cf.country, + searchString: `select + cf.country, count(*) as count from edge_logs left join unnest(metadata) as m on true @@ -71,11 +71,11 @@ order by mode: 'custom', description: 'List all Supabase API requests that are slow', searchString: `select - cast(timestamp as datetime) as timestamp, + cast(timestamp as datetime) as timestamp, event_message, r.origin_time from edge_logs - cross join unnest(metadata) as m + cross join unnest(metadata) as m cross join unnest(m.response) as r where r.origin_time > 1000 @@ -90,11 +90,11 @@ limit 100 description: 'List all Supabase API requests that responded witha 5XX status code', mode: 'custom', searchString: `select - cast(timestamp as datetime) as timestamp, + cast(timestamp as datetime) as timestamp, event_message, r.status_code from edge_logs - cross join unnest(metadata) as m + cross join unnest(metadata) as m cross join unnest(m.response) as r where r.status_code >= 500 @@ -113,11 +113,11 @@ limit 100 r.search as params, count(timestamp) as c from edge_logs - cross join unnest(metadata) as m + cross join unnest(metadata) as m cross join unnest(m.request) as r -group by +group by path, - params + params order by c desc limit 100 @@ -132,7 +132,7 @@ limit 100 cast(timestamp as datetime) as timestamp, event_message from edge_logs - cross join unnest(metadata) as m + cross join unnest(metadata) as m cross join unnest(m.request) as r where path like '%rest/v1%' @@ -197,9 +197,9 @@ const _SQL_FILTER_COMMON = { export const SQL_FILTER_TEMPLATES: any = { postgres_logs: { ..._SQL_FILTER_COMMON, - 'severity.error': `metadataParsed.error_severity in ('ERROR', 'FATAL', 'PANIC')`, - 'severity.noError': `metadataParsed.error_severity not in ('ERROR', 'FATAL', 'PANIC')`, - 'severity.log': `metadataParsed.error_severity = 'LOG'`, + 'severity.error': `parsed.error_severity in ('ERROR', 'FATAL', 'PANIC')`, + 'severity.noError': `parsed.error_severity not in ('ERROR', 'FATAL', 'PANIC')`, + 'severity.log': `parsed.error_severity = 'LOG'`, }, edge_logs: { ..._SQL_FILTER_COMMON, @@ -237,6 +237,9 @@ export const SQL_FILTER_TEMPLATES: any = { realtime_logs: { ..._SQL_FILTER_COMMON, }, + storage_logs: { + ..._SQL_FILTER_COMMON, + }, } export enum LogsTableName { @@ -246,6 +249,7 @@ export enum LogsTableName { FN_EDGE = 'function_edge_logs', AUTH = 'auth_logs', REALTIME = 'realtime_logs', + STORAGE = 'storage_logs', } export const LOGS_TABLES = { @@ -254,7 +258,8 @@ export const LOGS_TABLES = { functions: LogsTableName.FUNCTIONS, fn_edge: LogsTableName.FN_EDGE, auth: LogsTableName.AUTH, - realtime: LogsTableName.REALTIME + realtime: LogsTableName.REALTIME, + storage: LogsTableName.STORAGE, } export const LOGS_SOURCE_DESCRIPTION = { @@ -264,10 +269,9 @@ export const LOGS_SOURCE_DESCRIPTION = { [LogsTableName.FN_EDGE]: 'Function call logs, containing the request and response.', [LogsTableName.AUTH]: 'Authentication logs from GoTrue', [LogsTableName.REALTIME]: 'Realtime server for Postgres logical replication broadcasting', + [LogsTableName.STORAGE]: 'Object storage logs', } -export const genCountQuery = (table: string): string => `SELECT count(*) as count FROM ${table}` - export const genQueryParams = (params: { [k: string]: string }) => { // remove keys which are empty strings, null, or undefined for (const k in params) { @@ -449,14 +453,14 @@ export const PREVIEWER_DATEPICKER_HELPERS: DatetimeHelper[] = [ calcTo: () => '', }, { - text: 'Last day', + text: 'Last 24 hours', calcFrom: () => dayjs().subtract(1, 'day').startOf('day').toISOString(), calcTo: () => '', }, ] export const EXPLORER_DATEPICKER_HELPERS: DatetimeHelper[] = [ { - text: 'Last day', + text: 'Last 24 hours', calcFrom: () => dayjs().subtract(1, 'day').startOf('day').toISOString(), calcTo: () => '', default: true, diff --git a/studio/components/interfaces/Settings/Logs/Logs.types.ts b/studio/components/interfaces/Settings/Logs/Logs.types.ts index 7e5280a45a8..cb52408d712 100644 --- a/studio/components/interfaces/Settings/Logs/Logs.types.ts +++ b/studio/components/interfaces/Settings/Logs/Logs.types.ts @@ -7,9 +7,10 @@ interface Metadata { export type DatePickerToFrom = { to: string | null; from: string | null } export type LogSearchCallback = ( + event: 'search-input-change' | 'event-chart-bar-click' | 'datepicker-change', filters: { - query: string - } & DatePickerToFrom + query?: string + } & Partial ) => void export interface LogsWarning { @@ -48,6 +49,11 @@ export interface CountData { count: number } +export interface EventChartData { + count: number + timestamp: string | number +} + type LFResponse = { result: T[] error?: { @@ -63,13 +69,21 @@ type LFResponse = { } type ApiError = string -export type LogQueryError = Omit, "result"> | ApiError +export type LogQueryError = Omit, 'result'> | ApiError export type Count = LFResponse +export type EventChart = LFResponse export type Logs = LFResponse -export type QueryType = 'api' | 'database' | 'functions' | 'fn_edge' | 'auth' | 'realtime' +export type QueryType = + | 'api' + | 'database' + | 'functions' + | 'fn_edge' + | 'auth' + | 'realtime' + | 'storage' export type Mode = 'simple' | 'custom' diff --git a/studio/components/interfaces/Settings/Logs/Logs.utils.ts b/studio/components/interfaces/Settings/Logs/Logs.utils.ts index 95a373b8f8a..22c495dd261 100644 --- a/studio/components/interfaces/Settings/Logs/Logs.utils.ts +++ b/studio/components/interfaces/Settings/Logs/Logs.utils.ts @@ -1,6 +1,7 @@ -import { Filters, LogData, LogsTableName, SQL_FILTER_TEMPLATES } from '.' -import dayjs from 'dayjs' +import { Filters, LogData, LogsEndpointParams, LogsTableName, SQL_FILTER_TEMPLATES } from '.' +import dayjs, { Dayjs } from 'dayjs' import { get } from 'lodash' +import { StripeSubscription } from 'components/interfaces/Billing' /** * Convert a micro timestamp from number/string to iso timestamp @@ -120,7 +121,7 @@ export const genDefaultQuery = (table: LogsTableName, filters: Filters) => { switch (table) { case 'edge_logs': - return `select id, timestamp, event_message, request, response, request.method, request.path, response.status_code + return `select id, timestamp, event_message, request.method, request.path, response.status_code from ${table} cross join unnest(metadata) as m cross join unnest(m.request) as request @@ -130,10 +131,10 @@ export const genDefaultQuery = (table: LogsTableName, filters: Filters) => { ` case 'postgres_logs': - return `select postgres_logs.timestamp, id, event_message, parsed.error_severity from ${table} - cross join unnest(metadata) as m - cross join unnest(m.parsed) as parsed - ${where} + return `select postgres_logs.timestamp, id, event_message, parsed.error_severity from ${table} + cross join unnest(metadata) as m + cross join unnest(m.parsed) as parsed + ${where} limit 100 ` @@ -145,7 +146,7 @@ export const genDefaultQuery = (table: LogsTableName, filters: Filters) => { ` case 'function_edge_logs': - return `select id, ${table}.timestamp, event_message, response.status_code, response, request, request.method, m.function_id, m.execution_time_ms, m.deployment_id, m.version from ${table} + return `select id, ${table}.timestamp, event_message, response.status_code, request.method, m.function_id, m.execution_time_ms, m.deployment_id, m.version from ${table} cross join unnest(metadata) as m cross join unnest(m.response) as response cross join unnest(m.request) as request @@ -156,7 +157,7 @@ export const genDefaultQuery = (table: LogsTableName, filters: Filters) => { default: return `select id, ${table}.timestamp, event_message from ${table} ${where} - limit 100 + limit 100 ` } } @@ -164,4 +165,93 @@ export const genDefaultQuery = (table: LogsTableName, filters: Filters) => { /** * SQL query to retrieve only one log */ -export const genSingleLogQuery = (table: LogsTableName, id: string) => `select id, timestamp, event_message, metadata from ${table} where id = '${id}' limit 1` \ No newline at end of file +export const genSingleLogQuery = (table: LogsTableName, id: string) => + `select id, timestamp, event_message, metadata from ${table} where id = '${id}' limit 1` + +/** + * Determine if we should show the user an upgrade prompt while browsing logs + */ +export const maybeShowUpgradePrompt = ( + from: string | null | undefined, + tierKey?: StripeSubscription['tier']["key"] +) => { + const day = Math.abs(dayjs().diff(dayjs(from), 'day')) + + return (day > 1 && tierKey === 'FREE') || (day > 7 && tierKey === 'PRO') || day > 90 && tierKey === 'ENTERPRISE' +} + +export const genCountQuery = (table: string): string => `SELECT count(*) as count FROM ${table}` + +/** calculates how much the chart start datetime should be offset given the current datetime filter params */ +export const calcChartStart = (params: Partial): [Dayjs, string] => { + const ite = params.iso_timestamp_end ? dayjs(params.iso_timestamp_end) : dayjs() + // todo @TzeYiing needs typing + const its: any = params.iso_timestamp_start ? dayjs(params.iso_timestamp_start) : dayjs() + + let trunc = 'minute' + let extendValue = 60 * 6 + const minuteDiff = ite.diff(its, 'minute') + const hourDiff = ite.diff(its, 'hour') + if (minuteDiff > 60 * 12) { + trunc = 'hour' + extendValue = 24 * 5 + } else if (hourDiff > 24 * 3) { + trunc = 'day' + extendValue = 7 + } + // + // @ts-ignore + return [its.add(-extendValue, trunc), trunc] +} + +/** + * + * generates log event chart query + */ +export const genChartQuery = ( + table: LogsTableName, + params: LogsEndpointParams, + filters: Filters +) => { + const [startOffset, trunc] = calcChartStart(params) + const where = _genWhereStatement(table, filters) + return ` +SELECT + timestamp_trunc(t.timestamp, ${trunc}) as timestamp, + count(t.timestamp) as count +FROM + ${table} t + cross join unnest(t.metadata) as metadata + ${where + ? where + ` and t.timestamp > '${startOffset.toISOString()}'` + : `where t.timestamp > '${startOffset.toISOString()}'` + } +GROUP BY +timestamp +ORDER BY + timestamp ASC + ` +} + +type TsPair = [string | '', string | ''] +export const ensureNoTimestampConflict = ( + [initialStart, initialEnd]: TsPair, + [nextStart, nextEnd]: TsPair +): TsPair => { + if (initialStart && initialEnd && nextEnd && !nextStart) { + const resolvedDiff = dayjs(nextEnd).diff(dayjs(initialStart)) + let start = dayjs(initialStart) + + if (resolvedDiff <= 0) { + // start ts is definitely before end ts + const currDiff = Math.abs(dayjs(initialEnd).diff(start, 'minute')) + // shift start ts backwards by the current ts difference + start = dayjs(nextEnd).subtract(currDiff, 'minute') + } + return [start.toISOString(), nextEnd] + } else if (!nextEnd && nextStart) { + return [nextStart, initialEnd] + } else { + return [nextStart, nextEnd] + } +} diff --git a/studio/components/interfaces/Settings/Logs/LogsErrorRenderers/DefaultErrorRenderer.tsx b/studio/components/interfaces/Settings/Logs/LogsErrorRenderers/DefaultErrorRenderer.tsx index 4d3a92c6713..6a13b294905 100644 --- a/studio/components/interfaces/Settings/Logs/LogsErrorRenderers/DefaultErrorRenderer.tsx +++ b/studio/components/interfaces/Settings/Logs/LogsErrorRenderers/DefaultErrorRenderer.tsx @@ -1,4 +1,4 @@ -import { Input } from '@supabase/ui' +import { Input } from 'ui' import { LogQueryError } from '..' export interface ErrorRendererProps { @@ -11,7 +11,7 @@ const DefaultErrorRenderer: React.FC = ({ error }) => ( size="tiny" value={typeof error === 'string' ? error : JSON.stringify(error, null, 2)} borderless - className="font-mono w-full mt-4" + className="mt-4 w-full font-mono" copy rows={7} /> diff --git a/studio/components/interfaces/Settings/Logs/LogsErrorRenderers/LogsErrorRenderers.stories.tsx b/studio/components/interfaces/Settings/Logs/LogsErrorRenderers/LogsErrorRenderers.stories.tsx index c5c8332e2d0..fb9afa112a6 100644 --- a/studio/components/interfaces/Settings/Logs/LogsErrorRenderers/LogsErrorRenderers.stories.tsx +++ b/studio/components/interfaces/Settings/Logs/LogsErrorRenderers/LogsErrorRenderers.stories.tsx @@ -2,7 +2,7 @@ import React, { useState } from 'react' import DefaultErrorRenderer from './DefaultErrorRenderer' import ResourcesExceededErrorRenderer from './ResourcesExceededErrorRenderer' -import { Alert } from '@supabase/ui' +import { Alert } from 'ui' export default { title: 'Logs', @@ -51,8 +51,9 @@ export const ErrorRenderers = () => ( }, }} />, - ].map((child) => ( + ].map((child, i) => ( = ({ error, isCustomQuery }) => ( -
    -
    +
    +

    This query requires too much memory to be executed.

    {isCustomQuery @@ -27,7 +27,7 @@ const ResourcesExceededErrorRenderer: React.FC = ({ error, i size="tiny" value={JSON.stringify(error, null, 2)} borderless - className="font-mono w-full mt-4" + className="mt-4 w-full font-mono" copy rows={5} /> diff --git a/studio/components/interfaces/Settings/Logs/LogsFilterPopover.tsx b/studio/components/interfaces/Settings/Logs/LogsFilterPopover.tsx index 3825fd1817a..b8c488322bc 100644 --- a/studio/components/interfaces/Settings/Logs/LogsFilterPopover.tsx +++ b/studio/components/interfaces/Settings/Logs/LogsFilterPopover.tsx @@ -1,4 +1,4 @@ -import { Button, Checkbox, Form, Popover } from '@supabase/ui' +import { Button, Checkbox, Form, Popover } from 'ui' import React, { useState } from 'react' import { Filters, FilterSet } from '.' @@ -49,7 +49,7 @@ const LogsFilterPopover: React.FC = ({ > {({ isSubmitting }: { isSubmitting: boolean }) => ( <> -

    +
    {options.options.map((x, i: number) => ( = ({ ))}
    -
    +
    diff --git a/studio/components/interfaces/Settings/Logs/LogsFormatters.tsx b/studio/components/interfaces/Settings/Logs/LogsFormatters.tsx index 35a7cf9d8c5..82156ba5284 100644 --- a/studio/components/interfaces/Settings/Logs/LogsFormatters.tsx +++ b/studio/components/interfaces/Settings/Logs/LogsFormatters.tsx @@ -4,10 +4,20 @@ * for http response codes */ -import { IconAlertCircle, IconInfo } from '@supabase/ui' +import { IconAlertCircle, IconInfo } from 'ui' import dayjs from 'dayjs' +import React from 'react' import { isUnixMicro, unixMicroToIsoTimestamp } from '.' +export const RowLayout: React.FC = ({ children }) => ( +
    {children}
    +) + +export const TextFormatter: React.FC<{ className?: string; value: string }> = ({ + value, + className, +}) => {value} + export const ResponseCodeFormatter = ({ value }: any) => { if (!value) { return ( @@ -24,10 +34,10 @@ export const ResponseCodeFormatter = ({ value }: any) => { case '1': case '2': return ( -
    +
    @@ -38,10 +48,10 @@ export const ResponseCodeFormatter = ({ value }: any) => { // 5XX responses case '5': return ( -
    +
    @@ -54,10 +64,10 @@ export const ResponseCodeFormatter = ({ value }: any) => { case '4': case '3': return ( -
    +
    @@ -71,10 +81,10 @@ export const ResponseCodeFormatter = ({ value }: any) => { // All other responses default: return ( -
    +
    @@ -92,7 +102,13 @@ export const ResponseCodeFormatter = ({ value }: any) => { * for http response codes */ -export const SeverityFormatter = ({ value }: { value: string }) => { +export const SeverityFormatter = ({ + value, + uppercase = true, +}: { + value: string + uppercase?: boolean +}) => { if (!value) { return (
    @@ -101,19 +117,24 @@ export const SeverityFormatter = ({ value }: { value: string }) => { ) } - value = value.toUpperCase() + const uppercasedValue = value.toUpperCase() + const text = uppercase ? uppercasedValue : value + const Layout: React.FC<{ className?: string }> = ({ className, children }) => ( +
    {children}
    + ) - switch (value) { + switch (uppercasedValue) { + case 'UNCAUGHTEXCEPTION': case 'PANIC': case 'FATAL': case 'ERROR': return ( -
    +
    - {value} -
    + {text} + ) break @@ -121,45 +142,45 @@ export const SeverityFormatter = ({ value }: { value: string }) => { case 'DEBUG': return ( -
    +
    - {value} -
    + {text} + ) break case 'LOG': return ( -
    +
    - {value} -
    + {text} + ) break case 'WARNING': return ( -
    +
    - {value} -
    + {text} + ) break // All other responses default: return ( -
    +
    - +
    -
    + ) break } @@ -190,7 +211,7 @@ export const TimestampLocalFormatter = ({ */ export const HeaderFormmater = ({ value }: any) => { - return
    {value}
    + return
    {value}
    } /* diff --git a/studio/components/interfaces/Settings/Logs/LogsNavigation.tsx b/studio/components/interfaces/Settings/Logs/LogsNavigation.tsx index e89f59acb84..5303b742a96 100644 --- a/studio/components/interfaces/Settings/Logs/LogsNavigation.tsx +++ b/studio/components/interfaces/Settings/Logs/LogsNavigation.tsx @@ -1,4 +1,4 @@ -import { Tabs } from '@supabase/ui' +import { Tabs } from 'ui' import { useFlag } from 'hooks' import { useRouter } from 'next/router' diff --git a/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx b/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx index a972f28d9c1..9b12ccac9e7 100644 --- a/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx +++ b/studio/components/interfaces/Settings/Logs/LogsPreviewer.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from 'react' import { useRouter } from 'next/router' -import { Typography, IconAlertCircle, IconRewind, Button, Card, Input } from '@supabase/ui' +import { IconRewind, Button } from 'ui' import { LogTable, @@ -11,7 +11,8 @@ import { QueryType, LogEventChart, Filters, - unixMicroToIsoTimestamp, + ensureNoTimestampConflict, + maybeShowUpgradePrompt, } from 'components/interfaces/Settings/Logs' import useLogsPreview from 'hooks/analytics/useLogsPreview' import PreviewFilterPanel from 'components/interfaces/Settings/Logs/PreviewFilterPanel' @@ -19,6 +20,9 @@ import PreviewFilterPanel from 'components/interfaces/Settings/Logs/PreviewFilte import { LOGS_TABLES } from './Logs.constants' import ShimmerLine from 'components/ui/ShimmerLine' import LoadingOpacity from 'components/ui/LoadingOpacity' +import { useProjectSubscription } from 'hooks' +import { useUpgradePrompt } from 'hooks/misc/useUpgradePrompt' +import { StripeProduct } from 'components/interfaces/Billing' import UpgradePrompt from './UpgradePrompt' /** @@ -46,16 +50,22 @@ export const LogsPreviewer: React.FC = ({ tableName, }) => { const router = useRouter() - const { s, ite, its } = router.query + const { s, ite, its, ref } = router.query const [showChart, setShowChart] = useState(true) + const { subscription } = useProjectSubscription(ref as string) + const tier = subscription?.tier const table = !tableName ? LOGS_TABLES[queryType] : tableName const [ - { error, logData, params, newCount, filters, isLoading }, + { error, logData, params, newCount, filters, isLoading, eventChartData }, { loadOlder, setFilters, refresh, setParams }, ] = useLogsPreview(projectRef as string, table, filterOverride) + const { showUpgradePrompt, setShowUpgradePrompt } = useUpgradePrompt( + params.iso_timestamp_start as string + ) + useEffect(() => { setFilters((prev) => ({ ...prev, search_query: s as string })) if (ite || its) { @@ -67,6 +77,16 @@ export const LogsPreviewer: React.FC = ({ } }, [s, ite, its]) + // Show the prompt on page load based on query params + useEffect(() => { + if (its) { + const shouldShowUpgradePrompt = maybeShowUpgradePrompt(its as string, tier?.key) + if (shouldShowUpgradePrompt) { + setShowUpgradePrompt(!showUpgradePrompt) + } + } + }, [its, tier]) + const onSelectTemplate = (template: LogTemplate) => { setFilters((prev: any) => ({ ...prev, search_query: template.searchString })) } @@ -83,26 +103,56 @@ export const LogsPreviewer: React.FC = ({ }, }) } + const handleSearch: LogSearchCallback = async (event, { query, to, from }) => { + if (event === 'search-input-change') { + setFilters((prev) => ({ ...prev, search_query: query })) + router.push({ + pathname: router.pathname, + query: { ...router.query, s: query }, + }) + } else if (event === 'event-chart-bar-click') { + const [nextStart, nextEnd] = ensureNoTimestampConflict( + [params.iso_timestamp_start || '', params.iso_timestamp_end || ''], + [from || '', to || ''] + ) + setParams((prev) => ({ + ...prev, + iso_timestamp_start: nextStart, + iso_timestamp_end: nextEnd, + })) + router.push({ + pathname: router.pathname, + query: { + ...router.query, + its: nextStart, + ite: nextEnd, + }, + }) + } else if (event === 'datepicker-change') { + const shouldShowUpgradePrompt = maybeShowUpgradePrompt(from, tier?.key) - const handleSearch: LogSearchCallback = async ({ query = '', to, from }) => { - setParams((prev) => ({ - ...prev, - iso_timestamp_start: from || prev.iso_timestamp_start || '', - iso_timestamp_end: to || prev.iso_timestamp_end || '', - })) - setFilters((prev) => ({ ...prev, search_query: query })) - router.push({ - pathname: router.pathname, - query: { - ...router.query, - s: query || '', - its: from || its || '', - ite: to || ite || '', - }, - }) + if (shouldShowUpgradePrompt) { + setShowUpgradePrompt(!showUpgradePrompt) + } else { + setParams((prev) => ({ + ...prev, + iso_timestamp_start: from || '', + iso_timestamp_end: to || '', + })) + router.push({ + pathname: router.pathname, + query: { + ...router.query, + its: from || '', + ite: to || '', + }, + }) + } + } } + return ( -
    +
    = ({ className={ 'transition-all duration-500 ' + (showChart && !isLoading && logData.length > 0 - ? 'opacity-100 h-24 pt-4 mb-4' - : 'opacity-0 h-0') + ? 'mb-4 h-24 pt-4 opacity-100' + : 'h-0 opacity-0') } >
    {showChart && ( { - const to = unixMicroToIsoTimestamp(timestampMicro) - handleSearch({ query: filters.search_query as string, to, from: null }) + data={!isLoading && eventChartData ? eventChartData : undefined} + onBarClick={(isoTimestamp) => { + handleSearch('event-chart-bar-click', { + query: filters.search_query as string, + to: isoTimestamp as string, + from: null, + }) }} /> )}
    -
    +
    = ({ isHistogramShowing={showChart} onHistogramToggle={() => setShowChart(!showChart)} params={params} + error={error} /> {!error && ( -
    +
    - -
    - )} - {error && ( -
    - -
    - - - Sorry! An error occured when fetching data. - -
    - -
    +
    + +
    )}
    diff --git a/studio/components/interfaces/Settings/Logs/LogsQueryPanel.tsx b/studio/components/interfaces/Settings/Logs/LogsQueryPanel.tsx index 11c74ec5a0b..d29400e1a1b 100644 --- a/studio/components/interfaces/Settings/Logs/LogsQueryPanel.tsx +++ b/studio/components/interfaces/Settings/Logs/LogsQueryPanel.tsx @@ -1,14 +1,7 @@ -import { - Button, - Dropdown, - Typography, - IconChevronDown, - IconPlay, - Badge, - Popover, - Alert, -} from '@supabase/ui' -import Flag from 'components/ui/Flag/Flag' +import { Button, Dropdown, IconChevronDown, IconPlay, Badge, Popover, Alert } from 'ui' +import * as Tooltip from '@radix-ui/react-tooltip' +import { PermissionAction } from '@supabase/shared-types/out/constants' + import { EXPLORER_DATEPICKER_HELPERS, LogsTableName, @@ -19,6 +12,7 @@ import { import DatePickers from './Logs.DatePickers' import Link from 'next/link' import React from 'react' +import { checkPermissions, useStore } from 'hooks' interface Props { templates?: LogTemplate[] @@ -48,115 +42,142 @@ const LogsQueryPanel: React.FC = ({ defaultTo, onDateChange, warnings, -}) => ( -
    -
    -
    -
    - a.localeCompare(b)) - .map((source) => ( - onSelectSource(source)}> -
    - {source} - {LOGS_SOURCE_DESCRIPTION[source]} -
    -
    - ))} - > - -
    - - a.label!.localeCompare(b.label!)) - .map((template: LogTemplate) => ( - onSelectTemplate(template)}> - {template.label} - - ))} - > - - - -
    -
    0 ? 'opacity-100' : 'invisible w-0 h-0 opacity-0' - }`} - > - -
    - {warnings.map((warning, index) => ( -

    - {warning.text}{' '} - {warning.link && ( - {warning.linkText || 'View'} - )} -

    - ))} + return ( +
    +
    +
    +
    + a.localeCompare(b)) + .map((source) => ( + onSelectSource(source)}> +
    + {source} + {LOGS_SOURCE_DESCRIPTION[source]}
    - - } +
    + ))} + > + +
    + + a.label!.localeCompare(b.label!)) + .map((template: LogTemplate) => ( + onSelectTemplate(template)}> +

    {template.label}

    +
    + ))} + > + +
    + +
    +
    0 ? 'opacity-100' : 'invisible h-0 w-0 opacity-0' + }`} > - - {warnings.length} {warnings.length > 1 ? 'warnings' : 'warning'} - - + +
    + {warnings.map((warning, index) => ( +

    + {warning.text}{' '} + {warning.link && ( + {warning.linkText || 'View'} + )} +

    + ))} +
    + + } + > + + {warnings.length} {warnings.length > 1 ? 'warnings' : 'warning'} + +
    +
    -
    -
    -
    -
    - - {onSave && ( - - )} -
    + {onSave && ( + + + + + {!canCreateLogQuery && ( + + +
    + + You need additional permissions to save your query + +
    +
    + )} +
    + )} +
    - + +
    -
    -) + ) +} export default LogsQueryPanel diff --git a/studio/components/interfaces/Settings/Logs/PreviewFilterPanel.tsx b/studio/components/interfaces/Settings/Logs/PreviewFilterPanel.tsx index 68867800ec9..a8025d482ce 100644 --- a/studio/components/interfaces/Settings/Logs/PreviewFilterPanel.tsx +++ b/studio/components/interfaces/Settings/Logs/PreviewFilterPanel.tsx @@ -1,14 +1,5 @@ import React, { FC, useEffect, useState } from 'react' -import { - Button, - Input, - Typography, - IconRefreshCw, - IconSearch, - IconExternalLink, - IconEye, - IconEyeOff, -} from '@supabase/ui' +import { Button, Input, IconRefreshCw, IconSearch, IconExternalLink, IconEye, IconEyeOff } from 'ui' import { Filters, LogSearchCallback, LogTemplate, PREVIEWER_DATEPICKER_HELPERS } from '.' import { FILTER_OPTIONS, LogsTableName } from './Logs.constants' import LogsFilterPopover from './LogsFilterPopover' @@ -79,9 +70,9 @@ const PreviewFilterPanel: FC = ({ ].join(' ')} >
    - +

    {newCount > 1000 ? `${Math.floor(newCount / 100) / 10}K` : newCount} - +

    @@ -97,8 +88,10 @@ const PreviewFilterPanel: FC = ({ Refresh ) - const handleSearch = (partial: Partial[0]>) => - onSearch({ query: search, to: partial?.to || null, from: partial?.from || null }) + const handleDatepickerChange = ({ to, from }: Partial[1]>) => { + onSearch('datepicker-change', { to, from }) + } + const handleInputSearch = (query: string) => onSearch('search-input-change', { query }) return (
    = ({ onSubmit={(e) => { // prevent redirection e.preventDefault() - handleSearch({}) + handleInputSearch(search) }} > = ({ onChange={(e) => setSearch(e.target.value)} onBlur={(e: React.FocusEvent) => { setSearch(e.target.value) - handleSearch({ query: e.target.value }) + handleInputSearch(e.target.value) }} icon={
    @@ -131,8 +124,8 @@ const PreviewFilterPanel: FC = ({ actions={ hasEdits && ( @@ -142,7 +135,7 @@ const PreviewFilterPanel: FC = ({ = ({ item }) => { return ( {item.sql} diff --git a/studio/components/interfaces/Settings/Logs/UpgradePrompt.tsx b/studio/components/interfaces/Settings/Logs/UpgradePrompt.tsx index b7b7a71a90c..0d3ca8a64ca 100644 --- a/studio/components/interfaces/Settings/Logs/UpgradePrompt.tsx +++ b/studio/components/interfaces/Settings/Logs/UpgradePrompt.tsx @@ -1,101 +1,70 @@ -import Link from 'next/link' -import dayjs from 'dayjs' -import { useState } from 'react' -import { Button, IconHelpCircle, IconLoader, Modal } from '@supabase/ui' +import { Button, Modal } from 'ui' import { TIER_QUERY_LIMITS } from '.' -import { useProjectSubscription } from 'hooks' +import Link from 'next/link' +import { useRouter } from 'next/router' interface Props { - projectRef: string - from: string + show: boolean + setShowUpgradePrompt: (value: boolean) => void } -const UpgradePrompt: React.FC = ({ projectRef, from }) => { - const [showHelperModal, setShowHelperModal] = useState(false) - const { subscription, isLoading, isError } = useProjectSubscription(projectRef) - - if (isLoading) return - if (isError) console.error('Error fetching project subscription') - - const tier = subscription?.tier - const queryLimit = TIER_QUERY_LIMITS[(tier?.key || 'FREE') as keyof typeof TIER_QUERY_LIMITS] - - const fromValue = from ? dayjs(from) : dayjs() - const fromMax = dayjs().startOf('day').subtract(queryLimit.value, queryLimit.unit) - const isExceedingLimit = fromValue.isBefore(fromMax) +const UpgradePrompt: React.FC = ({ show, setShowUpgradePrompt }) => { + const router = useRouter() + const { ref } = router.query return ( - <> -
    - {`${queryLimit.text} retention`} - setShowHelperModal(true)} - /> - {queryLimit.promptUpgrade && ( - - - - )} -
    - - setShowHelperModal(false)} - > -
    - -
    -

    - Logs can be retained up to a duration of 3 months depending on the plan that your - project is on. The table below shows an overview of the duration for which your logs - will be retained for based on each plan. -

    -
    -
    -

    Plan

    -

    Retention duration

    + setShowUpgradePrompt(false)} + > +
    + +
    +

    + Logs can be retained up to a duration of 3 months depending on the plan that your + project is on. +

    +
    +
    +

    Plan

    +

    Retention duration

    +
    +
    +
    +

    Free

    +

    {TIER_QUERY_LIMITS.FREE.text}

    -
    -
    -

    Free

    -

    {TIER_QUERY_LIMITS.FREE.text}

    -
    -
    -

    Pro

    -

    {TIER_QUERY_LIMITS.PRO.text}

    -
    -
    -

    Enterprise

    -

    {TIER_QUERY_LIMITS.ENTERPRISE.text}

    -
    +
    +

    Pro

    +

    {TIER_QUERY_LIMITS.PRO.text}

    +
    +
    +

    Enterprise

    +

    {TIER_QUERY_LIMITS.ENTERPRISE.text}

    - - - -
    - -
    -
    -
    - - +
    +
    + + +
    + + + + + +
    +
    +
    +
    ) } diff --git a/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageBars.constants.tsx b/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageBars.constants.tsx new file mode 100644 index 00000000000..c705721fab6 --- /dev/null +++ b/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageBars.constants.tsx @@ -0,0 +1,25 @@ +import { IconArchive, IconDatabase, IconKey } from 'ui' + +export const usageBasedItems = [ + { + title: 'Database', + icon: , + features: [ + { key: 'db_size', title: 'Database space', units: 'bytes' }, + { key: 'db_egress', title: 'Database egress', units: 'bytes' }, + ], + }, + { + title: 'Auth', + icon: , + features: [{ key: 'monthly_active_users', title: 'Monthly Active Users', units: 'absolute' }], + }, + { + title: 'Storage', + icon: , + features: [ + { key: 'storage_size', title: 'Storage space', units: 'bytes' }, + { key: 'storage_egress', title: 'Storage egress', units: 'bytes' }, + ], + }, +] diff --git a/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageBars.tsx b/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageBars.tsx new file mode 100644 index 00000000000..6970d676909 --- /dev/null +++ b/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageBars.tsx @@ -0,0 +1,171 @@ +import { FC, useEffect } from 'react' +import { Badge, IconAlertCircle, Loading } from 'ui' + +import { useStore, useProjectUsage } from 'hooks' +import { formatBytes } from 'lib/helpers' +import { PRICING_TIER_PRODUCT_IDS, USAGE_APPROACHING_THRESHOLD } from 'lib/constants' +import SparkBar from 'components/ui/SparkBar' +import ShimmeringLoader from 'components/ui/ShimmeringLoader' +import { usageBasedItems } from './ProjectUsageBars.constants' +import InformationBox from 'components/ui/InformationBox' + +interface Props { + projectRef?: string +} + +const ProjectUsage: FC = ({ projectRef }) => { + const { ui } = useStore() + const { usage, error, isLoading } = useProjectUsage(projectRef) + + const projectHasNoLimits = + ui.selectedProject?.subscription_tier === PRICING_TIER_PRODUCT_IDS.PAYG || + ui.selectedProject?.subscription_tier === PRICING_TIER_PRODUCT_IDS.ENTERPRISE + + const showUsageExceedMessage = + ui.selectedProject?.subscription_tier !== undefined && !projectHasNoLimits + + useEffect(() => { + if (error) { + ui.setNotification({ + category: 'error', + message: `Failed to get project's usage data: ${error?.message ?? 'unknown'}`, + }) + } + }, [error]) + + if (!isLoading && error) { + return ( + } + title="There was an issue loading the usage details of your project" + /> + ) + } + + return ( + + {usage && ( +
    + {usageBasedItems.map((product) => { + const isExceededUsage = + showUsageExceedMessage && + product.features + .map((feature) => { + const featureUsage = usage[feature.key] + return featureUsage.usage / featureUsage.limit > 1 + }) + .some((x) => x === true) + return ( +
    +
    + {/* Header */} + + + + {/* Plan Limits */} + + {/* Usage */} + + + + {/* Line items */} + {usage === undefined ? ( +
    + +
    + ) : ( +
    + {product.features.map((feature) => { + const featureUsage = usage[feature.key] + const usageRatio = featureUsage.usage / featureUsage.limit + const isApproaching = usageRatio >= USAGE_APPROACHING_THRESHOLD + const isExceeded = showUsageExceedMessage && usageRatio >= 1 + + return ( + + + {ui.selectedProject?.subscription_tier !== undefined && ( + <> + {showUsageExceedMessage && ( + + )} + + + )} + + ) + })} + + )} +
    +
    +
    + {product.icon} +
    +
    {product.title}
    +
    +
    + {isExceededUsage && Exceeded usage} + +
    + {feature.title} + + {(usageRatio * 100).toFixed(2)} % + + {showUsageExceedMessage ? ( + + ) : ( + + {feature.units === 'bytes' + ? formatBytes(featureUsage.usage) + : ''} + + )} +
    +
    + ) + })} +
    + )} + + ) +} + +export default ProjectUsage diff --git a/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageBars.types.ts b/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageBars.types.ts new file mode 100644 index 00000000000..7b419d8f0da --- /dev/null +++ b/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageBars.types.ts @@ -0,0 +1,8 @@ +export interface ResourceUsage { + usage: number + limit: number +} + +export interface UsageStats { + [key: string]: ResourceUsage +} diff --git a/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageMinimal.tsx b/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageMinimal.tsx new file mode 100644 index 00000000000..94c38d4acc6 --- /dev/null +++ b/studio/components/interfaces/Settings/ProjectUsageBars/ProjectUsageMinimal.tsx @@ -0,0 +1,65 @@ +import { FC } from 'react' +import { Loading } from 'ui' + +import { useProjectSubscription, useProjectUsage } from 'hooks' +import { formatBytes } from 'lib/helpers' +import { PRICING_TIER_PRODUCT_IDS, USAGE_APPROACHING_THRESHOLD } from 'lib/constants' +import SparkBar from 'components/ui/SparkBar' +import { usageBasedItems } from './ProjectUsageBars.constants' + +interface ProjectUsageMinimalProps { + projectRef?: string + filter: string +} + +const ProjectUsageMinimal: FC = ({ projectRef, filter }) => { + const { usage, error: usageError, isLoading } = useProjectUsage(projectRef) + const { subscription, error: subscriptionError } = useProjectSubscription(projectRef) + + if ( + subscription?.tier?.supabase_prod_id === PRICING_TIER_PRODUCT_IDS.PAYG || + subscription?.tier.supabase_prod_id === PRICING_TIER_PRODUCT_IDS.ENTERPRISE + ) { + return <> + } + + const product = usageBasedItems.find((item) => item.title === filter) + if (!product) return <> + + if (usageError || subscriptionError) { + return
    + } + + return ( + + {usage && ( +
    + {product.features.map((feature) => { + const featureUsage = usage[feature.key] + const usageRatio = featureUsage.usage / featureUsage.limit + const isApproaching = usageRatio >= USAGE_APPROACHING_THRESHOLD + const isExceeded = usageRatio >= 1 + + return ( +
    +
    {feature.title}
    + +
    + ) + })} +
    + )} +
    + ) +} + +export default ProjectUsageMinimal diff --git a/studio/components/interfaces/Support/Success.tsx b/studio/components/interfaces/Support/Success.tsx new file mode 100644 index 00000000000..2f77cb8fb88 --- /dev/null +++ b/studio/components/interfaces/Support/Success.tsx @@ -0,0 +1,23 @@ +import Link from 'next/link' +import { Button, IconCheckCircle } from 'ui' + +const Success = () => { + return ( +
    +
    + +
    +
    +
    Support request successfully sent!
    +

    + We will email you back using your GitHub email address +

    +
    + + + +
    + ) +} + +export default Success diff --git a/studio/components/interfaces/Support/Support.constants.ts b/studio/components/interfaces/Support/Support.constants.ts new file mode 100644 index 00000000000..a6f093ff331 --- /dev/null +++ b/studio/components/interfaces/Support/Support.constants.ts @@ -0,0 +1,78 @@ +export const DEFAULT_VALUES = { + category: { + value: 'Problem', + error: '', + }, + severity: { + value: 'Low', + error: '', + }, + project: { + value: '', + error: '', + }, + subject: { + value: '', + error: '', + }, + body: { + value: '', + error: '', + }, +} + +export const CATEGORY_OPTIONS = [ + { + value: 'Problem', + label: 'Issue with project / API / Client library / REST API', + description: 'Issues with project API, client libraries', + }, + { + value: 'Sales', + label: 'Sales enquiry', + description: 'Questions about pricing, paid plans and Enterprise plans', + }, + { + value: 'Billing', + label: 'Billing', + description: 'Issues with credit card charges | invoices | overcharing', + }, + { + value: 'Abuse', + label: 'Abuse report', + description: 'Report abuse of a Supabase project or Supabase brand', + }, + { + value: 'Refund', + label: 'Refund enquiry', + description: 'Formal enquiry form for requesting refunds', + }, +] + +export const SEVERITY_OPTIONS = [ + { + value: 'Low', + label: 'Low', + description: 'General guidance', + }, + { + value: 'Normal', + label: 'Normal', + description: 'System impaired', + }, + { + value: 'High', + label: 'High', + description: 'Production system impaired', + }, + { + value: 'Urgent', + label: 'Urgent', + description: 'Production system down', + }, + { + value: 'Critical', + label: 'Critical', + description: 'Business-critical system down (Unavailable for free projects)', + }, +] diff --git a/studio/components/interfaces/Support/SupportForm.tsx b/studio/components/interfaces/Support/SupportForm.tsx new file mode 100644 index 00000000000..6ce06de5534 --- /dev/null +++ b/studio/components/interfaces/Support/SupportForm.tsx @@ -0,0 +1,393 @@ +import { isUndefined } from 'lodash' +import { useRouter } from 'next/router' +import { useEffect, useReducer, useState, FC, ChangeEvent, useRef } from 'react' +import { observer } from 'mobx-react-lite' +import { Button, IconMail, IconPlus, IconX, Input, Listbox } from 'ui' + +import { useStore } from 'hooks' +import { Project } from 'types' +import { post, get } from 'lib/common/fetch' +import { API_URL, PRICING_TIER_PRODUCT_IDS } from 'lib/constants' + +import Divider from 'components/ui/Divider' +import Connecting from 'components/ui/Loading/Loading' +import { formatMessage, formReducer, uploadAttachments } from './SupportForm.utils' +import { + DEFAULT_VALUES, + CATEGORY_OPTIONS, + SEVERITY_OPTIONS, +} from 'components/interfaces/Support/Support.constants' + +const MAX_ATTACHMENTS = 5 + +interface Props { + setSent: (value: boolean) => void +} + +const SupportForm: FC = ({ setSent }) => { + const { ui, app } = useStore() + const router = useRouter() + const projectRef = router.query.ref + const category = router.query.category + + const uploadButtonRef = useRef() + const [loading, setLoading] = useState(false) + const [formState, formDispatch] = useReducer(formReducer, DEFAULT_VALUES) + + const [uploadedFiles, setUploadedFiles] = useState([]) + const [uploadedDataUrls, setUploadedDataUrls] = useState([]) + + // Get all orgs and projects from global store + const sortedOrganizations = app.organizations.list() + const sortedProjects = app.projects.list() + + const projectDefaults: Partial[] = [{ ref: 'no-project', name: 'No specific project' }] + + const isInitialized = app.projects.isInitialized + const projects = [...sortedProjects, ...projectDefaults] + + useEffect(() => { + if (isInitialized) { + // set project default + if (sortedProjects.length > 1) { + const selectedProject = sortedProjects.find( + (project: Project) => project.ref === projectRef + ) + if (!isUndefined(selectedProject)) { + handleOnChange({ name: 'project', value: selectedProject.ref }) + } else { + handleOnChange({ name: 'project', value: sortedProjects[0].ref }) + } + } else { + // set as 'No specific project' + handleOnChange({ name: 'project', value: projectDefaults[0].ref }) + } + + // Set category based on query param + if (category) { + const selectedCategory = CATEGORY_OPTIONS.find((option) => { + if (option.value.toLowerCase() === category) return option + }) + if (selectedCategory) handleOnChange({ name: 'category', value: selectedCategory.value }) + } + } + }, [isInitialized]) + + useEffect(() => { + if (!uploadedFiles) return + const objectUrls = uploadedFiles.map((file) => URL.createObjectURL(file)) + setUploadedDataUrls(objectUrls) + + return () => { + objectUrls.forEach((url: any) => URL.revokeObjectURL(url)) + } + }, [uploadedFiles]) + + function handleOnChange(x: any) { + formDispatch({ + name: x.name, + value: x.value, + error: x.error, + }) + // Reset severity value when changing project to prevent selection of Critical + if (x.name === 'project') { + const selectedProject = projects.find((project: any) => project.ref === x.value) + if ( + (selectedProject?.subscription_tier ?? PRICING_TIER_PRODUCT_IDS.FREE) === + PRICING_TIER_PRODUCT_IDS.FREE && + formState.severity.value === 'Critical' + ) { + formDispatch({ + name: 'severity', + value: 'Low', + error: '', + }) + } + } + } + + async function handleSubmit(e: any) { + e.preventDefault() + + let errors: any = [] + + if (!formState.subject.value) { + const message = 'Please add a subject heading' + handleOnChange({ name: 'subject', error: message }) + errors.push([...errors, message]) + } + + if (!formState.body.value) { + const message = 'Please type in a message' + handleOnChange({ name: 'body', error: message }) + errors.push([...errors, message]) + } + + if (errors.length === 0) { + setLoading(true) + const projectRef = formState.project.value + const attachments = uploadedFiles ? await uploadAttachments(projectRef, uploadedFiles) : [] + + const payload = { + projectRef, + message: formatMessage(formState.body.value, attachments), + category: formState.category.value, + verified: true, + tags: ['dashboard-support-form'], + subject: formState.subject.value, + severity: formState.severity.value, + siteUrl: '', + additionalRedirectUrls: '', + } + + if (projectRef !== 'no-project') { + const URL = `${API_URL}/auth/${projectRef}/config` + const authConfig = await get(URL) + if (!authConfig.error) { + payload.siteUrl = authConfig.SITE_URL + payload.additionalRedirectUrls = authConfig.URI_ALLOW_LIST + } + } + + const response = await post(`${API_URL}/feedback/send`, payload) + setLoading(false) + + if (response.error) { + ui.setNotification({ + category: 'error', + message: `Failed to submit support ticket: ${response.error.message}`, + }) + } else { + ui.setNotification({ category: 'success', message: 'Support request sent. Thank you!' }) + setSent(true) + } + } + } + + const onFilesUpload = async (event: ChangeEvent) => { + event.persist() + const items = event.target.files || (event as any).dataTransfer.items + const itemsCopied = Array.prototype.map.call(items, (item) => item) as File[] + const itemsToBeUploaded = itemsCopied.slice(0, MAX_ATTACHMENTS - uploadedFiles.length) + + setUploadedFiles(uploadedFiles.concat(itemsToBeUploaded)) + if (items.length + uploadedFiles.length > MAX_ATTACHMENTS) { + ui.setNotification({ + category: 'info', + message: `Only up to ${MAX_ATTACHMENTS} attachments are allowed`, + }) + } + + event.target.value = '' + } + + const removeUploadedFile = (idx: number) => { + const updatedFiles = uploadedFiles?.slice() + updatedFiles.splice(idx, 1) + setUploadedFiles(updatedFiles) + + const updatedDataUrls = uploadedDataUrls.slice() + uploadedDataUrls.splice(idx, 1) + setUploadedDataUrls(updatedDataUrls) + } + + if (!isInitialized) { + return ( +
    + +
    + ) + } + + return ( +
    handleSubmit(e)} className="space-y-8"> +
    +

    What problem are you facing?

    +
    + +
    +
    + handleOnChange({ name: 'category', value })} + > + {CATEGORY_OPTIONS.map((option, i) => { + return ( + { + return ( + <> + {option.label} + {option.description} + + ) + }} + /> + ) + })} + +
    +
    + handleOnChange({ name: 'project', value })} + > + {projects.map((option) => { + return ( + { + const organization = sortedOrganizations.find( + (x) => x.id === option.organization_id + ) + return ( +
    + {option.name} + {organization?.name} +
    + ) + }} + /> + ) + })} +
    +
    + +
    + handleOnChange({ name: 'severity', value })} + > + {SEVERITY_OPTIONS.map((option: any) => { + const selectedProject = projects.find( + (project: any) => project.ref === formState.project.value + ) + const isAllowedCritical = + (selectedProject?.subscription_tier ?? PRICING_TIER_PRODUCT_IDS.FREE) !== + PRICING_TIER_PRODUCT_IDS.FREE + return ( + { + return ( + <> + {option.label} + {option.description} + + ) + }} + /> + ) + })} + +
    + + + +
    + handleOnChange({ name: 'subject', value: e.target.value })} + value={formState.subject.value} + error={formState.subject.error} + /> +
    + +
    + handleOnChange({ name: 'body', value: e.target.value })} + value={formState.body.value} + error={formState.body.error} + /> +
    +
    +
    +

    Attachments

    +

    + Upload up to {MAX_ATTACHMENTS} screenshots that might be relevant to the issue that + you're facing +

    +
    +
    + +
    +
    + {uploadedDataUrls.map((x: any, idx: number) => ( +
    +
    removeUploadedFile(idx)} + > + +
    +
    + ))} + {uploadedFiles.length < MAX_ATTACHMENTS && ( +
    { + if (uploadButtonRef.current) (uploadButtonRef.current as any).click() + }} + > + +
    + )} +
    +
    +
    +
    +
    + +
    +
    +
    + ) +} + +export default observer(SupportForm) diff --git a/studio/components/interfaces/Support/SupportForm.utils.ts b/studio/components/interfaces/Support/SupportForm.utils.ts new file mode 100644 index 00000000000..3bbb04fb8b0 --- /dev/null +++ b/studio/components/interfaces/Support/SupportForm.utils.ts @@ -0,0 +1,66 @@ +import { compact } from 'lodash' +import { createClient } from '@supabase/supabase-js' +import { uuidv4 } from 'lib/helpers' + +const SUPPORT_API_URL = process.env.NEXT_PUBLIC_SUPPORT_API_URL || '' +const SUPPORT_API_KEY = process.env.NEXT_PUBLIC_SUPPORT_ANON_KEY || '' +const supportSupabaseClient = createClient(SUPPORT_API_URL, SUPPORT_API_KEY, { + auth: { + persistSession: false, + autoRefreshToken: false, + // @ts-ignore + multiTab: false, + detectSessionInUrl: false, + localStorage: { + getItem: (key: string) => undefined, + setItem: (key: string, value: string) => {}, + removeItem: (key: string) => {}, + }, + }, +}) + +export function formReducer(state: any, action: any) { + return { + ...state, + [action.name]: { + value: action.value, + error: action.error, + }, + } +} + +export const uploadAttachments = async (ref: string, files: File[]) => { + const filesToUpload = Array.from(files) + const uploadedFiles = await Promise.all( + filesToUpload.map(async (file) => { + const suffix = file.type.split('/')[1] + const prefix = `${ref}/${uuidv4()}.${suffix}` + const options = { cacheControl: '3600' } + + const { data, error } = await supportSupabaseClient.storage + .from('support-attachments') + .upload(prefix, file, options) + + if (error) console.error('Failed to upload:', file.name, error) + return data + }) + ) + const keys = compact(uploadedFiles).map((file) => file.path) + + const { data, error } = await supportSupabaseClient.storage + .from('support-attachments') + .createSignedUrls(keys, 10 * 365 * 24 * 60 * 60) + if (error) { + console.error('Failed to retrieve URLs for attachments', error) + } + return data ? data.map((file) => file.signedUrl) : [] +} + +export const formatMessage = (message: string, attachments: string[]) => { + if (attachments.length > 0) { + const attachmentsImg = attachments.map((url) => `\n${url}`) + return `${message}\n${attachmentsImg.join('')}` + } else { + return message + } +} diff --git a/studio/components/interfaces/TableGridEditor/EmptyState.tsx b/studio/components/interfaces/TableGridEditor/EmptyState.tsx index 92d91dcb02a..8c9a1486b09 100644 --- a/studio/components/interfaces/TableGridEditor/EmptyState.tsx +++ b/studio/components/interfaces/TableGridEditor/EmptyState.tsx @@ -1,8 +1,9 @@ import { FC } from 'react' -import { Button } from '@supabase/ui' +import { observer } from 'mobx-react-lite' import { PostgresTable } from '@supabase/postgres-meta' -import { checkPermissions, useStore } from 'hooks' import { PermissionAction } from '@supabase/shared-types/out/constants' +import { checkPermissions, useStore } from 'hooks' +import ProductEmptyState from 'components/to-be-cleaned/ProductEmptyState' interface Props { selectedSchema: string @@ -12,28 +13,36 @@ interface Props { const EmptyState: FC = ({ selectedSchema, onAddTable }) => { const { meta } = useStore() const tables = meta.tables.list((table: PostgresTable) => table.schema === selectedSchema) - - const renderNoTablesCTA = () => { - return ( -
    -

    There are no tables available in this schema

    - {selectedSchema === 'public' && } -
    - ) - } + const isProtectedSchema = meta.excludedSchemas.includes(selectedSchema) + const canCreateTables = + !isProtectedSchema && checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'tables') return (
    {tables.length === 0 ? ( - renderNoTablesCTA() + +

    There are no tables available in this schema.

    +
    ) : (
    -

    Select a table or create a new one

    - + +

    + Select a table from the navigation panel on the left to view its data + {canCreateTables && ', or create a new one.'} +

    +
    )}
    ) } -export default EmptyState +export default observer(EmptyState) diff --git a/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx b/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx index 58347bd93be..591e3a13590 100644 --- a/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx +++ b/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx @@ -1,6 +1,6 @@ import { FC } from 'react' import Link from 'next/link' -import { Button, IconAlertCircle, IconLock } from '@supabase/ui' +import { Button, IconAlertCircle, IconLock } from 'ui' import { PostgresPolicy, PostgresTable } from '@supabase/postgres-meta' import { useStore } from 'hooks' @@ -15,7 +15,7 @@ const GridHeaderActions: FC = ({ table }) => { const policies = meta.policies.list((policy: PostgresPolicy) => policy.table_id === table.id) return ( -
    +
    diff --git a/studio/components/interfaces/TableGridEditor/NotFoundState.tsx b/studio/components/interfaces/TableGridEditor/NotFoundState.tsx index 4d63eecbb00..9f695da5c22 100644 --- a/studio/components/interfaces/TableGridEditor/NotFoundState.tsx +++ b/studio/components/interfaces/TableGridEditor/NotFoundState.tsx @@ -1,4 +1,3 @@ -import { Typography } from '@supabase/ui' import { FC } from 'react' interface Props { @@ -8,7 +7,7 @@ interface Props { const NotFoundState: FC = ({ id }) => { return (
    - Oops! Unable to find your table with the ID {id} +

    Oops! Unable to find your table with the ID {id}

    ) } diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ActionBar.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ActionBar.tsx index 4a5df6029fb..03f8b01dc8d 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ActionBar.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ActionBar.tsx @@ -1,5 +1,5 @@ import { FC, useState } from 'react' -import { Button } from '@supabase/ui' +import { Button } from 'ui' interface ActionBarProps { loading?: boolean @@ -33,7 +33,7 @@ const ActionBar: FC = ({ } return ( -
    +
    diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnDefaultValue.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnDefaultValue.tsx index 8c3818e61ce..e8f039ce254 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnDefaultValue.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnDefaultValue.tsx @@ -1,6 +1,6 @@ import React, { FC } from 'react' import { isNil } from 'lodash' -import { Select } from '@supabase/ui' +import { Select } from 'ui' import { PostgresType } from '@supabase/postgres-meta' import InputWithSuggestions from './InputWithSuggestions' @@ -60,8 +60,9 @@ const ColumnDefaultValue: FC = ({ } value={columnFields?.defaultValue ?? ''} format={columnFields?.format} - suggestionsHeader="Suggested expressions" suggestions={suggestions} + suggestionsHeader="Suggested expressions" + suggestionsTooltip="Suggested expressions" onChange={(event: any) => onUpdateField({ defaultValue: event.target.value })} onSelectSuggestion={(suggestion: Suggestion) => onUpdateField({ defaultValue: suggestion.value }) diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.tsx index 4570eb13c90..98897ffe6d0 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.tsx @@ -1,7 +1,7 @@ import { FC, useEffect, useState } from 'react' import { isUndefined, isEmpty } from 'lodash' import { Dictionary } from 'components/grid' -import { Checkbox, SidePanel, Input } from '@supabase/ui' +import { Checkbox, SidePanel, Input, Button, IconExternalLink } from 'ui' import { PostgresColumn, PostgresRelationship, @@ -25,6 +25,7 @@ import { } from './ColumnEditor.utils' import { TEXT_TYPES } from '../SidePanelEditor.constants' import { ColumnField, CreateColumnPayload, UpdateColumnPayload } from '../SidePanelEditor.types' +import Link from 'next/link' interface Props { column?: PostgresColumn @@ -54,7 +55,6 @@ const ColumnEditor: FC = ({ updateEditorDirty = () => {}, }) => { const isNewRecord = isUndefined(column) - const hasPrimaryKey = (selectedTable?.primary_keys ?? []).length > 0 const originalForeignKey = column ? getColumnForeignKey(column, selectedTable) : undefined const [errors, setErrors] = useState>({}) @@ -122,7 +122,7 @@ const ColumnEditor: FC = ({ if (isEmpty(errors)) { const payload = isNewRecord ? generateCreateColumnPayload(selectedTable.id, columnFields) - : generateUpdateColumnPayload(column!, columnFields) + : generateUpdateColumnPayload(column!, selectedTable, columnFields) const foreignKey = columnFields.foreignKey ? { ...columnFields.foreignKey, source_column_name: columnFields.name } : undefined @@ -177,6 +177,16 @@ const ColumnEditor: FC = ({ value={columnFields?.comment ?? ''} onChange={(event: any) => onUpdateField({ comment: event.target.value })} /> +
    +
    + onUpdateField({ isPrimaryKey: !columnFields?.isPrimaryKey })} + /> +
    +
    @@ -184,18 +194,6 @@ const ColumnEditor: FC = ({
    - {isNewRecord && !hasPrimaryKey && ( -
    -
    - onUpdateField({ isPrimaryKey: !columnFields?.isPrimaryKey })} - /> -
    -
    - )} = ({ enumTypes={enumTypes} error={errors.format} disabled={!isUndefined(columnFields?.foreignKey)} + description={ + + + + + + } onOptionSelect={(format: string) => onUpdateField({ format, defaultValue: null })} /> + {isUndefined(columnFields.foreignKey) && (
    {columnFields.format.includes('int') && ( diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.utils.ts b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.utils.ts index 61720ea7157..299dbfad1d8 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.utils.ts +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnEditor.utils.ts @@ -11,6 +11,8 @@ import { uuidv4 } from 'lib/helpers' import { ColumnField, CreateColumnPayload, UpdateColumnPayload } from '../SidePanelEditor.types' const isSQLExpression = (input: string) => { + if (['CURRENT_DATE'].includes(input)) return true + if (input[0] === '(' && input[input.length - 1] === ')') { return true } @@ -60,7 +62,7 @@ export const generateColumnFieldFromPostgresColumn = ( name: column.name, comment: column?.comment ?? '', format: isArray ? column.format.slice(1) : column.format, - defaultValue: unescapeLiteral(column?.default_value as string), + defaultValue: column?.default_value as string | null, isArray: isArray, isNullable: column.is_nullable, isIdentity: column.is_identity, @@ -103,8 +105,13 @@ export const generateCreateColumnPayload = ( export const generateUpdateColumnPayload = ( originalColumn: PostgresColumn, + table: PostgresTable, field: ColumnField ): Partial => { + // @ts-ignore + const primaryKeyColumns = table.primary_keys.map((key) => key.name) + const isOriginallyPrimaryKey = primaryKeyColumns.includes(originalColumn.name) + // Only append the properties which are getting updated const defaultValue = field.defaultValue const type = field.isArray ? `${field.format}[]` : field.format @@ -120,7 +127,7 @@ export const generateUpdateColumnPayload = ( if (!isEqual(originalColumn.format, type)) { payload.type = type } - if (!isEqual(unescapeLiteral(originalColumn.default_value as string), defaultValue)) { + if (!isEqual(originalColumn.default_value as string, defaultValue)) { payload.defaultValue = defaultValue payload.defaultValueFormat = isNull(defaultValue) || isSQLExpression(defaultValue) @@ -136,6 +143,9 @@ export const generateUpdateColumnPayload = ( if (!isEqual(originalColumn.is_unique, field.isUnique)) { payload.isUnique = field.isUnique } + if (!isEqual(isOriginallyPrimaryKey, field.isPrimaryKey)) { + payload.isPrimaryKey = field.isPrimaryKey + } return payload } @@ -195,59 +205,3 @@ const formatArrayToPostgresArray = (arrayString: string) => { if (!arrayString) return null return arrayString.replaceAll('[', '{').replaceAll(']', '}') } - -export const unescapeLiteral = (value: string) => { - if (!value) return value - - // Handle combinations - this is really not the best solution imo - // It's a log(n) attempt to strip off the ::type strings - if (value.includes('||')) { - const formattedValue = [] - let found = false - for (let i = 0; i < value.length; i++) { - if (value[i] === ':') found = true - if (((value[i] === ' ' || value[i] === ')') && found) || i === value.length - 1) found = false - if (!found) formattedValue.push(value[i]) - } - return formattedValue.join('') - } - - const splits = value.split("'::") - if (splits.length <= 1) return value - - // Handle timezones - if (value.toLowerCase().includes('time zone')) { - return `${splits[0].toLowerCase()}')` - } - - // Handle json - if (value.toLowerCase().includes('json')) { - return splits[0].slice(1) - } - - let temp = splits[0].slice(1).replace("'{", '{') - if ( - value.endsWith('integer[]') || - value.endsWith('real[]') || - value.endsWith('bigint[]') || - value.endsWith('smallint[]') - ) { - temp = temp.replace(/{/g, '[') - temp = temp.replace(/}/g, ']') - return temp - } else { - const matches = temp.match(/\{([^{}]+)\}/g) - if (matches) { - const array = [...matches] - array.forEach((x) => { - let _x = x.replace(/{/g, '{"') - _x = _x.replace(/}/g, '"}') - _x = _x.replace(/,/g, '","') - temp = temp.replace(x, _x) - }) - temp = temp.replace(/{/g, '[') - temp = temp.replace(/}/g, ']') - } - return temp - } -} diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnForeignKey.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnForeignKey.tsx index c37eae2c714..cd3a32e6ca0 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnForeignKey.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnForeignKey.tsx @@ -1,6 +1,6 @@ import { FC } from 'react' import { isUndefined } from 'lodash' -import { Button, IconArrowRight, IconLink, Typography } from '@supabase/ui' +import { Button, IconArrowRight, IconLink } from 'ui' import { ColumnField } from '../SidePanelEditor.types' import InformationBox from 'components/ui/InformationBox' @@ -88,7 +88,7 @@ const ColumnForeignKeyInformation: FC<{ block icon={} title={ -
    +
    This column has the following foreign key relation:
    @@ -125,18 +125,18 @@ const ColumnForeignKeyAdded: FC<{ block icon={} title={ -
    +
    The following foreign key relation will be{' '} added: -
    +
    0 ? 'text-code' : ''} max-w-xs truncate`}> {columnName || 'This column'} - + {foreignKey?.target_table_schema}.{foreignKey?.target_table_name}. {foreignKey?.target_column_name} @@ -168,19 +168,17 @@ const ColumnForeignKeyRemoved: FC<{ title={
    - +

    The following foreign key relation will be{' '} removed from this column: - +

    - - {columnName} - + {columnName} - + {originalForeignKey?.target_table_schema}.{originalForeignKey?.target_table_name}. {originalForeignKey?.target_column_name} - +
    @@ -214,26 +212,24 @@ const ColumnForeignKeyUpdated: FC<{ title={
    - +

    The foreign key relation will be updated as such: - +

    - - {columnName} - + {columnName}

    - + {originalForeignKey?.target_table_schema}. {originalForeignKey?.target_table_name}.{originalForeignKey?.target_column_name} - +

    - + {updatedForeignKey?.target_table_schema}.{updatedForeignKey?.target_table_name}. {updatedForeignKey?.target_column_name} - +
    diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx index c88cb1aabff..33ba1198cc3 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/ColumnType.tsx @@ -1,5 +1,5 @@ -import React, { FC } from 'react' -import { IconCalendar, IconType, IconHash, Listbox, IconToggleRight, Input } from '@supabase/ui' +import React, { FC, ReactNode } from 'react' +import { IconCalendar, IconType, IconHash, Listbox, IconToggleRight, Input } from 'ui' import { PostgresType } from '@supabase/postgres-meta' import { POSTGRES_DATA_TYPES, POSTGRES_DATA_TYPE_OPTIONS } from '../SidePanelEditor.constants' import { PostgresDataTypeOption } from '../SidePanelEditor.types' @@ -12,6 +12,7 @@ interface Props { error?: any disabled?: boolean showLabel?: boolean + description?: ReactNode onOptionSelect: (value: string) => void } @@ -23,6 +24,7 @@ const ColumnType: FC = ({ error, disabled = false, showLabel = true, + description, onOptionSelect = () => {}, }) => { // @ts-ignore @@ -75,6 +77,8 @@ const ColumnType: FC = ({ size={size} error={error} disabled={disabled} + // @ts-ignore + descriptionText={description} className={`${className} ${disabled ? 'column-type-disabled' : ''} rounded-md`} onChange={(value: string) => onOptionSelect(value)} optionsWidth={480} @@ -84,11 +88,11 @@ const ColumnType: FC = ({ {/* - Weird issue with Listbox here - 1. Can't do render conditionally (&&) within Listbox hence why using Fragment - 2. Can't wrap these 2 components within a Fragment conditional (enumTypes.length) - as selecting the enumType option will not render it in the Listbox component - */} + Weird issue with Listbox here + 1. Can't do render conditionally (&&) within Listbox hence why using Fragment + 2. Can't wrap these 2 components within a Fragment conditional (enumTypes.length) + as selecting the enumType option will not render it in the Listbox component + */} {enumTypes.length > 0 ? ( User-defined Enumerated Types @@ -105,7 +109,7 @@ const ColumnType: FC = ({ value={enumType.name} label={enumType.name} addOnBefore={() => { - return
    + return
    }} >
    diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/HeaderTitle.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/HeaderTitle.tsx index 49fb2b1bd60..d416f54bba7 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/HeaderTitle.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/HeaderTitle.tsx @@ -1,5 +1,4 @@ import { PostgresTable, PostgresColumn } from '@supabase/postgres-meta' -import { Typography } from '@supabase/ui' interface Props { table: PostgresTable @@ -11,14 +10,13 @@ const HeaderTitle: React.FC = ({ table, column }) => { if (!column) { return ( <> - Add new column to {table.name} + Add new column to {table.name} ) } return ( <> - Update column {column.name} from{' '} - {column.table} + Update column {column.name} from {column.table} ) } diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/InputWithSuggestions.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/InputWithSuggestions.tsx index b73579ecfb0..e5fccc7b56e 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/InputWithSuggestions.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/ColumnEditor/InputWithSuggestions.tsx @@ -6,11 +6,11 @@ // the component over to the UI library import { FC, useEffect, useRef, useState } from 'react' -import { Button, Dropdown, IconList, Input } from '@supabase/ui' +import { Button, Dropdown, IconList, Input } from 'ui' +import * as Tooltip from '@radix-ui/react-tooltip' import { Suggestion } from './ColumnEditor.types' const MAX_SUGGESTIONS = 3 -const DEFAULT_SUGGESTIONS_WIDTH = 400 interface Props { label?: string @@ -22,9 +22,9 @@ interface Props { className?: string value: string format?: string - suggestionsHeader?: string - suggestionsWidth?: number suggestions: Suggestion[] + suggestionsTooltip?: string + suggestionsHeader?: string onChange: (event: any) => void onSelectSuggestion: (suggestion: Suggestion) => void } @@ -40,6 +40,8 @@ const InputWithSuggestions: FC = ({ value = '', format, suggestions = [], + suggestionsTooltip, + suggestionsHeader, onChange = () => {}, onSelectSuggestion = () => {}, }) => { @@ -75,7 +77,7 @@ const InputWithSuggestions: FC = ({ size={size} layout={layout} disabled={disabled} - className={`${className} ${format?.includes('json') ? 'input-mono' : ''}`} + className={className} type="text" value={value} onChange={onInputChange} @@ -87,7 +89,7 @@ const InputWithSuggestions: FC = ({ side="bottom" overlay={ <> - Suggestions + {suggestionsHeader || 'Suggestions'} {filteredSuggestions.map((suggestion: Suggestion) => ( = ({ onClick={() => onSelectSuggestion(suggestion)} >
    {suggestion.name}
    -
    {suggestion.description}
    +
    {suggestion.description}
    ))} } > - + + + } @@ -92,11 +125,13 @@ const InputField: FC = ({ disabled={!isEditable} error={errors[field.name]} rows={5} - value={field.value} + value={field.value ?? ''} placeholder={ - typeof field.defaultValue === 'string' && field.defaultValue.length === 0 + field.defaultValue === null + ? '' + : typeof field.defaultValue === 'string' && field.defaultValue.length === 0 ? 'Default: Empty string' - : field.defaultValue + : `Default: ${field.defaultValue}` } onChange={(event: any) => onUpdateField({ [field.name]: event.target.value })} /> @@ -108,12 +143,12 @@ const InputField: FC = ({ return ( onUpdateField({ [field.name]: event.target.value })} actions={ @@ -121,9 +156,9 @@ const InputField: FC = ({ type="default" htmlType="button" onClick={() => onEditJson({ column: field.name, jsonString: field.value })} - icon={} + icon={} > - View JSON + Edit JSON } /> @@ -135,8 +170,13 @@ const InputField: FC = ({ + {field.defaultValue &&

    Default: {field.defaultValue}

    } + {field.comment &&

    {field.comment}

    } + + } onChange={(value: any) => onUpdateField({ [field.name]: value })} /> ) @@ -149,8 +189,14 @@ const InputField: FC = ({ descriptionText={field.comment} labelOptional={field.format} error={errors[field.name]} - value={field.value} - placeholder={field.isIdentity ? 'Automatically generated as identity' : field.defaultValue} + value={field.value ?? ''} + placeholder={ + field.isIdentity + ? 'Automatically generated as identity' + : field.defaultValue !== null + ? `Default: ${field.defaultValue}` + : '' + } disabled={!isEditable} onChange={(event: any) => onUpdateField({ [field.name]: event.target.value })} /> diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/DrilldownViewer/DrilldownBreadCrumbs.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/DrilldownViewer/DrilldownBreadCrumbs.tsx index 6c9599b1531..94f2ee3cc1d 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/DrilldownViewer/DrilldownBreadCrumbs.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/DrilldownViewer/DrilldownBreadCrumbs.tsx @@ -1,6 +1,6 @@ import { FC } from 'react' import { last } from 'lodash' -import { IconHome, IconChevronRight } from '@supabase/ui' +import { IconHome, IconChevronRight } from 'ui' interface Props { breadcrumbs: string[] @@ -16,9 +16,9 @@ const DrilldownBreadCrumbs: FC = ({ breadcrumbs = [], onSelectBreadcrumb
    {crumb === last(breadcrumbs) ? ( -

    {crumb}

    +

    {crumb}

    ) : ( -

    +

    diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/DrilldownViewer/DrilldownPane.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/DrilldownViewer/DrilldownPane.tsx index 4049fc1f140..98025dc96c3 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/DrilldownViewer/DrilldownPane.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/DrilldownViewer/DrilldownPane.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { IconChevronRight } from '@supabase/ui' +import { IconChevronRight } from 'ui' import { isNull } from 'lodash' import { Dictionary } from 'components/grid' @@ -14,7 +14,7 @@ const DrilldownPane: FC = ({ pane, jsonData, activeKey, onSelectKey = () if (!jsonData) { return (
    -
    +

    Invalid JSON

    @@ -23,9 +23,9 @@ const DrilldownPane: FC = ({ pane, jsonData, activeKey, onSelectKey = () if (Object.keys(jsonData).length === 0) { return ( -
    -
    -

    No data available

    +
    +
    +

    No data available

    ) @@ -40,28 +40,28 @@ const DrilldownPane: FC = ({ pane, jsonData, activeKey, onSelectKey = () ) return ( -
    +
    {keysWithChildren.map((key: string) => (
    onSelectKey(key, pane)} > -

    {key}

    +

    {key}

    ))} {keysWithoutChildren.map((key: string) => ( -
    -

    {key}:

    +
    +

    {key}:

    = ({ column, jsonString, visible, closePanel, return ( + {view === 'edit' ? ( +

    + Editing JSON Field: {column} +

    + ) : ( +

    + Viewing JSON Field: {column} +

    + )} + +
    + } visible={visible} onCancel={closePanel} customFooter={} > - - - -
    - {view === 'edit' ? ( - - ) : ( - - )} -
    -
    +
    + +
    + {view === 'edit' ? ( +
    + +
    + ) : ( + + )} +
    +
    +
    ) } export default JsonEdit - -interface EditorProps { - column: string - value: string - onChange: (value: any) => void -} - -const Editor: FC = ({ column, value, onChange }) => { - return ( - <> - Edit JSON Field: {column} - -
    - -
    - - ) -} - -type ViewerProps = { - column: string - value: string -} - -const Viewer: FC = ({ column, value }) => { - const json = tryParseJson(value) - return ( - <> - Viewing JSON Field: {column} - - - ) -} diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/TwoOptionToggle.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/TwoOptionToggle.tsx index f487fe57301..44aba26ed7a 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/TwoOptionToggle.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/JsonEditor/TwoOptionToggle.tsx @@ -38,14 +38,14 @@ const TwoOptionToggle: FC = ({ key={`toggle_${index}`} style={{ width: 51 }} className={` - ${activeOption === option ? 'text-gray-200' : 'text-gray-400'} + ${activeOption === option ? 'text-scale-1200' : 'text-scale-1000'} ${index === 0 ? 'right-0' : 'left-0'} ${buttonStyle(activeOption === option)} cursor-pointer `} onClick={() => onClickOption(option)} > - {option} + {option} ))}
    diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/ReferenceRowViewer.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/ReferenceRowViewer.tsx index efbf737e6f3..8f32cec127c 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/ReferenceRowViewer.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/ReferenceRowViewer.tsx @@ -1,5 +1,5 @@ import React, { FC, useEffect, useState } from 'react' -import { SidePanel, IconLoader, IconXCircle } from '@supabase/ui' +import { SidePanel, IconLoader, IconXCircle } from 'ui' import { PostgresRelationship } from '@supabase/postgres-meta' import ActionBar from '../ActionBar' @@ -51,12 +51,12 @@ const ReferenceRowViewer: FC = ({ visible, referenceRow, closePanel }) => {loading ? (
    -

    Loading reference row

    +

    Loading reference row

    ) : !row ? (
    -

    +

    Unable to find the corresponding row in {foreignKey?.target_table_schema}. {foreignKey?.target_table_name}

    diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.tsx index 5b3bfb9d459..c4c87baf6d4 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.tsx @@ -1,6 +1,6 @@ import { FC, useEffect, useState } from 'react' import { isUndefined, partition, isEmpty } from 'lodash' -import { SidePanel } from '@supabase/ui' +import { SidePanel } from 'ui' import { Dictionary } from 'components/grid' import { Query } from 'components/grid/query/Query' import { PostgresTable } from '@supabase/postgres-meta' @@ -57,7 +57,7 @@ const RowEditor: FC = ({ useEffect(() => { if (visible) { setErrors({}) - const rowFields = generateRowFields(row, selectedTable, isNewRecord) + const rowFields = generateRowFields(row, selectedTable) setRowFields(rowFields) } }, [visible]) @@ -147,6 +147,7 @@ const RowEditor: FC = ({ return ( = ({ isEditingJson || isViewingReferenceRow ? ' mr-32' : '' }`} onCancel={closePanel} - hideFooter onInteractOutside={(event) => { const isToast = (event.target as Element)?.closest('#toast') if (isToast) { @@ -188,8 +188,8 @@ const RowEditor: FC = ({
    -

    Optional Fields

    -

    +

    Optional Fields

    +

    These are columns that do not need any value

    diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.types.ts b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.types.ts index 06bc45db52a..495ea21e5d1 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.types.ts +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.types.ts @@ -17,8 +17,8 @@ export interface RowField { comment: string format: string enums: string[] - value: string - defaultValue: string + value: string | null + defaultValue: string | null foreignKey?: PostgresRelationship isNullable: boolean isIdentity: boolean diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.utils.ts b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.utils.ts index fb93bd3f0e6..62b0128756c 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.utils.ts +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/RowEditor/RowEditor.utils.ts @@ -1,37 +1,26 @@ import dayjs from 'dayjs' -import { find, isUndefined, compact, includes, isEqual, omitBy, isNull, isString } from 'lodash' +import { find, isUndefined, compact, isEqual, omitBy, isNull, isString } from 'lodash' import { Dictionary } from 'components/grid' import { PostgresTable } from '@supabase/postgres-meta' import { uuidv4, minifyJSON, tryParseJson } from 'lib/helpers' import { RowField } from './RowEditor.types' -import { - JSON_TYPES, - NUMERICAL_TYPES, - DATETIME_TYPES, - TIME_TYPES, - TIMESTAMP_TYPES, -} from '../SidePanelEditor.constants' +import { DATETIME_TYPES, TIME_TYPES, TIMESTAMP_TYPES } from '../SidePanelEditor.constants' export const generateRowFields = ( row: Dictionary | undefined, - table: PostgresTable, - isNewRecord?: boolean + table: PostgresTable ): RowField[] => { const { relationships, primary_keys } = table // @ts-ignore const primaryKeyColumns = primary_keys.map((key) => key.name) return table.columns.map((column) => { - const defaultValue = column?.default_value as string | null - const value = - isNewRecord && defaultValue?.includes('now()') - ? nowDateTimeValue(column.format) - : isUndefined(row) - ? '' - : DATETIME_TYPES.includes(column.format) - ? convertPostgresDatetimeToInputDatetime(column.format, row[column.name]) - : parseValue(row[column.name], column.format, column.data_type) + const value = isUndefined(row) + ? '' + : DATETIME_TYPES.includes(column.format) + ? convertPostgresDatetimeToInputDatetime(column.format, row[column.name]) + : parseValue(row[column.name], column.format) const foreignKey = find(relationships, (relationship) => { return ( @@ -49,7 +38,7 @@ export const generateRowFields = ( comment: parseDescription(column.comment), format: column.format, enums: column.enums as any, - defaultValue: parseValue(column.default_value as string, column.format, column.data_type), + defaultValue: column?.default_value as string | null, isNullable: column.is_nullable, isIdentity: column.is_identity, isPrimaryKey: primaryKeyColumns.includes(column.name), @@ -60,29 +49,23 @@ export const generateRowFields = ( export const validateFields = (fields: RowField[]) => { const errors = {} as any fields.forEach((field) => { - if (field.format.startsWith('_') && field.value?.length > 0) { + const isArray = field.format.startsWith('_') + + if (isArray && field.value) { try { - minifyJSON(field.value) + JSON.parse(field.value) } catch { - errors[field.name] = 'Invalid array' + errors[field.name] = 'Value is an invalid array' } } - if (field.format.includes('json') && field.value?.length > 0) { + if (field.format.includes('json') && (field.value?.length ?? 0) > 0) { try { - minifyJSON(field.value) + minifyJSON(field.value ?? '') } catch { - errors[field.name] = 'Invalid JSON' + errors[field.name] = 'Value is an invalid JSON' } } if (field.isIdentity || field.defaultValue) return - if ( - !field.isNullable && - typeof field.value === 'string' && - field.value.length === 0 && - field.defaultValue === null - ) { - errors[field.name] = `Please assign a value for this field` - } }) return errors } @@ -107,7 +90,7 @@ export const generateRowFieldsWithoutColumnMeta = (row: any): RowField[] => { }) } -const parseValue = (originalValue: string, format: string, dataType: string) => { +const parseValue = (originalValue: string, format: string) => { try { if (originalValue === null || originalValue.length === 0) { return originalValue @@ -117,26 +100,8 @@ const parseValue = (originalValue: string, format: string, dataType: string) => return JSON.stringify(originalValue) } else if (typeof originalValue === 'boolean') { return (originalValue as any).toString() - } else if (includes(JSON_TYPES, format)) { - const value = _unescapeLiteral(dataType, originalValue, format) - return minifyJSON(value) - } - - // escape literal format from postgres-meta - const value = _unescapeLiteral(dataType, originalValue, format) - if (dataType && dataType.toLowerCase() == 'array') { - if (originalValue && originalValue.includes("}'::") && originalValue.endsWith('[]')) { - // for array default value, we need to use this method to parse literal format - // TODO: should merge with above method... if we can - return _unescapeLiteralArray(originalValue) - } else if (typeof value === 'string') { - const parsedValue = JSON.parse(value) - return JSON.parse(parsedValue) - } else { - return JSON.stringify(value) - } } else { - return value + return originalValue } } catch (error) { return originalValue @@ -161,24 +126,8 @@ const parseDescription = (description: string | null) => { } } -const nowDateTimeValue = (format: string) => { - switch (format) { - case 'timestamptz': - return dayjs().format('YYYY-MM-DDTHH:mm:ss') - case 'timestamp': - return dayjs().format('YYYY-MM-DDTHH:mm:ss') - case 'timetz': - return dayjs().format('HH:mm:ss') - case 'time': - return dayjs().format('HH:mm:ss') - default: - return dayjs().format('YYYY-MM-DD') - } -} - const convertPostgresDatetimeToInputDatetime = (format: string, value: string) => { if (!value || value.length == 0) return '' - if (TIMESTAMP_TYPES.includes(format)) { return dayjs(value).format('YYYY-MM-DDTHH:mm:ss') } else if (TIME_TYPES.includes(format)) { @@ -206,82 +155,22 @@ const convertInputDatetimeToPostgresDatetime = (format: string, value: string | } } -/** - * postgres-meta can return default value with format like - * 'hello world'::character varying - * '232.34'::double precision - * 'USER'::"Role" user-defined type - * this method will help convert them to valid default value - */ -const _unescapeLiteral = (dataType: string, value: string, format: string): any => { - // unEscape format literal - let temp = `::${dataType}` - let tempWithQuotes = `::"${dataType}"` - // for user-defined type, need to use format instead - if (dataType?.toLowerCase() == 'user-defined') { - temp = `::${format}` - tempWithQuotes = `::"${format}"` - } - - if (value && value.includes(temp)) { - value = value.replace(temp, '') - // remove quotes - value = value.slice(1, value.length - 1) - } else if (value && value.includes(tempWithQuotes)) { - value = value.replace(tempWithQuotes, '') - // remove quotes - value = value.slice(1, value.length - 1) - } - return value -} - -/** - * postgres-meta can return default value for array like - * ex: '{apple,banana}'::text[] => ["apple","banana"] - * ex: '{1,2,3,4,5,6}'::integer[] => [1,2,3,4,5,6] - * ex: '{{meeting,lunch},{training,presentation}}'::character varying[] - * this method will help convert them to valid default value - */ -const _unescapeLiteralArray = (value: any) => { - const splits = value.split("'::") - if (splits.length < 1) return value - - let temp = splits[0].replace("'{", '{') - if (value.endsWith('integer[]') || value.endsWith('real[]')) { - temp = temp.replaceAll('{', '[') - temp = temp.replaceAll('}', ']') - return temp - } else { - const matches = temp.match(/\{([^{}]+)\}/g) - if (matches) { - const array = [...matches] - array.forEach((x) => { - let _x = x.replaceAll('{', '{"') - _x = _x.replaceAll('}', '"}') - _x = _x.replaceAll(',', '","') - temp = temp.replace(x, _x) - }) - temp = temp.replaceAll('{', '[') - temp = temp.replaceAll('}', ']') - } - return temp - } -} - export const generateRowObjectFromFields = ( fields: RowField[], includeNullProperties = false ): object => { const rowObject = {} as any fields.forEach((field) => { + const isArray = field.format.startsWith('_') const value = (field?.value ?? '').length === 0 ? null : field.value - if (field.format.includes('json') || (field.format.startsWith('_') && value)) { + + if (isArray && value !== null) { + rowObject[field.name] = tryParseJson(value) + } else if (field.format.includes('json')) { if (typeof field.value === 'object') { rowObject[field.name] = value - } else { - if (isString(value)) { - rowObject[field.name] = tryParseJson(value) - } + } else if (isString(value)) { + rowObject[field.name] = tryParseJson(value) } } else if (field.format === 'bool' && value) { rowObject[field.name] = value === 'true' diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.tsx index 8664cbfb1c3..8a0d3ee57d3 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.tsx @@ -1,7 +1,7 @@ import { FC, useState } from 'react' import { find, isEmpty, isUndefined } from 'lodash' import { Query, Dictionary } from 'components/grid' -import { Modal } from '@supabase/ui' +import { Modal } from 'ui' import { PostgresRelationship, PostgresTable, @@ -63,11 +63,20 @@ const SidePanelEditor: FC = ({ configuration: { identifiers: any; rowIdx: number }, onComplete: Function ) => { + if (selectedTable === undefined) return + let saveRowError = false + // @ts-ignore + const enumArrayColumns = selectedTable.columns + .filter((column) => { + return (column?.enums ?? []).length > 0 && column.data_type.toLowerCase() === 'array' + }) + .map((column) => column.name) + if (isNewRecord) { const insertQuery = new Query() - .from(selectedTable!.name, selectedTable!.schema) - .insert([payload], { returning: true }) + .from(selectedTable.name, selectedTable.schema) + .insert([payload], { returning: true, enumArrayColumns }) .toSql() const res: any = await meta.query(insertQuery) @@ -80,10 +89,10 @@ const SidePanelEditor: FC = ({ } else { const hasChanges = !isEmpty(payload) if (hasChanges) { - if (selectedTable!.primary_keys.length > 0) { + if (selectedTable.primary_keys.length > 0) { const updateQuery = new Query() - .from(selectedTable!.name, selectedTable!.schema) - .update(payload, { returning: true }) + .from(selectedTable.name, selectedTable.schema) + .update(payload, { returning: true, enumArrayColumns }) .match(configuration.identifiers) .toSql() @@ -120,7 +129,11 @@ const SidePanelEditor: FC = ({ resolve: any ) => { const response = isNewRecord - ? await meta.createColumn(payload as CreateColumnPayload, foreignKey) + ? await meta.createColumn( + payload as CreateColumnPayload, + selectedTable as PostgresTable, + foreignKey + ) : await meta.updateColumn( configuration.columnId as string, payload as UpdateColumnPayload, @@ -289,7 +302,7 @@ const SidePanelEditor: FC = ({ }} children={ -

    +

    There are unsaved changes. Are you sure you want to close the panel? Your changes will be lost.

    diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.types.ts b/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.types.ts index 0a32830fa62..b4d0338e14f 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.types.ts +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.types.ts @@ -25,6 +25,7 @@ export interface UpdateColumnPayload { isIdentity?: boolean isNullable?: boolean isUnique?: boolean + isPrimaryKey?: boolean identityGeneration?: 'BY DEFAULT' | 'ALWAYS' } diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/Column.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/Column.tsx index e18b8003c86..3e74d2c1910 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/Column.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/Column.tsx @@ -1,16 +1,6 @@ import { FC } from 'react' import { isUndefined } from 'lodash' -import { - Checkbox, - Input, - Typography, - IconX, - IconMenu, - Popover, - IconLink, - IconSettings, - Button, -} from '@supabase/ui' +import { Checkbox, Input, IconX, IconMenu, Popover, IconLink, IconSettings, Button } from 'ui' import { PostgresType } from '@supabase/postgres-meta' import { ColumnField } from '../SidePanelEditor.types' @@ -71,9 +61,7 @@ const Column: FC = ({
    - - - +
    @@ -81,9 +69,9 @@ const Column: FC = ({ = ({ }`} suggestions={suggestions} suggestionsHeader="Suggested expressions" - suggestionsWidth={410} + suggestionsTooltip="Suggested expressions" onChange={(event: any) => onUpdateColumn({ defaultValue: event.target.value })} onSelectSuggestion={(suggestion: Suggestion) => onUpdateColumn({ defaultValue: suggestion.value }) @@ -155,7 +143,7 @@ const Column: FC = ({ className="pointer-events-auto" header={
    -
    Extra options
    +
    Extra options
    } overlay={[ @@ -220,11 +208,11 @@ const Column: FC = ({ >
    {settingsCount > 0 && ( -
    +
    {settingsCount}
    )} -
    +
    @@ -234,11 +222,9 @@ const Column: FC = ({
    {!hasImportContent && (
    -
    onRemoveColumn()}> - - - -
    +
    )}
    diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx index 8b8e8842346..5624841d206 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/ColumnManagement.tsx @@ -1,14 +1,8 @@ +import Link from 'next/link' import React, { FC, useState } from 'react' import { partition, isEmpty, isUndefined } from 'lodash' -import { - Alert, - Button, - IconEdit, - IconHelpCircle, - IconKey, - IconTrash, - Typography, -} from '@supabase/ui' +import { Alert, Button, IconEdit, IconHelpCircle, IconKey, IconTrash, IconExternalLink } from 'ui' + import { PostgresTable, PostgresColumn, @@ -49,7 +43,7 @@ const ColumnManagement: FC = ({ tables = [], columns = [], enumTypes = [], - importContent = {}, + importContent, isNewRecord, onColumnsUpdated = () => {}, onSelectImportData = () => {}, @@ -150,7 +144,7 @@ const ColumnManagement: FC = ({ <>
    - Columns +
    Columns
    {isNewRecord && ( <> {hasImportContent ? ( @@ -173,10 +167,10 @@ const ColumnManagement: FC = ({ {hasImportContent && (
    - +

    Your table will be created with {importContent?.rowCount?.toLocaleString()} rows and the following {columns.length} columns. - +

    )} @@ -204,17 +198,17 @@ const ColumnManagement: FC = ({ {/* Drag handle */} {isNewRecord &&
    }
    -
    Name
    +
    Name
    -
    Type
    +
    Type
    -
    Default Value
    +
    Default Value
    -
    +
    @@ -222,11 +216,11 @@ const ColumnManagement: FC = ({
    - + Can be either a value or a SQL expression
    @@ -234,7 +228,7 @@ const ColumnManagement: FC = ({
    -
    Primary
    +
    Primary
    {/* Empty space */}
    @@ -318,11 +312,24 @@ const ColumnManagement: FC = ({
    - {!hasImportContent && ( - - )} +
    + {!hasImportContent && ( + + )} + + + + + +
    = ({ schema, table, isDuplicating }) => { +const HeaderTitle: FC = ({ schema, table, isDuplicating }) => { if (!table) { return ( <> @@ -18,13 +18,13 @@ const HeaderTitle: React.FC = ({ schema, table, isDuplicating }) => { if (isDuplicating) { return ( <> - Duplicate table {table.name} + Duplicate table {table.name} ) } return ( <> - Update table {table.name} + Update table {table.name} ) } diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadSheetFileUpload.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadSheetFileUpload.tsx index c9f58aa2091..e687346f53a 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadSheetFileUpload.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/TableEditor/SpreadsheetImport/SpreadSheetFileUpload.tsx @@ -1,5 +1,5 @@ import { DragEvent, useRef, useState, FC } from 'react' -import { Button, Typography, IconLoader, IconFileText } from '@supabase/ui' +import { Button, IconLoader, IconFileText } from 'ui' import SparkBar from 'components/ui/SparkBar' interface Props { @@ -36,13 +36,13 @@ const SpreadSheetFileUpload: FC = ({ return (
    -

    +

    Upload a CSV or TSV file. The first row should be the headers of the table, and your headers should not include any special characters other than hyphens ( -) or underscores (_ ).

    -

    +

    Tip: Datetime columns should be formatted as YYYY-MM-DD HH:mm:ss

    @@ -56,15 +56,15 @@ const SpreadSheetFileUpload: FC = ({ onDrop={onDrop} onClick={() => (uploadButtonRef.current as any)?.click()} > - +

    Drag and drop, or browse your files - +

    ) : (
    -

    {uploadedFile.name}

    +

    {uploadedFile.name}

    {parseProgress === 100 ? ( @@ -94,7 +94,7 @@ const HelpPopover: FC = () => {
    -
    +
    { const { ui } = useStore() const { selectedOrganization, selectedProject } = ui + const router = useRouter() + const { ref } = router.query + + const { usage } = useProjectUsage(ref as string) + const resourcesExceededLimits = getResourcesExceededLimits(usage) + const projectHasNoLimits = + ui.selectedProject?.subscription_tier === PRICING_TIER_PRODUCT_IDS.PAYG || + ui.selectedProject?.subscription_tier === PRICING_TIER_PRODUCT_IDS.ENTERPRISE + const showOverUsageBadge = + selectedProject?.subscription_tier !== undefined && + !projectHasNoLimits && + resourcesExceededLimits.length > 0 + return ( - //
    - //
    ) } export default observer(LayoutHeader) diff --git a/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationActions.tsx b/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationActions.tsx index 1bf5f150b46..c7ee95701b4 100644 --- a/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationActions.tsx +++ b/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationActions.tsx @@ -1,39 +1,102 @@ -import { FC } from 'react' +import { FC, Fragment } from 'react' import { useRouter } from 'next/router' -import { Button } from '@supabase/ui' +import { Button, IconExternalLink } from 'ui' +import { Action, ActionReason, ActionType } from '@supabase/shared-types/out/notifications' import { Project } from 'types' +import Link from 'next/link' + +// [Joshen TODO] Remove all things about "ownerReassignStatus" after 5th November +// double check with Qiao before we remove them. interface Props { project: Project - availableActions: any[] + changelogLink?: string + ownerReassignStatus?: any + availableActions: Action[] onSelectRestartProject: () => void + onSelectApplyMigration: () => void + onSelectRollbackMigration: () => void + onSelectFinalizeMigration: () => void } -const NotificationActions: FC = ({ project, availableActions, onSelectRestartProject }) => { +const NotificationActions: FC = ({ + project, + changelogLink, + ownerReassignStatus, + availableActions, + onSelectRestartProject, + onSelectApplyMigration, + onSelectRollbackMigration, + onSelectFinalizeMigration, +}) => { const router = useRouter() const onSelectUpgradeProject = () => { return router.push(`/project/${project.ref}/settings/billing/update/pro`) } - return ( -
    - {availableActions.map((action: any) => { - if (action.action_type === 'project.upgrade') { + const renderActionButton = (action: Action) => { + switch (action.action_type) { + case ActionType.UpgradeProjectToPro: + return ( + + ) + case ActionType.SchedulePostgresRestart: + return ( + + ) + case ActionType.MigratePostgresSchema: + if (action.reason === ActionReason.Finalize) { return ( - + ownerReassignStatus?.desired !== 'migrated' && ( + + ) ) - } else if (action.action_type === 'postgresql.restart') { + } else if (action.reason === ActionReason.Rollback) { return ( - + ownerReassignStatus?.desired === 'temp_role' && ( + + ) + ) + } else { + return ( + ownerReassignStatus?.desired === 'unmigrated' && ( + + ) ) } + } + } + + return ( +
    + {availableActions.map((action) => { + return ( + + {renderActionButton(action)} + + ) })} + {changelogLink && ( + + + + + + )}
    ) } diff --git a/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationRow.tsx b/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationRow.tsx index c14483f8722..d9f170f626c 100644 --- a/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationRow.tsx +++ b/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationRow.tsx @@ -1,4 +1,5 @@ import dayjs from 'dayjs' +import useSWR from 'swr' import { FC } from 'react' import { Notification, NotificationStatus } from '@supabase/shared-types/out/notifications' @@ -6,38 +7,65 @@ import { useStore } from 'hooks' import { Project } from 'types' import { formatNotificationCTAText, formatNotificationText } from './NotificationRows.utils' import NotificationActions from './NotificationActions' +import { get } from 'lib/common/fetch' +import { API_URL } from 'lib/constants' interface Props { notification: Notification onSelectRestartProject: (project: Project, notification: Notification) => void + onSelectApplyMigration: (project: Project, notification: Notification) => void + onSelectRollbackMigration: (project: Project, notification: Notification) => void + onSelectFinalizeMigration: (project: Project, notification: Notification) => void } -const NotificationRow: FC = ({ notification, onSelectRestartProject }) => { +const NotificationRow: FC = ({ + notification, + onSelectRestartProject, + onSelectApplyMigration, + onSelectRollbackMigration, + onSelectFinalizeMigration, +}) => { const { app } = useStore() const [project] = app.projects.list((project: Project) => project.id === notification.project_id) const insertedAt = dayjs(notification.inserted_at).format('DD MMM YYYY, HH:mma') + const changelogLink = (notification.data as any).changelog_link const availableActions = notification.meta?.actions_available ?? [] + // [Joshen TODO] This should be removed after 5th November when the migration notifications + // have been removed, double check with Qiao before removing. + // Relevant PR: https://github.com/supabase/supabase/pull/9229 + const { data: ownerReassignStatus } = useSWR( + (notification.data as any).upgrade_type === 'schema-migration' + ? `${API_URL}/database/${project.ref}/owner-reassign` + : null, + get + ) + return (
    -
    +
    {notification.notification_status !== NotificationStatus.Seen && (
    )}
    -
    -
    -

    {formatNotificationText(project, notification)}

    -

    {formatNotificationCTAText(availableActions)}

    -

    {insertedAt}

    +
    +
    + {formatNotificationText(project, notification, ownerReassignStatus)} + {formatNotificationCTAText(availableActions, ownerReassignStatus)} +

    {insertedAt}

    -
    +
    {availableActions.length > 0 && ( onSelectRestartProject(project, notification)} + onSelectApplyMigration={() => onSelectApplyMigration(project, notification)} + onSelectRollbackMigration={() => onSelectRollbackMigration(project, notification)} + onSelectFinalizeMigration={() => onSelectFinalizeMigration(project, notification)} /> )}
    diff --git a/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationRows.utils.ts b/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationRows.utils.ts deleted file mode 100644 index 4ffc35756c3..00000000000 --- a/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationRows.utils.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Project } from 'types' -import { - Action, - ActionType, - ExtensionsUpgrade, - Notification, - NotificationName, - ServerUpgrade, - ServiceUpgrade, - ViolatedLimit, -} from '@supabase/shared-types/out/notifications' - -export const formatNotificationText = (project: Project, notification: Notification) => { - const projectName = project.name - - if (notification.data.name === NotificationName.ProjectExceedingTierLimit) { - const { violations } = notification.data - const violationsText = violations - .map((violation: ViolatedLimit) => violation.dimension as string) - .reduce((a: string, b: string) => `${a}, ${b}`) - - return `Your project "${projectName}" has exceeded its limits in the following areas: ${violationsText}.` - } else if (notification.data.name === NotificationName.PostgresqlUpgradeAvailable) { - const { upgrade_type, additional } = notification.data - - if (upgrade_type === 'postgresql-server') { - const { version_to } = additional as ServerUpgrade - return `New version of Postgres (${version_to}) is now available for project "${projectName}".` - } else if (upgrade_type === 'extensions') { - const { name, version_to } = additional as ExtensionsUpgrade - return `New version of "${name}" (${version_to}) is now available for project "${projectName}".` - } - return '' - } else if (notification.data.name === NotificationName.PostgresqlUpgradeCompleted) { - const { upgrade_type, additional } = notification.data - - if (upgrade_type === 'postgresql-server') { - const { version_to } = additional as ServerUpgrade - return `Postgres (${version_to}) has been successfully updated to ${version_to} for project "${projectName}".` - } else if (upgrade_type === 'extensions') { - const { name, version_to } = additional as ExtensionsUpgrade - return `The extension "${name}" has been successfully updated to ${version_to} for project "${projectName}".` - } - } else if (notification.data.name === NotificationName.ProjectUpdateCompleted) { - const { upgrades } = notification.data - const upgradesText = upgrades - .map((upgrade: ServiceUpgrade) => upgrade.name) - .reduce((a: string, b: string) => `${a}, ${b}`) - return `The following services have been successfully updated for project "${projectName}": ${upgradesText}.` - } else if (notification.data.name === NotificationName.ProjectInformational) { - return notification.data.message - } else { - return `Unknown notification type: ${notification.notification_name} - Please reach out to support for more information.` - } -} - -export const formatNotificationCTAText = (availableActions: Action[]) => { - const [action] = availableActions - if (!action) return '' - - switch (action.action_type) { - case ActionType.SchedulePostgresRestart: - return 'Restart your project to get the latest updates.' - case ActionType.UpgradeProjectToPro: - return 'Upgrade your project to ensure continued availability.' - case ActionType.PgBouncerRestart: - return 'Restart your connection pooler to get the latest updates.' - default: - return '' - } -} diff --git a/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationRows.utils.tsx b/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationRows.utils.tsx new file mode 100644 index 00000000000..5acfa19eaa5 --- /dev/null +++ b/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/NotificationRows.utils.tsx @@ -0,0 +1,214 @@ +import dayjs from 'dayjs' +import { Project } from 'types' +import { + Action, + ActionReason, + ActionType, + ExtensionsUpgrade, + Notification, + NotificationName, + ServerUpgrade, + ServiceUpgrade, + ViolatedLimit, +} from '@supabase/shared-types/out/notifications' +import { IconArrowRight, IconExternalLink } from 'ui' +import Link from 'next/link' + +export const formatNotificationText = ( + project: Project, + notification: Notification, + ownerReassignStatus?: any +) => { + const projectName = project.name + + if (notification.data.name === NotificationName.ProjectExceedingTierLimit) { + const { violations } = notification.data + const violationsText = violations + .map((violation: ViolatedLimit) => violation.dimension as string) + .reduce((a: string, b: string) => `${a}, ${b}`) + + return ( +

    + Your project "{projectName}" has exceeded its limits in the following areas:{' '} + {violationsText}. +

    + ) + } else if (notification.data.name === NotificationName.PostgresqlUpgradeAvailable) { + const { upgrade_type, additional } = notification.data + + if (upgrade_type === 'postgresql-server') { + const { version_to } = additional as ServerUpgrade + return ( +

    + New version of Postgres ({version_to}) is now available for project "{projectName}". +

    + ) + } else if (upgrade_type === 'extensions') { + const { name, version_to } = additional as ExtensionsUpgrade + return ( +

    + New version of "{name}" ({version_to}) is now available for project "{projectName}". +

    + ) + } else if (upgrade_type === 'schema-migration') { + const { name, version_to } = additional as ExtensionsUpgrade + return ( +
    +

    A new schema migration is available for your project "{projectName}".

    +
      +
    1. +
      +

      {name}

      + +

      {version_to}

      +
      +
    2. +
    +
    + ) + } + return '' + } else if (notification.data.name === NotificationName.PostgresqlUpgradeCompleted) { + const { upgrade_type, additional } = notification.data + + if (upgrade_type === 'postgresql-server') { + const { version_to } = additional as ServerUpgrade + return ( +

    + Postgres ({version_to}) has been successfully updated to {version_to} for project " + {projectName}". +

    + ) + } else if (upgrade_type === 'extensions') { + const { name, version_to } = additional as ExtensionsUpgrade + return ( +

    + The extension "{name}" has been successfully updated to {version_to} for project " + {projectName}". +

    + ) + } else if (upgrade_type === 'schema-migration') { + const { version_to } = additional + if (ownerReassignStatus?.desired === 'unmigrated') { + return ( +

    + The schema migration "{version_to}" will be applied for project "{projectName}" within a + few days. You may opt to apply the changes now, or it'll be done so automatically. +

    + ) + } else if (ownerReassignStatus?.desired === 'temp_role') { + return ( +

    + The schema migration "{version_to}" will be finalized for project "{projectName}" within + a few days. You may opt to finalize the changes now, or it'll be done so automatically. +

    + ) + } else { + return ( +

    + The schema migration "{version_to}" has been successfully applied for project " + {projectName}". +

    + ) + } + } + } else if (notification.data.name === NotificationName.ProjectUpdateCompleted) { + const { upgrades } = notification.data + return ( +
    +

    + The following services have been successfully updated for project "{projectName}": +

    +
      + {upgrades.map((upgrade: ServiceUpgrade) => ( +
    1. +
      +

      {upgrade.name}

      + +

      {upgrade.version_to}

      + {upgrade.changelog_link && ( +
      + + + + + +
      + )} +
      +
    2. + ))} +
    +
    + ) + } else if (notification.data.name === NotificationName.ProjectInformational) { + return notification.data.message + } else { + return ( +

    + Unknown notification type: {notification.notification_name} - Please reach out to support + for more information. +

    + ) + } +} + +export const formatNotificationCTAText = ( + availableActions: Action[], + ownerReassignStatus?: any +) => { + const [action] = availableActions + if (!action) return

    + + switch (action.action_type) { + case ActionType.SchedulePostgresRestart: + return

    Restart your project to get the latest updates.

    + case ActionType.UpgradeProjectToPro: + return

    Upgrade your project to ensure continued availability.

    + case ActionType.PgBouncerRestart: + return

    Restart your connection pooler to get the latest updates.

    + case ActionType.MigratePostgresSchema: + if (action.deadline) { + if (ownerReassignStatus?.desired === 'migrated') { + return ( +

    + This patch was applied on{' '} + {dayjs(new Date(ownerReassignStatus.migrated_at ?? action.deadline)).format('DD MMM YYYY, HH:mma')} +

    + ) + } else if (ownerReassignStatus?.desired === 'temp_role') { + if (action.reason === ActionReason.Finalize) { + return ( +

    + This patch will be automatically applied after{' '} + {dayjs(new Date(action.deadline)).format('DD MMM YYYY, HH:mma')} +

    + ) + } else { + return ( +

    + This patch was applied on{' '} + {dayjs(new Date(ownerReassignStatus.modified_at)).format('DD MMM YYYY, HH:mma')} +

    + ) + } + } else { + return ( +

    + This patch will be automatically applied after{' '} + {dayjs(new Date(action.deadline)).format('DD MMM YYYY, HH:mma')} +

    + ) + } + } else { + return '' + } + + default: + return '' + } +} diff --git a/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/index.tsx b/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/index.tsx index 29f19f4a857..23014f3f254 100644 --- a/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/index.tsx +++ b/studio/components/layouts/ProjectLayout/LayoutHeader/NotificationsPopover/index.tsx @@ -1,6 +1,7 @@ +import dayjs from 'dayjs' import { FC, Fragment, useState } from 'react' import { useRouter } from 'next/router' -import { Button, IconBell, Popover } from '@supabase/ui' +import { Alert, Button, IconBell, Popover, IconArrowRight } from 'ui' import { Notification, NotificationStatus, @@ -9,7 +10,7 @@ import { import { Project } from 'types' import { useNotifications, useStore } from 'hooks' -import { patch, post } from 'lib/common/fetch' +import { delete_, patch, post } from 'lib/common/fetch' import { API_URL } from 'lib/constants' import NotificationRow from './NotificationRow' import ConfirmModal from 'components/ui/Dialogs/ConfirmDialog' @@ -18,10 +19,14 @@ interface Props {} const NotificationsPopover: FC = () => { const router = useRouter() - const { app, ui } = useStore() + const { app, meta, ui } = useStore() const { notifications, refresh } = useNotifications() const [projectToRestart, setProjectToRestart] = useState() + const [projectToApplyMigration, setProjectToApplyMigration] = useState() + const [projectToRollbackMigration, setProjectToRollbackMigration] = useState() + const [projectToFinalizeMigration, setProjectToFinalizeMigration] = useState() + const [targetNotification, setTargetNotification] = useState() if (!notifications) return <> @@ -53,6 +58,7 @@ const NotificationsPopover: FC = () => { const serviceNamesByActionName: Record = { [ActionType.PgBouncerRestart]: 'pgbouncer', [ActionType.SchedulePostgresRestart]: 'postgresql', + [ActionType.MigratePostgresSchema]: 'postgresql', } const services: string[] = targetNotification.meta.actions_available .map((action) => action.action_type) @@ -82,6 +88,76 @@ const NotificationsPopover: FC = () => { setTargetNotification(undefined) } + // [Joshen/Qiao] These are all very specific to the upcoming security patch + // https://github.com/supabase/supabase/discussions/9314 + // We probably need to revisit this again when we're planning to push out the next wave of + // notifications. Ideally, we should allow these to be more flexible and configurable + // Perhaps the URLs could come from the notification themselves if the actions + // require an external API call, then we just need one method instead of individual ones like this + + const onConfirmProjectApplyMigration = async () => { + if (!projectToApplyMigration) return + const res = await post(`${API_URL}/database/${projectToApplyMigration.ref}/owner-reassign`, {}) + if (!res.error) { + await app.projects.fetchDetail(projectToApplyMigration.ref, (project) => meta.setProjectDetails(project)) + ui.setNotification({ + category: 'success', + message: `Succesfully applied migration for project "${projectToApplyMigration.name}"`, + }) + } else { + ui.setNotification({ + error: res.error, + category: 'error', + message: `Failed to apply migration: ${res.error.message}`, + }) + } + setProjectToApplyMigration(undefined) + } + + const onConfirmProjectRollbackMigration = async () => { + if (!projectToRollbackMigration) return + const res = await delete_( + `${API_URL}/database/${projectToRollbackMigration.ref}/owner-reassign`, + {} + ) + if (!res.error) { + await app.projects.fetchDetail(projectToRollbackMigration.ref, (project) => meta.setProjectDetails(project)) + ui.setNotification({ + category: 'success', + message: `Succesfully rolled back migration for project "${projectToRollbackMigration.name}"`, + }) + } else { + ui.setNotification({ + error: res.error, + category: 'error', + message: `Failed to roll back migration: ${res.error.message}`, + }) + } + setProjectToRollbackMigration(undefined) + } + + const onConfirmProjectFinalizeMigration = async () => { + if (!projectToFinalizeMigration) return + const res = await patch( + `${API_URL}/database/${projectToFinalizeMigration.ref}/owner-reassign`, + {} + ) + if (!res.error) { + await app.projects.fetchDetail(projectToFinalizeMigration.ref, (project) => meta.setProjectDetails(project)) + ui.setNotification({ + category: 'success', + message: `Succesfully finalized migration for project "${projectToFinalizeMigration.name}"`, + }) + } else { + ui.setNotification({ + error: res.error, + category: 'error', + message: `Failed to finalize migration: ${res.error.message}`, + }) + } + setProjectToFinalizeMigration(undefined) + } + return ( <> = () => { sideOffset={8} onOpenChange={onOpenChange} overlay={ -
    +

    Notifications

    {/* Area for improvement: Paginate notifications and show in a side panel */} @@ -103,7 +179,7 @@ const NotificationsPopover: FC = () => {
    {notifications.length === 0 ? (
    -

    No notifications available

    +

    No notifications available

    ) : ( <> @@ -115,6 +191,18 @@ const NotificationsPopover: FC = () => { setProjectToRestart(project) setTargetNotification(notification) }} + onSelectApplyMigration={(project, notification) => { + setProjectToApplyMigration(project) + setTargetNotification(notification) + }} + onSelectRollbackMigration={(project, notification) => { + setProjectToRollbackMigration(project) + setTargetNotification(notification) + }} + onSelectFinalizeMigration={(project, notification) => { + setProjectToFinalizeMigration(project) + setTargetNotification(notification) + }} /> {i !== notifications.length - 1 && } @@ -151,6 +239,100 @@ const NotificationsPopover: FC = () => { onSelectCancel={() => setProjectToRestart(undefined)} onSelectConfirm={onConfirmProjectRestart} /> + +
    +

    The following schema migration will be applied to the project

    +
      +
    1. +
      +

      {(targetNotification?.data as any)?.additional?.name}

      + +

      {(targetNotification?.data as any)?.additional?.version_to}

      +
      +
    2. +
    +
    +

    + This change can be rolled back anytime up till{' '} + {dayjs( + new Date(targetNotification?.meta.actions_available?.[0]?.deadline ?? 0) + ).format('DD MMM YYYY, HH:mma ZZ')} + , after which the changes will be finalized and can no longer be undone. +

    +
    + } + buttonLabel="Confirm" + buttonLoadingLabel="Confirm" + onSelectCancel={() => setProjectToApplyMigration(undefined)} + onSelectConfirm={onConfirmProjectApplyMigration} + /> + +
    +

    The following schema migration will be rolled back for the project

    +
      +
    1. +
      +

      {(targetNotification?.data as any)?.additional?.name}

      + +

      {(targetNotification?.data as any)?.additional?.version_to}

      +
      +
    2. +
    +
    +

    + This migration however will still be applied and finalized after{' '} + {dayjs( + new Date(targetNotification?.meta.actions_available?.[0]?.deadline ?? 0) + ).format('DD MMM YYYY, HH:mma ZZ')} + , after which the changes can no longer be undone. +

    +
    + } + buttonLabel="Confirm" + buttonLoadingLabel="Confirm" + onSelectCancel={() => setProjectToRollbackMigration(undefined)} + onSelectConfirm={onConfirmProjectRollbackMigration} + /> + + +
    +

    The following schema migration will be finalized for the project

    +
      +
    1. +
      +

      {(targetNotification?.data as any)?.additional?.name}

      + +

      {(targetNotification?.data as any)?.additional?.version_to}

      +
      +
    2. +
    +
    +
    + } + buttonLabel="Confirm" + buttonLoadingLabel="Confirm" + onSelectCancel={() => setProjectToFinalizeMigration(undefined)} + onSelectConfirm={onConfirmProjectFinalizeMigration} + /> ) } diff --git a/studio/components/layouts/ProjectLayout/LayoutHeader/OrgDropdown.tsx b/studio/components/layouts/ProjectLayout/LayoutHeader/OrgDropdown.tsx index 5559588b127..f5ebfe64e92 100644 --- a/studio/components/layouts/ProjectLayout/LayoutHeader/OrgDropdown.tsx +++ b/studio/components/layouts/ProjectLayout/LayoutHeader/OrgDropdown.tsx @@ -1,6 +1,6 @@ import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' -import { Button, Dropdown, Divider, IconPlus } from '@supabase/ui' +import { Button, Dropdown, Divider, IconPlus } from 'ui' import { useStore } from 'hooks' import { IS_PLATFORM } from 'lib/constants' diff --git a/studio/components/layouts/ProjectLayout/LayoutHeader/ProjectDropdown.tsx b/studio/components/layouts/ProjectLayout/LayoutHeader/ProjectDropdown.tsx index 9d80016aedc..dff7e100fff 100644 --- a/studio/components/layouts/ProjectLayout/LayoutHeader/ProjectDropdown.tsx +++ b/studio/components/layouts/ProjectLayout/LayoutHeader/ProjectDropdown.tsx @@ -1,19 +1,36 @@ import Link from 'next/link' import { observer } from 'mobx-react-lite' -import { Button, Dropdown, Divider, IconPlus, Popover } from '@supabase/ui' +import { Button, Dropdown, IconPlus, Popover } from 'ui' +import { useRouter } from 'next/router' +import { ParsedUrlQuery } from 'querystring' import { useStore } from 'hooks' import { IS_PLATFORM, PROJECT_STATUS } from 'lib/constants' +// [Fran] the idea is to let users change projects without losing the current page, +// but at the same time we need to redirect correctly between urls that might be +// unique to a project e.g. '/project/projectRef/editor/tableId' +// Right now, I'm gonna assume that any router query after the projectId, +// is a unique project id/marker so we'll redirect the user to the +// highest common route with just projectRef in the router queries. + +const sanitizeRoute = (route: string, routerQueries: ParsedUrlQuery) => { + let queryArray = Object.entries(routerQueries) + if (queryArray.length > 1) { + return route.split('/').slice(0, 4).join('/') + } else { + return route + } +} + const ProjectDropdown = () => { const { app, ui } = useStore() const selectedOrganizationProjects = app.projects.list() const selectedOrganizationSlug = ui.selectedOrganization?.slug const selectedProject: any = ui.selectedProject - // [Joshen] If let's say we want to support changing projects to retain sub-route - // const currentSubRoute = router.route.split('/[ref]/')[1] || '' - // But need to ensure that pages update correctly when the project ref changes + const router = useRouter() + const sanitizedRoute = sanitizeRoute(router.route, router.query) return IS_PLATFORM ? ( { .filter((x: any) => x.status !== PROJECT_STATUS.INACTIVE) .sort((a: any, b: any) => a.name.localeCompare(b.name)) .map((x: any) => ( - + {x.name} diff --git a/studio/components/layouts/ProjectLayout/NavigationBar/NavigationBar.tsx b/studio/components/layouts/ProjectLayout/NavigationBar/NavigationBar.tsx index 6c0d846faa5..cec263e8441 100644 --- a/studio/components/layouts/ProjectLayout/NavigationBar/NavigationBar.tsx +++ b/studio/components/layouts/ProjectLayout/NavigationBar/NavigationBar.tsx @@ -3,19 +3,20 @@ import { FC } from 'react' import { isUndefined } from 'lodash' import { observer } from 'mobx-react-lite' import { useRouter } from 'next/router' -import { Button, Dropdown, IconHome, IconSettings, IconUser } from '@supabase/ui' +import { Button, Dropdown, IconHome, IconSettings, IconUser } from 'ui' import { useFlag, useStore } from 'hooks' import { IS_PLATFORM } from 'lib/constants' import { generateOtherRoutes, generateProductRoutes } from './NavigationBar.utils' import NavigationIconButton from './NavigationIconButton' +import { useParams } from 'hooks/misc/useParams' interface Props {} const NavigationBar: FC = ({}) => { const router = useRouter() + const { ref: projectRef } = useParams() const { ui } = useStore() - const projectRef = ui.selectedProjectRef as string const projectBaseInfo = ui.selectedProjectBaseInfo const ongoingIncident = useFlag('ongoingIncident') @@ -29,7 +30,7 @@ const NavigationBar: FC = ({}) => { style={{ height: ongoingIncident ? 'calc(100vh - 44px)' : '100vh' }} className={[ 'flex w-14 flex-col justify-between overflow-y-hidden p-2', - 'bg-sidebar-light dark:bg-sidebar-dark dark:border-dark border-r', + 'border-r bg-sidebar-light dark:border-dark dark:bg-sidebar-dark', ].join(' ')} >
      @@ -51,7 +52,7 @@ const NavigationBar: FC = ({}) => { link: `/project/${projectRef}`, }} /> -
      +
      {productRoutes.map((route) => ( = ({}) => { isActive={activeRoute === route.key} /> ))} -
      +
      {otherRoutes.map((route) => ( { - const isProjectBuilding = project?.status !== PROJECT_STATUS.ACTIVE_HEALTHY +export const generateProductRoutes = (ref?: string, project?: ProjectBase): Route[] => { + const isProjectBuilding = project?.status === PROJECT_STATUS.COMING_UP + const isProjectPaused = project?.status === PROJECT_STATUS.INACTIVE + + const homeUrl = `/project/${ref}` const buildingUrl = `/project/${ref}/building` return [ @@ -31,13 +32,21 @@ export const generateProductRoutes = (ref: string, project?: ProjectBase): Route preProcessor={(code) => code.replace(/svg/, 'svg class="m-auto text-color-inherit"')} /> ), - link: isProjectBuilding ? buildingUrl : `/project/${ref}/editor`, + link: + ref && + (isProjectPaused ? homeUrl : isProjectBuilding ? buildingUrl : `/project/${ref}/editor`), }, { key: 'auth', label: 'Authentication', icon: , - link: isProjectBuilding ? buildingUrl : `/project/${ref}/auth/users`, + link: + ref && + (isProjectPaused + ? homeUrl + : isProjectBuilding + ? buildingUrl + : `/project/${ref}/auth/users`), }, ...(IS_PLATFORM ? [ @@ -45,7 +54,13 @@ export const generateProductRoutes = (ref: string, project?: ProjectBase): Route key: 'storage', label: 'Storage', icon: , - link: isProjectBuilding ? buildingUrl : `/project/${ref}/storage/buckets`, + link: + ref && + (isProjectPaused + ? homeUrl + : isProjectBuilding + ? buildingUrl + : `/project/${ref}/storage/buckets`), }, ] : []), @@ -59,13 +74,21 @@ export const generateProductRoutes = (ref: string, project?: ProjectBase): Route preProcessor={(code) => code.replace(/svg/, 'svg class="m-auto text-color-inherit"')} /> ), - link: isProjectBuilding ? buildingUrl : `/project/${ref}/sql`, + link: + ref && + (isProjectPaused ? homeUrl : isProjectBuilding ? buildingUrl : `/project/${ref}/sql`), }, { key: 'database', label: 'Database', icon: , - link: isProjectBuilding ? buildingUrl : `/project/${ref}/database/tables`, + link: + ref && + (isProjectPaused + ? homeUrl + : isProjectBuilding + ? buildingUrl + : `/project/${ref}/database/tables`), }, ...(IS_PLATFORM ? [ @@ -73,23 +96,25 @@ export const generateProductRoutes = (ref: string, project?: ProjectBase): Route key: 'functions', label: 'Edge Functions', icon: , - link: isProjectBuilding ? buildingUrl : `/project/${ref}/functions`, + link: + ref && + (isProjectPaused + ? homeUrl + : isProjectBuilding + ? buildingUrl + : `/project/${ref}/functions`), }, ] : []), ] } -export const generateOtherRoutes = (ref: string, project?: ProjectBase): Route[] => { - const isProjectBuilding = project?.status !== PROJECT_STATUS.ACTIVE_HEALTHY - const buildingUrl = `/project/${ref}/building` +export const generateOtherRoutes = (ref?: string, project?: ProjectBase): Route[] => { + const isProjectBuilding = project?.status === PROJECT_STATUS.COMING_UP + const isProjectPaused = project?.status === PROJECT_STATUS.INACTIVE - const canReadStats = checkPermissions(PermissionAction.READ, 'stats_daily_projects', { - resource: { type: 'report' }, - }) - const canReadReport = checkPermissions(PermissionAction.READ, 'user_content', { - resource: { type: 'report' }, - }) + const homeUrl = `/project/${ref}` + const buildingUrl = `/project/${ref}/building` return [ ...(IS_PLATFORM @@ -98,7 +123,13 @@ export const generateOtherRoutes = (ref: string, project?: ProjectBase): Route[] key: 'logs-explorer', label: 'Logs Explorer', icon: , - link: isProjectBuilding ? buildingUrl : `/project/${ref}/logs-explorer`, + link: + ref && + (isProjectPaused + ? homeUrl + : isProjectBuilding + ? buildingUrl + : `/project/${ref}/logs-explorer`), }, ] : []), @@ -108,7 +139,13 @@ export const generateOtherRoutes = (ref: string, project?: ProjectBase): Route[] key: 'reports', label: 'Reports', icon: , - link: isProjectBuilding ? buildingUrl : `/project/${ref}/reports`, + link: + ref && + (isProjectPaused + ? homeUrl + : isProjectBuilding + ? buildingUrl + : `/project/${ref}/reports`), }, ] : []), @@ -116,7 +153,9 @@ export const generateOtherRoutes = (ref: string, project?: ProjectBase): Route[] key: 'api', label: 'API', icon: , - link: isProjectBuilding ? buildingUrl : `/project/${ref}/api`, + link: + ref && + (isProjectPaused ? homeUrl : isProjectBuilding ? buildingUrl : `/project/${ref}/api`), }, ...(IS_PLATFORM ? [ @@ -124,7 +163,7 @@ export const generateOtherRoutes = (ref: string, project?: ProjectBase): Route[] key: 'settings', label: 'Settings', icon: , - link: `/project/${ref}/settings/general`, + link: ref && `/project/${ref}/settings/general`, }, ] : []), diff --git a/studio/components/layouts/ProjectLayout/NavigationBar/NavigationIconButton.tsx b/studio/components/layouts/ProjectLayout/NavigationBar/NavigationIconButton.tsx index 1f83f01908b..e1d751dd6b4 100644 --- a/studio/components/layouts/ProjectLayout/NavigationBar/NavigationIconButton.tsx +++ b/studio/components/layouts/ProjectLayout/NavigationBar/NavigationIconButton.tsx @@ -3,6 +3,7 @@ import Link from 'next/link' import * as Tooltip from '@radix-ui/react-tooltip' import { Route } from 'components/ui/ui.types' +import ConditionalWrap from 'components/ui/ConditionalWrap' interface Props { route: Route @@ -13,7 +14,10 @@ const NavigationIconButton: FC = ({ route, isActive = false }) => { return ( - + {children}} + > = ({ route, isActive = false }) => { > {route.icon} - + diff --git a/studio/components/layouts/ProjectLayout/PausingState.tsx b/studio/components/layouts/ProjectLayout/PausingState.tsx index bcf4e83ea60..1e19e5cf3b6 100644 --- a/studio/components/layouts/ProjectLayout/PausingState.tsx +++ b/studio/components/layouts/ProjectLayout/PausingState.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { Badge, IconLoader, IconCircle } from '@supabase/ui' +import { Badge, IconLoader, IconCircle } from 'ui' import { Project } from 'types' interface Props { @@ -22,7 +22,7 @@ const PausingState: FC = ({ project }) => {
    -
    +
    @@ -31,7 +31,7 @@ const PausingState: FC = ({ project }) => {

    Pausing {project.name}

    -

    +

    You may restore your project anytime thereafter, and your data will be restored to when it was initially paused.

    diff --git a/studio/components/layouts/ProjectLayout/ProductMenuBar.tsx b/studio/components/layouts/ProjectLayout/ProductMenuBar.tsx index e7a5b160349..4e08db436cf 100644 --- a/studio/components/layouts/ProjectLayout/ProductMenuBar.tsx +++ b/studio/components/layouts/ProjectLayout/ProductMenuBar.tsx @@ -1,5 +1,4 @@ import { FC, ReactNode } from 'react' -import { Typography } from '@supabase/ui' import { useFlag } from 'hooks' interface Props { @@ -24,7 +23,7 @@ const ProductMenuBar: FC = ({ title, children }) => { className="dark:border-dark flex max-h-12 items-center border-b px-6" style={{ minHeight: '3rem' }} > - {title} +

    {title}

    {children}
    diff --git a/studio/components/layouts/ProjectLayout/ProjectLayout.tsx b/studio/components/layouts/ProjectLayout/ProjectLayout.tsx index 15b9292cd35..e9b3f6785e9 100644 --- a/studio/components/layouts/ProjectLayout/ProjectLayout.tsx +++ b/studio/components/layouts/ProjectLayout/ProjectLayout.tsx @@ -1,5 +1,5 @@ import Head from 'next/head' -import { FC, ReactNode, PropsWithChildren } from 'react' +import { FC, ReactNode, PropsWithChildren, Fragment } from 'react' import { observer } from 'mobx-react-lite' import { useRouter } from 'next/router' import { useStore, withAuth, useFlag } from 'hooks' @@ -12,6 +12,7 @@ import LayoutHeader from './LayoutHeader' import ConnectingState from './ConnectingState' import PausingState from './PausingState' import BuildingState from './BuildingState' +import RestoringState from './RestoringState' interface Props { title?: string @@ -31,12 +32,16 @@ const ProjectLayout = ({ hideHeader = false, hideIconBar = false, }: PropsWithChildren) => { + const { ui } = useStore() const ongoingIncident = useFlag('ongoingIncident') + const projectName = ui.selectedProject?.name return ( <> - {title ? `${title} | Supabase` : 'Supabase'} + + {title ? `${title} | Supabase` : projectName ? `${projectName} | Supabase` : 'Supabase'} + @@ -61,7 +66,7 @@ const ProjectLayout = ({ ) } -export const ProjectLayoutWithAuth = withAuth(ProjectLayout) +export const ProjectLayoutWithAuth = withAuth(observer(ProjectLayout)) export default ProjectLayout @@ -108,6 +113,7 @@ const ContentWrapper: FC = observer(({ isLoading, children const requiresDbConnection: boolean = router.pathname !== '/project/[ref]/settings/general' const requiresPostgrestConnection = !routesToIgnorePostgrestConnection.includes(router.pathname) + const isProjectRestoring = ui.selectedProject?.status === PROJECT_STATUS.RESTORING const isProjectBuilding = [PROJECT_STATUS.COMING_UP, PROJECT_STATUS.RESTORING].includes( ui.selectedProject?.status ?? '' ) @@ -122,10 +128,12 @@ const ContentWrapper: FC = observer(({ isLoading, children ) : requiresPostgrestConnection && isProjectOffline ? ( + ) : requiresDbConnection && isProjectRestoring ? ( + ) : requiresDbConnection && isProjectBuilding ? ( ) : ( - <>{children} + {children} )} ) diff --git a/studio/components/layouts/ProjectLayout/ProjectPausedState.tsx b/studio/components/layouts/ProjectLayout/ProjectPausedState.tsx index a3b11e308dc..a6e40267b34 100644 --- a/studio/components/layouts/ProjectLayout/ProjectPausedState.tsx +++ b/studio/components/layouts/ProjectLayout/ProjectPausedState.tsx @@ -1,12 +1,12 @@ import { FC, useState } from 'react' import * as Tooltip from '@radix-ui/react-tooltip' -import { Alert, Button, IconPauseCircle } from '@supabase/ui' +import { Modal, Button, IconPauseCircle } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' import { Project } from 'types' -import { checkPermissions, useStore, useSubscriptionStats, useFlag } from 'hooks' +import { checkPermissions, useStore, useFlag, useFreeProjectLimitCheck } from 'hooks' import { post } from 'lib/common/fetch' -import { API_URL, PROJECT_STATUS, DEFAULT_FREE_PROJECTS_LIMIT } from 'lib/constants' +import { API_URL, PROJECT_STATUS } from 'lib/constants' import { DeleteProjectButton } from 'components/interfaces/Settings/General' import ConfirmModal from 'components/ui/Dialogs/ConfirmDialog' @@ -16,15 +16,17 @@ interface Props { const ProjectPausedState: FC = ({ project }) => { const { ui, app } = useStore() - const subscriptionStats = useSubscriptionStats() - const { total_active_free_projects: totalActiveFreeProjects } = subscriptionStats - const freeProjectsLimit = ui.profile?.free_project_limit ?? DEFAULT_FREE_PROJECTS_LIMIT - - const enablePermissions = useFlag('enablePermissions') const isOwner = ui.selectedOrganization?.is_owner + const orgSlug = ui.selectedOrganization?.slug + + const kpsEnabled = useFlag('initWithKps') + const enablePermissions = useFlag('enablePermissions') const [showConfirmRestore, setShowConfirmRestore] = useState(false) - const hasExceedActiveFreeProjectsLimit = totalActiveFreeProjects >= freeProjectsLimit + const [showFreeProjectLimitWarning, setShowFreeProjectLimitWarning] = useState(false) + + const { membersExceededLimit } = useFreeProjectLimitCheck(orgSlug) + const hasMembersExceedingFreeTierLimit = (membersExceededLimit || []).length > 0 const canResumeProject = enablePermissions ? checkPermissions(PermissionAction.INFRA_EXECUTE, 'queue_jobs.projects.initialize_or_resume') @@ -32,16 +34,16 @@ const ProjectPausedState: FC = ({ project }) => { const onSelectRestore = () => { if (!canResumeProject) { - return ui.setNotification({ + ui.setNotification({ category: 'error', message: 'You do not have the required permissions to restore this project', }) - } - setShowConfirmRestore(true) + } else if (hasMembersExceedingFreeTierLimit) setShowFreeProjectLimitWarning(true) + else setShowConfirmRestore(true) } const onConfirmRestore = async () => { - await post(`${API_URL}/projects/${project.ref}/restore`, {}) + await post(`${API_URL}/projects/${project.ref}/restore`, { kps_enabled: kpsEnabled }) app.onProjectUpdated({ ...project, status: PROJECT_STATUS.RESTORING }) ui.setNotification({ category: 'success', message: 'Restoring project' }) } @@ -49,19 +51,8 @@ const ProjectPausedState: FC = ({ project }) => { return ( <>
    - {hasExceedActiveFreeProjectsLimit && ( -
    - - To restore this project you'll need to pause or delete an existing free project. - -
    - )}
    -
    +
    @@ -75,7 +66,7 @@ const ProjectPausedState: FC = ({ project }) => {
    - {!hasExceedActiveFreeProjectsLimit && ( -

    - Restore this project and get back to building the next big thing! -

    - )} +

    + Restore this project and get back to building the next big thing! +

    @@ -118,6 +107,49 @@ const ProjectPausedState: FC = ({ project }) => { onSelectCancel={() => setShowConfirmRestore(false)} onSelectConfirm={onConfirmRestore} /> + setShowFreeProjectLimitWarning(false)} + > +
    + +
    +

    + The following members have reached their maximum limits for the number of active + free tier projects within organizations where they are an administrator or owner: +

    +
      + {(membersExceededLimit || []).map((member, idx: number) => ( +
    • + {member.username || member.primary_email} (Limit: {member.free_project_limit}{' '} + free projects) +
    • + ))} +
    +

    + These members will need to either delete, pause, or upgrade one or more of these + projects before you're able to unpause this project. +

    +
    +
    + + +
    + +
    +
    +
    +
    ) } diff --git a/studio/components/layouts/ProjectLayout/RestoringState.tsx b/studio/components/layouts/ProjectLayout/RestoringState.tsx new file mode 100644 index 00000000000..7f8f3256cc5 --- /dev/null +++ b/studio/components/layouts/ProjectLayout/RestoringState.tsx @@ -0,0 +1,89 @@ +import { FC, useEffect, useRef, useState } from 'react' +import { Button, IconCheckCircle, IconLoader } from 'ui' + +import { useStore } from 'hooks' +import { API_URL, PROJECT_STATUS } from 'lib/constants' +import { getWithTimeout } from 'lib/common/fetch' + +interface Props {} + +const RestoringState: FC = ({}) => { + const { app, ui } = useStore() + const project = ui.selectedProject + const checkServerInterval = useRef() + + const [loading, setLoading] = useState(false) + const [isCompleted, setIsCompleted] = useState(false) + + useEffect(() => { + checkServerInterval.current = window.setInterval(checkServer, 4000) + return () => clearInterval(checkServerInterval.current) + }, []) + + async function checkServer() { + if (!project) return + + const projectStatus = await getWithTimeout(`${API_URL}/projects/${project.ref}/status`, { + timeout: 2000, + }) + if (projectStatus && !projectStatus.error) { + const { status } = projectStatus + if (status === PROJECT_STATUS.ACTIVE_HEALTHY) { + clearInterval(checkServerInterval.current) + setIsCompleted(true) + } + } + } + + const onConfirm = async () => { + setLoading(true) + await app.projects.fetchDetail(project?.ref ?? '') + } + + return ( +
    +
    + {isCompleted ? ( + <> +
    + +
    +
    +

    Restoration complete!

    +

    + Your project has been successfully restored and is now back online. +

    +
    + + ) : ( + <> +
    + +
    +
    +

    Restoration in progress

    +

    + Restoration can take from a few minutes up to several hours depending on the size of + your database. Your project will be offline while the restoration is running. +

    +
    + + )} + {isCompleted && ( +
    + +
    + )} +
    +
    + ) +} + +export default RestoringState diff --git a/studio/components/layouts/ReportsLayout/ReportsLayout.tsx b/studio/components/layouts/ReportsLayout/ReportsLayout.tsx new file mode 100644 index 00000000000..1ac4056fa5e --- /dev/null +++ b/studio/components/layouts/ReportsLayout/ReportsLayout.tsx @@ -0,0 +1,54 @@ +import { FC, ReactNode } from 'react' +import { observer } from 'mobx-react-lite' +import { useRouter } from 'next/router' +import { useStore, withAuth } from 'hooks' +import BaseLayout from '..' +import ProductMenu from 'components/ui/ProductMenu' + +interface Props { + title: string + children: ReactNode +} + +const ReportsLayout: FC = ({ title, children }) => { + const { ui } = useStore() + const projectRef = ui.selectedProjectRef as string + + const router = useRouter() + const page = router.pathname.split('/')[4] || '' + const menuRoutes = [ + { + items: [ + { + name: 'Overview', + key: '', + url: `/project/${projectRef}/reports`, + items: [], + }, + ], + }, + { + items: [ + { + name: 'Dashboard', + key: 'dashboard', + url: `/project/${projectRef}/reports/dashboard`, + items: [], + }, + ], + }, + ] + return ( + } + > +
    + {children} +
    +
    + ) +} + +export default withAuth(observer(ReportsLayout)) diff --git a/studio/components/layouts/SQLEditorLayout/SQLEditorMenu.tsx b/studio/components/layouts/SQLEditorLayout/SQLEditorMenu.tsx index b8f0c135734..e3581cedcb3 100644 --- a/studio/components/layouts/SQLEditorLayout/SQLEditorMenu.tsx +++ b/studio/components/layouts/SQLEditorLayout/SQLEditorMenu.tsx @@ -13,10 +13,11 @@ import { IconChevronDown, Modal, IconEdit2, -} from '@supabase/ui' +} from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' +import { useOptimisticSqlSnippetCreate, useStore, checkPermissions } from 'hooks' import { IS_PLATFORM } from 'lib/constants' -import { useOptimisticSqlSnippetCreate, useStore } from 'hooks' import QueryTab from 'localStores/sqlEditor/QueryTab' import { useSqlStore, TAB_TYPES } from 'localStores/sqlEditor/SqlEditorStore' @@ -24,22 +25,24 @@ import RenameQuery from 'components/to-be-cleaned/SqlEditor/RenameQuery' import ConfirmationModal from 'components/ui/ConfirmationModal' import ProductMenuItem from 'components/ui/ProductMenu/ProductMenuItem' -const OpenQueryItem = observer(({ tabInfo }: { tabInfo: QueryTab }) => { - const sqlEditorStore: any = useSqlStore() - const { id, name } = tabInfo || {} - const active = sqlEditorStore.activeTab.id === id +const OpenQueryItem = observer( + ({ tabInfo, canCreateSQLSnippet }: { tabInfo: QueryTab; canCreateSQLSnippet: boolean }) => { + const sqlEditorStore: any = useSqlStore() + const { id, name } = tabInfo || {} + const active = sqlEditorStore.activeTab.id === id - return ( - } - onClick={() => sqlEditorStore.selectTab(id)} - textClassName="w-44" - /> - ) -}) + return ( + } + onClick={() => sqlEditorStore.selectTab(id)} + textClassName="w-44" + /> + ) + } +) const DropdownMenu = observer(({ tabInfo }: { tabInfo: QueryTab }) => { const { @@ -118,7 +121,7 @@ const DropdownMenu = observer(({ tabInfo }: { tabInfo: QueryTab }) => { onSelectCancel={() => setDeleteModalOpen(false)} > -

    {`Are you sure you want to remove '${name}' ?`}

    +

    {`Are you sure you want to remove '${name}' ?`}

    @@ -126,11 +129,16 @@ const DropdownMenu = observer(({ tabInfo }: { tabInfo: QueryTab }) => { }) const SideBarContent = observer(() => { + const { ui } = useStore() const sqlEditorStore: any = useSqlStore() - const [filterString, setFilterString] = useState('') - const handleNewQuery = useOptimisticSqlSnippetCreate() + const canCreateSQLSnippet = checkPermissions(PermissionAction.CREATE, 'user_content', { + resource: { type: 'sql', owner_id: ui.profile?.id }, + subject: { id: ui.profile?.id }, + }) + + const handleNewQuery = useOptimisticSqlSnippetCreate(canCreateSQLSnippet) const getStartedTabs = (sqlEditorStore?.tabs ?? []).filter((tab: any) => { return tab.type === TAB_TYPES.WELCOME @@ -217,7 +225,13 @@ const SideBarContent = observer(() => {
    {favouriteTabs.map((tabInfo: any) => { const { id } = tabInfo || {} - return + return ( + + ) })}
    @@ -228,7 +242,13 @@ const SideBarContent = observer(() => {
    {queryTabs.map((tabInfo: any) => { const { id } = tabInfo || {} - return + return ( + + ) })}
    diff --git a/studio/components/layouts/StorageLayout/StorageLayout.tsx b/studio/components/layouts/StorageLayout/StorageLayout.tsx index 32d3e101e50..6f6c3a13491 100644 --- a/studio/components/layouts/StorageLayout/StorageLayout.tsx +++ b/studio/components/layouts/StorageLayout/StorageLayout.tsx @@ -1,10 +1,10 @@ import { FC, ReactNode, useEffect } from 'react' +import { useRouter } from 'next/router' import { find, filter, get as _get } from 'lodash' import { observer } from 'mobx-react-lite' -import { useStore, withAuth } from 'hooks' -import { API_URL } from 'lib/constants' -import { get } from 'lib/common/fetch' +import { useProjectSettings, useStore, withAuth } from 'hooks' +import BaseLayout from 'components/layouts' import ProjectLayout from '../ProjectLayout/ProjectLayout' import StorageMenu from './StorageMenu' import { useStorageStore } from 'localStores/storageExplorer/StorageExplorerStore' @@ -12,6 +12,7 @@ import { formatPoliciesForStorage } from 'components/to-be-cleaned/Storage/Stora import CreateBucketModal from 'components/to-be-cleaned/Storage/CreateBucketModal' import DeleteBucketModal from 'components/to-be-cleaned/Storage/DeleteBucketModal' import ToggleBucketPublicModal from 'components/to-be-cleaned/Storage/ToggleBucketPublicModal' +import NoPermission from 'components/ui/NoPermission' interface Props { title: string @@ -20,7 +21,8 @@ interface Props { const StorageLayout: FC = ({ title, children }) => { const { ui, meta } = useStore() - const ref = ui.selectedProject?.ref + const router = useRouter() + const { ref } = router.query const storageExplorerStore = useStorageStore() const { @@ -34,42 +36,27 @@ const StorageLayout: FC = ({ title, children }) => { createBucket, deleteBucket, toggleBucketPublic, + buckets, } = storageExplorerStore || {} + const { services, isLoading } = useProjectSettings(ref as string | undefined) + const apiService = find(services ?? [], (service) => service.app.id === 1) + const projectUrl = apiService?.app_config?.endpoint ?? '' + const serviceKey = find(apiService?.service_api_keys ?? [], (key) => key.tags === 'service_role') + const canAccessStorage = !isLoading && services && serviceKey + useEffect(() => { - if (ref) { - initializeStorageStore(ref) - } - }, [ref]) + if (!isLoading && services) initializeStorageStore() + }, [isLoading]) - const getProjectConfig = async () => { - const { services } = await get(`${API_URL}/props/project/${ref}/settings`) - const apiService = find(services, (service) => service.app.id === 1) - if (apiService) { - const projectUrl = apiService?.app_config?.endpoint ?? '' - const serviceKey = find(apiService.service_api_keys, (key) => key.tags === 'service_role') - const projectApiKey = serviceKey?.api_key ?? '' - return { projectUrl, projectApiKey } - } else { - console.error('Storage layout: Unable to find apiService') - return {} - } - } - - const initializeStorageStore = async (projectRef: any) => { - try { - const { projectUrl, projectApiKey } = await getProjectConfig() - if (projectUrl && projectApiKey) { - storageExplorerStore.initStore(projectRef, projectUrl, projectApiKey) + const initializeStorageStore = async () => { + if (projectUrl) { + if (serviceKey) { + storageExplorerStore.initStore(ref, projectUrl, serviceKey.api_key) await storageExplorerStore.fetchBuckets() - } else { - throw new Error( - `StorageLayout: Failed to getProjectConfig - ${projectUrl} ${projectApiKey}` - ) } - } catch (error: any) { + } else { ui.setNotification({ - error, category: 'error', message: 'Failed to fetch project configuration. Try refreshing your browser, or reach out to us at support@supabase.io', @@ -78,6 +65,11 @@ const StorageLayout: FC = ({ title, children }) => { storageExplorerStore.setLoaded(true) } + const onSelectCreateBucket = async (bucketName: string, isPublic: boolean) => { + const bucket = await createBucket(bucketName, isPublic) + if (bucket.name) router.push(`/project/${ref}/storage/buckets/${bucket.name}`) + } + const onSelectDeleteBucket = async (bucket: any) => { const res = await deleteBucket(bucket) // Ideally this should be within deleteBucket as its a necessary side effect @@ -85,7 +77,10 @@ const StorageLayout: FC = ({ title, children }) => { if (res) { const policies = meta.policies.list() const storageObjectsPolicies = filter(policies, { table: 'objects' }) - const formattedStorageObjectPolicies = formatPoliciesForStorage(storageObjectsPolicies) + const formattedStorageObjectPolicies = formatPoliciesForStorage( + buckets, + storageObjectsPolicies + ) const bucketPolicies = _get( find(formattedStorageObjectPolicies, { name: bucket.name }), ['policies'], @@ -99,13 +94,23 @@ const StorageLayout: FC = ({ title, children }) => { } } + if (!isLoading && !canAccessStorage) { + return ( + +
    + +
    +
    + ) + } + return ( }> {children} = () => { const router = useRouter() const { ref, bucketId } = router.query - const page = router.pathname.split('/')[4] as undefined | 'policies' | 'settings' | 'usage' + const page = router.pathname.split('/')[4] as + | undefined + | 'policies' + | 'settings' + | 'usage' + | 'logs' const { ui } = useStore() const projectRef = ui.selectedProject?.ref @@ -40,8 +45,8 @@ const StorageMenu: FC = () => { } = storageExplorerStore || {} return ( - -
    + +
    @@ -129,7 +136,7 @@ const BucketRow = ({ key={bucket.id} name={
    - {bucket.name} +

    {bucket.name}

    {bucket.public && Public}
    } @@ -159,13 +166,11 @@ const BucketRow = ({ , ]} > - - - + ) : (
    diff --git a/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx b/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx index aa6863c6300..a6cc5be9196 100644 --- a/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx +++ b/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx @@ -1,12 +1,14 @@ import { FC, ReactNode, useState, useEffect } from 'react' +import { isUndefined } from 'lodash' import { observer } from 'mobx-react-lite' import { PostgresTable } from '@supabase/postgres-meta' +import { PermissionAction } from '@supabase/shared-types/out/constants' -import { useStore } from 'hooks' +import { checkPermissions, useStore } from 'hooks' import Error from 'components/ui/Error' import ProjectLayout from '../ProjectLayout/ProjectLayout' import TableEditorMenu from './TableEditorMenu' -import { isUndefined } from 'lodash' +import NoPermission from 'components/ui/NoPermission' interface Props { selectedSchema?: string @@ -31,16 +33,17 @@ const TableEditorLayout: FC = ({ const { isInitialized, isLoading, error } = meta.tables const [loaded, setLoaded] = useState(isInitialized) + const canReadTables = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'tables') useEffect(() => { - if (ui.selectedProject) { + if (ui.selectedProject?.ref) { meta.schemas.load() meta.tables.load() meta.types.load() meta.policies.load() meta.publications.load() } - }, [ui.selectedProject]) + }, [ui.selectedProject?.ref]) useEffect(() => { let cancel = false @@ -52,6 +55,14 @@ const TableEditorLayout: FC = ({ } }, [isLoading]) + if (!canReadTables) { + return ( + + + + ) + } + if (error) { return ( diff --git a/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx b/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx index f57a4038000..6c4f24d7db1 100644 --- a/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx +++ b/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx @@ -2,6 +2,7 @@ import { FC, useEffect, useState } from 'react' import { useRouter } from 'next/router' import Link from 'next/link' import { partition } from 'lodash' +// import { Button } from 'ui' import { Alert, Button, @@ -17,15 +18,15 @@ import { Input, Listbox, Menu, - Typography, -} from '@supabase/ui' +} from 'ui' +import * as Tooltip from '@radix-ui/react-tooltip' +import { PermissionAction } from '@supabase/shared-types/out/constants' import { PostgresSchema, PostgresTable } from '@supabase/postgres-meta' import Base64 from 'lib/base64' import { checkPermissions, useStore } from 'hooks' import { SchemaView } from './TableEditorLayout.types' import ProductMenuItem from 'components/ui/ProductMenu/ProductMenuItem' -import { PermissionAction } from '@supabase/shared-types/out/constants' interface Props { selectedSchema?: string @@ -56,6 +57,7 @@ const TableEditorMenu: FC = ({ // @ts-ignore const schema = schemas.find((schema) => schema.name === selectedSchema) + const canCreateTables = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'tables') const [searchText, setSearchText] = useState('') const [schemaViews, setSchemaViews] = useState([]) @@ -103,10 +105,10 @@ const TableEditorMenu: FC = ({
    {/* Schema selection dropdown */}
    - {meta.schemas.isLoading ? ( -
    + {!meta.schemas.isInitialized ? ( +
    - Loading schemas... + Loading schemas...
    ) : ( = ({ }} > -

    Schemas

    +

    Schemas

    + {/* @ts-ignore */} {openSchemas.map((schema) => ( schema} + addOnBefore={() => schema} > - {schema.name} + {schema.name} ))} = ({ value="protected-schemas" label="Protected schemas" > -

    Protected schemas

    +

    Protected schemas

    {protectedSchemas.map((schema) => ( schema} + addOnBefore={() => schema} > - {schema.name} + {schema.name} ))}
    @@ -160,31 +161,48 @@ const TableEditorMenu: FC = ({ {!isLocked && (
    {/* Add new table button */} -
    - } - type="default" - style={{ justifyContent: 'start' }} - onClick={onAddTable} - > - New table - + + +
    + } + type="default" + style={{ justifyContent: 'start' }} + onClick={onAddTable} + > + New table + + + {!canCreateTables && ( + + +
    + + You need additional permissions to create tables + +
    +
    + )} +
    )} {/* Table search input */}
    - -
    - } + className="table-editor-search border-none" + icon={} placeholder="Search tables" onChange={(e) => setSearchText(e.target.value)} value={searchText} @@ -228,7 +246,8 @@ const TableEditorMenu: FC = ({ hoverText={table.comment ? table.comment : table.name} isActive={isActive} action={ - isActive && ( + isActive && + !isLocked && ( = ({ , ]} > -
    +
    @@ -292,7 +311,7 @@ const TableEditorMenu: FC = ({
    - {view.name} +

    {view.name}

    @@ -302,14 +321,18 @@ const TableEditorMenu: FC = ({ )} {searchText.length > 0 && schemaTables.length === 0 && filteredSchemaViews.length === 0 && ( -
    - This schema has no tables or views +
    +

    No results found

    +

    + There are no tables or views that match your search +

    )} {searchText.length === 0 && schemaTables.length === 0 && filteredSchemaViews.length === 0 && ( -
    - There are no tables in this schema +
    +

    No tables available

    +

    This schema has no tables available yet

    )}
    diff --git a/studio/components/layouts/WizardLayout.tsx b/studio/components/layouts/WizardLayout.tsx index 6feb3fa30fd..f52aaa691ec 100644 --- a/studio/components/layouts/WizardLayout.tsx +++ b/studio/components/layouts/WizardLayout.tsx @@ -1,6 +1,6 @@ import { FC } from 'react' import Link from 'next/link' -import { IconChevronRight } from '@supabase/ui' +import { IconChevronRight } from 'ui' import { withAuth, useFlag } from 'hooks' import { observer } from 'mobx-react-lite' @@ -27,7 +27,7 @@ export const WizardLayoutWithoutAuth = observer(WizardLayout) const Header: FC = ({ organization, project }) => { let stepNumber = organization ? 1 : project ? 2 : 0 return ( -
    +
    @@ -37,7 +37,7 @@ const Header: FC = ({ organization, project }) => { Supabase diff --git a/studio/components/to-be-cleaned/AlphaPreview.tsx b/studio/components/to-be-cleaned/AlphaPreview.tsx index 364d0c19c15..51f47dc1604 100644 --- a/studio/components/to-be-cleaned/AlphaPreview.tsx +++ b/studio/components/to-be-cleaned/AlphaPreview.tsx @@ -1,4 +1,4 @@ -import { Typography, IconAlertCircle, Alert } from '@supabase/ui' +import { Alert } from 'ui' const AlphaPreview = () => { return ( diff --git a/studio/components/to-be-cleaned/Charts/ChartHandler.tsx b/studio/components/to-be-cleaned/Charts/ChartHandler.tsx index 7e2b16a16a4..9ae694c1fdd 100644 --- a/studio/components/to-be-cleaned/Charts/ChartHandler.tsx +++ b/studio/components/to-be-cleaned/Charts/ChartHandler.tsx @@ -1,14 +1,7 @@ import React, { FC, ReactNode, useState, useEffect } from 'react' import { useRouter } from 'next/router' import { isUndefined } from 'lodash' -import { - Button, - IconActivity, - IconAlertCircle, - IconBarChart, - IconLoader, - Typography, -} from '@supabase/ui' +import { Button, IconActivity, IconAlertCircle, IconBarChart, IconLoader } from 'ui' import { Dictionary } from 'components/grid' import { API_URL } from 'lib/constants' @@ -132,7 +125,7 @@ const ChartHandler: FC = ({ if (loading) { return ( -
    +

    Loading data for {label}

    @@ -141,20 +134,20 @@ const ChartHandler: FC = ({ if (isUndefined(chartData)) { return ( -
    +
    -

    Unable to load data for {label}

    +

    Unable to load data for {label}

    ) } return ( -
    -
    +
    +
    {children}
    {!hideChartType && (
    -
    +
    -

    Getting Started

    +

    API URL

    -

    Your API consists of both a RESTful interface and a realtime interface.

    -

    - For interacting with the realtime streams, we provide client libraries that handle the - websockets. -

    +

    The API URL for your project.

    - Vew all the available{' '} + View all the available{' '} Third Part OAuth providers diff --git a/studio/components/to-be-cleaned/Docs/Param.js b/studio/components/to-be-cleaned/Docs/Param.js index 34f0f509eff..9abb36712f8 100644 --- a/studio/components/to-be-cleaned/Docs/Param.js +++ b/studio/components/to-be-cleaned/Docs/Param.js @@ -1,4 +1,4 @@ -import { Badge } from '@supabase/ui' +import { Badge } from 'ui' import Description from './Description' const Param = ({ @@ -12,21 +12,20 @@ const Param = ({ }) => { return ( <> -

    - {name} +
    + {name} {required ? 'Required' : 'Optional'}
    {format && format != type && (
    - + {format} {type}
    )} {description !== false && ( <> - - + )} diff --git a/studio/components/to-be-cleaned/Docs/Snippets.js b/studio/components/to-be-cleaned/Docs/Snippets.js index 6240a7ebe52..f28c1a1db9e 100644 --- a/studio/components/to-be-cleaned/Docs/Snippets.js +++ b/studio/components/to-be-cleaned/Docs/Snippets.js @@ -33,6 +33,28 @@ const supabaseUrl = '${endpoint}' const supabaseKey = process.env.SUPABASE_KEY const supabase = createClient(supabaseUrl, supabaseKey)`, }, + python: { + language: 'python', + code: ` +import os +from supabase import create_client, Client + +url: str = '${endpoint}' +key: str = os.environ.get("SUPABASE_KEY") +supabase: Client = create_client(url, key) +`, + }, + dart: { + language: 'dart', + code: ` +final supabaseUrl = '${endpoint}' +final supabaseKey = String.fromEnvironment('SUPABASE_KEY') + +Future main() async { + await Supabase.initialize(url: supabaseUrl, anonKey: supabaseKey); + runApp(MyApp()); +}`, + }, }), authKey: (title, varName, apikey) => ({ title: `${title}`, @@ -474,7 +496,7 @@ curl -X POST '${endpoint}/auth/v1/token?grant_type=password' \\ js: { language: 'js', code: ` -let { user, error } = await supabase.auth.signIn({ +let { user, error } = await supabase.auth.signInWithPassword({ email: 'someone@email.com', password: '${randomPassword}' }) @@ -497,7 +519,7 @@ curl -X POST '${endpoint}/auth/v1/magiclink' \\ js: { language: 'js', code: ` -let { user, error } = await supabase.auth.signIn({ +let { user, error } = await supabase.auth.signInWithOtp({ email: 'someone@email.com' }) `, @@ -543,7 +565,7 @@ curl -X POST '${endpoint}/auth/v1/otp' \\ js: { language: 'js', code: ` -let { user, error } = await supabase.auth.signIn({ +let { user, error } = await supabase.auth.signInWithOtp({ phone: '+13334445555' }) `, @@ -604,7 +626,7 @@ let { data, error } = await supabase.auth.api.inviteUserByEmail('someone@email.c js: { language: 'js', code: ` -let { user, error } = await supabase.auth.signIn({ +let { user, error } = await supabase.auth.signInWithOAuth({ provider: 'github' }) `, @@ -684,7 +706,7 @@ const { user, error } = await supabase.auth.update({ curl -X POST '${endpoint}/auth/v1/logout' \\ -H "apikey: ${apiKey}" \\ -H "Content-Type: application/json" \\ --H "Authorization: Bearer USER_TOKEN"' +-H "Authorization: Bearer USER_TOKEN" `, }, js: { diff --git a/studio/components/to-be-cleaned/Dropdown/OrganizationDropdown.js b/studio/components/to-be-cleaned/Dropdown/OrganizationDropdown.js index 97f93d6cba9..7af9bcfe015 100644 --- a/studio/components/to-be-cleaned/Dropdown/OrganizationDropdown.js +++ b/studio/components/to-be-cleaned/Dropdown/OrganizationDropdown.js @@ -1,7 +1,7 @@ import React from 'react' import { useRouter } from 'next/router' import { toJS } from 'mobx' -import { Button, Dropdown, IconPlus } from '@supabase/ui' +import { Button, Dropdown, IconPlus } from 'ui' import { observer } from 'mobx-react-lite' const OrganizationDropdown = ({ organizations }) => { diff --git a/studio/components/to-be-cleaned/Integration/Vercel.utils.ts b/studio/components/to-be-cleaned/Integration/Vercel.utils.ts index 7d67251b89d..be67f97da8c 100644 --- a/studio/components/to-be-cleaned/Integration/Vercel.utils.ts +++ b/studio/components/to-be-cleaned/Integration/Vercel.utils.ts @@ -126,6 +126,8 @@ export function prepareVercelEvns( type: 'encrypted' | string }[], project: { + db_host?: string + db_password?: string endpoint: string anon_key: string service_key: string @@ -141,14 +143,22 @@ export function prepareVercelEvns( target: ('production' | 'development' | 'preview')[] } = { key: x.key, type: x.type, target: ['production', 'development', 'preview'], value: '' } - if (x.alias == INTEGRATION_ENVS_ALIAS.ENDPOINT) { - env.value = project.endpoint - } - if (x.alias == INTEGRATION_ENVS_ALIAS.ANONKEY) { - env.value = project.anon_key - } - if (x.alias == INTEGRATION_ENVS_ALIAS.SERVICEKEY) { - env.value = project.service_key + switch (x.alias) { + case INTEGRATION_ENVS_ALIAS.ENDPOINT: + env.value = project.endpoint + break + case INTEGRATION_ENVS_ALIAS.ANONKEY: + env.value = project.anon_key + break + case INTEGRATION_ENVS_ALIAS.SERVICEKEY: + env.value = project.service_key + break + case INTEGRATION_ENVS_ALIAS.DBHOST: + env.value = project.db_host ?? '' + break + case INTEGRATION_ENVS_ALIAS.DBPASSWORD: + env.value = project.db_password ?? '' + break } envs.push(env) diff --git a/studio/components/to-be-cleaned/ListIcons.tsx b/studio/components/to-be-cleaned/ListIcons.tsx index 0882a68b3b9..8d38c8feecc 100644 --- a/studio/components/to-be-cleaned/ListIcons.tsx +++ b/studio/components/to-be-cleaned/ListIcons.tsx @@ -1,8 +1,8 @@ -import { IconDatabase } from '@supabase/ui' +import { IconDatabase } from 'ui' import SVG from 'react-inlinesvg' export const vercelIcon = ( -
    +
    +
    {/*
    } children={ description && ( -

    {description}

    +

    {description}

    ) } diff --git a/studio/components/to-be-cleaned/ModalsDeprecated/ConfirmModalwithState.js b/studio/components/to-be-cleaned/ModalsDeprecated/ConfirmModalwithState.js index b4a97bddf13..e64e062da57 100644 --- a/studio/components/to-be-cleaned/ModalsDeprecated/ConfirmModalwithState.js +++ b/studio/components/to-be-cleaned/ModalsDeprecated/ConfirmModalwithState.js @@ -1,5 +1,5 @@ import React, { useState } from 'react' -import { Modal } from '@supabase/ui' +import { Modal } from 'ui' export default function ConfirmModal({ title, diff --git a/studio/components/to-be-cleaned/ProductEmptyState.tsx b/studio/components/to-be-cleaned/ProductEmptyState.tsx index 8298ee64557..5a68244b6dd 100644 --- a/studio/components/to-be-cleaned/ProductEmptyState.tsx +++ b/studio/components/to-be-cleaned/ProductEmptyState.tsx @@ -1,48 +1,78 @@ -import { Button, Typography } from '@supabase/ui' +import { Button } from 'ui' import { FC, ReactNode } from 'react' +import * as Tooltip from '@radix-ui/react-tooltip' interface Props { title?: string + size?: 'medium' | 'large' children?: ReactNode ctaButtonLabel?: string infoButtonLabel?: string infoButtonUrl?: string onClickCta?: () => void disabled?: boolean + disabledMessage?: string } const ProductEmptyState: FC = ({ title = '', + size = 'medium', children, ctaButtonLabel = '', infoButtonLabel = '', infoButtonUrl = '', onClickCta = () => {}, disabled = false, -}) => ( -
    -
    - {/* A graphic can probably be placed here as a sibling to the div below*/} -
    -
    - {title} -
    {children}
    -
    - - {infoButtonUrl && infoButtonLabel ? ( - - ) : null} + disabledMessage = '', +}) => { + const hasAction = (ctaButtonLabel && onClickCta) || (infoButtonUrl && infoButtonLabel) + + return ( +
    +
    + {/* A graphic can probably be placed here as a sibling to the div below*/} +
    +
    +
    {title}
    +
    {children}
    + {hasAction && ( +
    + {ctaButtonLabel && onClickCta && ( + + + + + {disabled && disabledMessage.length > 0 && ( + + +
    + {disabledMessage} +
    +
    + )} +
    + )} + {infoButtonUrl && infoButtonLabel ? ( + + ) : null} +
    + )}
    -
    -) + ) +} export default ProductEmptyState diff --git a/studio/components/to-be-cleaned/Reports/EditReportModal.tsx b/studio/components/to-be-cleaned/Reports/EditReportModal.tsx index 6aeadc04f92..86f04443e00 100644 --- a/studio/components/to-be-cleaned/Reports/EditReportModal.tsx +++ b/studio/components/to-be-cleaned/Reports/EditReportModal.tsx @@ -2,7 +2,7 @@ import React, { FC, useState, useEffect } from 'react' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' import { toJS } from 'mobx' -import { Input, Modal } from '@supabase/ui' +import { Input, Modal } from 'ui' import { useStore } from 'hooks' import { useProjectContentStore } from 'stores/projectContentStore' diff --git a/studio/components/to-be-cleaned/Reports/Reports.utils.ts b/studio/components/to-be-cleaned/Reports/Reports.utils.ts index 30dbaf0a191..44881dfd8be 100644 --- a/studio/components/to-be-cleaned/Reports/Reports.utils.ts +++ b/studio/components/to-be-cleaned/Reports/Reports.utils.ts @@ -1,6 +1,5 @@ import { useProjectContentStore } from 'stores/projectContentStore' import { NEW_REPORT_SKELETON } from './Reports.constants' -import toast from 'react-hot-toast' /* * createReport() diff --git a/studio/components/to-be-cleaned/SimpleCodeBlock.tsx b/studio/components/to-be-cleaned/SimpleCodeBlock.tsx index a22de412035..2dc6ef055ef 100644 --- a/studio/components/to-be-cleaned/SimpleCodeBlock.tsx +++ b/studio/components/to-be-cleaned/SimpleCodeBlock.tsx @@ -10,7 +10,7 @@ import Highlight, { defaultProps } from 'prism-react-renderer' import defaultTheme from 'prism-react-renderer/themes/palenight' import Clipboard from 'clipboard' import rangeParser from 'parse-numeric-range' -import { Button } from '@supabase/ui' +import { Button } from 'ui' import { copyToClipboard } from 'lib/helpers' const highlightLinesRangeRegex = /{([\d,-]+)}/ @@ -92,7 +92,7 @@ const SimpleCodeBlock: FC = ({ children, className: languageClassName, meta ) })} -
    +
    - )} - {(content.savingState === 'CREATING' || content.savingState === 'UPDATING') && ( - - - - - - -
    - Saving changes... -
    -
    -
    - )} - {(content.savingState === 'CREATING_FAILED' || content.savingState === 'UPDATING_FAILED') && ( - - )} - {showSavedText && ( - - - - - - -
    - All changes saved -
    -
    -
    - )} - - {content.savingState === 'CREATING_FAILED' && 'Failed to create'} - {content.savingState === 'UPDATING_FAILED' && 'Failed to save'} - -
    - ) -}) - -const UtilityActions = observer(({ updateSqlSnippet }) => { - const sqlEditorStore = useSqlStore() - - useKeyboardShortcuts( - { - 'Command+Enter': (event) => { - event.preventDefault() - executeQuery() - }, - }, - ['INPUT'] - ) - - async function executeQuery() { - if (sqlEditorStore.isExecuting) return - await sqlEditorStore.startExecuting() - } - - return ( - <> - - {IS_PLATFORM && } - - - - ) -}) - -const SizeToggleButton = observer(() => { - const sqlEditorStore = useSqlStore() - - function maximizeEditor() { - sqlEditorStore.activeTab.collapseUtilityTab() - } - - function restorePanelSize() { - sqlEditorStore.activeTab.restorePanelSize() - } - - return ( - <> - {sqlEditorStore.activeTab.utilityTabHeight != 0 && ( - - -
    - } - > -
    - -
    - - Only lowercase letters, numbers, dots, and hyphens - - } - layout="vertical" - error={error} - type="text" - className="w-full" - placeholder="e.g new-bucket" - value={bucketName} - onChange={(event) => setBucketName(event.target.value)} - /> -
    -
    - - -
    - setIsPublic(!isPublic)} - /> - {isPublic && ( - -

    - Users can read objects in public buckets without any authorization. -

    -

    - Row level security (RLS) policies are still required for other operations such as - object uploads and deletes. -

    -
    - )} -
    -
    - + +
    + } + > +
    + +
    + + Only lowercase letters, numbers, dots, and hyphens +

    + } + layout="vertical" + error={error} + type="text" + className="w-full" + placeholder="e.g new-bucket" + value={bucketName} + onChange={(event) => setBucketName(event.target.value)} + /> +
    +
    + + +
    + setIsPublic(!isPublic)} + /> + {isPublic && ( + +

    + Users can read objects in public buckets without any authorization. +

    +

    + Row level security (RLS) policies are still required for other operations such as + object uploads and deletes. +

    +
    + )} +
    +
    +
    ) diff --git a/studio/components/to-be-cleaned/Storage/StorageExplorer/ConfirmDeleteModal.js b/studio/components/to-be-cleaned/Storage/StorageExplorer/ConfirmDeleteModal.js index c960fca85cd..f4259fa43d6 100644 --- a/studio/components/to-be-cleaned/Storage/StorageExplorer/ConfirmDeleteModal.js +++ b/studio/components/to-be-cleaned/Storage/StorageExplorer/ConfirmDeleteModal.js @@ -1,5 +1,5 @@ import { useEffect, useState } from 'react' -import { Modal, Button, Alert } from '@supabase/ui' +import { Modal, Button, Alert } from 'ui' const ConfirmDeleteModal = ({ visible = false, diff --git a/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerColumn.js b/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerColumn.js index ee32fb3ecd8..bc418c2f92a 100644 --- a/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerColumn.js +++ b/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerColumn.js @@ -1,6 +1,6 @@ import { useState, useRef, useEffect } from 'react' import { get, sum } from 'lodash' -import { Checkbox, IconUpload } from '@supabase/ui' +import { Checkbox, IconUpload } from 'ui' import { Transition } from '@headlessui/react' import { useContextMenu } from 'react-contexify' @@ -25,20 +25,21 @@ const DragOverOverlay = ({ isOpen, onDragLeave, onDrop, folderIsEmpty }) => { leave="transition ease-in duration-75" leaveFrom="transform opacity-100" leaveTo="transform opacity-0" + className="h-full w-full absolute top-0" >
    {!folderIsEmpty && (
    -

    +

    Drop your files to upload to this folder

    @@ -121,6 +122,7 @@ const FileExplorerColumn = ({ const SelectAllCheckbox = () => ( onSelectAllItemsInColumn(index)} @@ -137,7 +139,7 @@ const FileExplorerColumn = ({ : 'w-64 border-r border-panel-border-light dark:border-panel-border-dark' } ${view === STORAGE_VIEWS.COLUMNS ? '' : ''} - relative flex-shrink-0 overflow-auto flex flex-col hide-scrollbar + hide-scrollbar relative flex flex-shrink-0 flex-col overflow-auto `} onContextMenu={displayMenu} onDragOver={onDragOver} @@ -151,8 +153,8 @@ const FileExplorerColumn = ({ {/* Checkbox selection for select all */} {view === STORAGE_VIEWS.COLUMNS && (
    0 ? 'opacity-100 py-3 h-10' : 'opacity-0 py-0 h-0' + className={`sticky top-0 z-10 mb-0 flex items-center bg-table-header-light px-2.5 dark:bg-table-header-dark ${ + haveSelectedItems > 0 ? 'h-10 py-3 opacity-100' : 'h-0 py-0 opacity-0' } transition-all duration-200`} onClick={(event) => event.stopPropagation()} > @@ -171,28 +173,19 @@ const FileExplorerColumn = ({ {view === STORAGE_VIEWS.LIST && (
    - -

    - Name -

    -

    - Size -

    -

    - Type -

    -

    - Created at -

    -

    - Last modified at -

    -
    +
    + +

    Name

    +
    +

    Size

    +

    Type

    +

    Created at

    +

    Last modified at

    )} @@ -201,7 +194,7 @@ const FileExplorerColumn = ({
    @@ -241,9 +234,9 @@ const FileExplorerColumn = ({ {/* Drag drop upload CTA for when column is empty */} {column.items.length === 0 && column.status !== STORAGE_ROW_STATUS.LOADING && (
    - +

    Drop your files here

    -

    +

    Or upload them via the "Upload file" button above

    @@ -263,8 +256,8 @@ const FileExplorerColumn = ({ {view === STORAGE_VIEWS.LIST && (

    diff --git a/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerHeader.js b/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerHeader.js index 3c00b2a7943..c3f155673d1 100644 --- a/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerHeader.js +++ b/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerHeader.js @@ -15,9 +15,8 @@ import { IconX, IconEdit2, IconLoader, - Typography, IconChevronsUp, -} from '@supabase/ui' +} from 'ui' import { useStorageStore } from 'localStores/storageExplorer/StorageExplorerStore' import { STORAGE_VIEWS, STORAGE_SORT_BY, STORAGE_SORT_BY_ORDER } from '../Storage.constants.ts' @@ -29,18 +28,12 @@ const HeaderPathEdit = ({ loading, breadcrumbs, togglePathEdit }) => { > {loading.isLoading ? (

    - - - - -

    {loading.message}

    -
    + +

    {loading.message}

    ) : (
    - -

    {breadcrumbs[breadcrumbs.length - 1] || ''}

    -
    +

    {breadcrumbs[breadcrumbs.length - 1] || ''}

    - Asc - Desc + Ascending + Descending , ]} > @@ -361,7 +340,7 @@ const FileExplorerHeader = ({
    -
    +
    @@ -387,7 +366,7 @@ const FileExplorerHeader = ({ {/* Search: Disabled for now */} {view === STORAGE_VIEWS.LIST && ( <> -
    +
    {isSearching ? ( , diff --git a/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerHeaderSelection.js b/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerHeaderSelection.js index 1fe5b5c22b6..d9274f43a10 100644 --- a/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerHeaderSelection.js +++ b/studio/components/to-be-cleaned/Storage/StorageExplorer/FileExplorerHeaderSelection.js @@ -1,4 +1,4 @@ -import { Button, IconDownload, IconTrash2, IconMove, IconX } from '@supabase/ui' +import { Button, IconDownload, IconTrash2, IconMove, IconX } from 'ui' const FileExplorerHeaderSelection = ({ selectedItems = [], @@ -8,15 +8,15 @@ const FileExplorerHeaderSelection = ({ onUnselectAllItems = () => {}, }) => { return ( -
    +
    +
    + + + + + - -
    -
    -
    - ) } const StoragePoliciesBucketRow = ({ @@ -112,14 +77,12 @@ const StoragePoliciesBucketRow = ({ return ( +
    - - - - + +

    {label} - +

    {bucket.public && Public}
    diff --git a/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesEditPolicyModal.js b/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesEditPolicyModal.js index edb3db8576d..ebcfe0bef98 100644 --- a/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesEditPolicyModal.js +++ b/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesEditPolicyModal.js @@ -1,4 +1,4 @@ -import { Modal, Typography, IconChevronLeft } from '@supabase/ui' +import { Modal, IconChevronLeft } from 'ui' import { pull } from 'lodash' import { useState, useEffect } from 'react' @@ -14,7 +14,7 @@ import { PolicySelection, PolicyTemplates, POLICY_MODAL_VIEWS, -} from 'components/interfaces/Authentication/Policies' +} from 'components/interfaces/Auth/Policies' import StoragePoliciesEditor from './StoragePoliciesEditor' import StoragePoliciesReview from './StoragePoliciesReview' @@ -50,7 +50,15 @@ const StoragePoliciesEditPolicyModal = ({ /* Methods to determine which step to show */ const onViewIntro = () => setView(POLICY_MODAL_VIEWS.SELECTION) - const onViewEditor = () => setView(POLICY_MODAL_VIEWS.EDITOR) + const onViewEditor = (state) => { + if (state === 'new') { + setPolicyFormFields({ + ...policyFormFields, + definition: `bucket_id = '${bucketName}'`, + }) + } + setView(POLICY_MODAL_VIEWS.EDITOR) + } const onViewTemplates = () => { setPreviousView(view) setView(POLICY_MODAL_VIEWS.TEMPLATES) @@ -173,22 +181,18 @@ const StoragePoliciesEditPolicyModal = ({
    - - Select a template to use for your new policy - +

    Select a template to use for your new policy

    ) } return (
    - - {getTitle()} - +

    {getTitle()}

    ) } @@ -215,7 +219,7 @@ const StoragePoliciesEditPolicyModal = ({ onViewEditor('new')} /> ) : view === POLICY_MODAL_VIEWS.EDITOR ? ( {} }) => { return (
    -
    @@ -29,12 +29,19 @@ const PolicyAllowedOperations = ({ allowedOperations = [], onToggleOperation = ( return (
    -
    @@ -75,7 +82,7 @@ const PolicyAllowedOperations = ({ allowedOperations = [], onToggleOperation = ( } const PolicyEditorFooter = ({ onViewTemplates = () => {}, onReviewPolicy = () => {} }) => ( -
    +
    diff --git a/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesPlaceholder.js b/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesPlaceholder.js index 721a723a88e..8e6e4abb30d 100644 --- a/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesPlaceholder.js +++ b/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesPlaceholder.js @@ -1,10 +1,10 @@ -import { IconArchive } from '@supabase/ui' +import { IconArchive } from 'ui' import Panel from 'components/ui/Panel' const StoragePoliciesPlaceholder = ({ guiHeight }) => ( +

    Bucket policies

    diff --git a/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesReview.js b/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesReview.js index cfbc2cb0f45..e4f5ebadacf 100644 --- a/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesReview.js +++ b/studio/components/to-be-cleaned/Storage/StoragePolicies/StoragePoliciesReview.js @@ -1,11 +1,11 @@ -import { Button, Typography, Modal } from '@supabase/ui' +import { Button, Modal } from 'ui' import { useState } from 'react' import SqlEditor from 'components/ui/SqlEditor' const ReviewEmptyState = () => { return ( -
    - There are no changes made to this policy +
    +

    There are no changes made to this policy

    ) } @@ -25,7 +25,7 @@ const StoragePoliciesReview = ({ <>
    -
    +

    These are the SQL statements that will be used to create your policies. The suffix @@ -50,7 +50,7 @@ const StoragePoliciesReview = ({

    -
    +
    diff --git a/studio/components/to-be-cleaned/Storage/StorageSettings/StorageSettings.tsx b/studio/components/to-be-cleaned/Storage/StorageSettings/StorageSettings.tsx index a0282cc1918..d5944c2e5df 100644 --- a/studio/components/to-be-cleaned/Storage/StorageSettings/StorageSettings.tsx +++ b/studio/components/to-be-cleaned/Storage/StorageSettings/StorageSettings.tsx @@ -1,6 +1,6 @@ import useSWR from 'swr' import { FC, useState } from 'react' -import { Button, Form, Input, Listbox } from '@supabase/ui' +import { Button, Form, Input, Listbox } from 'ui' import { useStore } from 'hooks' import { patch, get } from 'lib/common/fetch' @@ -10,7 +10,7 @@ import { convertFromBytes, convertToBytes } from './StorageSettings.utils' import { StorageSizeUnits, STORAGE_FILE_SIZE_LIMIT_MAX_BYTES } from './StorageSettings.constants' const StorageSettings: FC = ({ projectRef }) => { - const { data, error } = useSWR(`${API_URL}/projects/${projectRef}/config?app=storage`, get) + const { data, error } = useSWR(`${API_URL}/projects/${projectRef}/config/storage`, get) if (error || data?.error) { return ( @@ -68,7 +68,7 @@ const StorageConfig = ({ config, projectRef }: any) => { }) } else { const payload = { fileSizeLimit: convertToBytes(values.fileSizeLimit, selectedUnit) } - const res = await patch(`${API_URL}/projects/${projectRef}/config?app=storage`, payload) + const res = await patch(`${API_URL}/projects/${projectRef}/config/storage`, payload) if (res?.error) { ui.setNotification({ category: 'error', @@ -105,8 +105,8 @@ const StorageConfig = ({ config, projectRef }: any) => { return ( <>
    -

    Storage settings

    -
    +

    Storage settings

    +
    Configure your project's storage settings
    @@ -114,11 +114,11 @@ const StorageConfig = ({ config, projectRef }: any) => {
    -
    +

    Upload file size limit

    @@ -158,7 +158,7 @@ const StorageConfig = ({ config, projectRef }: any) => {
    -

    +

    {selectedUnit !== StorageSizeUnits.BYTES && `Equivalent to ${convertToBytes( values.fileSizeLimit, @@ -179,7 +179,7 @@ const StorageConfig = ({ config, projectRef }: any) => { />

    )} -
    +
    diff --git a/studio/components/to-be-cleaned/Storage/StorageUsage/StorageUsage.js b/studio/components/to-be-cleaned/Storage/StorageUsage/StorageUsage.js deleted file mode 100644 index 994c2eea1e8..00000000000 --- a/studio/components/to-be-cleaned/Storage/StorageUsage/StorageUsage.js +++ /dev/null @@ -1,18 +0,0 @@ -import SVG from 'react-inlinesvg' - -const StorageUsage = () => { - return ( -
    - - code.replace(/svg/, 'svg class="w-20 h-20 text-color-inherit opacity-75"') - } - /> -

    Usage statistics for storage are coming soon.

    -
    - ) -} - -export default StorageUsage diff --git a/studio/components/to-be-cleaned/Storage/ToggleBucketPublicModal.js b/studio/components/to-be-cleaned/Storage/ToggleBucketPublicModal.js deleted file mode 100644 index 470be93f96c..00000000000 --- a/studio/components/to-be-cleaned/Storage/ToggleBucketPublicModal.js +++ /dev/null @@ -1,56 +0,0 @@ -import { useEffect, useState } from 'react' -import { Modal, Alert, Button } from '@supabase/ui' -import ConfirmationModal from 'components/ui/ConfirmationModal' - -const ToggleBucketPublicModal = ({ - visible = false, - bucket = {}, - onSelectCancel = () => {}, - onSelectSave = () => {}, -}) => { - const [saving, setSaving] = useState(false) - - useEffect(() => { - setSaving(false) - }, [visible]) - - const onToggleBucketPublic = () => { - setSaving(true) - onSelectSave(bucket) - } - - const title = bucket.public - ? `Confirm making ${bucket.name} private` - : `Confirm making ${bucket.name} public` - - const alertTitle = bucket.public - ? `Warning: Making bucket private` - : `Warning: Making bucket public` - - const alertDescription = bucket.public - ? `This will make all objects in ${bucket.name} private. They can only be accessed via signed URLs or downloaded with the right authorisation headers` - : `This will make all objects in ${bucket.name} public` - - return ( - - - - {alertDescription} - - -
    - } - buttonLabel="Update bucket" - buttonLoadingLabel="Updating bucket" - onSelectCancel={onSelectCancel} - onSelectConfirm={onToggleBucketPublic} - /> - ) -} - -export default ToggleBucketPublicModal diff --git a/studio/components/to-be-cleaned/Storage/ToggleBucketPublicModal.tsx b/studio/components/to-be-cleaned/Storage/ToggleBucketPublicModal.tsx new file mode 100644 index 00000000000..dd9dd5ef4b4 --- /dev/null +++ b/studio/components/to-be-cleaned/Storage/ToggleBucketPublicModal.tsx @@ -0,0 +1,63 @@ +import { FC, useEffect, useState } from 'react' +import { Modal, Alert, Button } from 'ui' +import ConfirmationModal from 'components/ui/ConfirmationModal' + +interface Props { + visible: boolean + bucket: any + onSelectCancel: () => {} + onSelectSave: () => {} +} + +const ToggleBucketPublicModal: FC = ({ + visible = false, + bucket = {}, + onSelectCancel = () => {}, + onSelectSave = (bucket: any) => {}, +}) => { + const [saving, setSaving] = useState(false) + + useEffect(() => { + setSaving(false) + }, [visible]) + + const onToggleBucketPublic = () => { + setSaving(true) + onSelectSave(bucket) + } + + const header = bucket.public + ? `Confirm making ${bucket.name} private` + : `Confirm making ${bucket.name} public` + + const alertTitle = bucket.public + ? `Warning: Making bucket private` + : `Warning: Making bucket public` + + const alertDescription = bucket.public + ? `This will make all objects in ${bucket.name} private. They can only be accessed via signed URLs or downloaded with the right authorisation headers` + : `This will make all objects in ${bucket.name} public` + + return ( + + + + {alertDescription} + + +
    + } + buttonLabel="Update bucket" + buttonLoadingLabel="Updating bucket" + onSelectCancel={onSelectCancel} + onSelectConfirm={onToggleBucketPublic} + /> + ) +} + +export default ToggleBucketPublicModal diff --git a/studio/components/to-be-cleaned/Storage/index.js b/studio/components/to-be-cleaned/Storage/index.js index 538c6ff0f6c..17bed5a72fb 100644 --- a/studio/components/to-be-cleaned/Storage/index.js +++ b/studio/components/to-be-cleaned/Storage/index.js @@ -1,7 +1,6 @@ import StorageExplorer from './StorageExplorer/StorageExplorer' import StoragePolicies from './StoragePolicies/StoragePolicies' import StorageSettings from './StorageSettings/StorageSettings' -import StorageUsage from './StorageUsage/StorageUsage' import CreateBucketModal from './CreateBucketModal' import DeleteBucketModal from './DeleteBucketModal' @@ -11,7 +10,6 @@ export { StorageExplorer, StoragePolicies, StorageSettings, - StorageUsage, CreateBucketModal, DeleteBucketModal, ToggleBucketPublicModal, diff --git a/studio/components/to-be-cleaned/Table.tsx b/studio/components/to-be-cleaned/Table.tsx index 6e1c4c4d81a..dc3c37f83ce 100644 --- a/studio/components/to-be-cleaned/Table.tsx +++ b/studio/components/to-be-cleaned/Table.tsx @@ -1,5 +1,4 @@ import * as React from 'react' -import { Typography } from '@supabase/ui' type TableProps = { body: JSX.Element | JSX.Element[] @@ -8,6 +7,8 @@ type TableProps = { containerClassName?: string borderless?: boolean headTrClasses?: string + bodyClassName?: string + style?: React.StyleHTMLAttributes } function Table({ @@ -17,6 +18,8 @@ function Table({ containerClassName, borderless, headTrClasses, + bodyClassName, + style, }: TableProps) { let containerClasses = ['table-container'] if (containerClassName) containerClasses.push(containerClassName) @@ -27,11 +30,11 @@ function Table({ return (
    - +
    {head} - {body} + {body}
    ) diff --git a/studio/components/to-be-cleaned/forms/AutoTextArea.js b/studio/components/to-be-cleaned/forms/AutoTextArea.js index 01aed57c14f..b077dbeb326 100644 --- a/studio/components/to-be-cleaned/forms/AutoTextArea.js +++ b/studio/components/to-be-cleaned/forms/AutoTextArea.js @@ -1,4 +1,4 @@ -import { Input } from '@supabase/ui' +import { Input } from 'ui' import React, { useState, useEffect, useRef } from 'react' const AutoTextArea = (props) => { diff --git a/studio/components/to-be-cleaned/forms/SchemaFormPanel.js b/studio/components/to-be-cleaned/forms/SchemaFormPanel.js index 23301d11ff0..6f86522c66a 100644 --- a/studio/components/to-be-cleaned/forms/SchemaFormPanel.js +++ b/studio/components/to-be-cleaned/forms/SchemaFormPanel.js @@ -1,6 +1,6 @@ import SchemaForm from './SchemaForm' import React, { useState } from 'react' -import { Button, Typography } from '@supabase/ui' +import { Button } from 'ui' export default function SchemaFormPanel({ schema, @@ -12,6 +12,7 @@ export default function SchemaFormPanel({ onSubmit, submitLabel = 'Save', cancelLabel = 'Cancel', + message = '', }) { let formRef const [submitButtonLoading, setSubmitButtonLoading] = useState(false) @@ -39,17 +40,17 @@ export default function SchemaFormPanel({
    - {title || ''} +
    {title || ''}
    + {message}
    diff --git a/studio/components/to-be-cleaned/forms/SecretField.tsx b/studio/components/to-be-cleaned/forms/SecretField.tsx index 602a4c408b9..78d1cd28cf4 100644 --- a/studio/components/to-be-cleaned/forms/SecretField.tsx +++ b/studio/components/to-be-cleaned/forms/SecretField.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import { IconEye, IconEyeOff } from '@supabase/ui' +import { IconEye, IconEyeOff } from 'ui' import { connectField, filterDOMProps } from 'uniforms' const SecretField: React.FC = (props: any) => { diff --git a/studio/components/to-be-cleaned/forms/ToggleField.js b/studio/components/to-be-cleaned/forms/ToggleField.js index 5b05bc29e05..a6803d90035 100644 --- a/studio/components/to-be-cleaned/forms/ToggleField.js +++ b/studio/components/to-be-cleaned/forms/ToggleField.js @@ -1,6 +1,6 @@ import React, { useEffect, useState } from 'react' import { connectField, filterDOMProps } from 'uniforms' -import { Toggle } from '@supabase/ui' +import { Toggle } from 'ui' function ToggleField({ disabled, diff --git a/studio/components/ui/BackButton.tsx b/studio/components/ui/BackButton.tsx index 7210e6fa3f3..0ae4923d8e7 100644 --- a/studio/components/ui/BackButton.tsx +++ b/studio/components/ui/BackButton.tsx @@ -1,8 +1,8 @@ -import { Button, IconArrowLeft } from '@supabase/ui' +import { Button, IconArrowLeft } from 'ui' export function BackButton({ onClick }: { onClick: () => void }) { return ( -
    +
    diff --git a/studio/components/ui/CSVButton.tsx b/studio/components/ui/CSVButton.tsx index edc65394bd1..9ddcbf49aeb 100644 --- a/studio/components/ui/CSVButton.tsx +++ b/studio/components/ui/CSVButton.tsx @@ -1,5 +1,5 @@ -import { Button, IconDownloadCloud } from '@supabase/ui' -import { ButtonProps } from '@supabase/ui/dist/cjs/components/Button/Button' +import { Button, IconDownloadCloud } from 'ui' +import { ButtonProps } from 'ui/src/components/Button/Button' import { flattenDeep } from 'lodash' import React, { useMemo, useRef } from 'react' import { CSVLink } from 'react-csv' diff --git a/studio/components/ui/CardButton.tsx b/studio/components/ui/CardButton.tsx index afeeff659fd..f80f78d5bc2 100644 --- a/studio/components/ui/CardButton.tsx +++ b/studio/components/ui/CardButton.tsx @@ -1,5 +1,5 @@ import React, { FC } from 'react' -import { IconChevronRight } from '@supabase/ui' +import { IconChevronRight } from 'ui' import Link from 'next/link' interface Props { @@ -83,23 +83,25 @@ const CardButton: FC = ({ {icon && {icon}}
    {title}
    -
    -

    {description}

    -
    {children && children}
    -
    -
    {footer && footer}
    + {(children || description) && ( +
    +

    {description}

    +
    {children && children}
    +
    + )} + {footer &&
    {footer}
    }
    {isLink && (
    diff --git a/studio/components/ui/Charts/EmptyState.tsx b/studio/components/ui/Charts/EmptyState.tsx index e329be770f7..38973d39a0b 100644 --- a/studio/components/ui/Charts/EmptyState.tsx +++ b/studio/components/ui/Charts/EmptyState.tsx @@ -1,20 +1,28 @@ import { FC } from 'react' -import { Typography, IconBarChart2 } from '@supabase/ui' +import { IconBarChart2 } from 'ui' -interface Props {} +interface Props { + title?: string + message?: string +} -const EmptyState: FC = () => ( +const EmptyState: FC = ({ + title = 'No data to show', + message = 'May take 24 hours for data to show', +}) => (
    - - - - No data to show + +
    +

    {title}

    +

    {message}

    +
    ) diff --git a/studio/components/ui/ConditionalWrap.tsx b/studio/components/ui/ConditionalWrap.tsx new file mode 100644 index 00000000000..65afdda1e1b --- /dev/null +++ b/studio/components/ui/ConditionalWrap.tsx @@ -0,0 +1,12 @@ +import { cloneElement } from 'react' + +type ConditionalWrapProps = { + condition: boolean + wrap: (children: JSX.Element | null) => JSX.Element + children: JSX.Element | null +} + +const ConditionalWrap = ({ condition, children, wrap }: ConditionalWrapProps) => + condition ? cloneElement(wrap(children)) : children + +export default ConditionalWrap diff --git a/studio/components/ui/ConfirmationModal.tsx b/studio/components/ui/ConfirmationModal.tsx index d74b83f7765..3bc7905aa0b 100644 --- a/studio/components/ui/ConfirmationModal.tsx +++ b/studio/components/ui/ConfirmationModal.tsx @@ -1,4 +1,4 @@ -import { Modal, Button, Space } from '@supabase/ui' +import { Modal, Button, Space } from 'ui' import { MouseEventHandler } from 'react' import { FC, useState, useEffect } from 'react' diff --git a/studio/components/ui/DatePicker/DatePicker.tsx b/studio/components/ui/DatePicker/DatePicker.tsx index 3337a4b7820..dc79e1ba450 100644 --- a/studio/components/ui/DatePicker/DatePicker.tsx +++ b/studio/components/ui/DatePicker/DatePicker.tsx @@ -7,12 +7,12 @@ import { IconChevronRight, IconArrowRight, IconCalendar, -} from '@supabase/ui' +} from 'ui' import { format } from 'date-fns' import TimeSplitInput from './TimeSplitInput' import dayjs from 'dayjs' -import { ButtonProps } from '@supabase/ui/dist/cjs/components/Button/Button' +import { ButtonProps } from 'ui/src/components/Button/Button' import { DatePickerToFrom } from 'components/interfaces/Settings/Logs' export interface DatePickerProps { @@ -21,6 +21,7 @@ export interface DatePickerProps { from?: string triggerButtonType?: ButtonProps['type'] triggerButtonClassName?: string + triggerButtonTitle?: string renderFooter?: (args: DatePickerToFrom) => React.ReactNode | void } @@ -36,6 +37,7 @@ function _DatePicker({ onChange, triggerButtonType = 'default', triggerButtonClassName = '', + triggerButtonTitle, renderFooter = () => null, }: DatePickerProps) { const [open, setOpen] = useState(false) @@ -129,11 +131,11 @@ function _DatePicker({
    @@ -188,7 +190,7 @@ function _DatePicker({ > - {format(date, 'MMMM yyyy')} + {format(date, 'MMMM yyyy')} diff --git a/studio/components/ui/Forms/FormPanel.tsx b/studio/components/ui/Forms/FormPanel.tsx index 870676b1738..49c49375e0c 100644 --- a/studio/components/ui/Forms/FormPanel.tsx +++ b/studio/components/ui/Forms/FormPanel.tsx @@ -17,11 +17,7 @@ const FormPanel = ({ children, header, footer }: Props) => ( overflow-hidden rounded-md border shadow" > - {header && ( -
    - {header} -
    - )} + {header &&
    {header}
    }
    {children}
    {footer && ( <> diff --git a/studio/components/ui/InformationBox.tsx b/studio/components/ui/InformationBox.tsx index 27c3d0522cc..d5e824a1e86 100644 --- a/studio/components/ui/InformationBox.tsx +++ b/studio/components/ui/InformationBox.tsx @@ -1,5 +1,5 @@ import { FC, ReactNode, useState } from 'react' -import { IconMaximize2, IconMinimize2 } from '@supabase/ui' +import { IconMaximize2, IconMinimize2 } from 'ui' interface Props { icon?: ReactNode @@ -31,19 +31,19 @@ const InformationBox: FC = ({ return (
    -
    +
    {icon && {icon}}
    -
    {title}
    +
    {title}
    {description && !hideCollapse ? (
    setIsExpanded(!isExpanded)} > {isExpanded ? ( @@ -54,26 +54,28 @@ const InformationBox: FC = ({
    ) : null}
    -
    -
    {description}
    + {(description || url || button) && ( +
    +
    {description}
    - {url && ( - - {urlLabel} - - )} + {url && ( + + {urlLabel} + + )} - {button &&
    {button}
    } -
    + {button &&
    {button}
    } +
    + )}
    ) diff --git a/studio/components/ui/Modals/TextConfirmModal.tsx b/studio/components/ui/Modals/TextConfirmModal.tsx index cea2309c277..26778704269 100644 --- a/studio/components/ui/Modals/TextConfirmModal.tsx +++ b/studio/components/ui/Modals/TextConfirmModal.tsx @@ -1,5 +1,5 @@ import { FC, ReactNode } from 'react' -import { Modal, Button, Typography, Input, Alert, Form } from '@supabase/ui' +import { Modal, Button, Input, Alert, Form } from 'ui' interface Props { loading: boolean @@ -58,9 +58,7 @@ const TextConfirmModal: FC = ({ )} - -

    {text}

    -
    +

    {text}

    diff --git a/studio/components/ui/MultiSelect/Badges.tsx b/studio/components/ui/MultiSelect/Badges.tsx index 8be757695c9..ea8aea4abb5 100644 --- a/studio/components/ui/MultiSelect/Badges.tsx +++ b/studio/components/ui/MultiSelect/Badges.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { IconX } from '@supabase/ui' +import { IconX } from 'ui' export const BadgeDisabled: FC<{ name: string }> = ({ name }) => (
    {}, }: Props) { const ref = useRef(null) @@ -49,7 +55,7 @@ export default function MultiSelect({ // Calculate width of the Popover useEffect(() => { setInputWidth(ref.current ? (ref.current as any).offsetWidth : inputWidth) - }, []) + }, [ref.current]) const width = `${inputWidth}px` @@ -67,11 +73,19 @@ export default function MultiSelect({ return isOptionSelected !== undefined } + const handleRemove = (idx: number) => { + const updatedSelected = selected.filter((x, index) => index !== idx) + setSelected(updatedSelected) + onChange(updatedSelected) + } + const handleChange = (option: MultiSelectOption) => { const _selected = selectedOptions const isActive = checkIfActive(option) - const updatedPayload = isActive + const updatedPayload = allowDuplicateSelection + ? [..._selected.concat([option.value])] + : isActive ? [...without(_selected, option.value)] : [..._selected.concat([option.value])] @@ -79,7 +93,10 @@ export default function MultiSelect({ const compulsoryOptions = options .filter((option) => option.disabled) .map((option) => option.name) - const formattedPayload = [...new Set(updatedPayload.concat(compulsoryOptions))] + + const formattedPayload = allowDuplicateSelection + ? updatedPayload.concat(compulsoryOptions) + : [...new Set(updatedPayload.concat(compulsoryOptions))] setSelected(formattedPayload) onChange(formattedPayload) @@ -94,13 +111,14 @@ export default function MultiSelect({ } return ( -
    +
    {label && }
    @@ -114,7 +132,7 @@ export default function MultiSelect({ = 1 ? ( filteredOptions.map((option) => { const active = + !allowDuplicateSelection && selectedOptions && selectedOptions.find((selected) => { return selected === option.value @@ -138,11 +157,11 @@ export default function MultiSelect({ return (
    handleChange(option)} className={[ 'text-typography-body-light dark:text-typography-body-dark', - 'flex cursor-pointer items-center justify-between transition', + 'group flex cursor-pointer items-center justify-between transition', 'space-x-1 rounded bg-transparent p-2 px-4 text-sm hover:bg-gray-600', `${active ? ' dark:bg-green-600 dark:bg-opacity-25' : ''}`, ].join(' ')} @@ -157,13 +176,19 @@ export default function MultiSelect({ }`} /> )} + {allowDuplicateSelection && ( +
    + +

    Add value

    +
    + )}
    ) }) ) : options.length === 0 ? (
    @@ -172,14 +197,14 @@ export default function MultiSelect({ ) : (
    -

    No options available

    +

    No options available

    )}
    ) : (
    @@ -187,7 +212,7 @@ export default function MultiSelect({ emptyMessage ) : (
    -

    No options found

    +

    No options found

    )}
    @@ -203,23 +228,24 @@ export default function MultiSelect({ ].join(' ')} > {selectedOptions.length === 0 && placeholder && ( -
    {placeholder}
    +
    {placeholder}
    )} - {formattedOptions.map((option) => { - const active = - selectedOptions && - selectedOptions.find((selected) => { - return selected === option.value - }) - - if (option.disabled) { - return - } else if (active) { + {selectedOptions.map((value, idx) => { + const id = `${value}-${idx}` + const option = formattedOptions.find((x) => x.value === value) + const isDisabled = option?.disabled ?? false + if (!option) { + return <> + } else if (isDisabled) { + return + } else { return ( handleChange(option)} + key={id} + name={value} + handleRemove={() => + allowDuplicateSelection ? handleRemove(idx) : handleChange(option) + } /> ) } @@ -228,7 +254,10 @@ export default function MultiSelect({
    - {descriptionText && {descriptionText}} + {descriptionText && ( + {descriptionText} + )} + {error && {error}}
    ) } diff --git a/studio/components/ui/NoPermission.tsx b/studio/components/ui/NoPermission.tsx index 89853ee8d2a..f64919aee78 100644 --- a/studio/components/ui/NoPermission.tsx +++ b/studio/components/ui/NoPermission.tsx @@ -1,34 +1,49 @@ -import { IconAlertCircle } from '@supabase/ui' +import { IconAlertCircle } from 'ui' import { FC } from 'react' interface Props { resourceText: string + isFullPage?: boolean } -const NoPermission: FC = ({ resourceText }) => ( -
    -
    -
    - -
    -
    -
    -

    You need additional permissions to {resourceText}

    -
    -

    - Contact your organization owner or adminstrator for assistance. -

    +const NoPermission: FC = ({ resourceText, isFullPage = false }) => { + const NoPermissionMessage = ({}) => ( +
    +
    +
    + +
    +
    +
    +

    You need additional permissions to {resourceText}

    +
    +

    + Contact your organization owner or adminstrator for assistance. +

    +
    -
    -) + ) + + if (isFullPage) { + return ( +
    +
    + +
    +
    + ) + } else { + return + } +} export default NoPermission diff --git a/studio/components/ui/OveragesBanner/OveragesBanner.tsx b/studio/components/ui/OveragesBanner/OveragesBanner.tsx new file mode 100644 index 00000000000..fdaf402b3c2 --- /dev/null +++ b/studio/components/ui/OveragesBanner/OveragesBanner.tsx @@ -0,0 +1,105 @@ +import Link from 'next/link' +import { FC } from 'react' +import { Alert, Button } from 'ui' + +import { useStore, useProjectUsage } from 'hooks' +import { PRICING_TIER_PRODUCT_IDS } from 'lib/constants' +import { getResourcesApproachingLimits, getResourcesExceededLimits } from './OveragesBanner.utils' + +interface Props { + tier: string + minimal?: boolean +} + +// Banner will not be shown for PAYG or Enterprise projects + +const OveragesBanner: FC = ({ tier, minimal }) => { + const { ui } = useStore() + const ref = ui.selectedProject?.ref + + const { usage, error, isLoading } = useProjectUsage(ref as string) + + const resourcesApproachingLimits = getResourcesApproachingLimits(usage) + const isApproachingUsageLimits = resourcesApproachingLimits.length > 0 + + const resourcesExceededLimits = getResourcesExceededLimits(usage) + const isOverUsageLimits = resourcesExceededLimits.length > 0 + + if ( + isLoading || + error || + (!isApproachingUsageLimits && !isOverUsageLimits) || + tier === PRICING_TIER_PRODUCT_IDS.PAYG || + tier === PRICING_TIER_PRODUCT_IDS.ENTERPRISE + ) { + return <> + } + + const tierName = + tier === PRICING_TIER_PRODUCT_IDS.FREE + ? 'free' + : tier === PRICING_TIER_PRODUCT_IDS.PRO + ? 'pro' + : tier === PRICING_TIER_PRODUCT_IDS.PAYG + ? 'pro' + : '' + + const minimalDescription = + tier === PRICING_TIER_PRODUCT_IDS.FREE + ? "You can check your project's usage details or upgrade to the pro tier to support the growth of your project." + : tier === PRICING_TIER_PRODUCT_IDS.PRO + ? "You can check your project's usage details or consider disabling spend cap to support the growth of your project." + : tier === PRICING_TIER_PRODUCT_IDS.PAYG + ? "As you have disabled spend cap, additional resources will be charged on a per-usage basis. You can check your project's usage details for more information." + : '' + + const description = + tier === PRICING_TIER_PRODUCT_IDS.FREE + ? 'Upgrade to the pro tier to support the growth of your project.' + : tier === PRICING_TIER_PRODUCT_IDS.PRO + ? 'Consider disabling spend cap to support the growth of your project' + : tier === PRICING_TIER_PRODUCT_IDS.PAYG + ? "As you have disabled spend cap, additional resources will be charged on a per-usage basis. You can check your project's usage details for more information." + : '' + + return ( + + ) : ( + <> + ) + } + > + {minimal ? minimalDescription : description} + +
    + ) +} + +export default OveragesBanner diff --git a/studio/components/ui/OveragesBanner/OveragesBanner.utils.ts b/studio/components/ui/OveragesBanner/OveragesBanner.utils.ts new file mode 100644 index 00000000000..e46962c9e5f --- /dev/null +++ b/studio/components/ui/OveragesBanner/OveragesBanner.utils.ts @@ -0,0 +1,24 @@ +import { compact } from 'lodash' +import { USAGE_APPROACHING_THRESHOLD } from 'lib/constants' + +export const getResourcesApproachingLimits = (usages: any) => { + if (!usages) return [] + + return compact( + Object.keys(usages).map((resourceName) => { + const resource = usages[resourceName] + if (resource.usage / resource.limit >= USAGE_APPROACHING_THRESHOLD) return resourceName + }) + ) +} + +export const getResourcesExceededLimits = (usages: any) => { + if (!usages) return [] + + return compact( + Object.keys(usages).map((resourceName) => { + const resource = usages[resourceName] + if (resource.usage / resource.limit >= 1) return resourceName + }) + ) +} diff --git a/studio/components/ui/Panel.tsx b/studio/components/ui/Panel.tsx index 5feb0106002..60584e05f1b 100644 --- a/studio/components/ui/Panel.tsx +++ b/studio/components/ui/Panel.tsx @@ -1,4 +1,4 @@ -import { Loading } from '@supabase/ui' +import { Loading } from 'ui' import React, { ReactNode } from 'react' interface Props { @@ -31,13 +31,13 @@ function Panel(props: Props) { const content = (
    {props.title && (
    -
    {props.title}
    +
    {props.title}
    )}
    @@ -47,10 +47,10 @@ function Panel(props: Props) { {props.footer && (
    -
    {props.footer}
    +
    {props.footer}
    )}
    diff --git a/studio/components/ui/PasswordStrengthBar.tsx b/studio/components/ui/PasswordStrengthBar.tsx index 2658cc5a74f..c262bff2118 100644 --- a/studio/components/ui/PasswordStrengthBar.tsx +++ b/studio/components/ui/PasswordStrengthBar.tsx @@ -3,7 +3,6 @@ import { PASSWORD_STRENGTH_COLOR, PASSWORD_STRENGTH_PERCENTAGE, } from 'lib/constants' -import { Typography } from '@supabase/ui' interface Props { passwordStrengthScore: number @@ -39,18 +38,17 @@ const PasswordStrengthBar = ({ >
    )} - = DEFAULT_MINIMUM_PASSWORD_STRENGTH ? 'text-green-600' : '' - } - > +

    {passwordStrengthMessage ? passwordStrengthMessage : 'This is the password to your postgres database, so it must be a strong password and hard to guess.'}{' '} - - + +

    ) } diff --git a/studio/components/ui/ProductMenu/ProductMenu.tsx b/studio/components/ui/ProductMenu/ProductMenu.tsx index c0544b03459..dca578d4cdb 100644 --- a/studio/components/ui/ProductMenu/ProductMenu.tsx +++ b/studio/components/ui/ProductMenu/ProductMenu.tsx @@ -1,5 +1,5 @@ import { FC } from 'react' -import { Badge, Menu } from '@supabase/ui' +import { Badge, Menu } from 'ui' import ProductMenuItem from './ProductMenuItem' import { ProductMenuGroup, ProductMenuGroupItem } from './ProductMenu.types' @@ -19,10 +19,12 @@ const ProductMenu: FC = ({ page, menu }) => { - {group.title} - {group.isPreview && Not production ready} -
    + group.title ? ( +
    + {group.title} + {group.isPreview && Not production ready} +
    + ) : null } />
    @@ -40,7 +42,7 @@ const ProductMenu: FC = ({ page, menu }) => {
    - {idx !== menu.length - 1 &&
    } + {idx !== menu.length - 1 &&
    }
    ))} diff --git a/studio/components/ui/ProductMenu/ProductMenu.types.ts b/studio/components/ui/ProductMenu/ProductMenu.types.ts index 876dc3ffec0..4b7f66ac816 100644 --- a/studio/components/ui/ProductMenu/ProductMenu.types.ts +++ b/studio/components/ui/ProductMenu/ProductMenu.types.ts @@ -1,7 +1,7 @@ import { ReactNode } from 'react' export interface ProductMenuGroup { - title: string + title?: string isPreview?: boolean items: ProductMenuGroupItem[] } diff --git a/studio/components/ui/ProductMenu/ProductMenuItem.tsx b/studio/components/ui/ProductMenu/ProductMenuItem.tsx index eafbec75206..01e1c80371f 100644 --- a/studio/components/ui/ProductMenu/ProductMenuItem.tsx +++ b/studio/components/ui/ProductMenu/ProductMenuItem.tsx @@ -1,6 +1,6 @@ import Link from 'next/link' import { FC, ReactNode } from 'react' -import { Button, IconExternalLink, Menu } from '@supabase/ui' +import { Button, IconExternalLink, Menu } from 'ui' interface Props { name: string | ReactNode diff --git a/studio/components/ui/ProjectSettings/DisplayApiSettings.tsx b/studio/components/ui/ProjectSettings/DisplayApiSettings.tsx index 1691104ff96..c691e0d5730 100644 --- a/studio/components/ui/ProjectSettings/DisplayApiSettings.tsx +++ b/studio/components/ui/ProjectSettings/DisplayApiSettings.tsx @@ -1,41 +1,67 @@ -import { FC } from 'react' import { useRouter } from 'next/router' -import { Input } from '@supabase/ui' +import { IconAlertCircle, IconLoader, Input } from 'ui' import { JwtSecretUpdateStatus } from '@supabase/shared-types/out/events' -import { useJwtSecretUpdateStatus, useProjectSettings } from 'hooks' -import { SettingsLoadingState } from './SettingsLoadingState' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { checkPermissions, useJwtSecretUpdateStatus, useProjectSettings } from 'hooks' import { DEFAULT_PROJECT_API_SERVICE_ID } from 'lib/constants' import Panel from 'components/ui/Panel' const DisplayApiSettings = () => { const router = useRouter() const { ref } = router.query + const { services, - isLoading: isProjectSettingsLoading, + error: projectSettingsError, isError: isProjectSettingsError, + isLoading: isProjectSettingsLoading, } = useProjectSettings(ref as string | undefined) const { + jwtSecretUpdateStatus, isError: isJwtSecretUpdateStatusError, isLoading: isJwtSecretUpdateStatusLoading, - jwtSecretUpdateStatus, }: any = useJwtSecretUpdateStatus(ref) + const canReadAPIKeys = checkPermissions(PermissionAction.READ, 'service_api_keys') + const isNotUpdatingJwtSecret = jwtSecretUpdateStatus === undefined || jwtSecretUpdateStatus === JwtSecretUpdateStatus.Updated // Get the API service const apiService = (services ?? []).find((x: any) => x.app.id == DEFAULT_PROJECT_API_SERVICE_ID) const apiKeys = apiService?.service_api_keys ?? [] // api keys should not be empty. However it can be populated with a delay on project creation - const isApikeysEmpty = apiKeys.length === 0 + const isApiKeysEmpty = apiKeys.length === 0 return ( - - {isProjectSettingsLoading || isJwtSecretUpdateStatusLoading || isApikeysEmpty ? ( - + +
    Project API keys
    +

    + Your API is secured behind an API gateway which requires an API Key for every request. +
    + You can use the keys below to use Supabase client libraries. +

    +
    + } + > + {isProjectSettingsError || isJwtSecretUpdateStatusError ? ( +
    + +

    + {isProjectSettingsError ? 'Failed to retrieve API keys' : 'Failed to update JWT secret'} +

    +
    + ) : isApiKeysEmpty || isProjectSettingsLoading || isJwtSecretUpdateStatusLoading ? ( +
    + +

    + {isProjectSettingsLoading || isApiKeysEmpty + ? 'Retrieving API keys' + : 'JWT secret is being updated'} +

    +
    ) : ( apiKeys.map((x: any, i: number) => ( { } > @@ -57,19 +86,18 @@ const DisplayApiSettings = () => { ))} {x.tags === 'service_role' && ( <> - {'secret'} + {'secret'} )} {x.tags === 'anon' && {'public'}} } - readOnly - copy={isNotUpdatingJwtSecret} - className="input-mono" - disabled - reveal={x.tags !== 'anon' && isNotUpdatingJwtSecret} + copy={canReadAPIKeys && isNotUpdatingJwtSecret} + reveal={x.tags !== 'anon' && canReadAPIKeys && isNotUpdatingJwtSecret} value={ - jwtSecretUpdateStatus === JwtSecretUpdateStatus.Failed + !canReadAPIKeys + ? 'You need additional permissions to view API keys' + : jwtSecretUpdateStatus === JwtSecretUpdateStatus.Failed ? 'JWT secret update failed, new API key may have issues' : jwtSecretUpdateStatus === JwtSecretUpdateStatus.Updating ? 'Updating JWT secret...' @@ -85,26 +113,7 @@ const DisplayApiSettings = () => { )) )} - - ) -} -export default DisplayApiSettings - -const ApiContentWrapper: FC = ({ children }) => { - return ( - -
    Project API keys
    -

    - Your API is secured behind an API gateway which requires an API Key for every request. -
    - You can use the keys below to use Supabase client libraries. -

    -
    - } - > - {children} ) } +export default DisplayApiSettings diff --git a/studio/components/ui/ProjectSettings/DisplayConfigSettings.tsx b/studio/components/ui/ProjectSettings/DisplayConfigSettings.tsx index b106361439c..d43f8a3d478 100644 --- a/studio/components/ui/ProjectSettings/DisplayConfigSettings.tsx +++ b/studio/components/ui/ProjectSettings/DisplayConfigSettings.tsx @@ -1,9 +1,8 @@ import { FC } from 'react' import { useRouter } from 'next/router' -import { Input } from '@supabase/ui' +import { Input, IconAlertCircle, IconLoader } from 'ui' import { JwtSecretUpdateStatus } from '@supabase/shared-types/out/events' import { useJwtSecretUpdateStatus, useProjectSettings } from 'hooks' -import { SettingsLoadingState } from './SettingsLoadingState' import { DEFAULT_PROJECT_API_SERVICE_ID } from 'lib/constants' import Panel from 'components/ui/Panel' @@ -31,11 +30,22 @@ const DisplayConfigSettings = () => { return ( - {isProjectSettingsLoading || isJwtSecretUpdateStatusLoading ? ( - + {isProjectSettingsError || isJwtSecretUpdateStatusError ? ( +
    + +

    + {isProjectSettingsError + ? 'Failed to retrieve configuration' + : 'Failed to update JWT secret'} +

    +
    + ) : isProjectSettingsLoading || isJwtSecretUpdateStatusLoading ? ( +
    + +

    + {isProjectSettingsLoading ? 'Retrieving API keys' : 'JWT secret is being updated'} +

    +
    ) : ( <> diff --git a/studio/components/ui/ProjectSettings/SettingsLoadingState.tsx b/studio/components/ui/ProjectSettings/SettingsLoadingState.tsx deleted file mode 100644 index b35f19cd42e..00000000000 --- a/studio/components/ui/ProjectSettings/SettingsLoadingState.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { FC } from 'react' -import { IconAlertCircle, Loading, Typography } from '@supabase/ui' -import { SettingsLoadingStateProps } from './SettingsLoadingState.types' -import Panel from 'components/ui/Panel' - -export const SettingsLoadingState: FC = ({ isError, errorMessage }) => { - return ( - - {isError ? ( -
    - - - - {errorMessage} -
    - ) : ( -
    - {/* @ts-ignore */} - -
    - )} -
    - ) -} diff --git a/studio/components/ui/ProjectSettings/SettingsLoadingState.types.tsx b/studio/components/ui/ProjectSettings/SettingsLoadingState.types.tsx deleted file mode 100644 index b3c9248594d..00000000000 --- a/studio/components/ui/ProjectSettings/SettingsLoadingState.types.tsx +++ /dev/null @@ -1,4 +0,0 @@ -export interface SettingsLoadingStateProps { - isError: boolean - errorMessage: string -} diff --git a/studio/components/ui/SparkBar.tsx b/studio/components/ui/SparkBar.tsx index 27cdb882dd3..d2385ef3dfe 100644 --- a/studio/components/ui/SparkBar.tsx +++ b/studio/components/ui/SparkBar.tsx @@ -21,17 +21,17 @@ const SparkBar: FC = ({ labelBottom = '', labelTop = '', }) => { - if (type == 'horizontal') { - let width = Number((value / max) * 100) - if (width < 3) width = 3 - let widthCss = `${width}%` + if (type === 'horizontal') { + const width = Number((value / max) * 100) + const widthCss = `${width}%` const hasLabels = labelBottom || labelTop + return (
    {hasLabels && (
    - {labelBottom} - {labelTop} + {labelBottom} + {labelTop}
    )}
    = ({ const totalHeight = 35 let height = Number((value / max) * totalHeight) if (height < 2) height = 2 + return (
    = ({ }) } - const Loading = () => Loading + const Loading = () =>

    Loading

    return ( = ({ primaryText, projectRef, secondaryText }) =>

    {primaryText}

    -

    {secondaryText}

    +

    {secondaryText}

    diff --git a/studio/components/ui/Usage.tsx b/studio/components/ui/Usage.tsx deleted file mode 100644 index 0d5970162b2..00000000000 --- a/studio/components/ui/Usage.tsx +++ /dev/null @@ -1,292 +0,0 @@ -import React, { FC, useEffect } from 'react' -import useSWR from 'swr' -import { Loading, Typography } from '@supabase/ui' - -import { useProjectSubscription, useStore } from 'hooks' -import { API_URL, PRICING_TIER_PRODUCT_IDS } from 'lib/constants' -import { get } from 'lib/common/fetch' -import SparkBar from 'components/ui/SparkBar' -import ShimmeringLoader from './ShimmeringLoader' - -interface ApiUsageStats { - authUsers: string | null - bucketSize: string | null - dbSize: string | null - dbTables: string | null -} -interface UsageStats { - authUsers: number - bucketSize: number - dbSize: number - dbTables: number -} - -const GB = 1000000000 -const MB = 1000000 - -const usageLimits = { - database: { - title: 'Database', - icon_src: '/img/database.svg', - features: [ - { - title: 'API requests', - tiers: { - free: { - description: () => 'Unlimited', - render: null, - }, - pro: { - description: () => 'Unlimited', - render: null, - }, - }, - }, - { - title: 'Database space', - tiers: { - free: { - description: (stats: UsageStats) => - `${((stats.dbSize / (500 * MB)) * 100).toFixed(2)} %`, - render: (stats: UsageStats) => { - const bytes: number = stats.dbSize - const usage = { - gb: bytes / GB, - mb: bytes / MB, - } - return ( - - ) - }, - }, - pro: { - description: (stats: UsageStats) => - `${((stats.dbSize / (8000 * MB)) * 100).toFixed(2)} %`, - render: (stats: UsageStats) => { - const bytes: number = stats.dbSize - const usage = { - gb: bytes / GB, - mb: bytes / MB, - } - return ( - - ) - }, - }, - }, - }, - ], - }, - storage: { - title: 'File storage', - icon_src: '/img/archive.svg', - features: [ - { - title: 'Storage space', - tiers: { - free: { - description: (stats: UsageStats) => - `${((stats.bucketSize / (1 * GB)) * 100).toFixed(2)}%`, - render: (stats: UsageStats) => ( - - ), - }, - pro: { - description: (stats: UsageStats) => - `${((stats.bucketSize / (100 * GB)) * 100).toFixed(2)}%`, - render: (stats: UsageStats) => ( - - ), - }, - }, - }, - { - title: 'Transfer limits', - tiers: { - free: { - description: () => `${Number(2).toLocaleString()} GB`, - render: () => {}, - }, - pro: { - description: () => `${Number(200).toLocaleString()} GB`, - render: () => {}, - }, - }, - }, - ], - }, -} - -interface ProjectUsageProps { - projectRef?: string - subscription_id?: string -} - -const ProjectUsage: FC = ({ projectRef, subscription_id }) => { - const { ui } = useStore() - const { data: stats, error: usageError } = useSWR(`${API_URL}/projects/${projectRef}/usage`, get) - const { subscription, isLoading: loading, error } = useProjectSubscription(projectRef) - - useEffect(() => { - if (error) { - ui.setNotification({ - category: 'error', - message: `Failed to get project subscription: ${error?.message ?? 'unknown'}`, - }) - } - }, [error]) - - const tier = - subscription?.tier?.supabase_prod_id === PRICING_TIER_PRODUCT_IDS.PRO ? 'pro' : 'free' - - return ( - -
    - {Object.values(usageLimits).map((product) => ( -
    - - - - - - - - - - {stats === undefined ? ( -
    - -
    - ) : ( - - {product.features.map((feature) => { - return ( - - - - - - ) - })} - - )} -
    -
    -
    - -
    - - {product.title} - -
    -
    - {/* Plan Limits */} - - {/* Usage */} -
    - {feature.title} - - {feature.tiers[tier]?.description(stats)} - - {/* @ts-ignore */} - {feature.tiers[tier]?.render ? feature.tiers[tier].render(stats) : null} -
    -
    - ))} -
    -
    - ) -} - -export default ProjectUsage - -interface ProjectUsageMinimalProps extends ProjectUsageProps { - filter: string -} - -export const ProjectUsageMinimal: FC = ({ - projectRef, - subscription_id, - filter, -}) => { - const { data: apiStats, error: usageError } = useSWR( - `${API_URL}/projects/${projectRef}/usage`, - get - ) - const { subscription, isLoading: loading, error } = useProjectSubscription(projectRef) - const stats: UsageStats = { - authUsers: Number(apiStats?.authUsers), - bucketSize: Number(apiStats?.bucketSize), - dbSize: Number(apiStats?.dbSize), - dbTables: Number(apiStats?.dbTables), - } - - if (subscription?.tier?.supabase_prod_id === PRICING_TIER_PRODUCT_IDS.PAYG) { - return <> - } - - const tier = - subscription?.tier?.supabase_prod_id === PRICING_TIER_PRODUCT_IDS.PRO ? 'pro' : 'free' - - return ( - -
    - {Object.values(usageLimits) - .filter((product) => product.title === filter) - .map((product) => { - return ( -
    - {product.features.map((feature) => { - return ( -
    - {feature.tiers[tier]?.render && feature.title !== 'Transfer limits' ? ( -
    {feature.title}
    - ) : null} -
    - {/* @ts-ignore */} - {feature.tiers[tier]?.render ? feature.tiers[tier].render(stats) : null} -
    -
    - ) - })} -
    - ) - })} -
    -
    - ) -} diff --git a/studio/components/ui/WarningBanner.tsx b/studio/components/ui/WarningBanner.tsx index 02ea412d50b..591de4ff076 100644 --- a/studio/components/ui/WarningBanner.tsx +++ b/studio/components/ui/WarningBanner.tsx @@ -1,4 +1,4 @@ -import { IconAlertCircle } from '@supabase/ui' +import { IconAlertCircle } from 'ui' const WarningBanner = ({ title, description }: { title: string; description?: string }) => { return ( @@ -7,7 +7,7 @@ const WarningBanner = ({ title, description }: { title: string; description?: st
    -
    +

    {title}

    {description && (

    {description}

    diff --git a/studio/components/ui/ui.types.ts b/studio/components/ui/ui.types.ts index a6726a5d8d7..8ede34b7f18 100644 --- a/studio/components/ui/ui.types.ts +++ b/studio/components/ui/ui.types.ts @@ -4,6 +4,6 @@ export interface Route { key: string label: string icon: ReactNode - link: string + link?: string disabled?: boolean } diff --git a/studio/contributing/contributing-checklists.md b/studio/contributing/contributing-checklists.md new file mode 100644 index 00000000000..7c27953a43f --- /dev/null +++ b/studio/contributing/contributing-checklists.md @@ -0,0 +1,95 @@ +# Checklists for contributing to the Supabase Dashboard + +First, we appreciate the time you've taken to contribute to Supabase! Thank you! + +The following is a set of checklists to help make sure the code we contribute to the Dashboard is well tested. If you've made changes to any specific tools, please take a couple of minutes and go through the relevant checklist below. + +You don't need to go through all of these for every PR you contribute. These checklists should help remind you of the important things to test after you've made changes to a feature. For example, if you make changes to the Table Editor, just run through that checklist below. + +**Note**: not all of these tools are available in the self-hosted Dashboard. If your PR is related to Storage, Edge Functions, Logs Explorer or Organization settings, just leave a comment on the PR and a Supabase team member will have a look for you. + +## Tools and features + +### Table Editor + +- [ ] Go to **Table editor** + - [ ] Create a **new table** + - [ ] Add different fields and types: at least one nullable, one with default generated value (like `now()`), at least one date field + - [ ] Insert a few rows into the table + - [ ] Edit the row with the default spreadsheet view + - [ ] Edit the row with the Side Panel editor (the expand button to the left of the ID column for each row) + - [ ] Add a filter + - [ ] Sort the rows + - [ ] Create a new column and then add a new row + +### Authentication / User management + +- [ ] Go to **Authentication** + - [ ] Invite a new user + - [ ] Search the list of users + - [ ] Go to Policies and create a new policy for a table + - [ ] Check logs view + - [ ] Go to settings and check that any changes you make get saved + - [ ] General + - [ ] Add a redirect URL + - [ ] Enable a couple of Auth providers + +### Storage + +- [ ] Go to **Storage** + - [ ] Go to **Settings** and try to change the upload size limit (unless on Free plan) + - [ ] **Create a new bucket** + - [ ] Go to your new **bucket** (check if it is public or private) + - [ ] Upload a file + - [ ] Create a folder + - [ ] Upload a file to your new folder + - [ ] Download the file + - [ ] Copy URL for your file and open it in new incognito tab (check that it respects private/public setting) + - [ ] Go to **Policies**: add a policy for a bucket + - [ ] Change public/private status for your bucket + - [ ] Check if objects respect private/public setting + +### SQL Editor + +- [ ] Go to **SQL editor** + - [ ] Create **new query** + - [ ] Run a query (ex: `select * from extensions.pg_stat_statements`) and check that it returns results + - [ ] Download a csv of the results (via the Results dropdown above the preview table) + - [ ] Go to **Welcome** and choose and run a template (ex: "Create table") + - [ ] Switch between queries, rename one of your queries, refresh page, delete one of your queries + +### Edge Functions + +- [ ] Go to **Edge Functions** + - [ ] See that any functions you've created are listed + - [ ] Click a function and see that its **Metrics** are displaying + - [ ] Switch to **Details** - you should see the details of your function + - [ ] Switch to **Invocations** and **Logs** - to see logs of recent activity + +### Logs Explorer + +- [ ] Go to **Logs Explorer** + - [ ] Switch to **Templates** and select one + - [ ] Check that query results are displaying properly + - [ ] Make a change to the query from the template, save this query + - [ ] Switch to **Saved** - you should see your new query, run it and check the results + - [ ] Switch to **Recent** - you should be able to see recent queries you've run + +### Database settings + +- [ ] Go to **Database** + - [ ] You should see any tables you have created + - [ ] Click on a table column, try and edit it + - [ ] Go to **Roles** - check if roles are displayed + - [ ] Go to **Extensions** - filter the extensions, try enabling and disabling an extension + - [ ] Go to **Replication** — enable, disable few event types for `supabase_realtime` add some tables to replication + - [ ] Go to **API Logs**, **Postgres Logs**, **Realtime Logs** + - [ ] Check filtering: time range, product, status, method + +### Org settings + +- [ ] Go to **Organizations** and select your organization + - [ ] On **General** - you should be able to rename your organization + - [ ] On **Team** - you should be able to invite team members + - [ ] On **Billing** - you should be able to see your project details and change billing address and email + - [ ] On **Invoices** - you should be able to download recent invoices diff --git a/studio/docker-entrypoint.sh b/studio/docker-entrypoint.sh new file mode 100755 index 00000000000..394fc58e09a --- /dev/null +++ b/studio/docker-entrypoint.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +# usage: file_env VAR [DEFAULT] +# ie: file_env 'XYZ_DB_PASSWORD' 'example' +# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of +# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature) +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + export "$var"="$val" + unset "$fileVar" +} + +# load secrets either from environment variables or files +file_env 'POSTGRES_PASSWORD' +file_env 'SUPABASE_ANON_KEY' +file_env 'SUPABASE_SERVICE_KEY' + +exec "${@}" diff --git a/studio/hooks/analytics/useLogsPreview.tsx b/studio/hooks/analytics/useLogsPreview.tsx index d22fa934c6c..6927a579c91 100644 --- a/studio/hooks/analytics/useLogsPreview.tsx +++ b/studio/hooks/analytics/useLogsPreview.tsx @@ -1,6 +1,9 @@ import { Count, + EventChart, + EventChartData, Filters, + genChartQuery, genCountQuery, genDefaultQuery, genQueryParams, @@ -27,6 +30,7 @@ interface Data { filters: Filters params: LogsEndpointParams oldestTimestamp?: string + eventChartData: EventChartData[] | null } interface Handlers { loadOlder: () => void @@ -116,11 +120,40 @@ function useLogsPreview( }) const newCount = countData?.result?.[0]?.count ?? 0 + // chart data + + const chartQuery = genChartQuery(table, params, filters) + const chartUrl = () => { + // cancel request if no sql provided + if (!params.sql) { + // return null to restrict unnecessary requests to api + // https://swr.vercel.app/docs/conditional-fetching#conditional + return null + } + + return `${API_URL}/projects/${projectRef}/analytics/endpoints/logs.all?${genQueryParams({ + iso_timestamp_end: params.iso_timestamp_end, + project: params.project, + sql: chartQuery, + } as any)}` + } + + const { data: eventChartResponse, mutate: refreshEventChart } = useSWR( + chartUrl, + get, + { + revalidateOnFocus: false, + dedupingInterval: 10000, + refreshInterval: 0, + } + ) + const refresh = async () => { const generatedSql = genDefaultQuery(table, filters) setParams((prev) => ({ ...prev, sql: generatedSql })) setLatestRefresh(new Date().toISOString()) setSize(1) + refreshEventChart() } let error: null | string | object = swrError ? swrError.message : null @@ -142,7 +175,7 @@ function useLogsPreview( return { ...resolved, ...filterOverride } }) } else { - setFilters((prev) => ({ ...prev, ...newFilters, ...filterOverride })) + setFilters({ ...newFilters, ...filterOverride }) } } return [ @@ -155,6 +188,7 @@ function useLogsPreview( filters, params, oldestTimestamp: oldestTimestamp ? String(oldestTimestamp) : undefined, + eventChartData: eventChartResponse?.result || null, }, { setFilters: handleSetFilters, diff --git a/studio/hooks/analytics/useLogsQuery.tsx b/studio/hooks/analytics/useLogsQuery.tsx index 310a3903af6..7b102dbc2d5 100644 --- a/studio/hooks/analytics/useLogsQuery.tsx +++ b/studio/hooks/analytics/useLogsQuery.tsx @@ -26,7 +26,7 @@ const useLogsQuery = ( ): [Data, Handlers] => { const defaultHelper = getDefaultHelper(EXPLORER_DATEPICKER_HELPERS) const [params, setParams] = useState({ - sql: '', + sql: initialParams?.sql || '', project: projectRef, iso_timestamp_start: initialParams.iso_timestamp_start ? initialParams.iso_timestamp_start diff --git a/studio/hooks/misc/useOptimisticSqlSnippetCreate.ts b/studio/hooks/misc/useOptimisticSqlSnippetCreate.ts index 60ebaa40046..aaf7c304491 100644 --- a/studio/hooks/misc/useOptimisticSqlSnippetCreate.ts +++ b/studio/hooks/misc/useOptimisticSqlSnippetCreate.ts @@ -3,7 +3,7 @@ import { useSqlStore } from 'localStores/sqlEditor/SqlEditorStore' import { useCallback } from 'react' import { useStore } from './useStore' -export function useOptimisticSqlSnippetCreate() { +export function useOptimisticSqlSnippetCreate(canCreateSQLSnippet: boolean) { const { ui, content: contentStore } = useStore() const { profile: user } = ui @@ -27,11 +27,18 @@ export function useOptimisticSqlSnippetCreate() { sqlEditorStore.selectTab(data.id) // save the new query to the server in the background - const { error } = await contentStore.save(data) - if (error) { + if (canCreateSQLSnippet) { + const { error } = await contentStore.save(data) + if (error) { + ui.setNotification({ + category: 'error', + message: `Failed to create new query: ${error.message}`, + }) + } + } else { ui.setNotification({ - category: 'error', - message: `Failed to create new query: ${error.message}`, + category: 'info', + message: 'Your queries will not be saved as you do not have sufficient permissions', }) } }, diff --git a/studio/hooks/misc/useParams.ts b/studio/hooks/misc/useParams.ts new file mode 100644 index 00000000000..cac30143bd9 --- /dev/null +++ b/studio/hooks/misc/useParams.ts @@ -0,0 +1,22 @@ +import { useRouter } from 'next/router' +import { useMemo } from 'react' + +export function useParams(): { + [k: string]: string | undefined +} { + const { query } = useRouter() + + return useMemo( + () => + Object.fromEntries( + Object.entries(query).map(([key, value]) => { + if (Array.isArray(value)) { + return [key, value[0]] + } else { + return [key, value] + } + }) + ), + [query] + ) +} diff --git a/studio/hooks/misc/useUpgradePrompt.tsx b/studio/hooks/misc/useUpgradePrompt.tsx new file mode 100644 index 00000000000..71aa956ca23 --- /dev/null +++ b/studio/hooks/misc/useUpgradePrompt.tsx @@ -0,0 +1,23 @@ +import { useEffect, useState } from 'react' +import { useProjectSubscription } from 'hooks' +import { useRouter } from 'next/router' +import { maybeShowUpgradePrompt } from 'components/interfaces/Settings/Logs' +import { StripeProduct } from 'components/interfaces/Billing' + +export const useUpgradePrompt = (from: string) => { + const router = useRouter() + const { ref } = router.query + const { subscription } = useProjectSubscription(ref as string) + const tier = subscription?.tier + const [showUpgradePrompt, setShowUpgradePrompt] = useState(false) + + const shouldShowUpgradePrompt = maybeShowUpgradePrompt(from, tier?.key) + + useEffect(() => { + if (shouldShowUpgradePrompt) { + setShowUpgradePrompt(true) + } + }, [from]) + + return { showUpgradePrompt, setShowUpgradePrompt, shouldShowUpgradePrompt } +} diff --git a/studio/hooks/misc/withAuth.tsx b/studio/hooks/misc/withAuth.tsx index 3ced511a8f2..f8a76c6d0cb 100644 --- a/studio/hooks/misc/withAuth.tsx +++ b/studio/hooks/misc/withAuth.tsx @@ -27,7 +27,11 @@ export function withAuth( const returning = app.projects.isInitialized && app.organizations.isInitialized ? 'minimal' : undefined const { profile, isLoading } = useProfile(returning) - const { permissions, isLoading: isPermissionLoading } = usePermissions(returning) + const { + permissions, + isLoading: isPermissionLoading, + mutate: mutatePermissions, + } = usePermissions(profile, returning) const isAccessingBlockedPage = !IS_PLATFORM && PLATFORM_ONLY_PAGES.includes(page) const isRedirecting = @@ -42,12 +46,9 @@ export function withAuth( } else if (returning !== 'minimal') { ui.setProfile(profile) - if (!app.organizations.isInitialized) { - app.organizations.load() - } - if (!app.projects.isInitialized) { - app.projects.load() - } + if (!app.organizations.isInitialized) app.organizations.load() + if (!app.projects.isInitialized) app.projects.load() + mutatePermissions() } } @@ -63,7 +64,9 @@ export function withAuth( useEffect(() => { if (!isLoading && router.isReady) { - rootStore.setProjectRef(ref ? String(ref) : undefined) + if (ref) { + rootStore.setProjectRef(Array.isArray(ref) ? ref[0] : ref) + } rootStore.setOrganizationSlug(slug ? String(slug) : undefined) } }, [isLoading, router.isReady, ref, slug]) diff --git a/studio/hooks/queries/index.ts b/studio/hooks/queries/index.ts index d4a6f35db2f..53c6ca96435 100644 --- a/studio/hooks/queries/index.ts +++ b/studio/hooks/queries/index.ts @@ -1,6 +1,7 @@ export * from './useJwtSecretUpdateStatus' export * from './useOrganizationDetail' export * from './useOrganizationRoles' +export * from './useFreeProjectLimitCheck' export * from './usePermissions' export * from './useProfile' export * from './useProjectAuthConfig' @@ -8,3 +9,5 @@ export * from './useProjectPaygStatistics' export * from './useProjectSettings' export * from './useProjectSubscription' export * from './useSubscriptionStats' +export * from './useProjectUsage' +export * from './useProjectPostgrestConfig' diff --git a/studio/hooks/queries/useAccessTokens.ts b/studio/hooks/queries/useAccessTokens.ts index 518b641b8c9..918c827fbad 100644 --- a/studio/hooks/queries/useAccessTokens.ts +++ b/studio/hooks/queries/useAccessTokens.ts @@ -19,7 +19,7 @@ export function useAccessTokens() { const anyError = data?.error || error function mutateNewToken(newToken: AccessToken, revalidate?: boolean) { - mutate(url, (data: AccessToken[]) => [...data, newToken], revalidate ?? true) + mutate(url, (data: AccessToken[]) => [...(data || []), newToken], revalidate ?? true) } function mutateDeleteToken(tokenId: number, revalidate?: boolean) { diff --git a/studio/hooks/queries/useFreeProjectLimitCheck.ts b/studio/hooks/queries/useFreeProjectLimitCheck.ts new file mode 100644 index 00000000000..3884388ebdd --- /dev/null +++ b/studio/hooks/queries/useFreeProjectLimitCheck.ts @@ -0,0 +1,22 @@ +import useSWR from 'swr' +import { get } from 'lib/common/fetch' +import { API_URL } from 'lib/constants' + +export interface MemberWithFreeProjectLimit { + free_project_limit: number + primary_email: string + username: string +} + +export function useFreeProjectLimitCheck(slug?: string) { + const url = `${API_URL}/organizations/${slug}/members/reached-free-project-limit` + const { data, error } = useSWR(slug ? url : null, get) + const anyError = data?.error || error + + return { + membersExceededLimit: anyError ? undefined : (data as MemberWithFreeProjectLimit[]), + error: anyError, + isLoading: !anyError && !data, + isError: !!anyError, + } +} diff --git a/studio/hooks/queries/useJwtSecretUpdateStatus.ts b/studio/hooks/queries/useJwtSecretUpdateStatus.ts index 898ca22c93a..11cb7dc31ca 100644 --- a/studio/hooks/queries/useJwtSecretUpdateStatus.ts +++ b/studio/hooks/queries/useJwtSecretUpdateStatus.ts @@ -13,6 +13,7 @@ export function useJwtSecretUpdateStatus(projectRef: string | string[] | undefin const meta = data?.jwtSecretUpdateStatus?.meta return { changeTrackingId: meta?.change_tracking_id, + error, isError: !!anyError, isLoading: !anyError && !data, jwtSecretUpdateError: meta?.error, diff --git a/studio/hooks/queries/usePermissions.ts b/studio/hooks/queries/usePermissions.ts index 878ac75db11..a7091aa4dda 100644 --- a/studio/hooks/queries/usePermissions.ts +++ b/studio/hooks/queries/usePermissions.ts @@ -1,12 +1,10 @@ -import useSWR from 'swr' import jsonLogic from 'json-logic-js' - import { useFlag, useStore } from 'hooks' import { get } from 'lib/common/fetch' import { API_URL, IS_PLATFORM } from 'lib/constants' -import { toJS } from 'mobx' +import useSWR from 'swr' -export function usePermissions(returning?: 'minimal') { +export function usePermissions(profile?: any, returning?: 'minimal') { let url = `${API_URL}/profile/permissions` if (returning) { @@ -14,23 +12,39 @@ export function usePermissions(returning?: 'minimal') { url = `${url}?${query}` } - const { data: data, error } = useSWR(url, get, { loadingTimeout: 10000 }) + const { + data: data, + error, + mutate, + } = useSWR(profile !== undefined && IS_PLATFORM ? url : null, get, { + loadingTimeout: 10000, + }) const anyError = data?.error || error return { - permissions: anyError ? undefined : data, + permissions: IS_PLATFORM ? (anyError ? undefined : data) : [], isLoading: !anyError && !data, isError: !!anyError, + mutate, } } -export function checkPermissions(action: string, resource: string, data?: object) { +const toRegexpString = (actionOrResource: string) => + `^${actionOrResource.replace('.', '\\.').replace('%', '.*')}$` + +export function checkPermissions( + action: string, + resource: string, + data?: object, + organizationId?: number +) { if (!IS_PLATFORM) return true const enablePermissions = useFlag('enablePermissions') if (!enablePermissions) return true const { ui } = useStore() + const orgid = organizationId ?? ui?.selectedOrganization?.id return (ui?.permissions ?? []) .filter( @@ -40,13 +54,9 @@ export function checkPermissions(action: string, resource: string, data?: object organization_id: number resources: string[] }) => - permission.actions.some((act) => - action ? action.match(act.replace('.', '.').replace('%', '.*')) : null - ) && - permission.resources.some((res) => - resource.match(res.replace('.', '.').replace('%', '.*')) - ) && - permission.organization_id === ui?.selectedOrganization?.id + permission.actions.some((act) => (action ? action.match(toRegexpString(act)) : null)) && + permission.resources.some((res) => resource.match(toRegexpString(res))) && + permission.organization_id === orgid ) .some( ({ condition }: { condition: jsonLogic.RulesLogic }) => diff --git a/studio/hooks/queries/useProfile.ts b/studio/hooks/queries/useProfile.ts index 3d5802391f8..33a5aa29581 100644 --- a/studio/hooks/queries/useProfile.ts +++ b/studio/hooks/queries/useProfile.ts @@ -11,9 +11,7 @@ export function useProfile(returning?: 'minimal') { url = `${url}?${query}` } - const { data, error } = useSWR(url, get, { - loadingTimeout: 10000, - }) + const { data, error } = useSWR(url, get, { loadingTimeout: 10000 }) const anyError = data?.error || error function mutateProfile(updatedUser: User, revalidate?: boolean) { diff --git a/studio/hooks/queries/useProjectPostgrestConfig.ts b/studio/hooks/queries/useProjectPostgrestConfig.ts new file mode 100644 index 00000000000..a18768bbb75 --- /dev/null +++ b/studio/hooks/queries/useProjectPostgrestConfig.ts @@ -0,0 +1,17 @@ +import useSWR from 'swr' +import { get } from 'lib/common/fetch' +import { API_URL } from 'lib/constants' + +export function useProjectPostgrestConfig(ref?: string) { + const url = `${API_URL}/projects/${ref}/config/postgrest` + const { data, error, mutate } = useSWR(ref ? url : null, get) + const anyError = data?.error || error + + return { + config: anyError ? undefined : data, + error: anyError, + isLoading: !anyError && !data, + isError: !!anyError, + mutateConfig: mutate, + } +} diff --git a/studio/hooks/queries/useProjectSettings.ts b/studio/hooks/queries/useProjectSettings.ts index 946c4cc074d..cccebec4bb1 100644 --- a/studio/hooks/queries/useProjectSettings.ts +++ b/studio/hooks/queries/useProjectSettings.ts @@ -4,7 +4,7 @@ import useSWR from 'swr' export function useProjectSettings(ref?: string) { const url = `${API_URL}/props/project/${ref}/settings` - const { data, error } = useSWR(ref ? url : null, get, { + const { data, error, mutate } = useSWR(ref ? url : null, get, { /** * on project creation, the service_api_keys will be populated with a delay * check for data.services.service_api_keys, return a valid refresh interval if it's empty @@ -21,6 +21,7 @@ export function useProjectSettings(ref?: string) { const anyError = data?.error || error return { + mutateSettings: mutate, project: anyError ? undefined : data?.project, services: anyError ? undefined : data?.services, error: anyError, diff --git a/studio/hooks/queries/useProjectUsage.ts b/studio/hooks/queries/useProjectUsage.ts new file mode 100644 index 00000000000..aa1eb266c55 --- /dev/null +++ b/studio/hooks/queries/useProjectUsage.ts @@ -0,0 +1,17 @@ +import useSWR from 'swr' +import { get } from 'lib/common/fetch' +import { API_URL } from 'lib/constants' +import { UsageStats } from 'components/interfaces/Settings/ProjectUsageBars/ProjectUsageBars.types' + +export function useProjectUsage(ref?: string) { + const url = `${API_URL}/projects/${ref}/usage` + const { data, error } = useSWR(ref ? url : null, get) + const anyError = data?.error || error + + return { + usage: anyError ? undefined : (data as UsageStats), + error: anyError, + isLoading: !anyError && !data, + isError: !!anyError, + } +} diff --git a/studio/hooks/queries/useProjectUsageStatus.ts b/studio/hooks/queries/useProjectUsageStatus.ts deleted file mode 100644 index 1d235271b86..00000000000 --- a/studio/hooks/queries/useProjectUsageStatus.ts +++ /dev/null @@ -1,16 +0,0 @@ -import useSWR from 'swr' -import { get } from 'lib/common/fetch' -import { API_URL } from 'lib/constants' - -export function useProjectUsageStatus(ref: string) { - const url = `${API_URL}/projects/${ref}/usage-status` - const { data, error } = useSWR(url, get) - const anyError = data?.error || error - - return { - config: anyError ? undefined : data, - error: anyError, - isLoading: !anyError && !data, - isError: !!anyError, - } -} diff --git a/studio/lib/api/apiWrapper.ts b/studio/lib/api/apiWrapper.ts index 328dec70a4e..26935f89c23 100644 --- a/studio/lib/api/apiWrapper.ts +++ b/studio/lib/api/apiWrapper.ts @@ -30,6 +30,7 @@ export default async function apiWrapper( } const func = withSentry(handler) + // @ts-ignore return await func(req, res) } catch (error) { return res.status(500).json({ error }) diff --git a/studio/lib/common/fetch/base.ts b/studio/lib/common/fetch/base.ts index b13b7a026b5..efa8e85563d 100644 --- a/studio/lib/common/fetch/base.ts +++ b/studio/lib/common/fetch/base.ts @@ -1,5 +1,4 @@ import { auth } from 'lib/gotrue' -import { tryParseJson } from 'lib/helpers' import { isUndefined } from 'lodash' import { SupaResponse } from 'types/base' @@ -88,33 +87,11 @@ export async function getAccessToken() { // ignore if server-side if (typeof window === 'undefined') return '' - const { session } = await auth.getSession() - if (!session) { - // try to get from url fragment - const accessToken = getParameterByName('access_token') - if (accessToken) { - return accessToken - } else { - return undefined - } - } + const { + data: { session }, + } = await auth.getSession() - return session.access_token -} - -// get param from URL fragment -export function getParameterByName(name: string, url?: string) { - // ignore if server-side - if (typeof window === 'undefined') return '' - - if (!url) url = window?.location?.href || '' - // eslint-disable-next-line no-useless-escape - name = name.replace(/[\[\]]/g, '\\$&') - const regex = new RegExp('[?&#]' + name + '(=([^&#]*)|&|#|$)'), - results = regex.exec(url) - if (!results) return null - if (!results[2]) return '' - return decodeURIComponent(results[2].replace(/\+/g, ' ')) + return session?.access_token } export async function constructHeaders(requestId: string, optionHeaders?: { [prop: string]: any }) { diff --git a/studio/lib/constants/index.ts b/studio/lib/constants/index.ts index 9f0d81a638b..1460874f25d 100644 --- a/studio/lib/constants/index.ts +++ b/studio/lib/constants/index.ts @@ -81,3 +81,5 @@ export const GOTRUE_ERRORS = { export const STRIPE_PUBLIC_KEY = process.env.NEXT_PUBLIC_STRIPE_PUBLIC_KEY || 'pk_test_XVwg5IZH3I9Gti98hZw6KRzd00v5858heG' + +export const USAGE_APPROACHING_THRESHOLD = 0.75 diff --git a/studio/lib/constants/metrics.tsx b/studio/lib/constants/metrics.tsx index d98c8aeaced..68b0324bf47 100644 --- a/studio/lib/constants/metrics.tsx +++ b/studio/lib/constants/metrics.tsx @@ -1,4 +1,4 @@ -import { IconActivity, IconArchive, IconDatabase, IconKey, IconHeart } from '@supabase/ui' +import { IconActivity, IconArchive, IconDatabase, IconKey, IconHeart } from 'ui' export const METRIC_CATEGORIES = { API: { diff --git a/studio/lib/constants/prism.ts b/studio/lib/constants/prism.ts new file mode 100644 index 00000000000..47bf84c5a0d --- /dev/null +++ b/studio/lib/constants/prism.ts @@ -0,0 +1,79 @@ +// Prism syntax highlighting referenced from Refractor +// https://github.com/wooorm/refractor/blob/main/lang/dart.js + +export function dart(Prism: any) { + // Handles named imports, such as http.Client + const keywords = [ + /\b(?:async|sync|yield)\*/, + /\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\b/, + ] + + // based on the dart naming conventions + const packagePrefix = /(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source + + const className = { + pattern: RegExp(packagePrefix + /[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source), + lookbehind: true, + inside: { + namespace: { + pattern: /^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/, + inside: { + punctuation: /\./, + }, + }, + }, + } + + Prism.languages.dart = Prism.languages.extend('clike', { + 'class-name': [ + className, + { + // variables and parameters + // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods) + pattern: RegExp(packagePrefix + /[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source), + lookbehind: true, + inside: className.inside, + }, + ], + keyword: keywords, + operator: /\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/, + }) + Prism.languages.insertBefore('dart', 'string', { + 'string-literal': { + pattern: /r?(?:("""|''')[\s\S]*?\1|(["'])(?:\\.|(?!\2)[^\\\r\n])*\2(?!\2))/, + greedy: true, + inside: { + interpolation: { + pattern: /((?:^|[^\\])(?:\\{2})*)\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/, + lookbehind: true, + inside: { + punctuation: /^\$\{?|\}$/, + expression: { + pattern: /[\s\S]+/, + inside: Prism.languages.dart, + }, + }, + }, + string: /[\s\S]+/, + }, + }, + string: undefined, + }) + Prism.languages.insertBefore('dart', 'class-name', { + metadata: { + pattern: /@\w+/, + alias: 'function', + }, + }) + Prism.languages.insertBefore('dart', 'class-name', { + generics: { + pattern: /<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/, + inside: { + 'class-name': className, + keyword: keywords, + punctuation: /[<>(),.:]/, + operator: /[?&|]/, + }, + }, + }) +} diff --git a/studio/lib/gotrue.ts b/studio/lib/gotrue.ts index 358b7cb326e..2c1bda4fc4c 100644 --- a/studio/lib/gotrue.ts +++ b/studio/lib/gotrue.ts @@ -3,14 +3,19 @@ import { GoTrueClient, User } from '@supabase/gotrue-js' export const GOTRUE_URL = process.env.NEXT_PUBLIC_GOTRUE_URL || `${process.env.SUPABASE_URL}/auth/v1` +export const STORAGE_KEY = process.env.NEXT_PUBLIC_STORAGE_KEY || 'supabase.dashboard.auth.token' + export const auth = new GoTrueClient({ url: GOTRUE_URL, - autoRefreshToken: true, + storageKey: STORAGE_KEY, }) export const getAuthUser = async (token: String): Promise => { try { - const { user, error } = await auth.api.getUser(token.replace('Bearer ', '')) + const { + data: { user }, + error, + } = await auth.getUser(token.replace('Bearer ', '')) if (error) throw error return { user, error: null } diff --git a/studio/lib/helpers.ts b/studio/lib/helpers.ts index 74fd00df8a9..ef127b6ab46 100644 --- a/studio/lib/helpers.ts +++ b/studio/lib/helpers.ts @@ -1,4 +1,5 @@ import { v4 as _uuidV4 } from 'uuid' +import { PostgresColumn } from '@supabase/postgres-meta' import { post } from 'lib/common/fetch' import { PASSWORD_STRENGTH, DEFAULT_MINIMUM_PASSWORD_STRENGTH, API_URL } from 'lib/constants' @@ -139,7 +140,7 @@ export const propsAreEqual = (prevProps: any, nextProps: any) => { export const formatBytes = (bytes: any, decimals = 2) => { if (bytes === 0 || bytes === undefined) return '0 bytes' - const k = 1000 + const k = 1024 const dm = decimals < 0 ? 0 : decimals const sizes = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] @@ -168,23 +169,30 @@ export async function passwordStrength(value: string) { let strength = 0 if (value && value !== '') { - const response = await post(`${API_URL}/profile/password-check`, { password: value }) - if (!response.error) { - const { result } = response - const score = (PASSWORD_STRENGTH as any)[result.score] - const suggestions = result.feedback?.suggestions ? result.feedback.suggestions.join(' ') : '' + if (value.length > 99) { + message = `${PASSWORD_STRENGTH[0]} Maximum length of password exceeded` + warning = `Password should be less than 100 characters` + } else { + const response = await post(`${API_URL}/profile/password-check`, { password: value }) + if (!response.error) { + const { result } = response + const score = (PASSWORD_STRENGTH as any)[result.score] + const suggestions = result.feedback?.suggestions + ? result.feedback.suggestions.join(' ') + : '' - // set message :string - message = `${score} ${suggestions}` + // set message :string + message = `${score} ${suggestions}` - // set strength :number - strength = result.score + // set strength :number + strength = result.score - // warning message for anything below 4 strength :string - if (result.score < DEFAULT_MINIMUM_PASSWORD_STRENGTH) { - warning = `${ - result?.feedback?.warning ? result?.feedback?.warning + '.' : '' - } You need a stronger password.` + // warning message for anything below 4 strength :string + if (result.score < DEFAULT_MINIMUM_PASSWORD_STRENGTH) { + warning = `${ + result?.feedback?.warning ? result?.feedback?.warning + '.' : '' + } You need a stronger password.` + } } } } diff --git a/studio/lib/pingPostgrest.ts b/studio/lib/pingPostgrest.ts index a324a5b1c7c..623775327d8 100644 --- a/studio/lib/pingPostgrest.ts +++ b/studio/lib/pingPostgrest.ts @@ -1,4 +1,3 @@ -import { String } from 'lodash' import semver from 'semver' import { headWithTimeout, getWithTimeout } from './common/fetch' import { API_URL } from './constants' @@ -24,8 +23,8 @@ async function pingPostgrest( } ) { if (projectRef === undefined) return false - const serviceApiKey = await getServiceApiKey(projectRef, options?.timeout) - if (serviceApiKey === undefined) return false + const apiKey = await getApiKey(projectRef, options?.timeout) + if (apiKey === undefined) return false const { kpsVersion, timeout } = options ?? {} const healthCheckApiEnable = semver.gte( @@ -35,20 +34,20 @@ async function pingPostgrest( ) if (healthCheckApiEnable) { const healthCheckUrl = `${restUrl.replace('/rest/', '/rest-admin/')}live` - return pingHealthCheckApi(healthCheckUrl, serviceApiKey, timeout) + return pingHealthCheckApi(healthCheckUrl, apiKey, timeout) } - return pingOpenApi(restUrl, serviceApiKey, timeout) + return pingOpenApi(restUrl, apiKey, timeout) } export default pingPostgrest -const getServiceApiKey = async ( +const getApiKey = async ( projectRef: string, timeout = DEFAULT_TIMEOUT_MILLISECONDS ): Promise => { const response = await getWithTimeout(`${API_URL}/props/project/${projectRef}/api`, { timeout }) if (response.error || response.autoApiService.service_api_keys.length === 0) return undefined - return response.autoApiService.serviceApiKey + return response.autoApiService.defaultApiKey } const DEFAULT_TIMEOUT_MILLISECONDS = 2000 diff --git a/studio/lib/vercelConfigs.ts b/studio/lib/vercelConfigs.ts index 2e484ec513c..5217cfc99f4 100644 --- a/studio/lib/vercelConfigs.ts +++ b/studio/lib/vercelConfigs.ts @@ -6,6 +6,8 @@ export const INTEGRATION_ENVS_ALIAS = { ENDPOINT: 'SUPABASE_ENDPOINT', ANONKEY: 'SUPABASE_ANON_KEY', SERVICEKEY: 'SUPABASE_SERVICE_KEY', + DBHOST: 'SUPABASE_DB_HOST', + DBPASSWORD: 'SUPABASE_DB_PASSWORD', } export const VERCEL_DEFAULT_EXTERNAL_ID = 'nextjs-initial-project' /* @@ -101,6 +103,16 @@ export const VERCEL_INTEGRATION_CONFIGS = [ alias: INTEGRATION_ENVS_ALIAS.SERVICEKEY, type: 'encrypted', }, + { + key: 'SUPABASE_DB_HOST', + alias: INTEGRATION_ENVS_ALIAS.DBHOST, + type: 'encrypted', + }, + { + key: 'SUPABASE_DB_PASSWORD', + alias: INTEGRATION_ENVS_ALIAS.DBPASSWORD, + type: 'encrypted', + }, ], }, { diff --git a/studio/localStores/sqlEditor/SqlEditorStore.js b/studio/localStores/sqlEditor/SqlEditorStore.js index 7b05598377d..6a4ef0349bc 100644 --- a/studio/localStores/sqlEditor/SqlEditorStore.js +++ b/studio/localStores/sqlEditor/SqlEditorStore.js @@ -255,7 +255,7 @@ class SqlEditorStore { async loadKeywords() { const query = 'select * from pg_get_keywords();' const response = await this.meta.query(query) - if (!response.error) { + if (response && !response.error) { this.keywordCache = response.map((x) => x.word.toLocaleLowerCase()) } } diff --git a/studio/localStores/storageExplorer/StorageExplorerStore.js b/studio/localStores/storageExplorer/StorageExplorerStore.js index aca09a1ba00..f3bcfd79a4b 100644 --- a/studio/localStores/storageExplorer/StorageExplorerStore.js +++ b/studio/localStores/storageExplorer/StorageExplorerStore.js @@ -404,31 +404,39 @@ class StorageExplorerStore { // Already generated signed URL copyToClipboard(filePreview.url, () => { this.ui.setNotification({ - message: `Copied URL for ${file.name} to clipboard.`, category: 'success', + message: `Copied URL for ${file.name} to clipboard.`, duration: 4000, }) }) } else { // Need to generate signed URL, and might as well save it to cache as well const signedUrl = await this.fetchFilePreview(file.name) - let formattedUrl = new URL(signedUrl) - formattedUrl.searchParams.set('t', new Date().toISOString()) - copyToClipboard(formattedUrl.toString(), () => { + try { + let formattedUrl = new URL(signedUrl) + formattedUrl.searchParams.set('t', new Date().toISOString()) + + copyToClipboard(formattedUrl.toString(), () => { + this.ui.setNotification({ + category: 'success', + message: `Copied URL for ${file.name} to clipboard.`, + duration: 4000, + }) + }) + const fileCache = { + id: file.id, + url: formattedUrl.toString(), + expiresIn: DEFAULT_EXPIRY, + fetchedAt: Date.now(), + } + this.addFileToPreviewCache(fileCache) + } catch (error) { this.ui.setNotification({ - message: `Copied URL for ${file.name} to clipboard.`, - category: 'success', - duration: 4000, + category: 'error', + message: `Failed to copy URL: ${error}`, }) - }) - const fileCache = { - id: file.id, - url: formattedUrl.toString(), - expiresIn: DEFAULT_EXPIRY, - fetchedAt: Date.now(), } - this.addFileToPreviewCache(fileCache) } } @@ -443,7 +451,7 @@ class StorageExplorerStore { }) } - const { error } = await this.supabaseClient.storage.createBucket(bucketName, { + const { data, error } = await this.supabaseClient.storage.createBucket(bucketName, { public: isPublic, }) if (error) { @@ -456,6 +464,7 @@ class StorageExplorerStore { await this.fetchBuckets() this.closeCreateBucketModal() + return data } openBucket = async (bucket) => { @@ -629,15 +638,18 @@ class StorageExplorerStore { .map((folder) => folder.name) .join('/') + const infoToastId = toast('Please do not close the browser until the upload is completed', { + duration: Infinity, + }) const toastId = toast.loading( `Uploading ${formattedFilesToUpload.length} file${ formattedFilesToUpload.length > 1 ? 's' : '' - }...` + }` ) // Upload files in batches const promises = formattedFilesToUpload.map((file) => { - const fileOptions = { cacheControl: 3600 } + const fileOptions = { cacheControl: '3600' } const metadata = { mimetype: file.type, size: file.size } const isWithinFolder = get(file, ['path'], '').split('/').length > 1 @@ -747,8 +759,9 @@ class StorageExplorerStore { category: 'error', }) } - const t2 = new Date() + toast.dismiss(infoToastId) + const t2 = new Date() console.log( `Total time taken for ${formattedFilesToUpload.length} files: ${(t2 - t1) / 1000} seconds` ) @@ -760,6 +773,10 @@ class StorageExplorerStore { let numberOfFilesMovedFail = 0 this.clearSelectedItems() + const infoToastId = toast('Please do not close the browser until the delete is completed', { + duration: Infinity, + }) + await Promise.all( this.selectedItemsToMove.map(async (item) => { const pathToFile = this.openedFolders @@ -799,6 +816,8 @@ class StorageExplorerStore { }) } + toast.dismiss(infoToastId) + // Clear file preview cache if moved files exist in cache const idsOfItemsToMove = this.selectedItemsToMove.map((item) => item.id) const updatedFilePreviewCache = this.filePreviewCache.filter( @@ -821,7 +840,7 @@ class StorageExplorerStore { .getPublicUrl(formattedPathToFile) if (!error) { - return data.publicURL + return data.publicUrl } } @@ -830,7 +849,7 @@ class StorageExplorerStore { .createSignedUrl(formattedPathToFile, DEFAULT_EXPIRY) if (!error) { - return data.signedURL + return data.signedUrl } return null @@ -838,6 +857,9 @@ class StorageExplorerStore { deleteFiles = async (files, isDeleteFolder = false) => { this.closeFilePreview() + const infoToastId = toast('Please do not close the browser until the delete is completed', { + duration: Infinity, + }) // If every file has the 'prefix' property, then just construct the prefix // directly (from delete folder). Otherwise go by the opened folders. @@ -855,6 +877,11 @@ class StorageExplorerStore { this.clearSelectedItems() + const toastId = this.ui.setNotification({ + category: 'loading', + message: `Deleting ${prefixes.length} file(s)`, + }) + // batch BATCH_SIZE prefixes per request const batches = chunk(prefixes, BATCH_SIZE).map((batch) => () => { return this.supabaseClient.storage.from(this.selectedBucket.name).remove(batch) @@ -885,17 +912,22 @@ class StorageExplorerStore { parentFolderPrefixes.map((prefix) => this.validateParentFolderEmpty(prefix)) ) this.ui.setNotification({ - message: `Successfully deleted ${prefixes.length} file(s)`, + id: toastId, category: 'success', + message: `Successfully deleted ${prefixes.length} file(s)`, }) await this.refetchAllOpenedFolders() this.clearSelectedItemsToDelete() + } else { + toast.dismiss(toastId) } + + toast.dismiss(infoToastId) } downloadSelectedFiles = async () => { const showIndividualToast = false - const toastId = toast(`Retrieving ${this.selectedItems.length} files...`, { + const toastId = toast.loading(`Retrieving ${this.selectedItems.length} files...`, { autoClose: false, hideProgressBar: true, }) @@ -1144,6 +1176,12 @@ class StorageExplorerStore { const files = await this.getAllItemsAlongFolder(folder) await this.deleteFiles(files, isDeleteFolder) + const isFolderOpen = this.openedFolders[this.openedFolders.length - 1].name === folder.name + if (isFolderOpen) { + this.popColumnAtIndex(folder.columnIndex) + this.popOpenedFoldersAtIndex(folder.columnIndex - 1) + } + const parentFolderPrefix = this.openedFolders.map((folder) => folder.name).join('/') if (parentFolderPrefix.length > 0) { await this.validateParentFolderEmpty(parentFolderPrefix) @@ -1151,14 +1189,26 @@ class StorageExplorerStore { await this.refetchAllOpenedFolders() this.clearSelectedItemsToDelete() + this.ui.setNotification({ + category: 'success', message: `Successfully deleted ${folder.name}`, - type: 'success', }) } renameFolder = async (folder, newName, columnIndex) => { const originalName = folder.name + if (originalName === newName) { + return this.updateRowStatus(originalName, STORAGE_ROW_STATUS.READY, columnIndex) + } + + const toastId = this.ui.setNotification({ + category: 'loading', + message: `Renaming folder to ${newName}`, + }) + const infoToastId = toast('Please do not close the browser until the rename is completed', { + duration: Infinity, + }) /** * Catch any folder names that contain slash or backslash @@ -1175,74 +1225,74 @@ class StorageExplorerStore { }) } - if (originalName === newName) { - this.updateRowStatus(originalName, STORAGE_ROW_STATUS.READY, columnIndex) - } else { - this.updateRowStatus(originalName, STORAGE_ROW_STATUS.LOADING, columnIndex, newName) - const files = await this.getAllItemsAlongFolder(folder) + this.updateRowStatus(originalName, STORAGE_ROW_STATUS.LOADING, columnIndex, newName) + const files = await this.getAllItemsAlongFolder(folder) - let hasErrors = false - // Make this batched promises into a reusable function for storage, i think this will be super helpful - const promises = files.map((file) => { - const fromPath = `${file.prefix}/${file.name}` - const pathSegments = fromPath.split('/') - const toPath = pathSegments - .slice(0, columnIndex) - .concat(newName) - .concat(pathSegments.slice(columnIndex + 1)) - .join('/') - return () => { - return new Promise(async (resolve) => { - const { error } = await this.supabaseClient.storage - .from(this.selectedBucket.name) - .move(fromPath, toPath) - if (error) { - hasErrors = true - this.ui.setNotification({ - message: `Failed to move ${fromPath} to the new folder`, - category: 'error', - }) - } - resolve() - }) - } - }) + let hasErrors = false + // Make this batched promises into a reusable function for storage, i think this will be super helpful + const promises = files.map((file) => { + const fromPath = `${file.prefix}/${file.name}` + const pathSegments = fromPath.split('/') + const toPath = pathSegments + .slice(0, columnIndex) + .concat(newName) + .concat(pathSegments.slice(columnIndex + 1)) + .join('/') + return () => { + return new Promise(async (resolve) => { + const { error } = await this.supabaseClient.storage + .from(this.selectedBucket.name) + .move(fromPath, toPath) + if (error) { + hasErrors = true + this.ui.setNotification({ + category: 'error', + message: `Failed to move ${fromPath} to the new folder`, + }) + } + resolve() + }) + } + }) - const batchedPromises = chunk(promises, BATCH_SIZE) - // [Joshen] I realised this can be simplified with just a vanilla for loop, no need for reduce - // Just take note, but if it's working fine, then it's okay - try { - await batchedPromises.reduce(async (previousPromise, nextBatch) => { - await previousPromise - await Promise.all(nextBatch.map((batch) => batch())) - }, Promise.resolve()) + const batchedPromises = chunk(promises, BATCH_SIZE) + // [Joshen] I realised this can be simplified with just a vanilla for loop, no need for reduce + // Just take note, but if it's working fine, then it's okay + try { + await batchedPromises.reduce(async (previousPromise, nextBatch) => { + await previousPromise + await Promise.all(nextBatch.map((batch) => batch())) + }, Promise.resolve()) - if (!hasErrors) { - this.ui.setNotification({ - message: `Successfully renamed folder to ${newName}`, - category: 'success', - }) - } else { - this.ui.setNotification({ - message: `Renamed folder to ${newName} with some errors`, - category: 'error', - }) - } - await this.refetchAllOpenedFolders() - - // Clear file preview cache if the moved file exists in the cache - const fileIds = files.map((file) => file.id) - const updatedFilePreviewCache = this.filePreviewCache.filter( - (fileCache) => !fileIds.includes(fileCache.id) - ) - this.filePreviewCache = updatedFilePreviewCache - } catch (e) { + if (!hasErrors) { this.ui.setNotification({ - message: `Failed to rename folder to ${newName}`, + id: toastId, + message: `Successfully renamed folder to ${newName}`, + category: 'success', + }) + } else { + this.ui.setNotification({ + id: toastId, + message: `Renamed folder to ${newName} with some errors`, category: 'error', }) } + await this.refetchAllOpenedFolders() + + // Clear file preview cache if the moved file exists in the cache + const fileIds = files.map((file) => file.id) + const updatedFilePreviewCache = this.filePreviewCache.filter( + (fileCache) => !fileIds.includes(fileCache.id) + ) + this.filePreviewCache = updatedFilePreviewCache + } catch (e) { + this.ui.setNotification({ + id: toastId, + message: `Failed to rename folder to ${newName}`, + category: 'error', + }) } + toast.dismiss(infoToastId) } /* diff --git a/studio/next.config.js b/studio/next.config.js index 302385c445a..c4701c8599f 100644 --- a/studio/next.config.js +++ b/studio/next.config.js @@ -4,6 +4,9 @@ const withBundleAnalyzer = require('@next/bundle-analyzer')({ enabled: process.env.ANALYZE === 'true', }) +// this is required to use shared packages in the packages directory +const withTM = require('next-transpile-modules')(['ui', 'common']) + // This file sets a custom webpack configuration to use your Next.js app // with Sentry. // https://nextjs.org/docs/api-reference/next.config.js/introduction @@ -65,7 +68,9 @@ const nextConfig = { } // Export all config -const moduleExports = withPlugins([[withBundleAnalyzer({})]], nextConfig) +const plugins = [[withBundleAnalyzer({})], withTM()] + +const moduleExports = withPlugins(plugins, nextConfig) const sentryWebpackPluginOptions = { // Additional config options for the Sentry Webpack plugin. Keep in mind that @@ -85,4 +90,4 @@ const sentryWebpackPluginOptions = { module.exports = process.env.NEXT_PUBLIC_IS_PLATFORM === 'true' ? withSentryConfig(moduleExports, sentryWebpackPluginOptions) - : nextConfig + : withPlugins([withTM()], nextConfig) diff --git a/studio/package-lock.json b/studio/package-lock.json deleted file mode 100644 index c17a573d564..00000000000 --- a/studio/package-lock.json +++ /dev/null @@ -1,52325 +0,0 @@ -{ - "name": "studio", - "version": "0.0.9", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "studio", - "version": "0.0.9", - "dependencies": { - "@headlessui/react": "^1.4.1", - "@monaco-editor/react": "^4.3.1", - "@next/bundle-analyzer": "^12.0.4", - "@radix-ui/react-portal": "^0.1.1", - "@radix-ui/react-tooltip": "^0.1.6", - "@scaleleap/pg-format": "^1.0.0", - "@sentry/browser": "^6.15.0", - "@sentry/nextjs": "^6.17.4", - "@stripe/react-stripe-js": "^1.7.0", - "@stripe/stripe-js": "^1.25.0", - "@supabase/postgres-meta": "^0.26.1", - "@supabase/react-data-grid": "^7.1.0-beta.7", - "@supabase/shared-types": "^0.1.25", - "@supabase/supabase-js": "^1.36.0-next.9", - "@supabase/ui": "0.37.0-alpha.80", - "ajv": "^8.6.3", - "analytics-node": "^3.5.0", - "awesome-debounce-promise": "^2.1.0", - "clipboard": "^2.0.8", - "configcat-js": "^5.6.0", - "crypto-js": "^4.1.1", - "dayjs": "^1.11.0", - "file-saver": "^2.0.5", - "generate-password": "^1.7.0", - "immutability-helper": "^3.1.1", - "json-logic-js": "^2.0.2", - "lodash": "^4.17.21", - "lottie-react": "^2.2.1", - "markdown-table": "=2.0.0", - "mobx": "^6.3.2", - "mobx-react-lite": "^3.2.0", - "next": "12.0.9", - "next-compose-plugins": "^2.2.1", - "openapi-types": "^9.1.0", - "p-queue": "^6.6.2", - "papaparse": "^5.3.1", - "parse-numeric-range": "^1.3.0", - "path-to-regexp": "^6.2.0", - "prism-react-renderer": "^1.2.1", - "react": "^17.0.2", - "react-beautiful-dnd": "^13.1.0", - "react-contexify": "^5.0.0", - "react-csv": "^2.0.3", - "react-datepicker": "^4.6.0", - "react-dnd": "^14.0.3", - "react-dnd-html5-backend": "^14.0.1", - "react-dom": "^17.0.2", - "react-grid-layout": "^1.3.0", - "react-hot-toast": "^2.1.1", - "react-inlinesvg": "^2.3.0", - "react-markdown": "^8.0.3", - "react-split": "^2.0.13", - "react-tracked": "1.7.5", - "react-virtualized-auto-sizer": "^1.0.6", - "react-window": "^1.8.6", - "react-window-infinite-loader": "^1.0.7", - "recharts": "^2.1.6", - "sass": "^1.43.4", - "scheduler": "^0.20.2", - "semver": "^6.3.0", - "sqlstring": "^2.3.2", - "swr": "^1.2.1", - "uniforms-bootstrap4": "^3.6.2", - "uniforms-bridge-json-schema": "^3.6.2", - "uuid": "^8.3.2", - "yup": "^0.32.11", - "zxcvbn": "^4.4.2" - }, - "devDependencies": { - "@babel/core": "^7.17.5", - "@storybook/addon-actions": "^6.4.19", - "@storybook/addon-essentials": "^6.4.19", - "@storybook/addon-interactions": "^6.4.19", - "@storybook/addon-links": "^6.4.19", - "@storybook/react": "^6.4.19", - "@storybook/testing-library": "^0.0.9", - "@tailwindcss/typography": "^0.5.2", - "@testing-library/dom": "^8.11.1", - "@testing-library/react": "^12.1.2", - "@testing-library/user-event": "^13.5.0", - "@types/crypto-js": "^4.0.2", - "@types/file-saver": "^2.0.2", - "@types/json-logic-js": "^1.2.1", - "@types/lodash": "^4.14.172", - "@types/markdown-table": "^3.0.0", - "@types/papaparse": "^5.3.1", - "@types/react": "17.0.11", - "@types/react-beautiful-dnd": "^13.1.2", - "@types/react-csv": "^1.1.2", - "@types/react-datepicker": "^4.3.4", - "@types/react-dom": "^17.0.11", - "@types/react-grid-layout": "^1.3.0", - "@types/react-virtualized-auto-sizer": "^1.0.1", - "@types/react-window": "^1.8.5", - "@types/react-window-infinite-loader": "^1.0.5", - "@types/semver": "^7.3.9", - "@types/sqlstring": "^2.3.0", - "@types/uuid": "^8.3.4", - "@types/zxcvbn": "^4.4.1", - "autoprefixer": "^10.4.2", - "babel-loader": "^8.2.3", - "jest": "^27.4.0", - "jest-canvas-mock": "^2.3.1", - "postcss": "^8.4.6", - "prettier": "^2.7.1", - "storybook-dark-mode": "^1.0.4", - "tailwindcss": "^3.0.22", - "ts-jest": "^27.0.7", - "typescript": "4.3.4" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-environment-visitor/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", - "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", - "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", - "charcodes": "^0.2.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz", - "integrity": "sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-default-from": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-default-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz", - "integrity": "sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", - "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", - "dev": true, - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.7.tgz", - "integrity": "sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-flow-strip-types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/register": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.17.7.tgz", - "integrity": "sha512-fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.5", - "source-map-support": "^0.5.16" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/register/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/register/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/register/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/register/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/register/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@babel/register/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/register/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/register/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/register/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/runtime": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", - "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@base2/pretty-print-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz", - "integrity": "sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==", - "dev": true - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "dependencies": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@emotion/cache": { - "version": "10.0.29", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", - "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", - "dev": true, - "dependencies": { - "@emotion/sheet": "0.9.4", - "@emotion/stylis": "0.8.5", - "@emotion/utils": "0.11.3", - "@emotion/weak-memoize": "0.2.5" - } - }, - "node_modules/@emotion/core": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.3.1.tgz", - "integrity": "sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.5.5", - "@emotion/cache": "^10.0.27", - "@emotion/css": "^10.0.27", - "@emotion/serialize": "^0.11.15", - "@emotion/sheet": "0.9.4", - "@emotion/utils": "0.11.3" - }, - "peerDependencies": { - "react": ">=16.3.0" - } - }, - "node_modules/@emotion/css": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", - "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", - "dev": true, - "dependencies": { - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3", - "babel-plugin-emotion": "^10.0.27" - } - }, - "node_modules/@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "dev": true - }, - "node_modules/@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "dev": true, - "dependencies": { - "@emotion/memoize": "0.7.4" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true - }, - "node_modules/@emotion/serialize": { - "version": "0.11.16", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", - "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", - "dev": true, - "dependencies": { - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/unitless": "0.7.5", - "@emotion/utils": "0.11.3", - "csstype": "^2.5.7" - } - }, - "node_modules/@emotion/serialize/node_modules/csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==", - "dev": true - }, - "node_modules/@emotion/sheet": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", - "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==", - "dev": true - }, - "node_modules/@emotion/styled": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.3.0.tgz", - "integrity": "sha512-GgcUpXBBEU5ido+/p/mCT2/Xx+Oqmp9JzQRuC+a4lYM4i4LBBn/dWvc0rQ19N9ObA8/T4NWMrPNe79kMBDJqoQ==", - "dev": true, - "dependencies": { - "@emotion/styled-base": "^10.3.0", - "babel-plugin-emotion": "^10.0.27" - }, - "peerDependencies": { - "@emotion/core": "^10.0.27", - "react": ">=16.3.0" - } - }, - "node_modules/@emotion/styled-base": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.3.0.tgz", - "integrity": "sha512-PBRqsVKR7QRNkmfH78hTSSwHWcwDpecH9W6heujWAcyp2wdz/64PP73s7fWS1dIPm8/Exc8JAzYS8dEWXjv60w==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.5.5", - "@emotion/is-prop-valid": "0.8.8", - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3" - }, - "peerDependencies": { - "@emotion/core": "^10.0.28", - "react": ">=16.3.0" - } - }, - "node_modules/@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", - "dev": true - }, - "node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "dev": true - }, - "node_modules/@emotion/utils": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", - "dev": true - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", - "dev": true - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "node_modules/@headlessui/react": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.4.1.tgz", - "integrity": "sha512-gL6Ns5xQM57cZBzX6IVv6L7nsam8rDEpRhs5fg28SN64ikfmuuMgunc+Rw5C1cMScnvFM+cz32ueVrlSFEVlSg==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^16 || ^17 || ^18", - "react-dom": "^16 || ^17 || ^18" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.2.tgz", - "integrity": "sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.2", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.2.tgz", - "integrity": "sha512-0mPM61tDbu8yc9CMKH9bvV+g+17VUpdWQtU1x6P1gk4AKj8iywWi8zBmEIl7pTGjUtYA92CNc/LlBfKCioBOow==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.2", - "@jest/reporters": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.4.2", - "jest-config": "^27.4.2", - "jest-haste-map": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-resolve-dependencies": "^27.4.2", - "jest-runner": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "jest-watcher": "^27.4.2", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/jest-watcher": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.2.tgz", - "integrity": "sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.4.2", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.2.tgz", - "integrity": "sha512-uSljKxh/rGlHlmhyeG4ZoVK9hOec+EPBkwTHkHKQ2EqDu5K+MaG9uJZ8o1CbRsSdZqSuhXvJCYhBWsORPPg6qw==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.2.tgz", - "integrity": "sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/fake-timers/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/fake-timers/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/fake-timers/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/fake-timers/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/fake-timers/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/globals": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.2.tgz", - "integrity": "sha512-KkfaHEttlGpXYAQTZHgrESiEPx2q/DKAFLGLFda1uGVrqc17snd3YVPhOxlXOHIzVPs+lQ/SDB2EIvxyGzb3Ew==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.2", - "@jest/types": "^27.4.2", - "expect": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.2.tgz", - "integrity": "sha512-sp4aqmdBJtjKetEakzDPcZggPcVIF6w9QLkYBbaWDV6e/SIsHnF1S4KtIH91eEc2fp7ep6V/e1xvdfEoho1d2w==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@jest/reporters/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/source-map": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", - "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.2.tgz", - "integrity": "sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.2.tgz", - "integrity": "sha512-HmHp5mlh9f9GyNej5yCS1JZIFfUGnP9+jEOH5zoq5EmsuZeYD+dGULqyvGDPtuzzbyAFJ6R4+z4SS0VvnFwwGQ==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-runtime": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.2.tgz", - "integrity": "sha512-RTKcPZllfcmLfnlxBya7aypofhdz05+E6QITe55Ex0rxyerkgjmmpMlvVn11V0cP719Ps6WcDYCnDzxnnJUwKg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@mdx-js/loader": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.6.22.tgz", - "integrity": "sha512-9CjGwy595NaxAYp0hF9B/A0lH6C8Rms97e2JS9d3jVUtILn6pT5i5IV965ra3lIWc7Rs1GG1tBdVF7dCowYe6Q==", - "dev": true, - "dependencies": { - "@mdx-js/mdx": "1.6.22", - "@mdx-js/react": "1.6.22", - "loader-utils": "2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@mdx-js/loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/@mdx-js/mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", - "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", - "dev": true, - "dependencies": { - "@babel/core": "7.12.9", - "@babel/plugin-syntax-jsx": "7.12.1", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "1.6.22", - "babel-plugin-apply-mdx-type-prop": "1.6.22", - "babel-plugin-extract-import-names": "1.6.22", - "camelcase-css": "2.0.1", - "detab": "2.0.4", - "hast-util-raw": "6.0.1", - "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "10.0.1", - "remark-footnotes": "2.0.0", - "remark-mdx": "1.6.22", - "remark-parse": "8.0.3", - "remark-squeeze-paragraphs": "4.0.0", - "style-to-object": "0.3.0", - "unified": "9.2.0", - "unist-builder": "2.0.3", - "unist-util-visit": "2.0.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/mdx/node_modules/@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@mdx-js/mdx/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@mdx-js/mdx/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@mdx-js/mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@mdx-js/mdx/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@mdx-js/react": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0" - } - }, - "node_modules/@mdx-js/util": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", - "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mertasan/tailwindcss-variables": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mertasan/tailwindcss-variables/-/tailwindcss-variables-2.2.1.tgz", - "integrity": "sha512-EyCEjpy+4eSpr7kAuysxZg5K2/dQctM0DJpciZsBxU3tvjGpR/wMdU2M0ZMVlaZyjb8k3PCjC0dCXgCS7fLiHA==", - "dependencies": { - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "autoprefixer": "^10.0.2", - "postcss": "^8.0.9" - } - }, - "node_modules/@monaco-editor/loader": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.2.0.tgz", - "integrity": "sha512-cJVCG/T/KxXgzYnjKqyAgsKDbH9mGLjcXxN6AmwumBwa2rVFkwvGcUj1RJtD0ko4XqLqJxwqsN/Z/KURB5f1OQ==", - "dependencies": { - "state-local": "^1.0.6" - }, - "peerDependencies": { - "monaco-editor": ">= 0.21.0 < 1" - } - }, - "node_modules/@monaco-editor/react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.3.1.tgz", - "integrity": "sha512-f+0BK1PP/W5I50hHHmwf11+Ea92E5H1VZXs+wvKplWUWOfyMa1VVwqkJrXjRvbcqHL+XdIGYWhWNdi4McEvnZg==", - "dependencies": { - "@monaco-editor/loader": "^1.2.0", - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "monaco-editor": ">= 0.25.0 < 1", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "dependencies": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@mrmlnc/readdir-enhanced/node_modules/glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - }, - "node_modules/@next/bundle-analyzer": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-12.0.4.tgz", - "integrity": "sha512-hl9SmruSHMMMjmcUXJYdP12HbencBOpuy4gHPpQLbRmfErUsY7ia+eF5Xt9vAkim7s6HKByoDg7cu6HJQzfpfg==", - "dependencies": { - "webpack-bundle-analyzer": "4.3.0" - } - }, - "node_modules/@next/env": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.9.tgz", - "integrity": "sha512-oBlkyDop0Stf7MPIzETGv5r0YT/G/weBrknoPOUTaa5qwOeGjuy6gsOVc/SBtrBkOoBmRpD+fFhQJPvmo1mS+g==" - }, - "node_modules/@next/swc-android-arm64": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.0.9.tgz", - "integrity": "sha512-aVqgsEn5plmUH2X58sjzhHsH/6majucWTMaaBEs7hHO2+GCwCZc7zaLH4XCBMKPES9Yaja8/pYUbvZQE9DqgFw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.9.tgz", - "integrity": "sha512-uAgRKm4a2nVdyBiPPJokvmDD1saugOvxljz9ld2ih0CCg5S9vBhqaj3kPGCQBj9hSu3q+Lng2CHnQqG3ga1jzA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.9.tgz", - "integrity": "sha512-fDOs2lZIyrAdU18IxMA5orBPn9qLbOdu55gXSTNZOhyRJ8ugtbUAejsK7OL0boJy0CCHPAdVRXm01Mwk8tZ9RQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm-gnueabihf": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.9.tgz", - "integrity": "sha512-/ni0p9DBvATUML9RQ1ycQuf05uOYKdzA6iI8+eRsARjpGbFVUFbge7XPzlj9g2Q9YWgoN8CSjFGnKRlyky5uHA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.9.tgz", - "integrity": "sha512-AphxilJDf95rUxJDHgM9Ww1DaYXZWqTvoKwXeej/0SgSvICcRZrLaFDrkojdXz0Rxr4igX2OdYR1S4/Hj1jWOQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.9.tgz", - "integrity": "sha512-K5jbvNNzF3mRjWmPdxP5Bg87i7FHivfBj/L0KJlxpkLSC8sffBJDmB6jtMnI7wiPj9J6vmLkbGtSosln78xAlQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.9.tgz", - "integrity": "sha512-bJZ9bkMkQzsY+UyWezEZ77GWQ4TzwKeXdayX3U3+aEkL8k5C6eKBXlidWdrhu0teLmaUXIyWerWrLnJzwGXdfw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.9.tgz", - "integrity": "sha512-SR9p0R+v1T32DTXPVAXZw31pmJAkSDotC6Afy+mfC0xrEL3pp95R8sGXYAAUCEPkQp0MEeUOVy2LrToe92X7hQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.9.tgz", - "integrity": "sha512-mzQ1A8vfHhJrvEy5KJZGZWEByXthyKfWofvFaf+oo/5nJl/0Bz1ODP2ajSmbLG++77Eo2AROgbm9pkW1ucvG2A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.9.tgz", - "integrity": "sha512-MpD2vj1zjo1u3J3wiz3pEKse19Etz+P0GL6XfQkB/9a84vJQ1JWMaWBjmIdivzZv718Il2pRSSx8hymwPfguYQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.9.tgz", - "integrity": "sha512-1c/sxp/4Qz4F6rCxiYqAnrmghCOFt5hHZ9Kd+rXFW5Mqev4C4XDOUMHdBH55HgnJZqngYhOE0r/XNkCtsIojig==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" - }, - "node_modules/@popperjs/core": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.4.tgz", - "integrity": "sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@radix-ui/colors": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-0.1.8.tgz", - "integrity": "sha512-jwRMXYwC0hUo0mv6wGpuw254Pd9p/R6Td5xsRpOmaWkUHlooNWqVcadgyzlRumMq3xfOTXwJReU0Jv+EIy4Jbw==" - }, - "node_modules/@radix-ui/popper": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/popper/-/popper-0.1.0.tgz", - "integrity": "sha512-uzYeElL3w7SeNMuQpXiFlBhTT+JyaNMCwDfjKkrzugEcYrf5n52PHqncNdQPUtR42hJh8V9FsqyEDbDxkeNjJQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "csstype": "^3.0.4" - } - }, - "node_modules/@radix-ui/primitive": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-0.1.0.tgz", - "integrity": "sha512-tqxZKybwN5Fa3VzZry4G6mXAAb9aAqKmPtnVbZpL0vsBwvOHTBwsjHVPXylocYLwEtBY9SCe665bYnNB515uoA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/@radix-ui/react-accordion": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-0.1.6.tgz", - "integrity": "sha512-LOXlqPU6y6EMBopdRIKCWFvMPY1wPTQ4uJiX7ZVxldrMJcM7imBzI3wlRTkPCHZ3FLHmpuw+cQi3du23pzJp1g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-collapsible": "0.1.6", - "@radix-ui/react-collection": "0.1.4", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-controllable-state": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-accordion/node_modules/@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-accordion/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-arrow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-0.1.3.tgz", - "integrity": "sha512-9x1gRYdlUD5OUwY7L+M+4FY/YltDSsrNSj8QXGPbxZxL5ghWXB/4lhyIGccCwk/e8ggfmQYv9SRNmn3LavPo3A==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.3" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-collapsible": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-0.1.6.tgz", - "integrity": "sha512-Gkf8VuqMc6HTLzA2AxVYnyK6aMczVLpatCjdD9Lj4wlYLXCz9KtiqZYslLMeqnQFLwLyZS0WKX/pQ8j5fioIBw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-presence": "0.1.2", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-controllable-state": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-presence": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", - "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-collection": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-0.1.4.tgz", - "integrity": "sha512-3muGI15IdgaDFjOcO7xX8a35HQRBRF6LH9pS6UCeZeRmbslkVeHyJRQr2rzICBUoX7zgIA0kXyMDbpQnJGyJTA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.0.tgz", - "integrity": "sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-context": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-0.1.1.tgz", - "integrity": "sha512-PkyVX1JsLBioeu0jB9WvRpDBBLtLZohVDT3BB5CTSJqActma8S8030P57mWZb4baZifMvN7KKWPAA40UmWKkQg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-context-menu": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-0.1.6.tgz", - "integrity": "sha512-0qa6ABaeqD+WYI+8iT0jH0QLLcV8Kv0xI+mZL4FFnG4ec9H0v+yngb5cfBBfs9e/KM8mDzFFpaeegqsQlLNqyQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-menu": "0.1.6", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-callback-ref": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0", - "react-dom": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-context-menu/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-0.1.7.tgz", - "integrity": "sha512-jXt8srGhHBRvEr9jhEAiwwJzWCWZoGRJ030aC9ja/gkRJbZdy0iD3FwXf+Ff4RtsZyLUMHW7VUwFOlz3Ixe1Vw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-dismissable-layer": "0.1.5", - "@radix-ui/react-focus-guards": "0.1.0", - "@radix-ui/react-focus-scope": "0.1.4", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-portal": "0.1.4", - "@radix-ui/react-presence": "0.1.2", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-slot": "0.1.2", - "@radix-ui/react-use-controllable-state": "0.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "^2.4.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0", - "react-dom": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-0.1.4.tgz", - "integrity": "sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0", - "react-dom": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-presence": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", - "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-0.1.5.tgz", - "integrity": "sha512-J+fYWijkX4M4QKwf9dtu1oC0U6e6CEl8WhBp3Ad23yz2Hia0XCo6Pk/mp5CAFy4QBtQedTSkhW05AdtSOEoajQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-body-pointer-events": "0.1.1", - "@radix-ui/react-use-callback-ref": "0.1.0", - "@radix-ui/react-use-escape-keydown": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-dismissable-layer/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-dropdown-menu": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-0.1.6.tgz", - "integrity": "sha512-RZhtzjWwJ4ZBN7D8ek4Zn+ilHzYuYta9yIxFnbC0pfqMnSi67IQNONo1tuuNqtFh9SRHacPKc65zo+kBBlxtdg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-menu": "0.1.6", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-controllable-state": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0", - "react-dom": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-0.1.0.tgz", - "integrity": "sha512-kRx/swAjEfBpQ3ns7J3H4uxpXuWCqN7MpALiSDOXiyo2vkWv0L9sxvbpZeTulINuE3CGMzicVMuNc/VWXjFKOg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-0.1.4.tgz", - "integrity": "sha512-fbA4ES3H4Wkxp+OeLhvN6SwL7mXNn/aBtUf7DRYxY9+Akrf7dRxl2ck4lgcpPsSg3zSDsEwLcY+h5cmj5yvlug==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-callback-ref": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-id": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.4.tgz", - "integrity": "sha512-/hq5m/D0ZfJWOS7TLF+G0l08KDRs87LBE46JkAvgKkg1fW4jkucx9At9D9vauIPSbdNmww5kXEp566hMlA8eXA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-menu": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-0.1.6.tgz", - "integrity": "sha512-ho3+bhpr3oAFkOBJ8VkUb1BcGoiZBB3OmcWPqa6i5RTUKrzNX/d6rauochu2xDlWjiRtpVuiAcsTVOeIC4FbYQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-collection": "0.1.4", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-dismissable-layer": "0.1.5", - "@radix-ui/react-focus-guards": "0.1.0", - "@radix-ui/react-focus-scope": "0.1.4", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-popper": "0.1.4", - "@radix-ui/react-portal": "0.1.4", - "@radix-ui/react-presence": "0.1.2", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-roving-focus": "0.1.5", - "@radix-ui/react-use-callback-ref": "0.1.0", - "@radix-ui/react-use-direction": "0.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "^2.4.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0", - "react-dom": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-arrow": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-0.1.4.tgz", - "integrity": "sha512-BB6XzAb7Ml7+wwpFdYVtZpK1BlMgqyafSQNGzhIpSZ4uXvXOHPlR5GP8M449JkeQzgQjv9Mp1AsJxFC0KuOtuA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.4" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-popper": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-0.1.4.tgz", - "integrity": "sha512-18gDYof97t8UQa7zwklG1Dr8jIdj3u+rVOQLzPi9f5i1YQak/pVGkaqw8aY+iDUknKKuZniTk/7jbAJUYlKyOw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/popper": "0.1.0", - "@radix-ui/react-arrow": "0.1.4", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-rect": "0.1.1", - "@radix-ui/react-use-size": "0.1.1", - "@radix-ui/rect": "0.1.1" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-portal": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-0.1.4.tgz", - "integrity": "sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0", - "react-dom": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-presence": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", - "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-use-size": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-0.1.1.tgz", - "integrity": "sha512-pTgWM5qKBu6C7kfKxrKPoBI2zZYZmp2cSXzpUiGM3qEBQlMLtYhaY2JXdXUCxz+XmD1YEjc8oRwvyfsD4AG4WA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-popover": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-0.1.6.tgz", - "integrity": "sha512-zQzgUqW4RQDb0ItAL1xNW4K4olUrkfV3jeEPs9rG+nsDQurO+W9TT+YZ9H1mmgAJqlthyv1sBRZGdBm4YjtD6Q==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-dismissable-layer": "0.1.5", - "@radix-ui/react-focus-guards": "0.1.0", - "@radix-ui/react-focus-scope": "0.1.4", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-popper": "0.1.4", - "@radix-ui/react-portal": "0.1.4", - "@radix-ui/react-presence": "0.1.2", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-controllable-state": "0.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "^2.4.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0", - "react-dom": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-arrow": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-0.1.4.tgz", - "integrity": "sha512-BB6XzAb7Ml7+wwpFdYVtZpK1BlMgqyafSQNGzhIpSZ4uXvXOHPlR5GP8M449JkeQzgQjv9Mp1AsJxFC0KuOtuA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.4" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-popper": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-0.1.4.tgz", - "integrity": "sha512-18gDYof97t8UQa7zwklG1Dr8jIdj3u+rVOQLzPi9f5i1YQak/pVGkaqw8aY+iDUknKKuZniTk/7jbAJUYlKyOw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/popper": "0.1.0", - "@radix-ui/react-arrow": "0.1.4", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-rect": "0.1.1", - "@radix-ui/react-use-size": "0.1.1", - "@radix-ui/rect": "0.1.1" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-portal": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-0.1.4.tgz", - "integrity": "sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0", - "react-dom": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-presence": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", - "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-use-size": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-0.1.1.tgz", - "integrity": "sha512-pTgWM5qKBu6C7kfKxrKPoBI2zZYZmp2cSXzpUiGM3qEBQlMLtYhaY2JXdXUCxz+XmD1YEjc8oRwvyfsD4AG4WA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-popper": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-0.1.3.tgz", - "integrity": "sha512-2OV2YaJv7iTZexJY3HJ7B6Fs1A/3JXd3fRGU4JY0guACfGMD1C/jSgds505MKQOTiHE/quI6j3/q8yfzFjJR9g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/popper": "0.1.0", - "@radix-ui/react-arrow": "0.1.3", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-primitive": "0.1.3", - "@radix-ui/react-use-rect": "0.1.1", - "@radix-ui/react-use-size": "0.1.0", - "@radix-ui/rect": "0.1.1" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-0.1.3.tgz", - "integrity": "sha512-DrV+sPYLs0HhmX5/b7yRT6nLM9Nl6FtQe2KUG+46kiCOKQ+0XzNMO5hmeQtyq0mRf/qlC02rFu6OMsWpIqVsJg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.3", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0", - "react-dom": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.1.tgz", - "integrity": "sha512-LsL+NcWDpFUAYCmXeH02o4pgqcSLpwxP84UIjCtpIKrsPe2vLuhcp79KC/jZJeXz+of2lUpMAxpM+eCpxFZtlg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.3.tgz", - "integrity": "sha512-fcyADaaAx2jdqEDLsTs6aX50S3L1c9K9CC6XMpJpuXFJCU4n9PGTFDZRtY2gAoXXoRCPIBsklCopSmGb6SsDjQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-0.1.5.tgz", - "integrity": "sha512-ClwKPS5JZE+PaHCoW7eu1onvE61pDv4kO8W4t5Ra3qMFQiTJLZMdpBQUhksN//DaVygoLirz4Samdr5Y1x1FSA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-collection": "0.1.4", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-callback-ref": "0.1.0", - "@radix-ui/react-use-controllable-state": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-0.1.2.tgz", - "integrity": "sha512-ADkqfL+agEzEguU3yS26jfB50hRrwf7U4VTwAOZEmi/g+ITcBWe12yM46ueS/UCIMI9Py+gFUaAdxgxafFvY2Q==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-tabs": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-0.1.5.tgz", - "integrity": "sha512-ieVQS1TFr0dX1XA8B+CsSFKOE7kcgEaNWWEfItxj9D1GZjn1o3WqPkW+FhQWDAWZLSKCH2PezYF3MNyO41lgJg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-roving-focus": "0.1.5", - "@radix-ui/react-use-controllable-state": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-tabs/node_modules/@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-tooltip": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-0.1.6.tgz", - "integrity": "sha512-0uaRpRmTCQo5yMUkDpv4LEDnaQDoeLXcNNhZonCZdbZBQ7ntvjURIWIigq1/pXZp0UX7oPpFzsXD9jUp8JT0WA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.4", - "@radix-ui/react-popper": "0.1.3", - "@radix-ui/react-portal": "0.1.3", - "@radix-ui/react-presence": "0.1.1", - "@radix-ui/react-primitive": "0.1.3", - "@radix-ui/react-slot": "0.1.2", - "@radix-ui/react-use-controllable-state": "0.1.0", - "@radix-ui/react-use-escape-keydown": "0.1.0", - "@radix-ui/react-use-previous": "0.1.0", - "@radix-ui/react-use-rect": "0.1.1", - "@radix-ui/react-visually-hidden": "0.1.3" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0", - "react-dom": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-use-body-pointer-events": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-body-pointer-events/-/react-use-body-pointer-events-0.1.1.tgz", - "integrity": "sha512-R8leV2AWmJokTmERM8cMXFHWSiv/fzOLhG/JLmRBhLTAzOj37EQizssq4oW0Z29VcZy2tODMi9Pk/htxwb+xpA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-0.1.0.tgz", - "integrity": "sha512-Va041McOFFl+aV+sejvl0BS2aeHx86ND9X/rVFmEFQKTXCp6xgUK0NGUAGcgBlIjnJSbMYPGEk1xKSSlVcN2Aw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-0.1.0.tgz", - "integrity": "sha512-zv7CX/PgsRl46a52Tl45TwqwVJdmqnlQEQhaYMz/yBOD2sx2gCkCFSoF/z9mpnYWmS6DTLNTg5lIps3fV6EnXg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-use-direction": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-direction/-/react-use-direction-0.1.0.tgz", - "integrity": "sha512-NajpY/An9TCPSfOVkgWIdXJV+VuWl67PxB6kOKYmtNAFHvObzIoh8o0n9sAuwSAyFCZVq211FEf9gvVDRhOyiA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-0.1.0.tgz", - "integrity": "sha512-tDLZbTGFmvXaazUXXv8kYbiCcbAE8yKgng9s95d8fCO+Eundv0Jngbn/hKPhDDs4jj9ChwRX5cDDnlaN+ugYYQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "0.1.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz", - "integrity": "sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-use-previous": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-0.1.0.tgz", - "integrity": "sha512-0fxNc33rYnCzDMPSiSnfS8YklnxQo8WqbAQXPAgIaaA1jRu2qFB916PL4qCIW+avcAAqFD38vWhqDqcVmBharA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-use-rect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-0.1.1.tgz", - "integrity": "sha512-kHNNXAsP3/PeszEmM/nxBBS9Jbo93sO+xuMTcRfwzXsmxT5gDXQzAiKbZQ0EecCPtJIzqvr7dlaQi/aP1PKYqQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/rect": "0.1.1" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-use-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-0.1.0.tgz", - "integrity": "sha512-TcZAsR+BYI46w/RbaSFCRACl+Jh6mDqhu6GS2r0iuJpIVrj8atff7qtTjmMmfGtEDNEjhl7DxN3pr1nTS/oruQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/react-visually-hidden": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-0.1.3.tgz", - "integrity": "sha512-dPU6ZR2WQ/W9qv7E1Y8/I8ymqG+8sViU6dQQ6sfr2/8yGr0I4mmI7ywTnqXaE+YS9gHLEZHdQcEqTNESg6YfdQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.3" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0" - } - }, - "node_modules/@radix-ui/rect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-0.1.1.tgz", - "integrity": "sha512-g3hnE/UcOg7REdewduRPAK88EPuLZtaq7sA9ouu8S+YEtnyFRI16jgv6GZYe3VMoQLL1T171ebmEPtDjyxWLzw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/@react-dnd/asap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.0.tgz", - "integrity": "sha512-0XhqJSc6pPoNnf8DhdsPHtUhRzZALVzYMTzRwV4VI6DJNJ/5xxfL9OQUwb8IH5/2x7lSf7nAZrnzUD+16VyOVQ==" - }, - "node_modules/@react-dnd/invariant": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-2.0.0.tgz", - "integrity": "sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==" - }, - "node_modules/@react-dnd/shallowequal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz", - "integrity": "sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==" - }, - "node_modules/@scaleleap/pg-format": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@scaleleap/pg-format/-/pg-format-1.0.0.tgz", - "integrity": "sha512-gFkcYMnpeylF2OJ30FsDBjwICB9JTiZ5i3guPwdiBDrJFwIKr+Zk6jwI8Mg22a4FwXn5ezd5cHEFMKqBqBz4RQ==" - }, - "node_modules/@segment/loosely-validate-event": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", - "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", - "dependencies": { - "component-type": "^1.2.1", - "join-component": "^1.1.0" - } - }, - "node_modules/@sentry/browser": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.19.7.tgz", - "integrity": "sha512-oDbklp4O3MtAM4mtuwyZLrgO1qDVYIujzNJQzXmi9YzymJCuzMLSRDvhY83NNDCRxf0pds4DShgYeZdbSyKraA==", - "dependencies": { - "@sentry/core": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/browser/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/cli": { - "version": "1.74.5", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-1.74.5.tgz", - "integrity": "sha512-Ze1ec306ZWHtrxKypOJ8nhtFqkrx2f/6bRH+DcJzEQ3bBePQ0ZnqJTTe4BBHADYBtxFIaUWzCZ6DquLz2Zv/sw==", - "hasInstallScript": true, - "dependencies": { - "https-proxy-agent": "^5.0.0", - "mkdirp": "^0.5.5", - "node-fetch": "^2.6.7", - "npmlog": "^4.1.2", - "progress": "^2.0.3", - "proxy-from-env": "^1.1.0", - "which": "^2.0.2" - }, - "bin": { - "sentry-cli": "bin/sentry-cli" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@sentry/cli/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/@sentry/core": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz", - "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==", - "dependencies": { - "@sentry/hub": "6.19.7", - "@sentry/minimal": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/core/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/hub": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz", - "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==", - "dependencies": { - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/integrations": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-6.19.7.tgz", - "integrity": "sha512-yNeeFyuygJaV7Mdc5qWuDa13xVj5mVdECaaw2Xs4pfeHaXmRfRzZY17N8ypWFegKWxKBHynyQRMD10W5pBwJvA==", - "dependencies": { - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "localforage": "^1.8.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/integrations/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/minimal": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz", - "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==", - "dependencies": { - "@sentry/hub": "6.19.7", - "@sentry/types": "6.19.7", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/minimal/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/nextjs": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/nextjs/-/nextjs-6.19.7.tgz", - "integrity": "sha512-029gpqhR6gHF7zfE9oxFOf3Zm68CShDu8/6azC8mwfIfJtyLC9dqztJJi48j0Uxs+sR1TEkN5Dw3wZbfWtFd8g==", - "dependencies": { - "@sentry/core": "6.19.7", - "@sentry/hub": "6.19.7", - "@sentry/integrations": "6.19.7", - "@sentry/node": "6.19.7", - "@sentry/react": "6.19.7", - "@sentry/tracing": "6.19.7", - "@sentry/utils": "6.19.7", - "@sentry/webpack-plugin": "1.18.8", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "next": "^10.0.8 || ^11.0 || ^12.0", - "react": "15.x || 16.x || 17.x || 18.x", - "webpack": ">= 4.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } - } - }, - "node_modules/@sentry/nextjs/node_modules/@sentry/react": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-6.19.7.tgz", - "integrity": "sha512-VzJeBg/v41jfxUYPkH2WYrKjWc4YiMLzDX0f4Zf6WkJ4v3IlDDSkX6DfmWekjTKBho6wiMkSNy2hJ1dHfGZ9jA==", - "dependencies": { - "@sentry/browser": "6.19.7", - "@sentry/minimal": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "hoist-non-react-statics": "^3.3.2", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "react": "15.x || 16.x || 17.x || 18.x" - } - }, - "node_modules/@sentry/nextjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/node": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz", - "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==", - "dependencies": { - "@sentry/core": "6.19.7", - "@sentry/hub": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/node/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/tracing": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.19.7.tgz", - "integrity": "sha512-ol4TupNnv9Zd+bZei7B6Ygnr9N3Gp1PUrNI761QSlHtPC25xXC5ssSD3GMhBgyQrcvpuRcCFHVNNM97tN5cZiA==", - "dependencies": { - "@sentry/hub": "6.19.7", - "@sentry/minimal": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/tracing/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/types": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz", - "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/utils": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz", - "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==", - "dependencies": { - "@sentry/types": "6.19.7", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/utils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/webpack-plugin": { - "version": "1.18.8", - "resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-1.18.8.tgz", - "integrity": "sha512-PtKr0NL62b5L3kPFGjwSNbIUwwcW5E5G6bQxAYZGpkgL1MFPnS4ND0SAsySuX0byQJRFFium5A19LpzyvQZSlQ==", - "dependencies": { - "@sentry/cli": "^1.73.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.19.2.tgz", - "integrity": "sha512-0U/RVPZQw1QxhrbKV0o281ZWI1Ve3osJnyEYnwOp3slydIQHyXumbJANJeNv9BqABDiHWlmzsxSVopPHMvt3Aw==" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@storybook/addon-actions": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.19.tgz", - "integrity": "sha512-GpSvP8xV8GfNkmtGJjfCgaOx6mbjtyTK0aT9FqX9pU0s+KVMmoCTrBh43b7dWrwxxas01yleBK9VpYggzhi/Fw==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "lodash": "^4.17.21", - "polished": "^4.0.5", - "prop-types": "^15.7.2", - "react-inspector": "^5.1.0", - "regenerator-runtime": "^0.13.7", - "telejson": "^5.3.2", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2", - "uuid-browser": "^3.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-backgrounds": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.19.tgz", - "integrity": "sha512-yn8MTE7lctO48Rdw+DmmA1wKdf5eyAbA/vrug5ske/U2WPgGc65sApzwT8BItZfuyAMjuT5RnCWwd7o6hGRgGQ==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "global": "^4.4.0", - "memoizerific": "^1.11.3", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-controls": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.4.19.tgz", - "integrity": "sha512-JHi5z9i6NsgQLfG5WOeQE1AyOrM+QJLrjT+uOYx40bq+OC1yWHH7qHiphPP8kjJJhCZlaQk1qqXYkkQXgaeHSw==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/node-logger": "6.4.19", - "@storybook/store": "6.4.19", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "lodash": "^4.17.21", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-essentials": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-6.4.19.tgz", - "integrity": "sha512-vbV8sjepMVEuwhTDBHjO3E6vXluG7RiEeozV1QVuS9lGhjQdvUPdZ9rDNUcP6WHhTdEkS/ffTMaGIy1v8oZd7g==", - "dev": true, - "dependencies": { - "@storybook/addon-actions": "6.4.19", - "@storybook/addon-backgrounds": "6.4.19", - "@storybook/addon-controls": "6.4.19", - "@storybook/addon-docs": "6.4.19", - "@storybook/addon-measure": "6.4.19", - "@storybook/addon-outline": "6.4.19", - "@storybook/addon-toolbars": "6.4.19", - "@storybook/addon-viewport": "6.4.19", - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/node-logger": "6.4.19", - "core-js": "^3.8.2", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@babel/core": "^7.9.6", - "@storybook/vue": "6.4.19", - "@storybook/web-components": "6.4.19", - "babel-loader": "^8.0.0", - "lit-html": "^1.4.1 || ^2.0.0-rc.3", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0", - "webpack": "*" - }, - "peerDependenciesMeta": { - "@storybook/vue": { - "optional": true - }, - "@storybook/web-components": { - "optional": true - }, - "lit-html": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-essentials/node_modules/@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/@storybook/addon-docs": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-6.4.19.tgz", - "integrity": "sha512-OEPyx/5ZXmZOPqIAWoPjlIP8Q/YfNjAmBosA8tmA8t5KCSiq/vpLcAvQhxqK6n0wk/B8Xp67Z8RpLfXjU8R3tw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.10", - "@babel/generator": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/plugin-transform-react-jsx": "^7.12.12", - "@babel/preset-env": "^7.12.11", - "@jest/transform": "^26.6.2", - "@mdx-js/loader": "^1.6.22", - "@mdx-js/mdx": "^1.6.22", - "@mdx-js/react": "^1.6.22", - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/builder-webpack4": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/csf-tools": "6.4.19", - "@storybook/node-logger": "6.4.19", - "@storybook/postinstall": "6.4.19", - "@storybook/preview-web": "6.4.19", - "@storybook/source-loader": "6.4.19", - "@storybook/store": "6.4.19", - "@storybook/theming": "6.4.19", - "acorn": "^7.4.1", - "acorn-jsx": "^5.3.1", - "acorn-walk": "^7.2.0", - "core-js": "^3.8.2", - "doctrine": "^3.0.0", - "escodegen": "^2.0.0", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "html-tags": "^3.1.0", - "js-string-escape": "^1.0.1", - "loader-utils": "^2.0.0", - "lodash": "^4.17.21", - "nanoid": "^3.1.23", - "p-limit": "^3.1.0", - "prettier": ">=2.2.1 <=2.3.0", - "prop-types": "^15.7.2", - "react-element-to-jsx-string": "^14.3.4", - "regenerator-runtime": "^0.13.7", - "remark-external-links": "^8.0.0", - "remark-slug": "^6.0.0", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@storybook/angular": "6.4.19", - "@storybook/html": "6.4.19", - "@storybook/react": "6.4.19", - "@storybook/vue": "6.4.19", - "@storybook/vue3": "6.4.19", - "@storybook/web-components": "6.4.19", - "lit": "^2.0.0", - "lit-html": "^1.4.1 || ^2.0.0", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0", - "svelte": "^3.31.2", - "sveltedoc-parser": "^4.1.0", - "vue": "^2.6.10 || ^3.0.0", - "webpack": "*" - }, - "peerDependenciesMeta": { - "@storybook/angular": { - "optional": true - }, - "@storybook/html": { - "optional": true - }, - "@storybook/react": { - "optional": true - }, - "@storybook/vue": { - "optional": true - }, - "@storybook/vue3": { - "optional": true - }, - "@storybook/web-components": { - "optional": true - }, - "lit": { - "optional": true - }, - "lit-html": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "svelte": { - "optional": true - }, - "sveltedoc-parser": { - "optional": true - }, - "vue": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-essentials/node_modules/@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/addon-essentials/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - }, - "engines": { - "node": ">= 10.14.2" - }, - "optionalDependencies": { - "fsevents": "^2.1.2" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "dependencies": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/prettier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", - "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/addon-essentials/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/addon-interactions": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-6.4.19.tgz", - "integrity": "sha512-oKXxRkKL2deUI7nOLm9UvihtPaTQ2p8Y5gL2CQvJgHhTpKmUxW+e26GYNlcFUOjsx2ifXyzqNEscsZUP83BCUw==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/instrumenter": "6.4.19", - "@storybook/theming": "6.4.19", - "global": "^4.4.0", - "jest-mock": "^27.0.6", - "polished": "^4.0.5", - "ts-dedent": "^2.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-links": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.4.19.tgz", - "integrity": "sha512-ebFHYlGDQkHSmI5QEJb1NxGNToVOLgjKkxXUe+JXX7AfHvrWiXVrN/57aOtBPZzj4h2jRPRTZgwR5glhPIlfEQ==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.19", - "@types/qs": "^6.9.5", - "core-js": "^3.8.2", - "global": "^4.4.0", - "prop-types": "^15.7.2", - "qs": "^6.10.0", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-measure": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-6.4.19.tgz", - "integrity": "sha512-PXeU0AlpnGEvnzBQ6snkzmlIpwE0ci8LdFtL1Vz1V1Xk5fbuETWYuEkPuk1oZ7L9igB9cfT32SyJlE5MC1iaGg==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "core-js": "^3.8.2", - "global": "^4.4.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-outline": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-6.4.19.tgz", - "integrity": "sha512-7ZDXo8qrms6dx0KRP9PInXIie82h5g9XCNrGOUdfZkQPvgofJVj0kNv6p+WOiGiaVfKPC5KMgIofqzBTFV+k6Q==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "core-js": "^3.8.2", - "global": "^4.4.0", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-toolbars": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-6.4.19.tgz", - "integrity": "sha512-2UtuX9yB1rD/CAZv1etnOnunfPTvsEKEg/J2HYMKE1lhenWC5muIUXvDXCXvwDC65WviPJ56nFNKaKK1Zz7JDg==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "regenerator-runtime": "^0.13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-viewport": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.4.19.tgz", - "integrity": "sha512-T1hdImxbLj8suQSTbp6HSA1LLHOlqaNK5jjnqzEOoAxY0O8LNPXMJ2jKIeT2fPQ0v+tWGU3tbwf+3xFq0parVQ==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "global": "^4.4.0", - "memoizerific": "^1.11.3", - "prop-types": "^15.7.2", - "regenerator-runtime": "^0.13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addons": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.19.tgz", - "integrity": "sha512-QNyRYhpqmHV8oJxxTBdkRlLSbDFhpBvfvMfIrIT1UXb/eemdBZTaCGVvXZ9UixoEEI7f8VwAQ44IvkU5B1509w==", - "dev": true, - "dependencies": { - "@storybook/api": "6.4.19", - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.19", - "@storybook/theming": "6.4.19", - "@types/webpack-env": "^1.16.0", - "core-js": "^3.8.2", - "global": "^4.4.0", - "regenerator-runtime": "^0.13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@storybook/api": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.4.19.tgz", - "integrity": "sha512-aDvea+NpQCBjpNp9YidO1Pr7fzzCp15FSdkG+2ihGQfv5raxrN+IIJnGUXecpe71nvlYiB+29UXBVK7AL0j51Q==", - "dev": true, - "dependencies": { - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.19", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "regenerator-runtime": "^0.13.7", - "store2": "^2.12.0", - "telejson": "^5.3.2", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@storybook/builder-webpack4": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.19.tgz", - "integrity": "sha512-wxA6SMH11duc9D53aeVVBwrVRemFIoxHp/dOugkkg6ZZFAb4ZmWzf/ENc3vQIZdZpfNRi7IZIZEOfoHc994cmw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.10", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-decorators": "^7.12.12", - "@babel/plugin-proposal-export-default-from": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.7", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.12", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/preset-env": "^7.12.11", - "@babel/preset-react": "^7.12.10", - "@babel/preset-typescript": "^7.12.7", - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/channel-postmessage": "6.4.19", - "@storybook/channels": "6.4.19", - "@storybook/client-api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/node-logger": "6.4.19", - "@storybook/preview-web": "6.4.19", - "@storybook/router": "6.4.19", - "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.19", - "@storybook/theming": "6.4.19", - "@storybook/ui": "6.4.19", - "@types/node": "^14.0.10", - "@types/webpack": "^4.41.26", - "autoprefixer": "^9.8.6", - "babel-loader": "^8.0.0", - "babel-plugin-macros": "^2.8.0", - "babel-plugin-polyfill-corejs3": "^0.1.0", - "case-sensitive-paths-webpack-plugin": "^2.3.0", - "core-js": "^3.8.2", - "css-loader": "^3.6.0", - "file-loader": "^6.2.0", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^4.1.6", - "glob": "^7.1.6", - "glob-promise": "^3.4.0", - "global": "^4.4.0", - "html-webpack-plugin": "^4.0.0", - "pnp-webpack-plugin": "1.6.4", - "postcss": "^7.0.36", - "postcss-flexbugs-fixes": "^4.2.1", - "postcss-loader": "^4.2.0", - "raw-loader": "^4.0.2", - "stable": "^0.1.8", - "style-loader": "^1.3.0", - "terser-webpack-plugin": "^4.2.3", - "ts-dedent": "^2.0.0", - "url-loader": "^4.1.1", - "util-deprecate": "^1.0.2", - "webpack": "4", - "webpack-dev-middleware": "^3.7.3", - "webpack-filter-warnings-plugin": "^1.2.1", - "webpack-hot-middleware": "^2.25.1", - "webpack-virtual-modules": "^0.2.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", - "dev": true - }, - "node_modules/@storybook/builder-webpack4/node_modules/autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "dev": true, - "dependencies": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/fork-ts-checker-webpack-plugin": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz", - "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.5.5", - "chalk": "^2.4.1", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" - }, - "engines": { - "node": ">=6.11.5", - "yarn": ">=1.0.0" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/@storybook/builder-webpack4/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/builder-webpack4/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/channel-postmessage": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.19.tgz", - "integrity": "sha512-E5h/itFzQ/6M08LR4kqlgqqmeO3tmavI+nUAlZrkCrotpJFNMHE2i0PQHg0TkFJrRDpYcrwD+AjUW4IwdqrisQ==", - "dev": true, - "dependencies": { - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "core-js": "^3.8.2", - "global": "^4.4.0", - "qs": "^6.10.0", - "telejson": "^5.3.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/channel-websocket": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.4.19.tgz", - "integrity": "sha512-cXKwQjIXttfdUyZlcHORelUmJ5nUKswsnCA/qy7IRWpZjD8yQJcNk1dYC+tTHDVqFgdRT89pL0hRRB1rlaaR8Q==", - "dev": true, - "dependencies": { - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "core-js": "^3.8.2", - "global": "^4.4.0", - "telejson": "^5.3.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/channels": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.19.tgz", - "integrity": "sha512-EwyoncFvTfmIlfsy8jTfayCxo2XchPkZk/9txipugWSmc057HdklMKPLOHWP0z5hLH0IbVIKXzdNISABm36jwQ==", - "dev": true, - "dependencies": { - "core-js": "^3.8.2", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/client-api": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.19.tgz", - "integrity": "sha512-OCrT5Um3FDvZnimQKwWtwsaI+5agPwq2i8YiqlofrI/NPMKp0I7DEkCGwE5IRD1Q8BIKqHcMo5tTmfYi0AxyOg==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/channel-postmessage": "6.4.19", - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/store": "6.4.19", - "@types/qs": "^6.9.5", - "@types/webpack-env": "^1.16.0", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "qs": "^6.10.0", - "regenerator-runtime": "^0.13.7", - "store2": "^2.12.0", - "synchronous-promise": "^2.0.15", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@storybook/client-logger": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.19.tgz", - "integrity": "sha512-zmg/2wyc9W3uZrvxaW4BfHcr40J0v7AGslqYXk9H+ERLVwIvrR4NhxQFaS6uITjBENyRDxwzfU3Va634WcmdDQ==", - "dev": true, - "dependencies": { - "core-js": "^3.8.2", - "global": "^4.4.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/components": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.4.19.tgz", - "integrity": "sha512-q/0V37YAJA7CNc+wSiiefeM9+3XVk8ixBNylY36QCGJgIeGQ5/79vPyUe6K4lLmsQwpmZsIq1s1Ad5+VbboeOA==", - "dev": true, - "dependencies": { - "@popperjs/core": "^2.6.0", - "@storybook/client-logger": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.19", - "@types/color-convert": "^2.0.0", - "@types/overlayscrollbars": "^1.12.0", - "@types/react-syntax-highlighter": "11.0.5", - "color-convert": "^2.0.1", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "lodash": "^4.17.21", - "markdown-to-jsx": "^7.1.3", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.13.1", - "polished": "^4.0.5", - "prop-types": "^15.7.2", - "react-colorful": "^5.1.2", - "react-popper-tooltip": "^3.1.1", - "react-syntax-highlighter": "^13.5.3", - "react-textarea-autosize": "^8.3.0", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@storybook/components/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/components/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/core": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.19.tgz", - "integrity": "sha512-55LOQ/h/kf1jMhjN85t/pIEdIwWEG9yV7bdwv3niVvmoypCxyyjn9/QNK0RKYAeDSUtdm6FVoJ6k5CpxWz2d8w==", - "dev": true, - "dependencies": { - "@storybook/core-client": "6.4.19", - "@storybook/core-server": "6.4.19" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@storybook/builder-webpack5": "6.4.19", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0", - "webpack": "*" - }, - "peerDependenciesMeta": { - "@storybook/builder-webpack5": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/core-client": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.19.tgz", - "integrity": "sha512-rQHRZjhArPleE7/S8ZUolgzwY+hC0smSKX/3PQxO2GcebDjnJj6+iSV3h+aSMHMmTdoCQvjYw9aBpT8scuRe+A==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/channel-postmessage": "6.4.19", - "@storybook/channel-websocket": "6.4.19", - "@storybook/client-api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/preview-web": "6.4.19", - "@storybook/store": "6.4.19", - "@storybook/ui": "6.4.19", - "airbnb-js-shims": "^2.2.1", - "ansi-to-html": "^0.6.11", - "core-js": "^3.8.2", - "global": "^4.4.0", - "lodash": "^4.17.21", - "qs": "^6.10.0", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0", - "unfetch": "^4.2.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0", - "webpack": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/core-common": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.19.tgz", - "integrity": "sha512-X1pJJkO48DFxl6iyEemIKqRkJ7j9/cBh3BRBUr+xZHXBvnD0GKDXIocwh0PjSxSC6XSu3UCQnqtKi3PbjRl8Dg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.10", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-decorators": "^7.12.12", - "@babel/plugin-proposal-export-default-from": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.7", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.12", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/preset-env": "^7.12.11", - "@babel/preset-react": "^7.12.10", - "@babel/preset-typescript": "^7.12.7", - "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.4.19", - "@storybook/semver": "^7.3.2", - "@types/node": "^14.0.10", - "@types/pretty-hrtime": "^1.0.0", - "babel-loader": "^8.0.0", - "babel-plugin-macros": "^3.0.1", - "babel-plugin-polyfill-corejs3": "^0.1.0", - "chalk": "^4.1.0", - "core-js": "^3.8.2", - "express": "^4.17.1", - "file-system-cache": "^1.0.5", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.0.4", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "handlebars": "^4.7.7", - "interpret": "^2.2.0", - "json5": "^2.1.3", - "lazy-universal-dotenv": "^3.0.1", - "picomatch": "^2.3.0", - "pkg-dir": "^5.0.0", - "pretty-hrtime": "^1.0.3", - "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "telejson": "^5.3.2", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2", - "webpack": "4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", - "dev": true - }, - "node_modules/@storybook/core-common/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/core-common/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/core-common/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-common/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-common/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/core-common/node_modules/pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/core-common/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-events": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.19.tgz", - "integrity": "sha512-KICzUw6XVQUJzFSCXfvhfHAuyhn4Q5J4IZEfuZkcGJS4ODkrO6tmpdYE5Cfr+so95Nfp0ErWiLUuodBsW9/rtA==", - "dev": true, - "dependencies": { - "core-js": "^3.8.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.19.tgz", - "integrity": "sha512-bKsUB9f7hl5ya2JXxpIrErmbDQjoH39FVbzYZWjMo4t/b7+Xyi6vYadwyWcqlpUQmis09ZaSMv8L/Tw0TuwLAA==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-webpack4": "6.4.19", - "@storybook/core-client": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/csf-tools": "6.4.19", - "@storybook/manager-webpack4": "6.4.19", - "@storybook/node-logger": "6.4.19", - "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.19", - "@types/node": "^14.0.10", - "@types/node-fetch": "^2.5.7", - "@types/pretty-hrtime": "^1.0.0", - "@types/webpack": "^4.41.26", - "better-opn": "^2.1.1", - "boxen": "^5.1.2", - "chalk": "^4.1.0", - "cli-table3": "^0.6.1", - "commander": "^6.2.1", - "compression": "^1.7.4", - "core-js": "^3.8.2", - "cpy": "^8.1.2", - "detect-port": "^1.3.0", - "express": "^4.17.1", - "file-system-cache": "^1.0.5", - "fs-extra": "^9.0.1", - "globby": "^11.0.2", - "ip": "^1.1.5", - "lodash": "^4.17.21", - "node-fetch": "^2.6.1", - "pretty-hrtime": "^1.0.3", - "prompts": "^2.4.0", - "regenerator-runtime": "^0.13.7", - "serve-favicon": "^2.5.0", - "slash": "^3.0.0", - "telejson": "^5.3.3", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2", - "watchpack": "^2.2.0", - "webpack": "4", - "ws": "^8.2.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@storybook/builder-webpack5": "6.4.19", - "@storybook/manager-webpack5": "6.4.19", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@storybook/builder-webpack5": { - "optional": true - }, - "@storybook/manager-webpack5": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", - "dev": true - }, - "node_modules/@storybook/core-server/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/core-server/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/core-server/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/core-server/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/core-server/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@storybook/core-server/node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@storybook/csf": { - "version": "0.0.2--canary.87bc651.0", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.2--canary.87bc651.0.tgz", - "integrity": "sha512-ajk1Uxa+rBpFQHKrCcTmJyQBXZ5slfwHVEaKlkuFaW77it8RgbPJp/ccna3sgoi8oZ7FkkOyvv1Ve4SmwFqRqw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/@storybook/csf-tools": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.19.tgz", - "integrity": "sha512-gf/zRhGoAVsFwSyV2tc+jeJfZQkxF6QsaZgbUSe24/IUvGFCT/PS/jZq1qy7dECAwrTOfykgu8juyBtj6WhWyw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.10", - "@babel/generator": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/plugin-transform-react-jsx": "^7.12.12", - "@babel/preset-env": "^7.12.11", - "@babel/traverse": "^7.12.11", - "@babel/types": "^7.12.11", - "@mdx-js/mdx": "^1.6.22", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "core-js": "^3.8.2", - "fs-extra": "^9.0.1", - "global": "^4.4.0", - "js-string-escape": "^1.0.1", - "lodash": "^4.17.21", - "prettier": ">=2.2.1 <=2.3.0", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf-tools/node_modules/prettier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", - "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@storybook/instrumenter": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-6.4.19.tgz", - "integrity": "sha512-KwOJUW7tItZw1CLffUbaSfEzH1p1HdGmJs1Q42uWGJSbXbVHZ7i7bJWYb3Lf90+yHTlqQjTr1PKAymwDwHseTA==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "global": "^4.4.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/manager-webpack4": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.19.tgz", - "integrity": "sha512-R8ugZjTYqXvlc6gDOcw909L65sIleOmIJLZR+N6/H85MivGXHu39jOwONqB7tVACufRty4FNecn8tEiQL2SAKA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.10", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/preset-react": "^7.12.10", - "@storybook/addons": "6.4.19", - "@storybook/core-client": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/node-logger": "6.4.19", - "@storybook/theming": "6.4.19", - "@storybook/ui": "6.4.19", - "@types/node": "^14.0.10", - "@types/webpack": "^4.41.26", - "babel-loader": "^8.0.0", - "case-sensitive-paths-webpack-plugin": "^2.3.0", - "chalk": "^4.1.0", - "core-js": "^3.8.2", - "css-loader": "^3.6.0", - "express": "^4.17.1", - "file-loader": "^6.2.0", - "file-system-cache": "^1.0.5", - "find-up": "^5.0.0", - "fs-extra": "^9.0.1", - "html-webpack-plugin": "^4.0.0", - "node-fetch": "^2.6.1", - "pnp-webpack-plugin": "1.6.4", - "read-pkg-up": "^7.0.1", - "regenerator-runtime": "^0.13.7", - "resolve-from": "^5.0.0", - "style-loader": "^1.3.0", - "telejson": "^5.3.2", - "terser-webpack-plugin": "^4.2.3", - "ts-dedent": "^2.0.0", - "url-loader": "^4.1.1", - "util-deprecate": "^1.0.2", - "webpack": "4", - "webpack-dev-middleware": "^3.7.3", - "webpack-virtual-modules": "^0.2.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/manager-webpack4/node_modules/@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", - "dev": true - }, - "node_modules/@storybook/manager-webpack4/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/manager-webpack4/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/manager-webpack4/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/manager-webpack4/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/manager-webpack4/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/manager-webpack4/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/manager-webpack4/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/manager-webpack4/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/manager-webpack4/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/manager-webpack4/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/node-logger": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.19.tgz", - "integrity": "sha512-hO2Aar3PgPnPtNq2fVgiuGlqo3EEVR6TKVBXMq7foL3tN2k4BQFKLDHbm5qZQQntyYKurKsRUGKPJFPuI1ov/w==", - "dev": true, - "dependencies": { - "@types/npmlog": "^4.1.2", - "chalk": "^4.1.0", - "core-js": "^3.8.2", - "npmlog": "^5.0.1", - "pretty-hrtime": "^1.0.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/node-logger/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/node-logger/node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/node-logger/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/node-logger/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/node-logger/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/node-logger/node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/node-logger/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/node-logger/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/node-logger/node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/@storybook/node-logger/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/node-logger/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/node-logger/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/postinstall": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-6.4.19.tgz", - "integrity": "sha512-/0tHHxyIV82zt1rw4BW70GmrQbDVu9IJPAxOqFzGjC1fNojwJ53mK6FfUsOzbhG5mWk5p0Ip5+zr74moP119AA==", - "dev": true, - "dependencies": { - "core-js": "^3.8.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/preview-web": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.4.19.tgz", - "integrity": "sha512-jqltoBv5j7lvnxEfV9w8dLX9ASWGuvgz97yg8Yo5FqkftEwrHJenyvMGcTgDJKJPorF+wiz/9aIqnmd3LCAcZQ==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/channel-postmessage": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/store": "6.4.19", - "ansi-to-html": "^0.6.11", - "core-js": "^3.8.2", - "global": "^4.4.0", - "lodash": "^4.17.21", - "qs": "^6.10.0", - "regenerator-runtime": "^0.13.7", - "synchronous-promise": "^2.0.15", - "ts-dedent": "^2.0.0", - "unfetch": "^4.2.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@storybook/react": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.4.19.tgz", - "integrity": "sha512-5b3i8jkVrjQGmcxxxXwCduHPIh+cluWkfeweKeQOe+lW4BR8fuUICo3AMLrYPAtB/UcaJyYkIYmTvF2mkfepFA==", - "dev": true, - "dependencies": { - "@babel/preset-flow": "^7.12.1", - "@babel/preset-react": "^7.12.10", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.1", - "@storybook/addons": "6.4.19", - "@storybook/core": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/node-logger": "6.4.19", - "@storybook/react-docgen-typescript-plugin": "1.0.2-canary.253f8c1.0", - "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.19", - "@types/webpack-env": "^1.16.0", - "babel-plugin-add-react-displayname": "^0.0.5", - "babel-plugin-named-asset-import": "^0.3.1", - "babel-plugin-react-docgen": "^4.2.1", - "core-js": "^3.8.2", - "global": "^4.4.0", - "lodash": "^4.17.21", - "prop-types": "^15.7.2", - "react-refresh": "^0.11.0", - "read-pkg-up": "^7.0.1", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0", - "webpack": "4" - }, - "bin": { - "build-storybook": "bin/build.js", - "start-storybook": "bin/index.js", - "storybook-server": "bin/index.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@babel/core": "^7.11.5", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin": { - "version": "1.0.2-canary.253f8c1.0", - "resolved": "https://registry.npmjs.org/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.2-canary.253f8c1.0.tgz", - "integrity": "sha512-mmoRG/rNzAiTbh+vGP8d57dfcR2aP+5/Ll03KKFyfy5FqWFm/Gh7u27ikx1I3LmVMI8n6jh5SdWMkMKon7/tDw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "endent": "^2.0.1", - "find-cache-dir": "^3.3.1", - "flat-cache": "^3.0.4", - "micromatch": "^4.0.2", - "react-docgen-typescript": "^2.0.0", - "tslib": "^2.0.0" - }, - "peerDependencies": { - "typescript": ">= 3.x", - "webpack": ">= 4" - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@storybook/react-docgen-typescript-plugin/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@storybook/react/node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", - "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", - "dev": true, - "dependencies": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">= 10.13" - }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <3.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" - }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } - } - }, - "node_modules/@storybook/react/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@storybook/react/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/@storybook/react/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@storybook/react/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/react/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/@storybook/react/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/@storybook/react/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/react/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/react/node_modules/react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@storybook/react/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/@storybook/react/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@storybook/react/node_modules/type-fest": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.1.tgz", - "integrity": "sha512-AiknQSEqKVGDDjtZqeKrUoTlcj7FKhupmnVUgz6KoOKtvMwRGE6hUNJ/nVear+h7fnUPO1q/htSkYKb1pyntkQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/router": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.4.19.tgz", - "integrity": "sha512-KWWwIzuyeEIWVezkCihwY2A76Il9tUNg0I410g9qT7NrEsKyqXGRYOijWub7c1GGyNjLqz0jtrrehtixMcJkuA==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "6.4.19", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "history": "5.0.0", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "qs": "^6.10.0", - "react-router": "^6.0.0", - "react-router-dom": "^6.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@storybook/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", - "dev": true, - "dependencies": { - "core-js": "^3.6.5", - "find-up": "^4.1.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/source-loader": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.4.19.tgz", - "integrity": "sha512-XqTsqddRglvfW7mhyjwoqd/B8L6samcBehhO0OEbsFp6FPWa9eXuObCxtRYIcjcSIe+ksbW3D/54ppEs1L/g1Q==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "core-js": "^3.8.2", - "estraverse": "^5.2.0", - "global": "^4.4.0", - "loader-utils": "^2.0.0", - "lodash": "^4.17.21", - "prettier": ">=2.2.1 <=2.3.0", - "regenerator-runtime": "^0.13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@storybook/source-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/@storybook/source-loader/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/@storybook/source-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/@storybook/source-loader/node_modules/prettier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", - "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@storybook/store": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.4.19.tgz", - "integrity": "sha512-N9/ZjemRHGfT3InPIbqQqc6snkcfnf3Qh9oOr0smbfaVGJol//KOX65kzzobtzFcid0WxtTDZ3HmgFVH+GvuhQ==", - "dev": true, - "dependencies": { - "@storybook/addons": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "regenerator-runtime": "^0.13.7", - "slash": "^3.0.0", - "stable": "^0.1.8", - "synchronous-promise": "^2.0.15", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@storybook/testing-library": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@storybook/testing-library/-/testing-library-0.0.9.tgz", - "integrity": "sha512-X4/Tk7RryB0tZ/9NLUHYTBXW01zRpf6+IhdhqsVl6WOWRyUaIv3zEhr43gQyZhBe4ZZyt5d90FJC9qWmY1oFKg==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "^6.4.0 || >=6.5.0-0", - "@storybook/instrumenter": "^6.4.0 || >=6.5.0-0", - "@testing-library/dom": "^8.3.0", - "@testing-library/user-event": "^13.2.1", - "ts-dedent": "^2.2.0" - } - }, - "node_modules/@storybook/theming": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.19.tgz", - "integrity": "sha512-V4pWmTvAxmbHR6B3jA4hPkaxZPyExHvCToy7b76DpUTpuHihijNDMAn85KhOQYIeL9q14zP/aiz899tOHsOidg==", - "dev": true, - "dependencies": { - "@emotion/core": "^10.1.1", - "@emotion/is-prop-valid": "^0.8.6", - "@emotion/styled": "^10.0.27", - "@storybook/client-logger": "6.4.19", - "core-js": "^3.8.2", - "deep-object-diff": "^1.1.0", - "emotion-theming": "^10.0.27", - "global": "^4.4.0", - "memoizerific": "^1.11.3", - "polished": "^4.0.5", - "resolve-from": "^5.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@storybook/theming/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/ui": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.19.tgz", - "integrity": "sha512-gFwdn5LA2U6oQ4bfUFLyHZnNasGQ01YVdwjbi+l6yjmnckBNtZfJoVTZ1rzGUbxSE9rK48InJRU+latTsr7xAg==", - "dev": true, - "dependencies": { - "@emotion/core": "^10.1.1", - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/router": "6.4.19", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.4.19", - "copy-to-clipboard": "^3.3.1", - "core-js": "^3.8.2", - "core-js-pure": "^3.8.2", - "downshift": "^6.0.15", - "emotion-theming": "^10.0.27", - "fuse.js": "^3.6.1", - "global": "^4.4.0", - "lodash": "^4.17.21", - "markdown-to-jsx": "^7.1.3", - "memoizerific": "^1.11.3", - "polished": "^4.0.5", - "qs": "^6.10.0", - "react-draggable": "^4.4.3", - "react-helmet-async": "^1.0.7", - "react-sizeme": "^3.0.1", - "regenerator-runtime": "^0.13.7", - "resolve-from": "^5.0.0", - "store2": "^2.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@storybook/ui/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@stripe/react-stripe-js": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-1.7.0.tgz", - "integrity": "sha512-L20v8Jq0TDZFL2+y+uXD751t6q9SalSFkSYZpmZ2VWrGZGK7HAGfRQ804dzYSSr5fGenW6iz6y7U0YKfC/TK3g==", - "dependencies": { - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "@stripe/stripe-js": "^1.20.3", - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/@stripe/stripe-js": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-1.25.0.tgz", - "integrity": "sha512-cywIoKu3sJnBPQ1eKi3BzFHWslA2ePqHvQhcxp7iYYlo1tWcVgEKTSh7y7hb6GoR4TyT3DwlK4v1vOZpVg8u4Q==" - }, - "node_modules/@supabase/functions-js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-1.3.4.tgz", - "integrity": "sha512-yYVgkECjv7IZEBKBI3EB5Q7R1p0FJ10g8Q9N7SWKIHUU6i6DnbEGHIMFLyQRm1hmiNWD8fL7bRVEYacmTRJhHw==", - "dependencies": { - "cross-fetch": "^3.1.5" - } - }, - "node_modules/@supabase/gotrue-js": { - "version": "1.23.0-next.4", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.23.0-next.4.tgz", - "integrity": "sha512-w+qCUc7BA0t1Tx08ylObz/XzmnVlTwkdDPrYlE/gC9Qr6n1MmuNNbmz6Odz66CtFQiDjS+62uTJbxJSnn/Mygg==", - "dependencies": { - "cross-fetch": "^3.1.5" - } - }, - "node_modules/@supabase/postgres-meta": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/@supabase/postgres-meta/-/postgres-meta-0.26.1.tgz", - "integrity": "sha512-z4ws1fD+sPwb+J2PRMe2/Oe4HuVwGjPESjFqCR8uiWauTlfbtYR0bXFPMxPA6SkJFqOq/86uJPwzHgHURWZDiA==", - "dependencies": { - "@sinclair/typebox": "^0.19.2", - "pg": "^8.7.1", - "pg-format": "^1.0.4" - }, - "engines": { - "node": ">=14 <15", - "npm": ">=7" - } - }, - "node_modules/@supabase/postgrest-js": { - "version": "1.0.0-next.2", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.0.0-next.2.tgz", - "integrity": "sha512-8hg7xbT6w07BjrQRqQT4DOVg9NkcBFdvlpdArriKwOtqKiztVy32HXT/CjPTgMxl9Z4Bc7n2krhS5EKOB7Wmvw==", - "dependencies": { - "cross-fetch": "^3.1.5" - } - }, - "node_modules/@supabase/react-data-grid": { - "version": "7.1.0-beta.7", - "resolved": "https://registry.npmjs.org/@supabase/react-data-grid/-/react-data-grid-7.1.0-beta.7.tgz", - "integrity": "sha512-6Kjdk9Z3N2mycq63L22VFM4zY0w9HNdpB0HgaUcM3nIMtMxA3cldLnHDVMD2R0zNV7+1wlOr8hz3vsbS+zlOXQ==", - "dependencies": { - "clsx": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.14 || ^17.0.0", - "react-dom": "^16.14 || ^17.0.0" - } - }, - "node_modules/@supabase/realtime-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.7.3.tgz", - "integrity": "sha512-iNUWhVeYRi5+XUlW2zJ7ccGfhI6caLxcn2t6VuQK3OTJNzXdVXeKb25nffLx1g4F7Ty6VM8Xiue7i0z0cWG3pQ==", - "dependencies": { - "@types/phoenix": "^1.5.4", - "websocket": "^1.0.34" - } - }, - "node_modules/@supabase/shared-types": { - "version": "0.1.25", - "resolved": "https://registry.npmjs.org/@supabase/shared-types/-/shared-types-0.1.25.tgz", - "integrity": "sha512-nKIwMc/Ig22s58FxH9lyCJ+hAqp3D4Qq7LDCTlGlzTV7sOeKXFyMQuevwGdCVfIuQbp99QC1y2rS9pyV+R7RFA==" - }, - "node_modules/@supabase/storage-js": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.7.2.tgz", - "integrity": "sha512-HX4HAfLUJznVgAwiKVgdTe5QD0bpUcqgc0hpk/s5Uy8qoe1tHZAc5qE9kI+tqk7rQKyymFpiA7+bAHlzyZXxxQ==", - "dependencies": { - "cross-fetch": "^3.1.0" - } - }, - "node_modules/@supabase/supabase-js": { - "version": "1.36.0-next.9", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.36.0-next.9.tgz", - "integrity": "sha512-GzaCNe7maoaao6MjX+MZoEd3EZnMCbathvXmh77vLOWD72HuQKVxUM77CR1cO/Ry8tZpbQlHkAiPKM122NSQkQ==", - "dependencies": { - "@supabase/functions-js": "^1.3.3", - "@supabase/gotrue-js": "^1.23.0-next.3", - "@supabase/postgrest-js": "^1.0.0-next.2", - "@supabase/realtime-js": "^1.7.3", - "@supabase/storage-js": "^1.7.0", - "cross-fetch": "^3.1.5" - } - }, - "node_modules/@supabase/ui": { - "version": "0.37.0-alpha.80", - "resolved": "https://registry.npmjs.org/@supabase/ui/-/ui-0.37.0-alpha.80.tgz", - "integrity": "sha512-oTBX43SipvCOmdG4UTt2yM//Meqfof4j7Fgmdi6rAn2EGpqo9xVqWxqlCLLvcbaK94Sl0i5R43zZEWz6RJoUIg==", - "dependencies": { - "@headlessui/react": "^1.0.0", - "@mertasan/tailwindcss-variables": "^2.0.1", - "@radix-ui/colors": "^0.1.8", - "@radix-ui/react-accordion": "^0.1.5", - "@radix-ui/react-collapsible": "^0.1.5", - "@radix-ui/react-context-menu": "^0.1.0", - "@radix-ui/react-dialog": "^0.1.5", - "@radix-ui/react-dropdown-menu": "^0.1.4", - "@radix-ui/react-popover": "^0.1.0", - "@radix-ui/react-portal": "^0.1.3", - "@radix-ui/react-tabs": "^0.1.0", - "@tailwindcss/forms": "^0.4.0", - "@tailwindcss/typography": "^0.5.0", - "autoprefixer": "^10.4.2", - "deepmerge": "^4.2.2", - "formik": "^2.2.9", - "lodash": "^4.17.20", - "postcss": "^8.4.5", - "prop-types": "^15.7.2", - "tailwindcss": "^3.0.15", - "tailwindcss-radix": "^1.6.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.1", - "react-dom": "^16.13.1 || ^17.0.1" - } - }, - "node_modules/@tailwindcss/forms": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.4.1.tgz", - "integrity": "sha512-gS9xjCmJjUBz/eP12QlENPLnf0tCx68oYE3mri0GMP5jdtVwLbGUNSRpjsp6NzLAZzZy3ueOwrcqB78Ax6Z84A==", - "dependencies": { - "mini-svg-data-uri": "^1.2.3" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" - } - }, - "node_modules/@tailwindcss/typography": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.2.tgz", - "integrity": "sha512-coq8DBABRPFcVhVIk6IbKyyHUt7YTEC/C992tatFB+yEx5WGBQrCgsSFjxHUr8AWXphWckadVJbominEduYBqw==", - "dependencies": { - "lodash.castarray": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || insiders" - } - }, - "node_modules/@testing-library/dom": { - "version": "8.11.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.1.tgz", - "integrity": "sha512-3KQDyx9r0RKYailW2MiYrSSKEfH0GTkI51UGEvJenvcoDoeRYs0PZpi2SXqtnMClQvCqdtTTpOfFETDTVADpAg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/dom/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@testing-library/dom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/react": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.2.tgz", - "integrity": "sha512-ihQiEOklNyHIpo2Y8FREkyD1QAea054U0MVbwH1m8N9TxeFz+KoJ9LkqoKqJlzx2JDm56DVwaJ1r36JYxZM05g==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@testing-library/user-event": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", - "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", - "dev": true - }, - "node_modules/@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/color-convert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.0.tgz", - "integrity": "sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==", - "dev": true, - "dependencies": { - "@types/color-name": "*" - } - }, - "node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "node_modules/@types/crypto-js": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.0.2.tgz", - "integrity": "sha512-sCVniU+h3GcGqxOmng11BRvf9TfN9yIs8KKjB8C8d75W69cpTfZG80gau9yTx5SxF3gvHGbJhdESzzvnjtf3Og==", - "dev": true - }, - "node_modules/@types/d3-color": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-2.0.3.tgz", - "integrity": "sha512-+0EtEjBfKEDtH9Rk3u3kLOUXM5F+iZK+WvASPb0MhIZl8J8NUvGeZRwKCXl+P3HkYx5TdU4YtcibpqHkSR9n7w==" - }, - "node_modules/@types/d3-interpolate": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-2.0.2.tgz", - "integrity": "sha512-lElyqlUfIPyWG/cD475vl6msPL4aMU7eJvx1//Q177L8mdXoVPFl1djIESF2FKnc0NyaHvQlJpWwKJYwAhUoCw==", - "dependencies": { - "@types/d3-color": "^2" - } - }, - "node_modules/@types/d3-path": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.1.tgz", - "integrity": "sha512-6K8LaFlztlhZO7mwsZg7ClRsdLg3FJRzIIi6SZXDWmmSJc2x8dd2VkESbLXdk3p8cuvz71f36S0y8Zv2AxqvQw==" - }, - "node_modules/@types/d3-scale": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.2.tgz", - "integrity": "sha512-gGqr7x1ost9px3FvIfUMi5XA/F/yAf4UkUDtdQhpH92XCT0Oa7zkkRzY61gPVJq+DxpHn/btouw5ohWkbBsCzQ==", - "dependencies": { - "@types/d3-time": "^2" - } - }, - "node_modules/@types/d3-shape": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.1.3.tgz", - "integrity": "sha512-HAhCel3wP93kh4/rq+7atLdybcESZ5bRHDEZUojClyZWsRuEMo3A52NGYJSh48SxfxEU6RZIVbZL2YFZ2OAlzQ==", - "dependencies": { - "@types/d3-path": "^2" - } - }, - "node_modules/@types/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-9MVYlmIgmRR31C5b4FVSWtuMmBHh2mOWQYfl7XAYOa8dsnb7iEmUmRSWSFgXFtkjxO65d7hTUHQC+RhR/9IWFg==" - }, - "node_modules/@types/debounce-promise": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/debounce-promise/-/debounce-promise-3.1.4.tgz", - "integrity": "sha512-9SEVY3nsz+uMN2DwDocftB5TAgZe7D0cOzxxRhpotWs6T4QFqRaTXpXbOSzbk31/7iYcfCkJJPwWGzTxyuGhCg==" - }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/file-saver": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.2.tgz", - "integrity": "sha512-xbqnZmGrCEqi/KUzOkeUSe77p7APvLuyellGaAoeww3CHJ1AbjQWjPSCFtKIzZn8L7LpEax4NXnC+gfa6nM7IA==", - "dev": true - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", - "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", - "dev": true - }, - "node_modules/@types/is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha512-A79HEEiwXTFtfY+Bcbo58M2GRYzCr9itHWzbzHVFNEYCcoU/MMGwYYf721gBrnhpj1s6RGVVha/IgNFnR0Iw/Q==", - "dev": true - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jsdom": { - "version": "16.2.13", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.13.tgz", - "integrity": "sha512-8JQCjdeAidptSsOcRWk2iTm9wCcwn9l+kRG6k5bzUacrnm1ezV4forq0kWjUih/tumAeoG+OspOvQEbbRucBTw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/parse5": "*", - "@types/tough-cookie": "*" - } - }, - "node_modules/@types/json-logic-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/json-logic-js/-/json-logic-js-1.2.1.tgz", - "integrity": "sha512-g/g+wj/7sgazpiCHiyAtndoNiy/LodLkNG4I9MILAl0UinKKwv3GiPKbtvcE1hIoezQqgDamXfx8Lht62/hHqw==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/lodash": { - "version": "4.14.182", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", - "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==" - }, - "node_modules/@types/markdown-table": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/markdown-table/-/markdown-table-3.0.0.tgz", - "integrity": "sha512-vX5zya26rnLLHdAKA3E9ZOT07CJslYp2gZfAZiXKUY5vd2RRiJyOQKrSlmUjyJ+eNoDAPkHflebG3PsfqC32aA==", - "deprecated": "This is a stub types definition. markdown-table provides its own type definitions, so you do not need this installed.", - "dev": true, - "dependencies": { - "markdown-table": "*" - } - }, - "node_modules/@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "node_modules/@types/node": { - "version": "16.9.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.4.tgz", - "integrity": "sha512-KDazLNYAGIuJugdbULwFZULF9qQ13yNWEBFnfVpqlpgAAo6H/qnM9RjBgh0A0kmHf3XxAKLdN5mTIng9iUvVLA==", - "devOptional": true - }, - "node_modules/@types/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/@types/npmlog": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.4.tgz", - "integrity": "sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ==", - "dev": true - }, - "node_modules/@types/overlayscrollbars": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@types/overlayscrollbars/-/overlayscrollbars-1.12.1.tgz", - "integrity": "sha512-V25YHbSoKQN35UasHf0EKD9U2vcmexRSp78qa8UglxFH8H3D+adEa9zGZwrqpH4TdvqeMrgMqVqsLB4woAryrQ==", - "dev": true - }, - "node_modules/@types/papaparse": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.1.tgz", - "integrity": "sha512-1lbngk9wty2kCyQB42LjqSa12SEop3t9wcEC7/xYr3ujTSTmv7HWKjKYXly0GkMfQ42PRb2lFPFEibDOiMXS0g==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "node_modules/@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "dev": true - }, - "node_modules/@types/phoenix": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.5.4.tgz", - "integrity": "sha512-L5eZmzw89eXBKkiqVBcJfU1QGx9y+wurRIEgt0cuLH0hwNtVUxtx+6cu0R2STwWj468sjXyBYPYDtGclUd1kjQ==" - }, - "node_modules/@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==", - "dev": true - }, - "node_modules/@types/pretty-hrtime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz", - "integrity": "sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/react": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.11.tgz", - "integrity": "sha512-yFRQbD+whVonItSk7ZzP/L+gPTJVBkL/7shLEF+i9GC/1cV3JmUxEQz6+9ylhUpWSDuqo1N9qEvqS6vTj4USUA==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-beautiful-dnd": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/@types/react-beautiful-dnd/-/react-beautiful-dnd-13.1.2.tgz", - "integrity": "sha512-+OvPkB8CdE/bGdXKyIhc/Lm2U7UAYCCJgsqmopFmh9gbAudmslkI8eOrPDjg4JhwSE6wytz4a3/wRjKtovHVJg==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-csv": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/react-csv/-/react-csv-1.1.2.tgz", - "integrity": "sha512-hCtZyXAubxBtn3Oi3I9kNAx2liRTaMtl1eWpO2M98aYkHuoSTbYO8OcZEjyr9aJJ30Xnoxj+uES3G6L6O1qgtg==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-datepicker": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/react-datepicker/-/react-datepicker-4.3.4.tgz", - "integrity": "sha512-5nTTz37KdTUgMZ1AAxztMWNtEnIMVRo8oCAEhIv0a6uUqDjvSKaMyPRpBV+8chi6f/A8wlTKJIpojpXca2dx3A==", - "dev": true, - "dependencies": { - "@popperjs/core": "^2.9.2", - "@types/react": "*", - "date-fns": "^2.0.1", - "react-popper": "^2.2.5" - } - }, - "node_modules/@types/react-dom": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz", - "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-grid-layout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/react-grid-layout/-/react-grid-layout-1.3.0.tgz", - "integrity": "sha512-Pytm7lvm4h91yN9CpdjV8IpU/hgVRHrUhDEIX593e4Mx9V14Pr3gWtj21WHzy5bDqU//jnGGVVSYJ3QVuI1NaQ==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-redux": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.20.tgz", - "integrity": "sha512-q42es4c8iIeTgcnB+yJgRTTzftv3eYYvCZOh1Ckn2eX/3o5TdsQYKUWpLoLuGlcY/p+VAhV9IOEZJcWk/vfkXw==", - "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "node_modules/@types/react-syntax-highlighter": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.5.tgz", - "integrity": "sha512-VIOi9i2Oj5XsmWWoB72p3KlZoEbdRAcechJa8Ztebw7bDl2YmR+odxIqhtJGp1q2EozHs02US+gzxJ9nuf56qg==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-virtualized-auto-sizer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.1.tgz", - "integrity": "sha512-GH8sAnBEM5GV9LTeiz56r4ZhMOUSrP43tAQNSRVxNexDjcNKLCEtnxusAItg1owFUFE6k0NslV26gqVClVvong==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-window": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.5.tgz", - "integrity": "sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-window-infinite-loader": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/react-window-infinite-loader/-/react-window-infinite-loader-1.0.5.tgz", - "integrity": "sha512-3v45+4oBNJpSroULtb2EgTJyyK4pCjOMCg+RT/HnA3or5zY4jYufv6uH9NWPyLv0nx8dqt1s4nJqHilfthwKSw==", - "dev": true, - "dependencies": { - "@types/react": "*", - "@types/react-window": "*" - } - }, - "node_modules/@types/resize-observer-browser": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.6.tgz", - "integrity": "sha512-61IfTac0s9jvNtBCpyo86QeaN8qqpMGHdK0uGKCCIy2dt5/Yk84VduHIdWAcmkC5QvdkPL0p5eWYgUZtHKKUVg==" - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "node_modules/@types/semver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==", - "dev": true - }, - "node_modules/@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", - "dev": true - }, - "node_modules/@types/sqlstring": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@types/sqlstring/-/sqlstring-2.3.0.tgz", - "integrity": "sha512-kMFecDYYFk/f5fljO0UFrSPwU1JxY4mIjX6ic7MHv5nD6sEd3NYLoWcOV/3s6Drs7RHdCwTQdD5NdgVl0I2zzg==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/tapable": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", - "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==", - "dev": true - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz", - "integrity": "sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg==", - "dev": true - }, - "node_modules/@types/uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/@types/uglify-js/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "node_modules/@types/uuid": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", - "dev": true - }, - "node_modules/@types/webpack": { - "version": "4.41.32", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz", - "integrity": "sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/@types/webpack-env": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.3.tgz", - "integrity": "sha512-9gtOPPkfyNoEqCQgx4qJKkuNm/x0R2hKR7fdl7zvTJyHnIisuE/LfvXOsYWL0o3qq6uiBnKZNNNzi3l0y/X+xw==", - "dev": true - }, - "node_modules/@types/webpack-sources": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", - "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - } - }, - "node_modules/@types/webpack-sources/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@types/webpack/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "node_modules/@types/zxcvbn": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@types/zxcvbn/-/zxcvbn-4.4.1.tgz", - "integrity": "sha512-3NoqvZC2W5gAC5DZbTpCeJ251vGQmgcWIHQJGq2J240HY6ErQ9aWKkwfoKJlHLx+A83WPNTZ9+3cd2ILxbvr1w==", - "dev": true - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "devOptional": true, - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "devOptional": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "devOptional": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "devOptional": true - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "devOptional": true, - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "devOptional": true - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "devOptional": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "devOptional": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "devOptional": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "devOptional": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "devOptional": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "devOptional": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "devOptional": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "devOptional": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "devOptional": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "devOptional": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "devOptional": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "devOptional": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "devOptional": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "devOptional": true - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", - "dev": true, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/airbnb-js-shims": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz", - "integrity": "sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ==", - "dev": true, - "dependencies": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "array.prototype.flatmap": "^1.2.1", - "es5-shim": "^4.5.13", - "es6-shim": "^0.35.5", - "function.prototype.name": "^1.1.0", - "globalthis": "^1.0.0", - "object.entries": "^1.1.0", - "object.fromentries": "^2.0.0 || ^1.0.0", - "object.getownpropertydescriptors": "^2.0.3", - "object.values": "^1.1.0", - "promise.allsettled": "^1.0.0", - "promise.prototype.finally": "^3.1.0", - "string.prototype.matchall": "^4.0.0 || ^3.0.1", - "string.prototype.padend": "^3.0.0", - "string.prototype.padstart": "^3.0.0", - "symbol.prototype.description": "^1.0.0" - } - }, - "node_modules/ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "devOptional": true, - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, - "node_modules/analytics-node": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/analytics-node/-/analytics-node-3.5.0.tgz", - "integrity": "sha512-XgQq6ejZHCehUSnZS4V7QJPLIP7S9OAWwQDYl4WTLtsRvc5fCxIwzK/yihzmIW51v9PnyBmrl9dMcqvwfOE8WA==", - "dependencies": { - "@segment/loosely-validate-event": "^2.0.0", - "axios": "^0.21.1", - "axios-retry": "^3.0.2", - "lodash.isstring": "^4.0.1", - "md5": "^2.2.1", - "ms": "^2.0.0", - "remove-trailing-slash": "^0.1.0", - "uuid": "^3.2.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/analytics-node/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-to-html": { - "version": "0.6.15", - "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.15.tgz", - "integrity": "sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==", - "dev": true, - "dependencies": { - "entities": "^2.0.0" - }, - "bin": { - "ansi-to-html": "bin/ansi-to-html" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/app-root-dir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", - "integrity": "sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg=", - "dev": true - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "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" - } - }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-hidden": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.1.3.tgz", - "integrity": "sha512-RhVWFtKH5BiGMycI72q2RAFMLQi8JP9bLuQXgR5a8Znp7P5KOIADSJeyfI8PCVxLEp067B2HbP5JIiI/PXIZeA==", - "dependencies": { - "tslib": "^1.0.0" - }, - "engines": { - "node": ">=8.5.0" - } - }, - "node_modules/aria-hidden/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.4.tgz", - "integrity": "sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "devOptional": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true, - "optional": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "devOptional": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", - "dependencies": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/awesome-debounce-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/awesome-debounce-promise/-/awesome-debounce-promise-2.1.0.tgz", - "integrity": "sha512-0Dv4j2wKk5BrNZh4jgV2HUdznaeVgEK/WTvcHhZWUElhmQ1RR+iURRoLEwICFyR0S/5VtxfcvY6gR+qSe95jNg==", - "dependencies": { - "@types/debounce-promise": "^3.1.1", - "awesome-imperative-promise": "^1.0.1", - "awesome-only-resolves-last-promise": "^1.0.3", - "debounce-promise": "^3.1.0" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - } - }, - "node_modules/awesome-imperative-promise": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/awesome-imperative-promise/-/awesome-imperative-promise-1.0.1.tgz", - "integrity": "sha512-EmPr3FqbQGqlNh+WxMNcF9pO9uDQJnOC4/3rLBQNH9m4E9qI+8lbfHCmHpVAsmGqPJPKhCjJLHUQzQW/RBHRdQ==", - "engines": { - "node": ">=8", - "npm": ">=5" - } - }, - "node_modules/awesome-only-resolves-last-promise": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/awesome-only-resolves-last-promise/-/awesome-only-resolves-last-promise-1.0.3.tgz", - "integrity": "sha512-7q4WPsYiD8Omvi/yHL314DkvsD/lM//Z2/KcU1vWk0xJotiV0GMJTgHTpWl3n90HJqpXKg7qX+VVNs5YbQyPRQ==", - "dependencies": { - "awesome-imperative-promise": "^1.0.1" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/axios-retry": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.2.4.tgz", - "integrity": "sha512-Co3UXiv4npi6lM963mfnuH90/YFLKWWDmoBYfxkHT5xtkSSWNqK9zdG3fw5/CP/dsoKB5aMMJCsgab+tp1OxLQ==", - "dependencies": { - "@babel/runtime": "^7.15.4", - "is-retry-allowed": "^2.2.0" - } - }, - "node_modules/babel-jest": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.2.tgz", - "integrity": "sha512-MADrjb3KBO2eyZCAc6QaJg6RT5u+6oEdDyHO5HEalnpwQ6LrhTsQF2Kj1Wnz2t6UPXIXPk18dSXXOT0wF5yTxA==", - "dev": true, - "dependencies": { - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.4.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-loader": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", - "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/babel-plugin-add-react-displayname": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz", - "integrity": "sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=", - "dev": true - }, - "node_modules/babel-plugin-apply-mdx-type-prop": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", - "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@mdx-js/util": "1.6.22" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@babel/core": "^7.11.6" - } - }, - "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-emotion": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz", - "integrity": "sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/serialize": "^0.11.16", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^1.0.5", - "find-root": "^1.1.0", - "source-map": "^0.5.7" - } - }, - "node_modules/babel-plugin-emotion/node_modules/babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "node_modules/babel-plugin-emotion/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-emotion/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-plugin-extract-import-names": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", - "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz", - "integrity": "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "node_modules/babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "dev": true, - "peerDependencies": { - "@babel/core": "^7.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", - "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.1.5", - "core-js-compat": "^3.8.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", - "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/babel-plugin-polyfill-corejs3/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-react-docgen": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.1.tgz", - "integrity": "sha512-UQ0NmGHj/HAqi5Bew8WvNfCk8wSsmdgNd8ZdMjBCICtyCJCq9LiqgqvjCYe570/Wg7AQArSq1VQ60Dd/CHN7mQ==", - "dev": true, - "dependencies": { - "ast-types": "^0.14.2", - "lodash": "^4.17.15", - "react-docgen": "^5.0.0" - } - }, - "node_modules/babel-plugin-react-docgen/node_modules/ast-types": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", - "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", - "dev": true, - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz", - "integrity": "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^27.4.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "devOptional": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "devOptional": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "devOptional": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "devOptional": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/batch-processor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", - "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=", - "dev": true - }, - "node_modules/better-opn": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz", - "integrity": "sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==", - "dev": true, - "dependencies": { - "open": "^7.0.3" - }, - "engines": { - "node": ">8.0.0" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "devOptional": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "devOptional": true - }, - "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "devOptional": true - }, - "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", - "dev": true, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/body-parser/node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/body-parser/node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/boxen/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/boxen/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/boxen/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "devOptional": true - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "devOptional": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "devOptional": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "devOptional": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "devOptional": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "devOptional": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "devOptional": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/browserslist/node_modules/node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "devOptional": true - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "devOptional": true - }, - "node_modules/bufferutil": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", - "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "devOptional": true - }, - "node_modules/c8": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.0.tgz", - "integrity": "sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@istanbuljs/schema": "^0.1.2", - "find-up": "^5.0.0", - "foreground-child": "^2.0.0", - "istanbul-lib-coverage": "^3.0.1", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "rimraf": "^3.0.0", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^8.0.0", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.7" - }, - "bin": { - "c8": "bin/c8.js" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/c8/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/c8/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/c8/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "devOptional": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001373", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", - "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "dependencies": { - "rsvp": "^4.8.4" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ccount": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/charcodes": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", - "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "devOptional": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "devOptional": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "devOptional": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "devOptional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "devOptional": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "node_modules/clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", - "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "colors": "1.4.0" - } - }, - "node_modules/cli-table3/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table3/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clipboard": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz", - "integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==", - "dependencies": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "devOptional": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.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==", - "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "devOptional": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "devOptional": true - }, - "node_modules/component-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz", - "integrity": "sha1-ikeQFwAjjk/DIml3EjAibyS0Fak=" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/compute-scroll-into-view": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", - "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "devOptional": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "devOptional": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "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" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/configcat-common": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/configcat-common/-/configcat-common-4.5.0.tgz", - "integrity": "sha512-RZA0C1BVRlXJaavehPXk8q2YpmZyLovUFz0SHHdfePteDJjZ2iL7USahQi0SwpPK+BA5PKUvHZMkchMV2UGuPA==" - }, - "node_modules/configcat-js": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/configcat-js/-/configcat-js-5.6.0.tgz", - "integrity": "sha512-lMNdspGPCTSoIqtNQojXCKi4wjX1hl0vnTN3FMUKJQjCY32A6b9kBlbEocsVgzXEoArktRuMzOaXOVmY9+J8Tg==", - "dependencies": { - "configcat-common": "^4.5.0" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "devOptional": true - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "devOptional": true - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "devOptional": true, - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "devOptional": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/copy-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "devOptional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-to-clipboard": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", - "dev": true, - "dependencies": { - "toggle-selection": "^1.0.6" - } - }, - "node_modules/core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", - "dev": true, - "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cp-file": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", - "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "nested-error-stacks": "^2.0.0", - "p-event": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cpy": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz", - "integrity": "sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==", - "dev": true, - "dependencies": { - "arrify": "^2.0.1", - "cp-file": "^7.0.0", - "globby": "^9.2.0", - "has-glob": "^1.0.0", - "junk": "^3.1.0", - "nested-error-stacks": "^2.1.0", - "p-all": "^2.1.0", - "p-filter": "^2.1.0", - "p-map": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cpy/node_modules/@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cpy/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cpy/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cpy/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cpy/node_modules/dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "dependencies": { - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cpy/node_modules/fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "dependencies": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/cpy/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cpy/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cpy/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/cpy/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cpy/node_modules/globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cpy/node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/cpy/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cpy/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cpy/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cpy/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cpy/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cpy/node_modules/path-type/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cpy/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cpy/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "devOptional": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "devOptional": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "devOptional": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "engines": { - "node": "*" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "devOptional": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" - }, - "node_modules/css-box-model": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "dependencies": { - "tiny-invariant": "^1.0.6" - } - }, - "node_modules/css-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", - "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/css-loader/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/css-loader/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/css-loader/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-unit-converter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", - "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==" - }, - "node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssfontparser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz", - "integrity": "sha1-9AIvyPlwDGgCnVQghK+69CWj8+M=", - "dev": true - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/csstype": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", - "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "devOptional": true - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", - "dependencies": { - "internmap": "^1.0.0" - } - }, - "node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" - }, - "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" - }, - "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", - "dependencies": { - "d3-color": "1 - 2" - } - }, - "node_modules/d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" - }, - "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", - "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" - } - }, - "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", - "dependencies": { - "d3-path": "1 - 2" - } - }, - "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", - "dependencies": { - "d3-array": "2" - } - }, - "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", - "dependencies": { - "d3-time": "1 - 2" - } - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/data-urls/node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/data-urls/node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/data-urls/node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/dayjs": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", - "integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==" - }, - "node_modules/debounce-promise": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/debounce-promise/-/debounce-promise-3.1.2.tgz", - "integrity": "sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/decode-named-character-reference/node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "devOptional": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deep-object-diff": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.7.tgz", - "integrity": "sha512-QkgBca0mL08P6HiOjoqvmm6xOAl2W6CT2+34Ljhg0OeFan8cwlcdq8jrLKsBBuUFAZLsN5b6y491KdKEoSo9lg==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "devOptional": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/dequal": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", - "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==", - "engines": { - "node": ">=6" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "devOptional": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "node_modules/detab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", - "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", - "dev": true, - "dependencies": { - "repeat-string": "^1.5.4" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" - }, - "node_modules/detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", - "dev": true, - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "dependencies": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - }, - "bin": { - "detective": "bin/detective.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", - "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "devOptional": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/dnd-core": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-14.0.0.tgz", - "integrity": "sha512-wTDYKyjSqWuYw3ZG0GJ7k+UIfzxTNoZLjDrut37PbcPGNfwhlKYlPUqjAKUjOOv80izshUiqusaKgJPItXSevA==", - "dependencies": { - "@react-dnd/asap": "^4.0.0", - "@react-dnd/invariant": "^2.0.0", - "redux": "^4.0.5" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.10.tgz", - "integrity": "sha512-Xu9mD0UjrJisTmv7lmVSDMagQcU9R5hwAbxsaAE/35XPnPLJobbuREfV/rraiSaEj/UOvgrzQs66zyTWTlyd+g==", - "dev": true - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "dependencies": { - "@babel/runtime": "^7.1.2" - } - }, - "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, - "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "node_modules/downshift": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.7.tgz", - "integrity": "sha512-cVprZg/9Lvj/uhYRxELzlu1aezRcgPWBjTvspiGTVEU64gF5pRdSRKFVLcxqsZC637cLAGMbL40JavEfWnqgNg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.14.8", - "compute-scroll-into-view": "^1.0.17", - "prop-types": "^15.7.2", - "react-is": "^17.0.2", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "react": ">=16.12.0" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "devOptional": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "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" - } - }, - "node_modules/duplexify/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "node_modules/duplexify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.96", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.96.tgz", - "integrity": "sha512-DPNjvNGPabv6FcyjzLAN4C0psN/GgD9rSGvMTuv81SeXG/EX3mCz0wiw9N1tUEnfQXYCJi3H8M0oFPRziZh7rw==" - }, - "node_modules/element-resize-detector": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.4.tgz", - "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==", - "dev": true, - "dependencies": { - "batch-processor": "1.0.0" - } - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "devOptional": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "devOptional": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/emotion-theming": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.3.0.tgz", - "integrity": "sha512-mXiD2Oj7N9b6+h/dC6oLf9hwxbtKHQjoIqtodEyL8CpkN4F3V4IK/BT4D0C7zSs4BBFOu4UlPJbvvBLa88SGEA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.5.5", - "@emotion/weak-memoize": "0.2.5", - "hoist-non-react-statics": "^3.3.0" - }, - "peerDependencies": { - "@emotion/core": "^10.0.27", - "react": ">=16.3.0" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "devOptional": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/endent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", - "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", - "dev": true, - "dependencies": { - "dedent": "^0.7.0", - "fast-json-parse": "^1.0.3", - "objectorarray": "^1.0.5" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "devOptional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "devOptional": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/enhanced-resolve/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "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" - } - }, - "node_modules/enhanced-resolve/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "node_modules/enhanced-resolve/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "devOptional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", - "dev": true, - "dependencies": { - "stackframe": "^1.1.1" - } - }, - "node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "node_modules/es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-get-iterator/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.61", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz", - "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es5-shim": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.6.5.tgz", - "integrity": "sha512-vfQ4UAai8szn0sAubCy97xnZ4sJVDD1gt/Grn736hg8D7540wemIb1YPrYZSTqlM2H69EQX1or4HU/tSwRTI3w==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-shim": { - "version": "0.35.6", - "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.6.tgz", - "integrity": "sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==", - "dev": true - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "devOptional": true, - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "devOptional": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "devOptional": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "devOptional": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-to-babel": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/estree-to-babel/-/estree-to-babel-3.2.1.tgz", - "integrity": "sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.1.6", - "@babel/types": "^7.2.0", - "c8": "^7.6.0" - }, - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "devOptional": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "devOptional": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "devOptional": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "devOptional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "devOptional": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expect": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz", - "integrity": "sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.4.0", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "node_modules/express/node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", - "dev": true, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/express/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "dependencies": { - "type": "^2.5.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", - "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "devOptional": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "devOptional": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "devOptional": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-equals": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.3.tgz", - "integrity": "sha512-0EMw4TTUxsMDpDkCg0rXor2gsg+npVrMIHbEhvD0HZyIhUX6AktC/yasm+qKwfyswd06Qy95ZKk8p2crTo0iPA==" - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-parse": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", - "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "devOptional": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fault": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", - "dev": true, - "dependencies": { - "format": "^0.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "devOptional": true - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/file-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/file-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/file-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/file-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/file-saver": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", - "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" - }, - "node_modules/file-system-cache": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz", - "integrity": "sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08=", - "dev": true, - "dependencies": { - "bluebird": "^3.3.5", - "fs-extra": "^0.30.0", - "ramda": "^0.21.0" - } - }, - "node_modules/file-system-cache/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/file-system-cache/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/file-system-cache/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "devOptional": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/flush-write-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "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" - } - }, - "node_modules/flush-write-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "node_modules/flush-write-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/follow-redirects": { - "version": "1.14.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", - "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", - "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/formik": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", - "integrity": "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==", - "funding": [ - { - "type": "individual", - "url": "https://opencollective.com/formik" - } - ], - "dependencies": { - "deepmerge": "^2.1.1", - "hoist-non-react-statics": "^3.3.0", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "react-fast-compare": "^2.0.1", - "tiny-warning": "^1.0.2", - "tslib": "^1.10.0" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/formik/node_modules/deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/formik/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", - "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "devOptional": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "devOptional": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/from2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "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" - } - }, - "node_modules/from2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "node_modules/from2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", - "dev": true - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "devOptional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "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" - } - }, - "node_modules/fs-write-stream-atomic/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "node_modules/fs-write-stream-atomic/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "devOptional": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz", - "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/fuse.js": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", - "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/generate-password": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/generate-password/-/generate-password-1.7.0.tgz", - "integrity": "sha512-WPCtlfy0jexf7W5IbwxGUgpIDvsZIohbI2DAq2Q6TSlKKis+G4GT9sxvPxrZUGL8kP6WUXMWNqYnxY6DDKAdFA==" - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/github-slugger": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", - "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==", - "dev": true - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "devOptional": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-promise": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", - "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", - "dev": true, - "dependencies": { - "@types/glob": "*" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "glob": "*" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", - "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "dependencies": { - "delegate": "^3.1.2" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "devOptional": true - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/handlebars/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", - "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=", - "dev": true, - "dependencies": { - "is-glob": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-glob/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "devOptional": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "devOptional": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "devOptional": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "devOptional": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hast-to-hyperscript": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", - "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.3", - "comma-separated-tokens": "^1.0.0", - "property-information": "^5.3.0", - "space-separated-tokens": "^1.0.0", - "style-to-object": "^0.3.0", - "unist-util-is": "^4.0.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", - "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", - "dev": true, - "dependencies": { - "@types/parse5": "^5.0.0", - "hastscript": "^6.0.0", - "property-information": "^5.0.0", - "vfile": "^4.0.0", - "vfile-location": "^3.2.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/@types/parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==", - "dev": true - }, - "node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", - "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-from-parse5": "^6.0.0", - "hast-util-to-parse5": "^6.0.0", - "html-void-elements": "^1.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^3.0.0", - "vfile": "^4.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", - "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", - "dev": true, - "dependencies": { - "hast-to-hyperscript": "^9.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", - "integrity": "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "dev": true, - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/history": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/history/-/history-5.0.0.tgz", - "integrity": "sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.6" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "devOptional": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "dev": true, - "dependencies": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/html-void-elements": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/html-webpack-plugin": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", - "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", - "dev": true, - "dependencies": { - "@types/html-minifier-terser": "^5.0.0", - "@types/tapable": "^1.0.5", - "@types/webpack": "^4.41.8", - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.20", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" - }, - "engines": { - "node": ">=6.9" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "devOptional": true - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.14" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/icss-utils/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/icss-utils/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/icss-utils/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "devOptional": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "devOptional": true - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, - "node_modules/immutability-helper": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-3.1.1.tgz", - "integrity": "sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==" - }, - "node_modules/import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "dependencies": { - "import-from": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-from/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "devOptional": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "devOptional": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "devOptional": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" - }, - "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "devOptional": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dev": true, - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "devOptional": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "devOptional": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", - "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", - "dev": true, - "dependencies": { - "is-object": "^1.0.1", - "is-window": "^1.0.2" - } - }, - "node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "devOptional": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "devOptional": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-retry-allowed": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", - "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-window": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", - "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.0.tgz", - "integrity": "sha512-rgeP8yMlXeH4mfd9K/sQXZv1lvcS7xo379zntcotPDdMwkcGYwMxGHGZYo0/+YW5B/nor2YGKz2BH5ume405ow==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/iterate-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz", - "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/iterate-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", - "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", - "dev": true, - "dependencies": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/jest": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.2.tgz", - "integrity": "sha512-TAReynFYCfHNcrL+8Z74WPGafLFLF++bGkrpcsk6cO5G9S2VuJGhu2c44YFForMgF0GlYmtbpmeznkvZpNgTxg==", - "dev": true, - "dependencies": { - "@jest/core": "^27.4.2", - "import-local": "^3.0.2", - "jest-cli": "^27.4.2" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-canvas-mock": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/jest-canvas-mock/-/jest-canvas-mock-2.3.1.tgz", - "integrity": "sha512-5FnSZPrX3Q2ZfsbYNE3wqKR3+XorN8qFzDzB5o0golWgt6EOX1+emBnpOc9IAQ+NXFj8Nzm3h7ZdE/9H0ylBcg==", - "dev": true, - "dependencies": { - "cssfontparser": "^1.2.1", - "moo-color": "^1.0.2" - } - }, - "node_modules/jest-changed-files": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz", - "integrity": "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.2.tgz", - "integrity": "sha512-2ePUSru1BGMyzxsMvRfu+tNb+PW60rUyMLJBfw1Nrh5zC8RoTPfF+zbE0JToU31a6ZVe4nnrNKWYRzlghAbL0A==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.2.tgz", - "integrity": "sha512-2vKqelsfHPnIzrPTpE9hImqxZLp5l9Vszpci19RdVB2i5OwoM+OkPExZMQb8aGrpEGXoKtlzvdqCL1GObiz8JQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.4.2", - "@jest/types": "^27.4.2", - "babel-jest": "^27.4.2", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.4.2", - "jest-environment-jsdom": "^27.4.2", - "jest-environment-node": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-jasmine2": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-runner": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", - "integrity": "sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.4.0", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-docblock": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz", - "integrity": "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.4.2.tgz", - "integrity": "sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.2.tgz", - "integrity": "sha512-L0dV4oq4+Ll7hZ8QCGvSELn8uOr938/QKOg6o70kMHiZOpWOjAqSf7fMVAtGhG/BVSvk1GTzhGJNOWsxtH5KbQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.2", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/jsdom": "^16.2.4", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-environment-jsdom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-environment-jsdom/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-environment-jsdom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.2.tgz", - "integrity": "sha512-nzTZ5nJ+FabuZPH2YVci7SZIHpvtNRHPt8+vipLkCnAgXGjVzHm7XJWdnNqXbAkExIgiKeVEkVMNZOZE/LeiIg==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.4.2", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-environment-node/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-environment-node/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-environment-node/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-node/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.2.tgz", - "integrity": "sha512-foiyAEePORUN2eeJnOtcM1y8qW0ShEd9kTjWVL4sVaMcuCJM6gtHegvYPBRT0mpI/bs4ueThM90+Eoj2ncoNsA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-haste-map/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-haste-map/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-haste-map/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-haste-map/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-haste-map/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-haste-map/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map/node_modules/jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-haste-map/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest-haste-map/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.2.tgz", - "integrity": "sha512-VO/fyAJSH9u0THjbteFiL8qc93ufU+yW+bdieDc8tzTCWwlWzO53UHS5nFK1qmE8izb5Smkn+XHlVt6/l06MKQ==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.4.2", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz", - "integrity": "sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw==", - "dev": true, - "dependencies": { - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz", - "integrity": "sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz", - "integrity": "sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util/node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.2.tgz", - "integrity": "sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.2.tgz", - "integrity": "sha512-d/zqPjxCzMqHlOdRTg8cTpO9jY+1/T74KazT8Ws/LwmwxV5sRMWOkiLjmzUCDj/5IqA5XHNK4Hkmlq9Kdpb9Sg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.2.tgz", - "integrity": "sha512-hb++cTpqvOWfU49MCP/JQkxmnrhKoAVqXWFjgYXswRSVGk8Q6bDTSvhbCeYXDtXaymY0y7WrrSIlKogClcKJuw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-snapshot": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-resolve-dependencies/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-resolve-dependencies/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.2.tgz", - "integrity": "sha512-YsgbYKk8V7J5BQPINXhdzNLoqIwUWrJkV9h6/ccsn6fbmC3n3ax1K5cDWzAU9qXyaQhetwFqPpHmAHIACscRKQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.4.0", - "jest-environment-jsdom": "^27.4.2", - "jest-environment-node": "^27.4.2", - "jest-haste-map": "^27.4.2", - "jest-leak-detector": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-runner/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.2.tgz", - "integrity": "sha512-eqPgcBaUNaw6j8T5M+dnfAEh6MIrh2YmtskCr9sl50QYpD22Sg+QqHw3J3nmaLzVMbBtOMHFFxLF0Qx8MsZVFQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.2", - "@jest/globals": "^27.4.2", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.0.tgz", - "integrity": "sha512-9HL5h/IWeg2u2dt0UIiseVRCnadh7CMPD4B9AeoEO23/NofaEfcPzIfl8dw45CpGHjP+xenw1viQYMd25DWquA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.0", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest/node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest/node_modules/jest-cli": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.2.tgz", - "integrity": "sha512-Ex2WhCj4s0XFntTKTnyLgV/CZKgQaZBYrKz02XOZ4nUjFD+26Fji/M1SgHm+2IWEIsQqoipNRx9RJH56p8d7MQ==", - "dev": true, - "dependencies": { - "@jest/core": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest/node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest/node_modules/jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/join-component": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", - "integrity": "sha1-uEF7dQZho5K+4sJTfGiyqdSXfNU=" - }, - "node_modules/js-string-escape": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsdom/node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jsdom/node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/jsdom/node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-logic-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/json-logic-js/-/json-logic-js-2.0.2.tgz", - "integrity": "sha512-ZBtBdMJieqQcH7IX/LaBsr5pX+Y5JIW+EhejtM3Ffg2jdN9Iwf+Ht6TbHnvAZ/YtwyuhPaCBlnvzrwVeWdvGDQ==" - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "devOptional": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "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==" - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/junk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", - "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/lazy-universal-dotenv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz", - "integrity": "sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.5.0", - "app-root-dir": "^1.0.2", - "core-js": "^3.0.4", - "dotenv": "^8.0.0", - "dotenv-expand": "^5.1.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=6.0.0", - "yarn": ">=1.0.0" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lilconfig": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", - "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" - }, - "node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "devOptional": true, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "devOptional": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "devOptional": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/localforage": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", - "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", - "dependencies": { - "lie": "3.1.1" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "node_modules/lodash.castarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", - "integrity": "sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU=" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lottie-react": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/lottie-react/-/lottie-react-2.2.1.tgz", - "integrity": "sha512-lAdIUw+zeHLX3gtyLkisa4QM9NkTUUeZTsEL53laBEsjIH4JibgwkioZuza8CtwZ7/cpPZRbCRXWKfiuaDZWww==", - "dependencies": { - "lottie-web": "^5.8.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0", - "react-dom": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/lottie-web": { - "version": "5.9.4", - "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.9.4.tgz", - "integrity": "sha512-bSs1ZTPifnBVejO1MnQHdfrKfcn02YTCmgOh2wcAEICqRA0V7GzDh8FnwXY6+EzT+i8XOunaIloo/5xC5YNbsA==" - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lowlight": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", - "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", - "dev": true, - "dependencies": { - "fault": "^1.0.0", - "highlight.js": "~10.7.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lz-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", - "dev": true, - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-or-similar": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", - "integrity": "sha1-beJlMXSt+12e3DPGnT6Sobdvrwg=", - "dev": true - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "devOptional": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "dependencies": { - "repeat-string": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/markdown-to-jsx": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.1.7.tgz", - "integrity": "sha512-VI3TyyHlGkO8uFle0IOibzpO1c1iJDcXcS/zBrQrXQQvJ2tpdwVzVZ7XdKsyRz1NdRmre4dqQkMZzUHaKIG/1w==", - "dev": true, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "react": ">= 0.14.0" - } - }, - "node_modules/md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "devOptional": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mdast-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", - "dev": true, - "dependencies": { - "unist-util-remove": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-definitions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", - "dev": true, - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", - "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown/node_modules/unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", - "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "mdast-util-definitions": "^4.0.0", - "mdurl": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", - "dev": true, - "dependencies": { - "fs-monkey": "1.0.3" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" - }, - "node_modules/memoizerific": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", - "integrity": "sha1-fIekZGREwy11Q4VwkF8tvRsagFo=", - "dev": true, - "dependencies": { - "map-or-similar": "^1.5.0" - } - }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "devOptional": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/memory-fs/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "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" - } - }, - "node_modules/memory-fs/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "node_modules/memory-fs/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", - "dev": true - }, - "node_modules/micromark": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", - "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", - "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/micromark/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "devOptional": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-svg-data-uri": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", - "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", - "bin": { - "mini-svg-data-uri": "cli.js" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "devOptional": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "devOptional": true - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "devOptional": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "devOptional": true, - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "devOptional": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mobx": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.3.3.tgz", - "integrity": "sha512-JoNU50rO6d1wHwKPJqKq4rmUMbYnI9CsJmBo+Cu4exBYenFvIN77LWrZENpzW6reZPADtXMmB1DicbDSfy8Clw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" - } - }, - "node_modules/mobx-react-lite": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.2.1.tgz", - "integrity": "sha512-hwURgfmP2apX3HQrB55V9DN47kuN3C6KlQvI5UIfJRibXma72C/JudcNt2r9dWjAdFMrcZoz1ivvtXMCkJ2aQA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mobx" - }, - "peerDependencies": { - "mobx": "^6.1.0", - "react": "^16.8.0 || ^17" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/monaco-editor": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.33.0.tgz", - "integrity": "sha512-VcRWPSLIUEgQJQIE0pVT8FcGBIgFoxz7jtqctE+IiCxWugD0DwgyQBcZBhdSrdMC84eumoqMZsGl2GTreOzwqw==", - "peer": true - }, - "node_modules/moo-color": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.2.tgz", - "integrity": "sha512-5iXz5n9LWQzx/C2WesGFfpE6RLamzdHwsn3KpfzShwbfIqs7stnoEpaNErf/7+3mbxwZ4s8Foq7I0tPxw7BWHg==", - "dev": true, - "dependencies": { - "color-name": "^1.1.4" - } - }, - "node_modules/moo-color/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "devOptional": true, - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "devOptional": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/move-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "devOptional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, - "optional": true - }, - "node_modules/nanoclone": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", - "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==" - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "devOptional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "devOptional": true - }, - "node_modules/nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", - "dev": true - }, - "node_modules/next": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/next/-/next-12.0.9.tgz", - "integrity": "sha512-omfYqoR/DvbdOIJ6SS1unKJ4mGIxUPs0RPa7wr/Mft22OCKgJhuG+aI9KFYi5ZJBwoFQk1vqaMKpWz5qr+dN0Q==", - "dependencies": { - "@next/env": "12.0.9", - "caniuse-lite": "^1.0.30001283", - "postcss": "8.4.5", - "styled-jsx": "5.0.0", - "use-subscription": "1.5.1" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=12.22.0" - }, - "optionalDependencies": { - "@next/swc-android-arm64": "12.0.9", - "@next/swc-darwin-arm64": "12.0.9", - "@next/swc-darwin-x64": "12.0.9", - "@next/swc-linux-arm-gnueabihf": "12.0.9", - "@next/swc-linux-arm64-gnu": "12.0.9", - "@next/swc-linux-arm64-musl": "12.0.9", - "@next/swc-linux-x64-gnu": "12.0.9", - "@next/swc-linux-x64-musl": "12.0.9", - "@next/swc-win32-arm64-msvc": "12.0.9", - "@next/swc-win32-ia32-msvc": "12.0.9", - "@next/swc-win32-x64-msvc": "12.0.9" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0", - "react": "^17.0.2 || ^18.0.0-0", - "react-dom": "^17.0.2 || ^18.0.0-0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/next-compose-plugins": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/next-compose-plugins/-/next-compose-plugins-2.2.1.tgz", - "integrity": "sha512-OjJ+fV15FXO2uQXQagLD4C0abYErBjyjE0I0FHpOEIB8upw0hg1ldFP6cqHTJBH1cZqy96OeR3u1dJ+Ez2D4Bg==" - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "dependencies": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/next/node_modules/styled-jsx": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz", - "integrity": "sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==", - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || 18.x.x" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-dir": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", - "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", - "dev": true, - "dependencies": { - "minimatch": "^3.0.2" - }, - "engines": { - "node": ">= 0.10.5" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "devOptional": true, - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "devOptional": true, - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/node-libs-browser/node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "devOptional": true - }, - "node_modules/node-libs-browser/node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "devOptional": true, - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "devOptional": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "devOptional": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/node-libs-browser/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "devOptional": true - }, - "node_modules/node-libs-browser/node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "devOptional": true - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "devOptional": true - }, - "node_modules/node-libs-browser/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "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" - } - }, - "node_modules/node-libs-browser/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "node_modules/node-libs-browser/node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "devOptional": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/node-libs-browser/node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "devOptional": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/node-libs-browser/node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "devOptional": true - }, - "node_modules/node-libs-browser/node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "devOptional": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "devOptional": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "devOptional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "devOptional": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "devOptional": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "devOptional": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/objectorarray": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz", - "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==", - "dev": true - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "devOptional": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openapi-types": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-9.3.0.tgz", - "integrity": "sha512-sR23YjmuwDSMsQVZDHbV9mPgi0RyniQlqR0AQxTC2/F3cpSjRFMH3CFPjoWvNqhC4OxPkDYNb2l8Mc1Me6D/KQ==" - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "devOptional": true - }, - "node_modules/overlayscrollbars": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz", - "integrity": "sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ==", - "dev": true - }, - "node_modules/p-all": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz", - "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==", - "dev": true, - "dependencies": { - "p-map": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-all/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "dev": true, - "dependencies": { - "p-timeout": "^3.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "dev": true, - "dependencies": { - "p-map": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-filter/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "devOptional": true - }, - "node_modules/papaparse": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.1.tgz", - "integrity": "sha512-Dbt2yjLJrCwH2sRqKFFJaN5XgIASO9YOFeFP8rIBRG2Ain8mqk5r1M6DkfvqEVozVcz3r3HaUGw253hA1nLIcA==" - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "devOptional": true, - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/parallel-transform/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "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" - } - }, - "node_modules/parallel-transform/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "node_modules/parallel-transform/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "devOptional": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dev": true, - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-numeric-range": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz", - "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "devOptional": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/pg": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.1.tgz", - "integrity": "sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.4.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "pg-native": ">=2.0.0" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" - }, - "node_modules/pg-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pg-format/-/pg-format-1.0.4.tgz", - "integrity": "sha1-J3NCNsKtP05QZJFaWTNOIAQKgo4=", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.4.1.tgz", - "integrity": "sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz", - "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", - "dependencies": { - "split2": "^3.1.1" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pnp-webpack-plugin": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", - "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", - "dev": true, - "dependencies": { - "ts-pnp": "^1.1.6" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/polished": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.1.4.tgz", - "integrity": "sha512-Nq5Mbza+Auo7N3sQb1QMFaQiDO+4UexWuSGR7Cjb4Sw11SZIJcrrFtiZ+L0jT9MBsUsxDboHVASbCLbE1rnECg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.16.7" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz", - "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.26" - } - }, - "node_modules/postcss-flexbugs-fixes/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-flexbugs-fixes/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-flexbugs-fixes/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.3.3" - } - }, - "node_modules/postcss-load-config": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", - "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", - "dependencies": { - "import-cwd": "^3.0.0", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": ">= 10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.3.0.tgz", - "integrity": "sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==", - "dev": true, - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.4" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/postcss-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/postcss-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/postcss-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/postcss-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/postcss-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/postcss-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-modules-extract-imports/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-modules-extract-imports/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", - "dev": true, - "dependencies": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-modules-local-by-default/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-modules-local-by-default/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-scope/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-modules-scope/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-modules-scope/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", - "dev": true, - "dependencies": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "node_modules/postcss-modules-values/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss-modules-values/node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss-modules-values/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "dependencies": { - "postcss-selector-parser": "^6.0.6" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "node_modules/pretty-format": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", - "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.4.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/prism-react-renderer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz", - "integrity": "sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg==", - "peerDependencies": { - "react": ">=0.14.9" - } - }, - "node_modules/prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "devOptional": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "devOptional": true - }, - "node_modules/promise.allsettled": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.5.tgz", - "integrity": "sha512-tVDqeZPoBC0SlzJHzWGZ2NKAguVq2oiYj7gbggbiTvH2itHohijTp7njOUA0aQ/nl+0lr/r6egmhoYu63UZ/pQ==", - "dev": true, - "dependencies": { - "array.prototype.map": "^1.0.4", - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "iterate-value": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/promise.prototype.finally": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.3.tgz", - "integrity": "sha512-EXRF3fC9/0gz4qkt/f5EP5iW4kj9oFpBICNpCNOb/52+8nlHIX07FPLbi/q4qYBQ1xZqivMzTpNQSnArVASolQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/property-expr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", - "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" - }, - "node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "dev": true, - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-compare": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.0.2.tgz", - "integrity": "sha512-3qUXJBariEj3eO90M3Rgqq3+/P5Efl0t/dl9g/1uVzIQmO3M+ql4hvNH3mYdu8H+1zcKv07YvL55tsY74jmH1A==" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "devOptional": true - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "devOptional": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "devOptional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "devOptional": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "devOptional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "devOptional": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/raf-schd": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", - "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" - }, - "node_modules/ramda": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", - "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "devOptional": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "devOptional": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", - "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/raw-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/raw-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/raw-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/raw-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/raw-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/raw-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-beautiful-dnd": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz", - "integrity": "sha512-aGvblPZTJowOWUNiwd6tNfEpgkX5OxmpqxHKNW/4VmvZTNTbeiq7bA3bn5T+QSF2uibXB0D1DmJsb1aC/+3cUA==", - "dependencies": { - "@babel/runtime": "^7.9.2", - "css-box-model": "^1.2.0", - "memoize-one": "^5.1.1", - "raf-schd": "^4.0.2", - "react-redux": "^7.2.0", - "redux": "^4.0.4", - "use-memo-one": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.5 || ^17.0.0", - "react-dom": "^16.8.5 || ^17.0.0" - } - }, - "node_modules/react-colorful": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.5.1.tgz", - "integrity": "sha512-M1TJH2X3RXEt12sWkpa6hLc/bbYS0H6F4rIqjQZ+RxNBstpY67d9TrFXtqdZwhpmBXcCwEi7stKqFue3ZRkiOg==", - "dev": true, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/react-contexify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/react-contexify/-/react-contexify-5.0.0.tgz", - "integrity": "sha512-2FIp7lxJ6dtfGr8EZ4uVV5p5TQjd0n2h/JU7PrejNIMiCeZWvSVPFh4lj1ZvjXosglBvP7q5JQQ8yUCdSaMSaw==", - "dependencies": { - "clsx": "^1.1.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">=16", - "react-dom": ">=16" - } - }, - "node_modules/react-csv": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/react-csv/-/react-csv-2.0.3.tgz", - "integrity": "sha512-exyAdFLAxtuM4wNwLYrlKyPYLiJ7e0mv9tqPAd3kq+k1CiJFtznevR3yP0icv5q/y200w+lzNgi7TQn1Wrhu0w==" - }, - "node_modules/react-datepicker": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.7.0.tgz", - "integrity": "sha512-FS8KgbwqpxmJBv/bUdA42MYqYZa+fEYcpc746DZiHvVE2nhjrW/dg7c5B5fIUuI8gZET6FOzuDgezNcj568Czw==", - "dependencies": { - "@popperjs/core": "^2.9.2", - "classnames": "^2.2.6", - "date-fns": "^2.24.0", - "prop-types": "^15.7.2", - "react-onclickoutside": "^6.12.0", - "react-popper": "^2.2.5" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17", - "react-dom": "^16.9.0 || ^17" - } - }, - "node_modules/react-dnd": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-14.0.3.tgz", - "integrity": "sha512-i73Hx5SKfDRdwXe30+CjF/DidiRdt/gwpPN14ajkPR20t/0osnNKFNHg3DLV6RZym+DJ0pO9H5APeMsBWGU3+Q==", - "dependencies": { - "@react-dnd/invariant": "^2.0.0", - "@react-dnd/shallowequal": "^2.0.0", - "dnd-core": "14.0.0", - "fast-deep-equal": "^3.1.3", - "hoist-non-react-statics": "^3.3.2" - }, - "peerDependencies": { - "@types/hoist-non-react-statics": ">= 3.3.1", - "@types/node": ">= 12", - "@types/react": ">= 16", - "react": ">= 16.14" - }, - "peerDependenciesMeta": { - "@types/hoist-non-react-statics": { - "optional": true - }, - "@types/node": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-dnd-html5-backend": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-14.0.1.tgz", - "integrity": "sha512-ZDmpvFpd1NR4riw/CMbr8C3mgP6ZhsTf0c48a36kw4ZW8emgiugNlAz/qhhZ4/Pz9TO6DZ63sQohUTTl+AWGiA==", - "dependencies": { - "dnd-core": "14.0.0" - } - }, - "node_modules/react-docgen": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.0.tgz", - "integrity": "sha512-JBjVQ9cahmNlfjMGxWUxJg919xBBKAoy3hgDgKERbR+BcF4ANpDuzWAScC7j27hZfd8sJNmMPOLWo9+vB/XJEQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@babel/generator": "^7.12.11", - "@babel/runtime": "^7.7.6", - "ast-types": "^0.14.2", - "commander": "^2.19.0", - "doctrine": "^3.0.0", - "estree-to-babel": "^3.1.0", - "neo-async": "^2.6.1", - "node-dir": "^0.1.10", - "strip-indent": "^3.0.0" - }, - "bin": { - "react-docgen": "bin/react-docgen.js" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/react-docgen-typescript": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz", - "integrity": "sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==", - "dev": true, - "peerDependencies": { - "typescript": ">= 4.3.x" - } - }, - "node_modules/react-docgen/node_modules/ast-types": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", - "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", - "dev": true, - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/react-docgen/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-draggable": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.4.tgz", - "integrity": "sha512-6e0WdcNLwpBx/YIDpoyd2Xb04PB0elrDrulKUgdrIlwuYvxh5Ok9M+F8cljm8kPXXs43PmMzek9RrB1b7mLMqA==", - "dependencies": { - "clsx": "^1.1.1", - "prop-types": "^15.6.0" - }, - "peerDependencies": { - "react": ">= 16.3.0", - "react-dom": ">= 16.3.0" - } - }, - "node_modules/react-element-to-jsx-string": { - "version": "14.3.4", - "resolved": "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-14.3.4.tgz", - "integrity": "sha512-t4ZwvV6vwNxzujDQ+37bspnLwA4JlgUPWhLjBJWsNIDceAf6ZKUTCjdm08cN6WeZ5pTMKiCJkmAYnpmR4Bm+dg==", - "dev": true, - "dependencies": { - "@base2/pretty-print-object": "1.0.1", - "is-plain-object": "5.0.0", - "react-is": "17.0.2" - }, - "peerDependencies": { - "react": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1", - "react-dom": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1" - } - }, - "node_modules/react-element-to-jsx-string/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-fast-compare": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" - }, - "node_modules/react-from-dom": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.6.1.tgz", - "integrity": "sha512-7aAZx7LhRnmR51W5XtmTBYHGFl2n1AdEk1uoXLuzHa1OoGXrxOW/iwLcudvgp6BGX/l4Yh1rtMrIzvhlvbVddg==", - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/react-grid-layout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.3.0.tgz", - "integrity": "sha512-WqFwybAItXu0AaSt9YL8+9xE5YotIzMcCYE0Q9XBqSKNyShTxPbC0LjObV/tOWZoADNWJ+osseVfRoZsjzwWXg==", - "dependencies": { - "classnames": "2.3.1", - "lodash.isequal": "^4.0.0", - "prop-types": "^15.0.0", - "react-draggable": "^4.0.0", - "react-resizable": "^3.0.4" - }, - "peerDependencies": { - "react": ">= 16.3.0", - "react-dom": ">= 16.3.0" - } - }, - "node_modules/react-grid-layout/node_modules/classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" - }, - "node_modules/react-helmet-async": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.2.3.tgz", - "integrity": "sha512-mCk2silF53Tq/YaYdkl2sB+/tDoPnaxN7dFS/6ZLJb/rhUY2EWGI5Xj2b4jHppScMqY45MbgPSwTxDchKpZ5Kw==", - "dev": true, - "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" - }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0", - "react-dom": "^16.6.0 || ^17.0.0" - } - }, - "node_modules/react-helmet-async/node_modules/react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", - "dev": true - }, - "node_modules/react-hot-toast": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.1.1.tgz", - "integrity": "sha512-Odrp4wue0fHh0pOfZt5H+9nWCMtqs3wdlFSzZPp7qsxfzmbE26QmGWIh6hG43CukiPeOjA8WQhBJU8JwtWvWbQ==", - "dependencies": { - "goober": "^2.0.35" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">=16", - "react-dom": ">=16" - } - }, - "node_modules/react-hot-toast/node_modules/csstype": { - "version": "2.6.18", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.18.tgz", - "integrity": "sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==", - "peer": true - }, - "node_modules/react-hot-toast/node_modules/goober": { - "version": "2.0.41", - "resolved": "https://registry.npmjs.org/goober/-/goober-2.0.41.tgz", - "integrity": "sha512-kwjegMT5018zWydhOQlQneCgCtrKJaPsru7TaBWmTYV0nsMeUrM6L6O8JmNYb9UbPMgWcmtf+9p4Y3oJabIH1A==", - "peerDependencies": { - "csstype": "^2.6.2" - } - }, - "node_modules/react-inlinesvg": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-2.3.0.tgz", - "integrity": "sha512-fEGOdDf4k4bcveArbEpj01pJcH8pOCKLxmSj2POFdGvEk5YK0NZVnH6BXpW/PzACHPRsuh1YKAhNZyFnD28oxg==", - "dependencies": { - "exenv": "^1.2.2", - "react-from-dom": "^0.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/react-inspector": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.1.1.tgz", - "integrity": "sha512-GURDaYzoLbW8pMGXwYPDBIv6nqei4kK7LPRZ9q9HCZF54wqXz/dnylBp/kfE9XmekBhHvLDdcYeyIwSrvtOiWg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.0.0", - "is-dom": "^1.0.0", - "prop-types": "^15.0.0" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "node_modules/react-markdown": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.3.tgz", - "integrity": "sha512-We36SfqaKoVNpN1QqsZwWSv/OZt5J15LNgTLWynwAN5b265hrQrsjMtlRNwUvS+YyR3yDM8HpTNc4pK9H/Gc0A==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/prop-types": "^15.0.0", - "@types/unist": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "prop-types": "^15.0.0", - "property-information": "^6.0.0", - "react-is": "^18.0.0", - "remark-parse": "^10.0.0", - "remark-rehype": "^10.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.3.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/react-markdown/node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/react-markdown/node_modules/comma-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz", - "integrity": "sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/react-markdown/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/react-markdown/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-markdown/node_modules/property-information": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz", - "integrity": "sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/react-markdown/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/react-markdown/node_modules/remark-parse": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", - "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/react-markdown/node_modules/space-separated-tokens": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", - "integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/react-markdown/node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/react-markdown/node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/react-markdown/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/react-markdown/node_modules/unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/react-markdown/node_modules/unist-util-visit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz", - "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/react-markdown/node_modules/unist-util-visit-parents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", - "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/react-markdown/node_modules/vfile": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.4.tgz", - "integrity": "sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/react-markdown/node_modules/vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/react-onclickoutside": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.1.tgz", - "integrity": "sha512-a5Q7CkWznBRUWPmocCvE8b6lEYw1s6+opp/60dCunhO+G6E4tDTO2Sd2jKE+leEnnrLAE2Wj5DlDHNqj5wPv1Q==", - "funding": { - "type": "individual", - "url": "https://github.com/Pomax/react-onclickoutside/blob/master/FUNDING.md" - }, - "peerDependencies": { - "react": "^15.5.x || ^16.x || ^17.x", - "react-dom": "^15.5.x || ^16.x || ^17.x" - } - }, - "node_modules/react-popper": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz", - "integrity": "sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==", - "dependencies": { - "react-fast-compare": "^3.0.1", - "warning": "^4.0.2" - }, - "peerDependencies": { - "@popperjs/core": "^2.0.0", - "react": "^16.8.0 || ^17" - } - }, - "node_modules/react-popper-tooltip": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz", - "integrity": "sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "@popperjs/core": "^2.5.4", - "react-popper": "^2.2.4" - }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0", - "react-dom": "^16.6.0 || ^17.0.0" - } - }, - "node_modules/react-popper/node_modules/react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" - }, - "node_modules/react-redux": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.6.tgz", - "integrity": "sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ==", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - }, - "peerDependencies": { - "react": "^16.8.3 || ^17" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.4.4.tgz", - "integrity": "sha512-EyC5ohYhaeKbThMSQxuN2i+QC5HqV3AJvNZKEdiATITexu0gHm00+5ko0ltNS1ajYJVeDgVG2baRSCei0AUWlQ==", - "dependencies": { - "react-remove-scroll-bar": "^2.1.0", - "react-style-singleton": "^2.1.0", - "tslib": "^1.0.0", - "use-callback-ref": "^1.2.3", - "use-sidecar": "^1.0.1" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.2.0.tgz", - "integrity": "sha512-UU9ZBP1wdMR8qoUs7owiVcpaPwsQxUDC2lypP6mmixaGlARZa7ZIBx1jcuObLdhMOvCsnZcvetOho0wzPa9PYg==", - "dependencies": { - "react-style-singleton": "^2.1.0", - "tslib": "^1.0.0" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0", - "react": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/react-remove-scroll/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/react-resizable": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-resizable/-/react-resizable-3.0.4.tgz", - "integrity": "sha512-StnwmiESiamNzdRHbSSvA65b0ZQJ7eVQpPusrSmcpyGKzC0gojhtO62xxH6YOBmepk9dQTBi9yxidL3W4s3EBA==", - "dependencies": { - "prop-types": "15.x", - "react-draggable": "^4.0.3" - }, - "peerDependencies": { - "react": ">= 16.3" - } - }, - "node_modules/react-resize-detector": { - "version": "6.7.6", - "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-6.7.6.tgz", - "integrity": "sha512-/6RZlul1yePSoYJxWxmmgjO320moeLC/khrwpEVIL+D2EjLKhqOwzFv+H8laMbImVj7Zu4FlMa0oA7au3/ChjQ==", - "dependencies": { - "@types/resize-observer-browser": "^0.1.6", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0", - "react-dom": "^16.0.0 || ^17.0.0" - } - }, - "node_modules/react-router": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.2.2.tgz", - "integrity": "sha512-/MbxyLzd7Q7amp4gDOGaYvXwhEojkJD5BtExkuKmj39VEE0m3l/zipf6h2WIB2jyAO0lI6NGETh4RDcktRm4AQ==", - "dev": true, - "dependencies": { - "history": "^5.2.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.2.2.tgz", - "integrity": "sha512-AtYEsAST7bDD4dLSQHDnk/qxWLJdad5t1HFa1qJyUrCeGgEuCSw0VB/27ARbF9Fi/W5598ujvJOm3ujUCVzuYQ==", - "dev": true, - "dependencies": { - "history": "^5.2.0", - "react-router": "6.2.2" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-router-dom/node_modules/history": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", - "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.6" - } - }, - "node_modules/react-router/node_modules/history": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", - "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.6" - } - }, - "node_modules/react-sizeme": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-3.0.2.tgz", - "integrity": "sha512-xOIAOqqSSmKlKFJLO3inBQBdymzDuXx4iuwkNcJmC96jeiOg5ojByvL+g3MW9LPEsojLbC6pf68zOfobK8IPlw==", - "dev": true, - "dependencies": { - "element-resize-detector": "^1.2.2", - "invariant": "^2.2.4", - "shallowequal": "^1.1.0", - "throttle-debounce": "^3.0.1" - } - }, - "node_modules/react-smooth": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.0.tgz", - "integrity": "sha512-wK4dBBR6P21otowgMT9toZk+GngMplGS1O5gk+2WSiHEXIrQgDvhR5IIlT74Vtu//qpTcipkgo21dD7a7AUNxw==", - "dependencies": { - "fast-equals": "^2.0.0", - "raf": "^3.4.0", - "react-transition-group": "2.9.0" - }, - "peerDependencies": { - "prop-types": "^15.6.0", - "react": "^15.0.0 || ^16.0.0 || ^17.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/react-split": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/react-split/-/react-split-2.0.13.tgz", - "integrity": "sha512-suq/UH4epMu2aF4NBh+imlpUvntsIvU3li9EBBLdxqNtYEg+nY7TGl8Ij65mD1qYyhs3dQhA1Pv3rLXd1s5/lQ==", - "dependencies": { - "prop-types": "^15.5.7", - "split.js": "^1.6.0" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-style-singleton": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.1.1.tgz", - "integrity": "sha512-jNRp07Jza6CBqdRKNgGhT3u9umWvils1xsuMOjZlghBDH2MU0PL2WZor4PGYjXpnRCa9DQSlHMs/xnABWOwYbA==", - "dependencies": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^1.0.0" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0", - "react": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-style-singleton/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/react-syntax-highlighter": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.3.tgz", - "integrity": "sha512-crPaF+QGPeHNIblxxCdf2Lg936NAHKhNhuMzRL3F9ct6aYXL3NcZtCL0Rms9+qVo6Y1EQLdXGypBNSbPL/r+qg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.3.1", - "highlight.js": "^10.1.1", - "lowlight": "^1.14.0", - "prismjs": "^1.21.0", - "refractor": "^3.1.0" - }, - "peerDependencies": { - "react": ">= 0.14.0" - } - }, - "node_modules/react-textarea-autosize": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.3.tgz", - "integrity": "sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.10.2", - "use-composed-ref": "^1.0.0", - "use-latest": "^1.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/react-tracked": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/react-tracked/-/react-tracked-1.7.5.tgz", - "integrity": "sha512-RSlYpSZ5vGe09crxwZRQUZeTGkNOL529KLpGwwTysoBGuJOW4V8nECn0aP7+gcvEovd9VJN/pgrf9axbvZawog==", - "dependencies": { - "proxy-compare": "2.0.2", - "use-context-selector": "1.3.9" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": "*", - "react-native": "*", - "scheduler": ">=0.19.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-tracked/node_modules/use-context-selector": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/use-context-selector/-/use-context-selector-1.3.9.tgz", - "integrity": "sha512-YgzRyeFjoJXwFn2qLVAuIbV6EQ8DOuzu3SS/eiCxyAyvBhcn02jYSz8c5v22QQU3LW6Ez/Iyo62kKvS7Kdqt3A==", - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": "*", - "react-native": "*", - "scheduler": ">=0.19.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", - "dependencies": { - "dom-helpers": "^3.4.0", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": ">=15.0.0", - "react-dom": ">=15.0.0" - } - }, - "node_modules/react-virtualized-auto-sizer": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz", - "integrity": "sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==", - "engines": { - "node": ">8.0.0" - }, - "peerDependencies": { - "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0", - "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0" - } - }, - "node_modules/react-window": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.6.tgz", - "integrity": "sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==", - "dependencies": { - "@babel/runtime": "^7.0.0", - "memoize-one": ">=3.1.1 <6" - }, - "engines": { - "node": ">8.0.0" - }, - "peerDependencies": { - "react": "^15.0.0 || ^16.0.0 || ^17.0.0", - "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/react-window-infinite-loader": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/react-window-infinite-loader/-/react-window-infinite-loader-1.0.7.tgz", - "integrity": "sha512-wg3LWkUpG21lhv+cZvNy+p0+vtclZw+9nP2vO6T9PKT50EN1cUq37Dq6FzcM38h/c2domE0gsUhb6jHXtGogAA==", - "engines": { - "node": ">8.0.0" - }, - "peerDependencies": { - "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0", - "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recharts": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.1.6.tgz", - "integrity": "sha512-KnRNnCum1hL27DYhUfcdcKUEQkYnda6G+KDN4n/nCiTKp7UzJSgHfFHQvCkBujPi/U98dGd430DA2/8RJpkPlg==", - "dependencies": { - "@types/d3-interpolate": "^2.0.0", - "@types/d3-scale": "^3.0.0", - "@types/d3-shape": "^2.0.0", - "classnames": "^2.2.5", - "d3-interpolate": "^2.0.0", - "d3-scale": "^3.0.0", - "d3-shape": "^2.0.0", - "eventemitter3": "^4.0.1", - "lodash": "^4.17.19", - "react-is": "^16.10.2", - "react-resize-detector": "^6.6.3", - "react-smooth": "^2.0.0", - "recharts-scale": "^0.4.4", - "reduce-css-calc": "^2.1.8" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0", - "react-dom": "^16.0.0 || ^17.0.0" - } - }, - "node_modules/recharts-scale": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", - "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", - "dependencies": { - "decimal.js-light": "^2.4.1" - } - }, - "node_modules/recharts/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/reduce-css-calc": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", - "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", - "dependencies": { - "css-unit-converter": "^1.1.1", - "postcss-value-parser": "^3.3.0" - } - }, - "node_modules/reduce-css-calc/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "node_modules/redux": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.1.tgz", - "integrity": "sha512-hZQZdDEM25UY2P493kPYuKqviVwZ58lEmGQNeQ+gXa+U0gYPUBf7NKYazbe3m+bs/DzM/ahN12DbF+NG8i0CWw==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/refractor": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", - "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", - "dev": true, - "dependencies": { - "hastscript": "^6.0.0", - "parse-entities": "^2.0.0", - "prismjs": "~1.27.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "devOptional": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remark-external-links": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz", - "integrity": "sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==", - "dev": true, - "dependencies": { - "extend": "^3.0.0", - "is-absolute-url": "^3.0.0", - "mdast-util-definitions": "^4.0.0", - "space-separated-tokens": "^1.0.0", - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-footnotes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", - "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", - "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", - "dev": true, - "dependencies": { - "@babel/core": "7.12.9", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-syntax-jsx": "7.12.1", - "@mdx-js/util": "1.6.22", - "is-alphabetical": "1.0.4", - "remark-parse": "8.0.3", - "unified": "9.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx/node_modules/@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/remark-mdx/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/remark-mdx/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/remark-mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/remark-mdx/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remark-parse": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", - "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", - "dev": true, - "dependencies": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-rehype/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/remark-rehype/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/remark-rehype/node_modules/mdast-util-definitions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz", - "integrity": "sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/mdast-util-to-hast": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.1.2.tgz", - "integrity": "sha512-Wn6Mcj04qU4qUXHnHpPATYMH2Jd8RlntdnloDfYLe1ErWRHo6+pvSl/DzHp6sCZ9cBSYlc8Sk8pbwb8xtUoQhQ==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/mdurl": "^1.0.0", - "mdast-util-definitions": "^5.0.0", - "mdurl": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "trim-lines": "^3.0.0", - "unist-builder": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-rehype/node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-builder": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.0.tgz", - "integrity": "sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-generated": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", - "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-position": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", - "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-visit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz", - "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/unist-util-visit-parents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", - "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/vfile": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.4.tgz", - "integrity": "sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-slug": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-6.1.0.tgz", - "integrity": "sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==", - "dev": true, - "dependencies": { - "github-slugger": "^1.0.0", - "mdast-util-to-string": "^1.0.0", - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", - "dev": true, - "dependencies": { - "mdast-squeeze-paragraphs": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "node_modules/remove-trailing-slash": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", - "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==" - }, - "node_modules/renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", - "dev": true, - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - } - }, - "node_modules/renderkid/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/renderkid/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "devOptional": true - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "devOptional": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "devOptional": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true, - "engines": { - "node": "6.* || >= 7.*" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "devOptional": true, - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "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" - } - ] - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "devOptional": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true - }, - "node_modules/sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", - "dev": true, - "dependencies": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "bin": { - "sane": "src/cli.js" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sane/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/sane/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/sane/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/sane/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/sass": { - "version": "1.43.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz", - "integrity": "sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==", - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/send/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==", - "dev": true - }, - "node_modules/send/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/send/node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-favicon": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", - "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", - "dev": true, - "dependencies": { - "etag": "~1.8.1", - "fresh": "0.5.2", - "ms": "2.1.1", - "parseurl": "~1.3.2", - "safe-buffer": "5.1.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-favicon/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/serve-favicon/node_modules/safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - }, - "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "devOptional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "devOptional": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "devOptional": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" - }, - "node_modules/sirv": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.18.tgz", - "integrity": "sha512-f2AOPogZmXgJ9Ma2M22ZEhc1dNtRIzcEkiflMFeVTRq+OViOZMvH1IPMVOwrKaxpSaHioBJiDR0SluRqGa7atA==", - "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mime": "^2.3.1", - "totalist": "^1.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "devOptional": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "devOptional": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "devOptional": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "devOptional": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "devOptional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "devOptional": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "devOptional": true - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "devOptional": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "devOptional": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "devOptional": true - }, - "node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "devOptional": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split.js": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/split.js/-/split.js-1.6.4.tgz", - "integrity": "sha512-kYmQZprRJrF1IOjg/E+gdBEsKFv5kbgUE6RJVJZvrIzTOK/IHzKSqIeiJnWs7IP5D9TnpTQ2CbanuDuIWcyDUQ==" - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/sqlstring": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz", - "integrity": "sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==", - "dev": true - }, - "node_modules/state-local": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", - "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" - }, - "node_modules/state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "devOptional": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "devOptional": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "devOptional": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/store2": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.13.2.tgz", - "integrity": "sha512-CMtO2Uneg3SAz/d6fZ/6qbqqQHi2ynq6/KzMD/26gTkiEShCcpqFfTHgOxsE0egAq6SX3FmN4CeSqn8BzXQkJg==", - "dev": true - }, - "node_modules/storybook-dark-mode": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/storybook-dark-mode/-/storybook-dark-mode-1.0.9.tgz", - "integrity": "sha512-ITPXM2OSaga1zM5blpZy5HxMWAhrAqYi9aJtLgRtSdgoRrxVNAInDRD14TjmObdgLHNWxINoNbnEB+sKETa+iw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.0.0", - "memoizerific": "^1.11.3" - }, - "peerDependencies": { - "@storybook/addons": "^6.0.0", - "@storybook/api": "^6.0.0", - "@storybook/components": "^6.0.0", - "@storybook/core-events": "^6.0.0", - "@storybook/theming": "^6.0.0" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "devOptional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "devOptional": true - }, - "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==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.padstart": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.3.tgz", - "integrity": "sha512-NZydyOMtYxpTjGqp0VN5PYUF/tsU15yDMZnUdj16qRUIUiMJkHHSDElYyQFrMu+/WloTpA7MQSiADhBicDfaoA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/style-loader": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", - "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.7.0" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/style-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/style-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/swr": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/swr/-/swr-1.2.1.tgz", - "integrity": "sha512-1cuWXqJqXcFwbgONGCY4PHZ8v05009JdHsC3CIC6u7d00kgbMswNr1sHnnhseOBxtzVqcCNpOHEgVDciRer45w==", - "peerDependencies": { - "react": "^16.11.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "node_modules/symbol.prototype.description": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.5.tgz", - "integrity": "sha512-x738iXRYsrAt9WBhRCVG5BtIC3B7CUkFwbHW2zOvGtwM33s7JjrCDyq8V0zgMYVb5ymsL8+qkzzpANH63CPQaQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-symbol-description": "^1.0.0", - "has-symbols": "^1.0.2", - "object.getownpropertydescriptors": "^2.1.2" - }, - "engines": { - "node": ">= 0.11.15" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/synchronous-promise": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.15.tgz", - "integrity": "sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg==", - "dev": true - }, - "node_modules/tailwindcss": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", - "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", - "dependencies": { - "arg": "^5.0.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss": "^8.4.6", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "autoprefixer": "^10.0.2", - "postcss": "^8.0.9" - } - }, - "node_modules/tailwindcss-radix": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tailwindcss-radix/-/tailwindcss-radix-1.6.0.tgz", - "integrity": "sha512-5oBgGCVGsITMiUVlc6Euj4kt03l8htLJxVT9AXbkFxcJiXLtQxJriFq/8R+3s63OKit/ynCVdkqvlnW6H7iG1g==" - }, - "node_modules/tailwindcss/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/tailwindcss/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/tailwindcss/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tailwindcss/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/tailwindcss/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/tailwindcss/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tailwindcss/node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tailwindcss/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/tailwindcss/node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/telejson": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.3.3.tgz", - "integrity": "sha512-PjqkJZpzEggA9TBpVtJi1LVptP7tYtXB6rEubwlHap76AMjzvOdKX41CxyaW7ahhzDU1aftXnMCx5kAPDZTQBA==", - "dev": true, - "dependencies": { - "@types/is-function": "^1.0.0", - "global": "^4.4.0", - "is-function": "^1.0.2", - "is-regex": "^1.1.2", - "is-symbol": "^1.0.3", - "isobject": "^4.0.0", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3" - } - }, - "node_modules/telejson/node_modules/isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", - "devOptional": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", - "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", - "dev": true, - "dependencies": { - "cacache": "^15.0.5", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.5.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.3.4", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "devOptional": true - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "node_modules/throttle-debounce": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", - "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "devOptional": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "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" - } - }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "devOptional": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, - "node_modules/tiny-invariant": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", - "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "devOptional": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "devOptional": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=", - "dev": true - }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" - }, - "node_modules/totalist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", - "dev": true - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trim-trailing-lines": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", - "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-dedent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", - "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", - "dev": true, - "engines": { - "node": ">=6.10" - } - }, - "node_modules/ts-jest": { - "version": "27.0.7", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.7.tgz", - "integrity": "sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@types/jest": "^27.0.0", - "babel-jest": ">=27.0.0 <28", - "jest": "^27.0.0", - "typescript": ">=3.8 <5.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@types/jest": { - "optional": true - }, - "babel-jest": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-pnp": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", - "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "devOptional": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.4.tgz", - "integrity": "sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uglify-js": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", - "integrity": "sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==", - "dev": true, - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unfetch": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", - "dev": true - }, - "node_modules/unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "dev": true, - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/uniforms": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/uniforms/-/uniforms-3.6.2.tgz", - "integrity": "sha512-3mPd7xRkL5MHdV18z/+xYDayCMr4Ed675FFOQG7bPWQ1sHXMoM3YGhx/rz3h8sqWKyOetbPeQKiHnCSWq1AxgQ==", - "dependencies": { - "invariant": "^2.0.0", - "lodash": "^4.0.0", - "tslib": "^2.2.0" - }, - "funding": { - "url": "https://github.com/vazco/uniforms?sponsor=1" - }, - "peerDependencies": { - "react": "^17.0.0 || ^16.8.0" - } - }, - "node_modules/uniforms-bootstrap4": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/uniforms-bootstrap4/-/uniforms-bootstrap4-3.6.2.tgz", - "integrity": "sha512-rdQClzTs171OLV/cxT5Ggl5fhx0cteVrOWVs6Jgbk3Wl1LUMBrZCynwz5TLVvM+Ayj7F47/DjoKYREF/HOE/5Q==", - "dependencies": { - "classnames": "^2.0.0", - "invariant": "^2.0.0", - "lodash": "^4.0.0", - "tslib": "^2.2.0", - "uniforms": "^3.6.2", - "warning": "^4.0.0" - }, - "funding": { - "url": "https://github.com/vazco/uniforms?sponsor=1" - }, - "peerDependencies": { - "react": "^17.0.0 || ^16.8.0" - } - }, - "node_modules/uniforms-bridge-json-schema": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/uniforms-bridge-json-schema/-/uniforms-bridge-json-schema-3.6.2.tgz", - "integrity": "sha512-NI9qfFpImxsljw+k17D/QEAQwKlQHVtJlTVRlcMI00pHf3bx+3Kg2E3f/b5OLHKiM0eK3xF1hldBU0zpopuw3g==", - "dependencies": { - "invariant": "^2.0.0", - "lodash": "^4.0.0", - "tslib": "^2.2.0", - "uniforms": "^3.6.2" - }, - "funding": { - "url": "https://github.com/vazco/uniforms?sponsor=1" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "devOptional": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/union-value/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "devOptional": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "devOptional": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unist-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", - "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-generated": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", - "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", - "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", - "dev": true, - "dependencies": { - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", - "dev": true, - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "devOptional": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "devOptional": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "devOptional": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "devOptional": true - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "devOptional": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "file-loader": "*", - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "file-loader": { - "optional": true - } - } - }, - "node_modules/url-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/url-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/url-loader/node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/url-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/url-loader/node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "devOptional": true - }, - "node_modules/url/node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "devOptional": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/use-callback-ref": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.5.tgz", - "integrity": "sha512-gN3vgMISAgacF7sqsLPByqoePooY3n2emTH59Ur5d/M8eg4WTWu1xp8i8DHjohftIyEx0S08RiYxbffr4j8Peg==", - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0", - "react": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-composed-ref": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.2.1.tgz", - "integrity": "sha512-6+X1FLlIcjvFMAeAD/hcxDT8tmyrWnbSPMU0EnxQuDLIxokuFzWliXBiYZuGIx+mrAMLBw0WFfCkaPw8ebzAhw==", - "dev": true, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/use-isomorphic-layout-effect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz", - "integrity": "sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ==", - "dev": true, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-latest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.0.tgz", - "integrity": "sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==", - "dev": true, - "dependencies": { - "use-isomorphic-layout-effect": "^1.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-memo-one": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz", - "integrity": "sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/use-sidecar": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.5.tgz", - "integrity": "sha512-k9jnrjYNwN6xYLj1iaGhonDghfvmeTmYjAiGvOr7clwKfPjMXJf4/HOr7oT5tJwYafgp2tG2l3eZEOfoELiMcA==", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=8.5.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/use-sidecar/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/use-subscription": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", - "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", - "dependencies": { - "object-assign": "^4.1.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", - "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/uuid-browser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid-browser/-/uuid-browser-3.1.0.tgz", - "integrity": "sha1-DwWkCu90+eWVHiDvv0SxGHHlZBA=", - "dev": true - }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uvu/node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "devOptional": true - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", - "dev": true, - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "optional": true, - "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" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, - "node_modules/watchpack-chokidar2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "devOptional": true, - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - }, - "webpack-command": { - "optional": true - } - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.3.0.tgz", - "integrity": "sha512-J3TPm54bPARx6QG8z4cKBszahnUglcv70+N+8gUqv2I5KOFHJbzBiLx+pAp606so0X004fxM7hqRu10MLjJifA==", - "dependencies": { - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", - "commander": "^6.2.0", - "gzip-size": "^6.0.0", - "lodash": "^4.17.20", - "opener": "^1.5.2", - "sirv": "^1.0.7", - "ws": "^7.3.1" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", - "dev": true, - "dependencies": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/webpack-filter-warnings-plugin": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/webpack-filter-warnings-plugin/-/webpack-filter-warnings-plugin-1.2.1.tgz", - "integrity": "sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg==", - "dev": true, - "engines": { - "node": ">= 4.3 < 5.0.0 || >= 5.10" - }, - "peerDependencies": { - "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/webpack-hot-middleware": { - "version": "2.25.1", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.1.tgz", - "integrity": "sha512-Koh0KyU/RPYwel/khxbsDz9ibDivmUbrRuKSSQvW42KSDdO4w23WI3SkHpSUKHE76LrFnnM/L7JCrpBwu8AXYw==", - "dev": true, - "dependencies": { - "ansi-html-community": "0.0.8", - "html-entities": "^2.1.0", - "querystring": "^0.2.0", - "strip-ansi": "^6.0.0" - } - }, - "node_modules/webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "dependencies": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-log/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "devOptional": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-virtual-modules": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz", - "integrity": "sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==", - "dev": true, - "dependencies": { - "debug": "^3.0.0" - } - }, - "node_modules/webpack-virtual-modules/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/webpack-virtual-modules/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==", - "dev": true - }, - "node_modules/webpack/node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "devOptional": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "devOptional": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "devOptional": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "devOptional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "devOptional": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/webpack/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "devOptional": true - }, - "node_modules/webpack/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "devOptional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "devOptional": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "devOptional": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "devOptional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "devOptional": true - }, - "node_modules/webpack/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "devOptional": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "devOptional": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/webpack/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "devOptional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "devOptional": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "devOptional": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/webpack/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "devOptional": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/webpack/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "devOptional": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "devOptional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "devOptional": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "devOptional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "devOptional": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/webpack/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "devOptional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/webpack/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "devOptional": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/webpack/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "devOptional": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "devOptional": true, - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "node_modules/webpack/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "devOptional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "devOptional": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/webpack/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "devOptional": true - }, - "node_modules/webpack/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "devOptional": true - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "devOptional": true, - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/worker-rpc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", - "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", - "dev": true, - "dependencies": { - "microevent.ts": "~0.1.1" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "devOptional": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yup": { - "version": "0.32.11", - "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz", - "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==", - "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/lodash": "^4.14.175", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "nanoclone": "^0.2.1", - "property-expr": "^2.0.4", - "toposort": "^2.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/zxcvbn": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/zxcvbn/-/zxcvbn-4.4.2.tgz", - "integrity": "sha1-KOwXzwl0PtyrBW3dixsGJizHPDA=" - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" - } - }, - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/compat-data": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz", - "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==", - "dev": true - }, - "@babel/core": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.8.tgz", - "integrity": "sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.7", - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.8", - "@babel/parser": "^7.17.8", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", - "dev": true, - "requires": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz", - "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz", - "integrity": "sha512-SogLLSxXm2OkBbSsHZMM4tUi8fUzjs63AT/d0YQIzr6GSd8Hxsbk2KYDX0k0DweAzGMj/YWeiCsorIdtdcW8Eg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", - "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", - "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "dev": true, - "requires": { - "@babel/types": "^7.17.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "dev": true, - "requires": { - "@babel/types": "^7.17.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helpers": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.8.tgz", - "integrity": "sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==", - "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.8.tgz", - "integrity": "sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.8.tgz", - "integrity": "sha512-U69odN4Umyyx1xO1rTII0IDkAEC+RNlcKXtqOblfpzqy1C+aOplb76BQNq0+XdpVkOaPlpEDwd++joY8FNFJKA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/plugin-syntax-decorators": "^7.17.0", - "charcodes": "^0.2.0" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-default-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz", - "integrity": "sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-default-from": "^7.16.7" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", - "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-default-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz", - "integrity": "sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz", - "integrity": "sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz", - "integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", - "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-flow": "^7.16.7" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", - "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" - }, - "dependencies": { - "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", - "dev": true, - "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz", - "integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-typescript": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - } - } - }, - "@babel/preset-flow": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.7.tgz", - "integrity": "sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-flow-strip-types": "^7.16.7" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - } - }, - "@babel/preset-typescript": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz", - "integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.16.7" - } - }, - "@babel/register": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.17.7.tgz", - "integrity": "sha512-fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.5", - "source-map-support": "^0.5.16" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "@babel/runtime": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz", - "integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@base2/pretty-print-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz", - "integrity": "sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==", - "dev": true - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true - }, - "@emotion/cache": { - "version": "10.0.29", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", - "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", - "dev": true, - "requires": { - "@emotion/sheet": "0.9.4", - "@emotion/stylis": "0.8.5", - "@emotion/utils": "0.11.3", - "@emotion/weak-memoize": "0.2.5" - } - }, - "@emotion/core": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@emotion/core/-/core-10.3.1.tgz", - "integrity": "sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww==", - "dev": true, - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/cache": "^10.0.27", - "@emotion/css": "^10.0.27", - "@emotion/serialize": "^0.11.15", - "@emotion/sheet": "0.9.4", - "@emotion/utils": "0.11.3" - } - }, - "@emotion/css": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/@emotion/css/-/css-10.0.27.tgz", - "integrity": "sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw==", - "dev": true, - "requires": { - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3", - "babel-plugin-emotion": "^10.0.27" - } - }, - "@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", - "dev": true - }, - "@emotion/is-prop-valid": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", - "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "dev": true, - "requires": { - "@emotion/memoize": "0.7.4" - } - }, - "@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true - }, - "@emotion/serialize": { - "version": "0.11.16", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", - "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", - "dev": true, - "requires": { - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/unitless": "0.7.5", - "@emotion/utils": "0.11.3", - "csstype": "^2.5.7" - }, - "dependencies": { - "csstype": { - "version": "2.6.20", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", - "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==", - "dev": true - } - } - }, - "@emotion/sheet": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", - "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==", - "dev": true - }, - "@emotion/styled": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-10.3.0.tgz", - "integrity": "sha512-GgcUpXBBEU5ido+/p/mCT2/Xx+Oqmp9JzQRuC+a4lYM4i4LBBn/dWvc0rQ19N9ObA8/T4NWMrPNe79kMBDJqoQ==", - "dev": true, - "requires": { - "@emotion/styled-base": "^10.3.0", - "babel-plugin-emotion": "^10.0.27" - } - }, - "@emotion/styled-base": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@emotion/styled-base/-/styled-base-10.3.0.tgz", - "integrity": "sha512-PBRqsVKR7QRNkmfH78hTSSwHWcwDpecH9W6heujWAcyp2wdz/64PP73s7fWS1dIPm8/Exc8JAzYS8dEWXjv60w==", - "dev": true, - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/is-prop-valid": "0.8.8", - "@emotion/serialize": "^0.11.15", - "@emotion/utils": "0.11.3" - } - }, - "@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==", - "dev": true - }, - "@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", - "dev": true - }, - "@emotion/utils": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==", - "dev": true - }, - "@emotion/weak-memoize": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==", - "dev": true - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "@headlessui/react": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.4.1.tgz", - "integrity": "sha512-gL6Ns5xQM57cZBzX6IVv6L7nsam8rDEpRhs5fg28SN64ikfmuuMgunc+Rw5C1cMScnvFM+cz32ueVrlSFEVlSg==", - "requires": {} - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.2.tgz", - "integrity": "sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.2", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/core": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.2.tgz", - "integrity": "sha512-0mPM61tDbu8yc9CMKH9bvV+g+17VUpdWQtU1x6P1gk4AKj8iywWi8zBmEIl7pTGjUtYA92CNc/LlBfKCioBOow==", - "dev": true, - "requires": { - "@jest/console": "^27.4.2", - "@jest/reporters": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.4.2", - "jest-config": "^27.4.2", - "jest-haste-map": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-resolve-dependencies": "^27.4.2", - "jest-runner": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "jest-watcher": "^27.4.2", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - } - }, - "jest-watcher": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.2.tgz", - "integrity": "sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg==", - "dev": true, - "requires": { - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.4.2", - "string-length": "^4.0.1" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/environment": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.2.tgz", - "integrity": "sha512-uSljKxh/rGlHlmhyeG4ZoVK9hOec+EPBkwTHkHKQ2EqDu5K+MaG9uJZ8o1CbRsSdZqSuhXvJCYhBWsORPPg6qw==", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2" - } - }, - "@jest/fake-timers": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.2.tgz", - "integrity": "sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/globals": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.2.tgz", - "integrity": "sha512-KkfaHEttlGpXYAQTZHgrESiEPx2q/DKAFLGLFda1uGVrqc17snd3YVPhOxlXOHIzVPs+lQ/SDB2EIvxyGzb3Ew==", - "dev": true, - "requires": { - "@jest/environment": "^27.4.2", - "@jest/types": "^27.4.2", - "expect": "^27.4.2" - } - }, - "@jest/reporters": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.2.tgz", - "integrity": "sha512-sp4aqmdBJtjKetEakzDPcZggPcVIF6w9QLkYBbaWDV6e/SIsHnF1S4KtIH91eEc2fp7ep6V/e1xvdfEoho1d2w==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", - "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@jest/test-result": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.2.tgz", - "integrity": "sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA==", - "dev": true, - "requires": { - "@jest/console": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.2.tgz", - "integrity": "sha512-HmHp5mlh9f9GyNej5yCS1JZIFfUGnP9+jEOH5zoq5EmsuZeYD+dGULqyvGDPtuzzbyAFJ6R4+z4SS0VvnFwwGQ==", - "dev": true, - "requires": { - "@jest/test-result": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-runtime": "^27.4.2" - } - }, - "@jest/transform": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.2.tgz", - "integrity": "sha512-RTKcPZllfcmLfnlxBya7aypofhdz05+E6QITe55Ex0rxyerkgjmmpMlvVn11V0cP719Ps6WcDYCnDzxnnJUwKg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@mdx-js/loader": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-1.6.22.tgz", - "integrity": "sha512-9CjGwy595NaxAYp0hF9B/A0lH6C8Rms97e2JS9d3jVUtILn6pT5i5IV965ra3lIWc7Rs1GG1tBdVF7dCowYe6Q==", - "dev": true, - "requires": { - "@mdx-js/mdx": "1.6.22", - "@mdx-js/react": "1.6.22", - "loader-utils": "2.0.0" - }, - "dependencies": { - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, - "@mdx-js/mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", - "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", - "dev": true, - "requires": { - "@babel/core": "7.12.9", - "@babel/plugin-syntax-jsx": "7.12.1", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "1.6.22", - "babel-plugin-apply-mdx-type-prop": "1.6.22", - "babel-plugin-extract-import-names": "1.6.22", - "camelcase-css": "2.0.1", - "detab": "2.0.4", - "hast-util-raw": "6.0.1", - "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "10.0.1", - "remark-footnotes": "2.0.0", - "remark-mdx": "1.6.22", - "remark-parse": "8.0.3", - "remark-squeeze-paragraphs": "4.0.0", - "style-to-object": "0.3.0", - "unified": "9.2.0", - "unist-builder": "2.0.3", - "unist-util-visit": "2.0.3" - }, - "dependencies": { - "@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@mdx-js/react": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", - "dev": true, - "requires": {} - }, - "@mdx-js/util": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", - "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", - "dev": true - }, - "@mertasan/tailwindcss-variables": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mertasan/tailwindcss-variables/-/tailwindcss-variables-2.2.1.tgz", - "integrity": "sha512-EyCEjpy+4eSpr7kAuysxZg5K2/dQctM0DJpciZsBxU3tvjGpR/wMdU2M0ZMVlaZyjb8k3PCjC0dCXgCS7fLiHA==", - "requires": { - "lodash": "^4.17.21" - } - }, - "@monaco-editor/loader": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.2.0.tgz", - "integrity": "sha512-cJVCG/T/KxXgzYnjKqyAgsKDbH9mGLjcXxN6AmwumBwa2rVFkwvGcUj1RJtD0ko4XqLqJxwqsN/Z/KURB5f1OQ==", - "requires": { - "state-local": "^1.0.6" - } - }, - "@monaco-editor/react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.3.1.tgz", - "integrity": "sha512-f+0BK1PP/W5I50hHHmwf11+Ea92E5H1VZXs+wvKplWUWOfyMa1VVwqkJrXjRvbcqHL+XdIGYWhWNdi4McEvnZg==", - "requires": { - "@monaco-editor/loader": "^1.2.0", - "prop-types": "^15.7.2" - } - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "dev": true, - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - }, - "dependencies": { - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", - "dev": true - } - } - }, - "@next/bundle-analyzer": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-12.0.4.tgz", - "integrity": "sha512-hl9SmruSHMMMjmcUXJYdP12HbencBOpuy4gHPpQLbRmfErUsY7ia+eF5Xt9vAkim7s6HKByoDg7cu6HJQzfpfg==", - "requires": { - "webpack-bundle-analyzer": "4.3.0" - } - }, - "@next/env": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/env/-/env-12.0.9.tgz", - "integrity": "sha512-oBlkyDop0Stf7MPIzETGv5r0YT/G/weBrknoPOUTaa5qwOeGjuy6gsOVc/SBtrBkOoBmRpD+fFhQJPvmo1mS+g==" - }, - "@next/swc-android-arm64": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.0.9.tgz", - "integrity": "sha512-aVqgsEn5plmUH2X58sjzhHsH/6majucWTMaaBEs7hHO2+GCwCZc7zaLH4XCBMKPES9Yaja8/pYUbvZQE9DqgFw==", - "optional": true - }, - "@next/swc-darwin-arm64": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.0.9.tgz", - "integrity": "sha512-uAgRKm4a2nVdyBiPPJokvmDD1saugOvxljz9ld2ih0CCg5S9vBhqaj3kPGCQBj9hSu3q+Lng2CHnQqG3ga1jzA==", - "optional": true - }, - "@next/swc-darwin-x64": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.0.9.tgz", - "integrity": "sha512-fDOs2lZIyrAdU18IxMA5orBPn9qLbOdu55gXSTNZOhyRJ8ugtbUAejsK7OL0boJy0CCHPAdVRXm01Mwk8tZ9RQ==", - "optional": true - }, - "@next/swc-linux-arm-gnueabihf": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.0.9.tgz", - "integrity": "sha512-/ni0p9DBvATUML9RQ1ycQuf05uOYKdzA6iI8+eRsARjpGbFVUFbge7XPzlj9g2Q9YWgoN8CSjFGnKRlyky5uHA==", - "optional": true - }, - "@next/swc-linux-arm64-gnu": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.0.9.tgz", - "integrity": "sha512-AphxilJDf95rUxJDHgM9Ww1DaYXZWqTvoKwXeej/0SgSvICcRZrLaFDrkojdXz0Rxr4igX2OdYR1S4/Hj1jWOQ==", - "optional": true - }, - "@next/swc-linux-arm64-musl": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.0.9.tgz", - "integrity": "sha512-K5jbvNNzF3mRjWmPdxP5Bg87i7FHivfBj/L0KJlxpkLSC8sffBJDmB6jtMnI7wiPj9J6vmLkbGtSosln78xAlQ==", - "optional": true - }, - "@next/swc-linux-x64-gnu": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.0.9.tgz", - "integrity": "sha512-bJZ9bkMkQzsY+UyWezEZ77GWQ4TzwKeXdayX3U3+aEkL8k5C6eKBXlidWdrhu0teLmaUXIyWerWrLnJzwGXdfw==", - "optional": true - }, - "@next/swc-linux-x64-musl": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.0.9.tgz", - "integrity": "sha512-SR9p0R+v1T32DTXPVAXZw31pmJAkSDotC6Afy+mfC0xrEL3pp95R8sGXYAAUCEPkQp0MEeUOVy2LrToe92X7hQ==", - "optional": true - }, - "@next/swc-win32-arm64-msvc": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.0.9.tgz", - "integrity": "sha512-mzQ1A8vfHhJrvEy5KJZGZWEByXthyKfWofvFaf+oo/5nJl/0Bz1ODP2ajSmbLG++77Eo2AROgbm9pkW1ucvG2A==", - "optional": true - }, - "@next/swc-win32-ia32-msvc": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.0.9.tgz", - "integrity": "sha512-MpD2vj1zjo1u3J3wiz3pEKse19Etz+P0GL6XfQkB/9a84vJQ1JWMaWBjmIdivzZv718Il2pRSSx8hymwPfguYQ==", - "optional": true - }, - "@next/swc-win32-x64-msvc": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.0.9.tgz", - "integrity": "sha512-1c/sxp/4Qz4F6rCxiYqAnrmghCOFt5hHZ9Kd+rXFW5Mqev4C4XDOUMHdBH55HgnJZqngYhOE0r/XNkCtsIojig==", - "optional": true - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" - }, - "@popperjs/core": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.4.tgz", - "integrity": "sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg==" - }, - "@radix-ui/colors": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-0.1.8.tgz", - "integrity": "sha512-jwRMXYwC0hUo0mv6wGpuw254Pd9p/R6Td5xsRpOmaWkUHlooNWqVcadgyzlRumMq3xfOTXwJReU0Jv+EIy4Jbw==" - }, - "@radix-ui/popper": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/popper/-/popper-0.1.0.tgz", - "integrity": "sha512-uzYeElL3w7SeNMuQpXiFlBhTT+JyaNMCwDfjKkrzugEcYrf5n52PHqncNdQPUtR42hJh8V9FsqyEDbDxkeNjJQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "csstype": "^3.0.4" - } - }, - "@radix-ui/primitive": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-0.1.0.tgz", - "integrity": "sha512-tqxZKybwN5Fa3VzZry4G6mXAAb9aAqKmPtnVbZpL0vsBwvOHTBwsjHVPXylocYLwEtBY9SCe665bYnNB515uoA==", - "requires": { - "@babel/runtime": "^7.13.10" - } - }, - "@radix-ui/react-accordion": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-0.1.6.tgz", - "integrity": "sha512-LOXlqPU6y6EMBopdRIKCWFvMPY1wPTQ4uJiX7ZVxldrMJcM7imBzI3wlRTkPCHZ3FLHmpuw+cQi3du23pzJp1g==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-collapsible": "0.1.6", - "@radix-ui/react-collection": "0.1.4", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-controllable-state": "0.1.0" - }, - "dependencies": { - "@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - } - } - }, - "@radix-ui/react-arrow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-0.1.3.tgz", - "integrity": "sha512-9x1gRYdlUD5OUwY7L+M+4FY/YltDSsrNSj8QXGPbxZxL5ghWXB/4lhyIGccCwk/e8ggfmQYv9SRNmn3LavPo3A==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.3" - } - }, - "@radix-ui/react-collapsible": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-0.1.6.tgz", - "integrity": "sha512-Gkf8VuqMc6HTLzA2AxVYnyK6aMczVLpatCjdD9Lj4wlYLXCz9KtiqZYslLMeqnQFLwLyZS0WKX/pQ8j5fioIBw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-presence": "0.1.2", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-controllable-state": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - }, - "dependencies": { - "@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-presence": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", - "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - } - } - }, - "@radix-ui/react-collection": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-0.1.4.tgz", - "integrity": "sha512-3muGI15IdgaDFjOcO7xX8a35HQRBRF6LH9pS6UCeZeRmbslkVeHyJRQr2rzICBUoX7zgIA0kXyMDbpQnJGyJTA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-slot": "0.1.2" - }, - "dependencies": { - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - } - } - }, - "@radix-ui/react-compose-refs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.0.tgz", - "integrity": "sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==", - "requires": { - "@babel/runtime": "^7.13.10" - } - }, - "@radix-ui/react-context": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-0.1.1.tgz", - "integrity": "sha512-PkyVX1JsLBioeu0jB9WvRpDBBLtLZohVDT3BB5CTSJqActma8S8030P57mWZb4baZifMvN7KKWPAA40UmWKkQg==", - "requires": { - "@babel/runtime": "^7.13.10" - } - }, - "@radix-ui/react-context-menu": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-0.1.6.tgz", - "integrity": "sha512-0qa6ABaeqD+WYI+8iT0jH0QLLcV8Kv0xI+mZL4FFnG4ec9H0v+yngb5cfBBfs9e/KM8mDzFFpaeegqsQlLNqyQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-menu": "0.1.6", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-callback-ref": "0.1.0" - }, - "dependencies": { - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - } - } - }, - "@radix-ui/react-dialog": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-0.1.7.tgz", - "integrity": "sha512-jXt8srGhHBRvEr9jhEAiwwJzWCWZoGRJ030aC9ja/gkRJbZdy0iD3FwXf+Ff4RtsZyLUMHW7VUwFOlz3Ixe1Vw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-dismissable-layer": "0.1.5", - "@radix-ui/react-focus-guards": "0.1.0", - "@radix-ui/react-focus-scope": "0.1.4", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-portal": "0.1.4", - "@radix-ui/react-presence": "0.1.2", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-slot": "0.1.2", - "@radix-ui/react-use-controllable-state": "0.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "^2.4.0" - }, - "dependencies": { - "@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-portal": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-0.1.4.tgz", - "integrity": "sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-presence": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", - "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - } - } - }, - "@radix-ui/react-dismissable-layer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-0.1.5.tgz", - "integrity": "sha512-J+fYWijkX4M4QKwf9dtu1oC0U6e6CEl8WhBp3Ad23yz2Hia0XCo6Pk/mp5CAFy4QBtQedTSkhW05AdtSOEoajQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-body-pointer-events": "0.1.1", - "@radix-ui/react-use-callback-ref": "0.1.0", - "@radix-ui/react-use-escape-keydown": "0.1.0" - }, - "dependencies": { - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - } - } - }, - "@radix-ui/react-dropdown-menu": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-0.1.6.tgz", - "integrity": "sha512-RZhtzjWwJ4ZBN7D8ek4Zn+ilHzYuYta9yIxFnbC0pfqMnSi67IQNONo1tuuNqtFh9SRHacPKc65zo+kBBlxtdg==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-menu": "0.1.6", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-controllable-state": "0.1.0" - }, - "dependencies": { - "@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - } - } - }, - "@radix-ui/react-focus-guards": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-0.1.0.tgz", - "integrity": "sha512-kRx/swAjEfBpQ3ns7J3H4uxpXuWCqN7MpALiSDOXiyo2vkWv0L9sxvbpZeTulINuE3CGMzicVMuNc/VWXjFKOg==", - "requires": { - "@babel/runtime": "^7.13.10" - } - }, - "@radix-ui/react-focus-scope": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-0.1.4.tgz", - "integrity": "sha512-fbA4ES3H4Wkxp+OeLhvN6SwL7mXNn/aBtUf7DRYxY9+Akrf7dRxl2ck4lgcpPsSg3zSDsEwLcY+h5cmj5yvlug==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-callback-ref": "0.1.0" - }, - "dependencies": { - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - } - } - }, - "@radix-ui/react-id": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.4.tgz", - "integrity": "sha512-/hq5m/D0ZfJWOS7TLF+G0l08KDRs87LBE46JkAvgKkg1fW4jkucx9At9D9vauIPSbdNmww5kXEp566hMlA8eXA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-menu": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-0.1.6.tgz", - "integrity": "sha512-ho3+bhpr3oAFkOBJ8VkUb1BcGoiZBB3OmcWPqa6i5RTUKrzNX/d6rauochu2xDlWjiRtpVuiAcsTVOeIC4FbYQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-collection": "0.1.4", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-dismissable-layer": "0.1.5", - "@radix-ui/react-focus-guards": "0.1.0", - "@radix-ui/react-focus-scope": "0.1.4", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-popper": "0.1.4", - "@radix-ui/react-portal": "0.1.4", - "@radix-ui/react-presence": "0.1.2", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-roving-focus": "0.1.5", - "@radix-ui/react-use-callback-ref": "0.1.0", - "@radix-ui/react-use-direction": "0.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "^2.4.0" - }, - "dependencies": { - "@radix-ui/react-arrow": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-0.1.4.tgz", - "integrity": "sha512-BB6XzAb7Ml7+wwpFdYVtZpK1BlMgqyafSQNGzhIpSZ4uXvXOHPlR5GP8M449JkeQzgQjv9Mp1AsJxFC0KuOtuA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.4" - } - }, - "@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-popper": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-0.1.4.tgz", - "integrity": "sha512-18gDYof97t8UQa7zwklG1Dr8jIdj3u+rVOQLzPi9f5i1YQak/pVGkaqw8aY+iDUknKKuZniTk/7jbAJUYlKyOw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/popper": "0.1.0", - "@radix-ui/react-arrow": "0.1.4", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-rect": "0.1.1", - "@radix-ui/react-use-size": "0.1.1", - "@radix-ui/rect": "0.1.1" - } - }, - "@radix-ui/react-portal": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-0.1.4.tgz", - "integrity": "sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-presence": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", - "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - }, - "@radix-ui/react-use-size": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-0.1.1.tgz", - "integrity": "sha512-pTgWM5qKBu6C7kfKxrKPoBI2zZYZmp2cSXzpUiGM3qEBQlMLtYhaY2JXdXUCxz+XmD1YEjc8oRwvyfsD4AG4WA==", - "requires": { - "@babel/runtime": "^7.13.10" - } - } - } - }, - "@radix-ui/react-popover": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-0.1.6.tgz", - "integrity": "sha512-zQzgUqW4RQDb0ItAL1xNW4K4olUrkfV3jeEPs9rG+nsDQurO+W9TT+YZ9H1mmgAJqlthyv1sBRZGdBm4YjtD6Q==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-dismissable-layer": "0.1.5", - "@radix-ui/react-focus-guards": "0.1.0", - "@radix-ui/react-focus-scope": "0.1.4", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-popper": "0.1.4", - "@radix-ui/react-portal": "0.1.4", - "@radix-ui/react-presence": "0.1.2", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-controllable-state": "0.1.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "^2.4.0" - }, - "dependencies": { - "@radix-ui/react-arrow": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-0.1.4.tgz", - "integrity": "sha512-BB6XzAb7Ml7+wwpFdYVtZpK1BlMgqyafSQNGzhIpSZ4uXvXOHPlR5GP8M449JkeQzgQjv9Mp1AsJxFC0KuOtuA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.4" - } - }, - "@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-popper": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-0.1.4.tgz", - "integrity": "sha512-18gDYof97t8UQa7zwklG1Dr8jIdj3u+rVOQLzPi9f5i1YQak/pVGkaqw8aY+iDUknKKuZniTk/7jbAJUYlKyOw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/popper": "0.1.0", - "@radix-ui/react-arrow": "0.1.4", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-rect": "0.1.1", - "@radix-ui/react-use-size": "0.1.1", - "@radix-ui/rect": "0.1.1" - } - }, - "@radix-ui/react-portal": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-0.1.4.tgz", - "integrity": "sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-presence": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.2.tgz", - "integrity": "sha512-3BRlFZraooIUfRlyN+b/Xs5hq1lanOOo/+3h6Pwu2GMFjkGKKa4Rd51fcqGqnVlbr3jYg+WLuGyAV4KlgqwrQw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - }, - "@radix-ui/react-use-size": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-0.1.1.tgz", - "integrity": "sha512-pTgWM5qKBu6C7kfKxrKPoBI2zZYZmp2cSXzpUiGM3qEBQlMLtYhaY2JXdXUCxz+XmD1YEjc8oRwvyfsD4AG4WA==", - "requires": { - "@babel/runtime": "^7.13.10" - } - } - } - }, - "@radix-ui/react-popper": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-0.1.3.tgz", - "integrity": "sha512-2OV2YaJv7iTZexJY3HJ7B6Fs1A/3JXd3fRGU4JY0guACfGMD1C/jSgds505MKQOTiHE/quI6j3/q8yfzFjJR9g==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/popper": "0.1.0", - "@radix-ui/react-arrow": "0.1.3", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-primitive": "0.1.3", - "@radix-ui/react-use-rect": "0.1.1", - "@radix-ui/react-use-size": "0.1.0", - "@radix-ui/rect": "0.1.1" - } - }, - "@radix-ui/react-portal": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-0.1.3.tgz", - "integrity": "sha512-DrV+sPYLs0HhmX5/b7yRT6nLM9Nl6FtQe2KUG+46kiCOKQ+0XzNMO5hmeQtyq0mRf/qlC02rFu6OMsWpIqVsJg==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.3", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-presence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-0.1.1.tgz", - "integrity": "sha512-LsL+NcWDpFUAYCmXeH02o4pgqcSLpwxP84UIjCtpIKrsPe2vLuhcp79KC/jZJeXz+of2lUpMAxpM+eCpxFZtlg==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-primitive": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.3.tgz", - "integrity": "sha512-fcyADaaAx2jdqEDLsTs6aX50S3L1c9K9CC6XMpJpuXFJCU4n9PGTFDZRtY2gAoXXoRCPIBsklCopSmGb6SsDjQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - }, - "@radix-ui/react-roving-focus": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-0.1.5.tgz", - "integrity": "sha512-ClwKPS5JZE+PaHCoW7eu1onvE61pDv4kO8W4t5Ra3qMFQiTJLZMdpBQUhksN//DaVygoLirz4Samdr5Y1x1FSA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-collection": "0.1.4", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-use-callback-ref": "0.1.0", - "@radix-ui/react-use-controllable-state": "0.1.0" - }, - "dependencies": { - "@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - } - } - }, - "@radix-ui/react-slot": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-0.1.2.tgz", - "integrity": "sha512-ADkqfL+agEzEguU3yS26jfB50hRrwf7U4VTwAOZEmi/g+ITcBWe12yM46ueS/UCIMI9Py+gFUaAdxgxafFvY2Q==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "0.1.0" - } - }, - "@radix-ui/react-tabs": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-0.1.5.tgz", - "integrity": "sha512-ieVQS1TFr0dX1XA8B+CsSFKOE7kcgEaNWWEfItxj9D1GZjn1o3WqPkW+FhQWDAWZLSKCH2PezYF3MNyO41lgJg==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.5", - "@radix-ui/react-primitive": "0.1.4", - "@radix-ui/react-roving-focus": "0.1.5", - "@radix-ui/react-use-controllable-state": "0.1.0" - }, - "dependencies": { - "@radix-ui/react-id": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-0.1.5.tgz", - "integrity": "sha512-IPc4H/63bes0IZ1GJJozSEkSWcDyhNGtKFWUpJ+XtaLyQ1X3x7Mf6fWwWhDcpqlYEP+5WtAvfqcyEsyjP+ZhBQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-primitive": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-0.1.4.tgz", - "integrity": "sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "0.1.2" - } - } - } - }, - "@radix-ui/react-tooltip": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-0.1.6.tgz", - "integrity": "sha512-0uaRpRmTCQo5yMUkDpv4LEDnaQDoeLXcNNhZonCZdbZBQ7ntvjURIWIigq1/pXZp0UX7oPpFzsXD9jUp8JT0WA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "0.1.0", - "@radix-ui/react-compose-refs": "0.1.0", - "@radix-ui/react-context": "0.1.1", - "@radix-ui/react-id": "0.1.4", - "@radix-ui/react-popper": "0.1.3", - "@radix-ui/react-portal": "0.1.3", - "@radix-ui/react-presence": "0.1.1", - "@radix-ui/react-primitive": "0.1.3", - "@radix-ui/react-slot": "0.1.2", - "@radix-ui/react-use-controllable-state": "0.1.0", - "@radix-ui/react-use-escape-keydown": "0.1.0", - "@radix-ui/react-use-previous": "0.1.0", - "@radix-ui/react-use-rect": "0.1.1", - "@radix-ui/react-visually-hidden": "0.1.3" - } - }, - "@radix-ui/react-use-body-pointer-events": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-body-pointer-events/-/react-use-body-pointer-events-0.1.1.tgz", - "integrity": "sha512-R8leV2AWmJokTmERM8cMXFHWSiv/fzOLhG/JLmRBhLTAzOj37EQizssq4oW0Z29VcZy2tODMi9Pk/htxwb+xpA==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "0.1.0" - } - }, - "@radix-ui/react-use-callback-ref": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-0.1.0.tgz", - "integrity": "sha512-Va041McOFFl+aV+sejvl0BS2aeHx86ND9X/rVFmEFQKTXCp6xgUK0NGUAGcgBlIjnJSbMYPGEk1xKSSlVcN2Aw==", - "requires": { - "@babel/runtime": "^7.13.10" - } - }, - "@radix-ui/react-use-controllable-state": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-0.1.0.tgz", - "integrity": "sha512-zv7CX/PgsRl46a52Tl45TwqwVJdmqnlQEQhaYMz/yBOD2sx2gCkCFSoF/z9mpnYWmS6DTLNTg5lIps3fV6EnXg==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "0.1.0" - } - }, - "@radix-ui/react-use-direction": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-direction/-/react-use-direction-0.1.0.tgz", - "integrity": "sha512-NajpY/An9TCPSfOVkgWIdXJV+VuWl67PxB6kOKYmtNAFHvObzIoh8o0n9sAuwSAyFCZVq211FEf9gvVDRhOyiA==", - "requires": { - "@babel/runtime": "^7.13.10" - } - }, - "@radix-ui/react-use-escape-keydown": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-0.1.0.tgz", - "integrity": "sha512-tDLZbTGFmvXaazUXXv8kYbiCcbAE8yKgng9s95d8fCO+Eundv0Jngbn/hKPhDDs4jj9ChwRX5cDDnlaN+ugYYQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "0.1.0" - } - }, - "@radix-ui/react-use-layout-effect": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz", - "integrity": "sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==", - "requires": { - "@babel/runtime": "^7.13.10" - } - }, - "@radix-ui/react-use-previous": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-0.1.0.tgz", - "integrity": "sha512-0fxNc33rYnCzDMPSiSnfS8YklnxQo8WqbAQXPAgIaaA1jRu2qFB916PL4qCIW+avcAAqFD38vWhqDqcVmBharA==", - "requires": { - "@babel/runtime": "^7.13.10" - } - }, - "@radix-ui/react-use-rect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-0.1.1.tgz", - "integrity": "sha512-kHNNXAsP3/PeszEmM/nxBBS9Jbo93sO+xuMTcRfwzXsmxT5gDXQzAiKbZQ0EecCPtJIzqvr7dlaQi/aP1PKYqQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/rect": "0.1.1" - } - }, - "@radix-ui/react-use-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-0.1.0.tgz", - "integrity": "sha512-TcZAsR+BYI46w/RbaSFCRACl+Jh6mDqhu6GS2r0iuJpIVrj8atff7qtTjmMmfGtEDNEjhl7DxN3pr1nTS/oruQ==", - "requires": { - "@babel/runtime": "^7.13.10" - } - }, - "@radix-ui/react-visually-hidden": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-0.1.3.tgz", - "integrity": "sha512-dPU6ZR2WQ/W9qv7E1Y8/I8ymqG+8sViU6dQQ6sfr2/8yGr0I4mmI7ywTnqXaE+YS9gHLEZHdQcEqTNESg6YfdQ==", - "requires": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "0.1.3" - } - }, - "@radix-ui/rect": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-0.1.1.tgz", - "integrity": "sha512-g3hnE/UcOg7REdewduRPAK88EPuLZtaq7sA9ouu8S+YEtnyFRI16jgv6GZYe3VMoQLL1T171ebmEPtDjyxWLzw==", - "requires": { - "@babel/runtime": "^7.13.10" - } - }, - "@react-dnd/asap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.0.tgz", - "integrity": "sha512-0XhqJSc6pPoNnf8DhdsPHtUhRzZALVzYMTzRwV4VI6DJNJ/5xxfL9OQUwb8IH5/2x7lSf7nAZrnzUD+16VyOVQ==" - }, - "@react-dnd/invariant": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-2.0.0.tgz", - "integrity": "sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==" - }, - "@react-dnd/shallowequal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz", - "integrity": "sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==" - }, - "@scaleleap/pg-format": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@scaleleap/pg-format/-/pg-format-1.0.0.tgz", - "integrity": "sha512-gFkcYMnpeylF2OJ30FsDBjwICB9JTiZ5i3guPwdiBDrJFwIKr+Zk6jwI8Mg22a4FwXn5ezd5cHEFMKqBqBz4RQ==" - }, - "@segment/loosely-validate-event": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", - "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", - "requires": { - "component-type": "^1.2.1", - "join-component": "^1.1.0" - } - }, - "@sentry/browser": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.19.7.tgz", - "integrity": "sha512-oDbklp4O3MtAM4mtuwyZLrgO1qDVYIujzNJQzXmi9YzymJCuzMLSRDvhY83NNDCRxf0pds4DShgYeZdbSyKraA==", - "requires": { - "@sentry/core": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/cli": { - "version": "1.74.5", - "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-1.74.5.tgz", - "integrity": "sha512-Ze1ec306ZWHtrxKypOJ8nhtFqkrx2f/6bRH+DcJzEQ3bBePQ0ZnqJTTe4BBHADYBtxFIaUWzCZ6DquLz2Zv/sw==", - "requires": { - "https-proxy-agent": "^5.0.0", - "mkdirp": "^0.5.5", - "node-fetch": "^2.6.7", - "npmlog": "^4.1.2", - "progress": "^2.0.3", - "proxy-from-env": "^1.1.0", - "which": "^2.0.2" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "@sentry/core": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.19.7.tgz", - "integrity": "sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==", - "requires": { - "@sentry/hub": "6.19.7", - "@sentry/minimal": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/hub": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.19.7.tgz", - "integrity": "sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==", - "requires": { - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/integrations": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-6.19.7.tgz", - "integrity": "sha512-yNeeFyuygJaV7Mdc5qWuDa13xVj5mVdECaaw2Xs4pfeHaXmRfRzZY17N8ypWFegKWxKBHynyQRMD10W5pBwJvA==", - "requires": { - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "localforage": "^1.8.1", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/minimal": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.19.7.tgz", - "integrity": "sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==", - "requires": { - "@sentry/hub": "6.19.7", - "@sentry/types": "6.19.7", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/nextjs": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/nextjs/-/nextjs-6.19.7.tgz", - "integrity": "sha512-029gpqhR6gHF7zfE9oxFOf3Zm68CShDu8/6azC8mwfIfJtyLC9dqztJJi48j0Uxs+sR1TEkN5Dw3wZbfWtFd8g==", - "requires": { - "@sentry/core": "6.19.7", - "@sentry/hub": "6.19.7", - "@sentry/integrations": "6.19.7", - "@sentry/node": "6.19.7", - "@sentry/react": "6.19.7", - "@sentry/tracing": "6.19.7", - "@sentry/utils": "6.19.7", - "@sentry/webpack-plugin": "1.18.8", - "tslib": "^1.9.3" - }, - "dependencies": { - "@sentry/react": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-6.19.7.tgz", - "integrity": "sha512-VzJeBg/v41jfxUYPkH2WYrKjWc4YiMLzDX0f4Zf6WkJ4v3IlDDSkX6DfmWekjTKBho6wiMkSNy2hJ1dHfGZ9jA==", - "requires": { - "@sentry/browser": "6.19.7", - "@sentry/minimal": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "hoist-non-react-statics": "^3.3.2", - "tslib": "^1.9.3" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/node": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-6.19.7.tgz", - "integrity": "sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==", - "requires": { - "@sentry/core": "6.19.7", - "@sentry/hub": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/tracing": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.19.7.tgz", - "integrity": "sha512-ol4TupNnv9Zd+bZei7B6Ygnr9N3Gp1PUrNI761QSlHtPC25xXC5ssSD3GMhBgyQrcvpuRcCFHVNNM97tN5cZiA==", - "requires": { - "@sentry/hub": "6.19.7", - "@sentry/minimal": "6.19.7", - "@sentry/types": "6.19.7", - "@sentry/utils": "6.19.7", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/types": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.19.7.tgz", - "integrity": "sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==" - }, - "@sentry/utils": { - "version": "6.19.7", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.19.7.tgz", - "integrity": "sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==", - "requires": { - "@sentry/types": "6.19.7", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/webpack-plugin": { - "version": "1.18.8", - "resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-1.18.8.tgz", - "integrity": "sha512-PtKr0NL62b5L3kPFGjwSNbIUwwcW5E5G6bQxAYZGpkgL1MFPnS4ND0SAsySuX0byQJRFFium5A19LpzyvQZSlQ==", - "requires": { - "@sentry/cli": "^1.73.0" - } - }, - "@sinclair/typebox": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.19.2.tgz", - "integrity": "sha512-0U/RVPZQw1QxhrbKV0o281ZWI1Ve3osJnyEYnwOp3slydIQHyXumbJANJeNv9BqABDiHWlmzsxSVopPHMvt3Aw==" - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@storybook/addon-actions": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.19.tgz", - "integrity": "sha512-GpSvP8xV8GfNkmtGJjfCgaOx6mbjtyTK0aT9FqX9pU0s+KVMmoCTrBh43b7dWrwxxas01yleBK9VpYggzhi/Fw==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "lodash": "^4.17.21", - "polished": "^4.0.5", - "prop-types": "^15.7.2", - "react-inspector": "^5.1.0", - "regenerator-runtime": "^0.13.7", - "telejson": "^5.3.2", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2", - "uuid-browser": "^3.1.0" - } - }, - "@storybook/addon-backgrounds": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.19.tgz", - "integrity": "sha512-yn8MTE7lctO48Rdw+DmmA1wKdf5eyAbA/vrug5ske/U2WPgGc65sApzwT8BItZfuyAMjuT5RnCWwd7o6hGRgGQ==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "global": "^4.4.0", - "memoizerific": "^1.11.3", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/addon-controls": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.4.19.tgz", - "integrity": "sha512-JHi5z9i6NsgQLfG5WOeQE1AyOrM+QJLrjT+uOYx40bq+OC1yWHH7qHiphPP8kjJJhCZlaQk1qqXYkkQXgaeHSw==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/node-logger": "6.4.19", - "@storybook/store": "6.4.19", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "lodash": "^4.17.21", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-essentials": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-6.4.19.tgz", - "integrity": "sha512-vbV8sjepMVEuwhTDBHjO3E6vXluG7RiEeozV1QVuS9lGhjQdvUPdZ9rDNUcP6WHhTdEkS/ffTMaGIy1v8oZd7g==", - "dev": true, - "requires": { - "@storybook/addon-actions": "6.4.19", - "@storybook/addon-backgrounds": "6.4.19", - "@storybook/addon-controls": "6.4.19", - "@storybook/addon-docs": "6.4.19", - "@storybook/addon-measure": "6.4.19", - "@storybook/addon-outline": "6.4.19", - "@storybook/addon-toolbars": "6.4.19", - "@storybook/addon-viewport": "6.4.19", - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/node-logger": "6.4.19", - "core-js": "^3.8.2", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0" - }, - "dependencies": { - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@storybook/addon-docs": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-6.4.19.tgz", - "integrity": "sha512-OEPyx/5ZXmZOPqIAWoPjlIP8Q/YfNjAmBosA8tmA8t5KCSiq/vpLcAvQhxqK6n0wk/B8Xp67Z8RpLfXjU8R3tw==", - "dev": true, - "requires": { - "@babel/core": "^7.12.10", - "@babel/generator": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/plugin-transform-react-jsx": "^7.12.12", - "@babel/preset-env": "^7.12.11", - "@jest/transform": "^26.6.2", - "@mdx-js/loader": "^1.6.22", - "@mdx-js/mdx": "^1.6.22", - "@mdx-js/react": "^1.6.22", - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/builder-webpack4": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/csf-tools": "6.4.19", - "@storybook/node-logger": "6.4.19", - "@storybook/postinstall": "6.4.19", - "@storybook/preview-web": "6.4.19", - "@storybook/source-loader": "6.4.19", - "@storybook/store": "6.4.19", - "@storybook/theming": "6.4.19", - "acorn": "^7.4.1", - "acorn-jsx": "^5.3.1", - "acorn-walk": "^7.2.0", - "core-js": "^3.8.2", - "doctrine": "^3.0.0", - "escodegen": "^2.0.0", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "html-tags": "^3.1.0", - "js-string-escape": "^1.0.1", - "loader-utils": "^2.0.0", - "lodash": "^4.17.21", - "nanoid": "^3.1.23", - "p-limit": "^3.1.0", - "prettier": ">=2.2.1 <=2.3.0", - "prop-types": "^15.7.2", - "react-element-to-jsx-string": "^14.3.4", - "regenerator-runtime": "^0.13.7", - "remark-external-links": "^8.0.0", - "remark-slug": "^6.0.0", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - } - }, - "@types/yargs": { - "version": "15.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz", - "integrity": "sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", - "dev": true - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" - } - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "prettier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", - "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@storybook/addon-interactions": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-6.4.19.tgz", - "integrity": "sha512-oKXxRkKL2deUI7nOLm9UvihtPaTQ2p8Y5gL2CQvJgHhTpKmUxW+e26GYNlcFUOjsx2ifXyzqNEscsZUP83BCUw==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/instrumenter": "6.4.19", - "@storybook/theming": "6.4.19", - "global": "^4.4.0", - "jest-mock": "^27.0.6", - "polished": "^4.0.5", - "ts-dedent": "^2.2.0" - } - }, - "@storybook/addon-links": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.4.19.tgz", - "integrity": "sha512-ebFHYlGDQkHSmI5QEJb1NxGNToVOLgjKkxXUe+JXX7AfHvrWiXVrN/57aOtBPZzj4h2jRPRTZgwR5glhPIlfEQ==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.19", - "@types/qs": "^6.9.5", - "core-js": "^3.8.2", - "global": "^4.4.0", - "prop-types": "^15.7.2", - "qs": "^6.10.0", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-measure": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-6.4.19.tgz", - "integrity": "sha512-PXeU0AlpnGEvnzBQ6snkzmlIpwE0ci8LdFtL1Vz1V1Xk5fbuETWYuEkPuk1oZ7L9igB9cfT32SyJlE5MC1iaGg==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "core-js": "^3.8.2", - "global": "^4.4.0" - } - }, - "@storybook/addon-outline": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-6.4.19.tgz", - "integrity": "sha512-7ZDXo8qrms6dx0KRP9PInXIie82h5g9XCNrGOUdfZkQPvgofJVj0kNv6p+WOiGiaVfKPC5KMgIofqzBTFV+k6Q==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "core-js": "^3.8.2", - "global": "^4.4.0", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/addon-toolbars": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-6.4.19.tgz", - "integrity": "sha512-2UtuX9yB1rD/CAZv1etnOnunfPTvsEKEg/J2HYMKE1lhenWC5muIUXvDXCXvwDC65WviPJ56nFNKaKK1Zz7JDg==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "regenerator-runtime": "^0.13.7" - } - }, - "@storybook/addon-viewport": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.4.19.tgz", - "integrity": "sha512-T1hdImxbLj8suQSTbp6HSA1LLHOlqaNK5jjnqzEOoAxY0O8LNPXMJ2jKIeT2fPQ0v+tWGU3tbwf+3xFq0parVQ==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "global": "^4.4.0", - "memoizerific": "^1.11.3", - "prop-types": "^15.7.2", - "regenerator-runtime": "^0.13.7" - } - }, - "@storybook/addons": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.19.tgz", - "integrity": "sha512-QNyRYhpqmHV8oJxxTBdkRlLSbDFhpBvfvMfIrIT1UXb/eemdBZTaCGVvXZ9UixoEEI7f8VwAQ44IvkU5B1509w==", - "dev": true, - "requires": { - "@storybook/api": "6.4.19", - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.19", - "@storybook/theming": "6.4.19", - "@types/webpack-env": "^1.16.0", - "core-js": "^3.8.2", - "global": "^4.4.0", - "regenerator-runtime": "^0.13.7" - } - }, - "@storybook/api": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.4.19.tgz", - "integrity": "sha512-aDvea+NpQCBjpNp9YidO1Pr7fzzCp15FSdkG+2ihGQfv5raxrN+IIJnGUXecpe71nvlYiB+29UXBVK7AL0j51Q==", - "dev": true, - "requires": { - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.19", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.4.19", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "regenerator-runtime": "^0.13.7", - "store2": "^2.12.0", - "telejson": "^5.3.2", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/builder-webpack4": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.19.tgz", - "integrity": "sha512-wxA6SMH11duc9D53aeVVBwrVRemFIoxHp/dOugkkg6ZZFAb4ZmWzf/ENc3vQIZdZpfNRi7IZIZEOfoHc994cmw==", - "dev": true, - "requires": { - "@babel/core": "^7.12.10", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-decorators": "^7.12.12", - "@babel/plugin-proposal-export-default-from": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.7", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.12", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/preset-env": "^7.12.11", - "@babel/preset-react": "^7.12.10", - "@babel/preset-typescript": "^7.12.7", - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/channel-postmessage": "6.4.19", - "@storybook/channels": "6.4.19", - "@storybook/client-api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/node-logger": "6.4.19", - "@storybook/preview-web": "6.4.19", - "@storybook/router": "6.4.19", - "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.19", - "@storybook/theming": "6.4.19", - "@storybook/ui": "6.4.19", - "@types/node": "^14.0.10", - "@types/webpack": "^4.41.26", - "autoprefixer": "^9.8.6", - "babel-loader": "^8.0.0", - "babel-plugin-macros": "^2.8.0", - "babel-plugin-polyfill-corejs3": "^0.1.0", - "case-sensitive-paths-webpack-plugin": "^2.3.0", - "core-js": "^3.8.2", - "css-loader": "^3.6.0", - "file-loader": "^6.2.0", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^4.1.6", - "glob": "^7.1.6", - "glob-promise": "^3.4.0", - "global": "^4.4.0", - "html-webpack-plugin": "^4.0.0", - "pnp-webpack-plugin": "1.6.4", - "postcss": "^7.0.36", - "postcss-flexbugs-fixes": "^4.2.1", - "postcss-loader": "^4.2.0", - "raw-loader": "^4.0.2", - "stable": "^0.1.8", - "style-loader": "^1.3.0", - "terser-webpack-plugin": "^4.2.3", - "ts-dedent": "^2.0.0", - "url-loader": "^4.1.1", - "util-deprecate": "^1.0.2", - "webpack": "4", - "webpack-dev-middleware": "^3.7.3", - "webpack-filter-warnings-plugin": "^1.2.1", - "webpack-hot-middleware": "^2.25.1", - "webpack-virtual-modules": "^0.2.2" - }, - "dependencies": { - "@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", - "dev": true - }, - "autoprefixer": { - "version": "9.8.8", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", - "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", - "dev": true, - "requires": { - "browserslist": "^4.12.0", - "caniuse-lite": "^1.0.30001109", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "picocolors": "^0.2.1", - "postcss": "^7.0.32", - "postcss-value-parser": "^4.1.0" - } - }, - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "fork-ts-checker-webpack-plugin": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz", - "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "chalk": "^2.4.1", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "@storybook/channel-postmessage": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.19.tgz", - "integrity": "sha512-E5h/itFzQ/6M08LR4kqlgqqmeO3tmavI+nUAlZrkCrotpJFNMHE2i0PQHg0TkFJrRDpYcrwD+AjUW4IwdqrisQ==", - "dev": true, - "requires": { - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "core-js": "^3.8.2", - "global": "^4.4.0", - "qs": "^6.10.0", - "telejson": "^5.3.2" - } - }, - "@storybook/channel-websocket": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.4.19.tgz", - "integrity": "sha512-cXKwQjIXttfdUyZlcHORelUmJ5nUKswsnCA/qy7IRWpZjD8yQJcNk1dYC+tTHDVqFgdRT89pL0hRRB1rlaaR8Q==", - "dev": true, - "requires": { - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "core-js": "^3.8.2", - "global": "^4.4.0", - "telejson": "^5.3.2" - } - }, - "@storybook/channels": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.19.tgz", - "integrity": "sha512-EwyoncFvTfmIlfsy8jTfayCxo2XchPkZk/9txipugWSmc057HdklMKPLOHWP0z5hLH0IbVIKXzdNISABm36jwQ==", - "dev": true, - "requires": { - "core-js": "^3.8.2", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-api": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.19.tgz", - "integrity": "sha512-OCrT5Um3FDvZnimQKwWtwsaI+5agPwq2i8YiqlofrI/NPMKp0I7DEkCGwE5IRD1Q8BIKqHcMo5tTmfYi0AxyOg==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/channel-postmessage": "6.4.19", - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/store": "6.4.19", - "@types/qs": "^6.9.5", - "@types/webpack-env": "^1.16.0", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "qs": "^6.10.0", - "regenerator-runtime": "^0.13.7", - "store2": "^2.12.0", - "synchronous-promise": "^2.0.15", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/client-logger": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.19.tgz", - "integrity": "sha512-zmg/2wyc9W3uZrvxaW4BfHcr40J0v7AGslqYXk9H+ERLVwIvrR4NhxQFaS6uITjBENyRDxwzfU3Va634WcmdDQ==", - "dev": true, - "requires": { - "core-js": "^3.8.2", - "global": "^4.4.0" - } - }, - "@storybook/components": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.4.19.tgz", - "integrity": "sha512-q/0V37YAJA7CNc+wSiiefeM9+3XVk8ixBNylY36QCGJgIeGQ5/79vPyUe6K4lLmsQwpmZsIq1s1Ad5+VbboeOA==", - "dev": true, - "requires": { - "@popperjs/core": "^2.6.0", - "@storybook/client-logger": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.19", - "@types/color-convert": "^2.0.0", - "@types/overlayscrollbars": "^1.12.0", - "@types/react-syntax-highlighter": "11.0.5", - "color-convert": "^2.0.1", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "lodash": "^4.17.21", - "markdown-to-jsx": "^7.1.3", - "memoizerific": "^1.11.3", - "overlayscrollbars": "^1.13.1", - "polished": "^4.0.5", - "prop-types": "^15.7.2", - "react-colorful": "^5.1.2", - "react-popper-tooltip": "^3.1.1", - "react-syntax-highlighter": "^13.5.3", - "react-textarea-autosize": "^8.3.0", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "dependencies": { - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "@storybook/core": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.19.tgz", - "integrity": "sha512-55LOQ/h/kf1jMhjN85t/pIEdIwWEG9yV7bdwv3niVvmoypCxyyjn9/QNK0RKYAeDSUtdm6FVoJ6k5CpxWz2d8w==", - "dev": true, - "requires": { - "@storybook/core-client": "6.4.19", - "@storybook/core-server": "6.4.19" - } - }, - "@storybook/core-client": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.19.tgz", - "integrity": "sha512-rQHRZjhArPleE7/S8ZUolgzwY+hC0smSKX/3PQxO2GcebDjnJj6+iSV3h+aSMHMmTdoCQvjYw9aBpT8scuRe+A==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/channel-postmessage": "6.4.19", - "@storybook/channel-websocket": "6.4.19", - "@storybook/client-api": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/preview-web": "6.4.19", - "@storybook/store": "6.4.19", - "@storybook/ui": "6.4.19", - "airbnb-js-shims": "^2.2.1", - "ansi-to-html": "^0.6.11", - "core-js": "^3.8.2", - "global": "^4.4.0", - "lodash": "^4.17.21", - "qs": "^6.10.0", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0", - "unfetch": "^4.2.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/core-common": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.19.tgz", - "integrity": "sha512-X1pJJkO48DFxl6iyEemIKqRkJ7j9/cBh3BRBUr+xZHXBvnD0GKDXIocwh0PjSxSC6XSu3UCQnqtKi3PbjRl8Dg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.10", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-decorators": "^7.12.12", - "@babel/plugin-proposal-export-default-from": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.7", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.12", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/preset-env": "^7.12.11", - "@babel/preset-react": "^7.12.10", - "@babel/preset-typescript": "^7.12.7", - "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.4.19", - "@storybook/semver": "^7.3.2", - "@types/node": "^14.0.10", - "@types/pretty-hrtime": "^1.0.0", - "babel-loader": "^8.0.0", - "babel-plugin-macros": "^3.0.1", - "babel-plugin-polyfill-corejs3": "^0.1.0", - "chalk": "^4.1.0", - "core-js": "^3.8.2", - "express": "^4.17.1", - "file-system-cache": "^1.0.5", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.0.4", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "handlebars": "^4.7.7", - "interpret": "^2.2.0", - "json5": "^2.1.3", - "lazy-universal-dotenv": "^3.0.1", - "picomatch": "^2.3.0", - "pkg-dir": "^5.0.0", - "pretty-hrtime": "^1.0.3", - "resolve-from": "^5.0.0", - "slash": "^3.0.0", - "telejson": "^5.3.2", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2", - "webpack": "4" - }, - "dependencies": { - "@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "pkg-dir": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", - "dev": true, - "requires": { - "find-up": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@storybook/core-events": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.19.tgz", - "integrity": "sha512-KICzUw6XVQUJzFSCXfvhfHAuyhn4Q5J4IZEfuZkcGJS4ODkrO6tmpdYE5Cfr+so95Nfp0ErWiLUuodBsW9/rtA==", - "dev": true, - "requires": { - "core-js": "^3.8.2" - } - }, - "@storybook/core-server": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.19.tgz", - "integrity": "sha512-bKsUB9f7hl5ya2JXxpIrErmbDQjoH39FVbzYZWjMo4t/b7+Xyi6vYadwyWcqlpUQmis09ZaSMv8L/Tw0TuwLAA==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-webpack4": "6.4.19", - "@storybook/core-client": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/csf-tools": "6.4.19", - "@storybook/manager-webpack4": "6.4.19", - "@storybook/node-logger": "6.4.19", - "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.19", - "@types/node": "^14.0.10", - "@types/node-fetch": "^2.5.7", - "@types/pretty-hrtime": "^1.0.0", - "@types/webpack": "^4.41.26", - "better-opn": "^2.1.1", - "boxen": "^5.1.2", - "chalk": "^4.1.0", - "cli-table3": "^0.6.1", - "commander": "^6.2.1", - "compression": "^1.7.4", - "core-js": "^3.8.2", - "cpy": "^8.1.2", - "detect-port": "^1.3.0", - "express": "^4.17.1", - "file-system-cache": "^1.0.5", - "fs-extra": "^9.0.1", - "globby": "^11.0.2", - "ip": "^1.1.5", - "lodash": "^4.17.21", - "node-fetch": "^2.6.1", - "pretty-hrtime": "^1.0.3", - "prompts": "^2.4.0", - "regenerator-runtime": "^0.13.7", - "serve-favicon": "^2.5.0", - "slash": "^3.0.0", - "telejson": "^5.3.3", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2", - "watchpack": "^2.2.0", - "webpack": "4", - "ws": "^8.2.3" - }, - "dependencies": { - "@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "dev": true, - "requires": {} - } - } - }, - "@storybook/csf": { - "version": "0.0.2--canary.87bc651.0", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.2--canary.87bc651.0.tgz", - "integrity": "sha512-ajk1Uxa+rBpFQHKrCcTmJyQBXZ5slfwHVEaKlkuFaW77it8RgbPJp/ccna3sgoi8oZ7FkkOyvv1Ve4SmwFqRqw==", - "dev": true, - "requires": { - "lodash": "^4.17.15" - } - }, - "@storybook/csf-tools": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.19.tgz", - "integrity": "sha512-gf/zRhGoAVsFwSyV2tc+jeJfZQkxF6QsaZgbUSe24/IUvGFCT/PS/jZq1qy7dECAwrTOfykgu8juyBtj6WhWyw==", - "dev": true, - "requires": { - "@babel/core": "^7.12.10", - "@babel/generator": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/plugin-transform-react-jsx": "^7.12.12", - "@babel/preset-env": "^7.12.11", - "@babel/traverse": "^7.12.11", - "@babel/types": "^7.12.11", - "@mdx-js/mdx": "^1.6.22", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "core-js": "^3.8.2", - "fs-extra": "^9.0.1", - "global": "^4.4.0", - "js-string-escape": "^1.0.1", - "lodash": "^4.17.21", - "prettier": ">=2.2.1 <=2.3.0", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0" - }, - "dependencies": { - "prettier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", - "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", - "dev": true - } - } - }, - "@storybook/instrumenter": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-6.4.19.tgz", - "integrity": "sha512-KwOJUW7tItZw1CLffUbaSfEzH1p1HdGmJs1Q42uWGJSbXbVHZ7i7bJWYb3Lf90+yHTlqQjTr1PKAymwDwHseTA==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "global": "^4.4.0" - } - }, - "@storybook/manager-webpack4": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.19.tgz", - "integrity": "sha512-R8ugZjTYqXvlc6gDOcw909L65sIleOmIJLZR+N6/H85MivGXHu39jOwONqB7tVACufRty4FNecn8tEiQL2SAKA==", - "dev": true, - "requires": { - "@babel/core": "^7.12.10", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/preset-react": "^7.12.10", - "@storybook/addons": "6.4.19", - "@storybook/core-client": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/node-logger": "6.4.19", - "@storybook/theming": "6.4.19", - "@storybook/ui": "6.4.19", - "@types/node": "^14.0.10", - "@types/webpack": "^4.41.26", - "babel-loader": "^8.0.0", - "case-sensitive-paths-webpack-plugin": "^2.3.0", - "chalk": "^4.1.0", - "core-js": "^3.8.2", - "css-loader": "^3.6.0", - "express": "^4.17.1", - "file-loader": "^6.2.0", - "file-system-cache": "^1.0.5", - "find-up": "^5.0.0", - "fs-extra": "^9.0.1", - "html-webpack-plugin": "^4.0.0", - "node-fetch": "^2.6.1", - "pnp-webpack-plugin": "1.6.4", - "read-pkg-up": "^7.0.1", - "regenerator-runtime": "^0.13.7", - "resolve-from": "^5.0.0", - "style-loader": "^1.3.0", - "telejson": "^5.3.2", - "terser-webpack-plugin": "^4.2.3", - "ts-dedent": "^2.0.0", - "url-loader": "^4.1.1", - "util-deprecate": "^1.0.2", - "webpack": "4", - "webpack-dev-middleware": "^3.7.3", - "webpack-virtual-modules": "^0.2.2" - }, - "dependencies": { - "@types/node": { - "version": "14.18.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz", - "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@storybook/node-logger": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.19.tgz", - "integrity": "sha512-hO2Aar3PgPnPtNq2fVgiuGlqo3EEVR6TKVBXMq7foL3tN2k4BQFKLDHbm5qZQQntyYKurKsRUGKPJFPuI1ov/w==", - "dev": true, - "requires": { - "@types/npmlog": "^4.1.2", - "chalk": "^4.1.0", - "core-js": "^3.8.2", - "npmlog": "^5.0.1", - "pretty-hrtime": "^1.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dev": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dev": true, - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@storybook/postinstall": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-6.4.19.tgz", - "integrity": "sha512-/0tHHxyIV82zt1rw4BW70GmrQbDVu9IJPAxOqFzGjC1fNojwJ53mK6FfUsOzbhG5mWk5p0Ip5+zr74moP119AA==", - "dev": true, - "requires": { - "core-js": "^3.8.2" - } - }, - "@storybook/preview-web": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.4.19.tgz", - "integrity": "sha512-jqltoBv5j7lvnxEfV9w8dLX9ASWGuvgz97yg8Yo5FqkftEwrHJenyvMGcTgDJKJPorF+wiz/9aIqnmd3LCAcZQ==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/channel-postmessage": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/store": "6.4.19", - "ansi-to-html": "^0.6.11", - "core-js": "^3.8.2", - "global": "^4.4.0", - "lodash": "^4.17.21", - "qs": "^6.10.0", - "regenerator-runtime": "^0.13.7", - "synchronous-promise": "^2.0.15", - "ts-dedent": "^2.0.0", - "unfetch": "^4.2.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/react": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-6.4.19.tgz", - "integrity": "sha512-5b3i8jkVrjQGmcxxxXwCduHPIh+cluWkfeweKeQOe+lW4BR8fuUICo3AMLrYPAtB/UcaJyYkIYmTvF2mkfepFA==", - "dev": true, - "requires": { - "@babel/preset-flow": "^7.12.1", - "@babel/preset-react": "^7.12.10", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.1", - "@storybook/addons": "6.4.19", - "@storybook/core": "6.4.19", - "@storybook/core-common": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/node-logger": "6.4.19", - "@storybook/react-docgen-typescript-plugin": "1.0.2-canary.253f8c1.0", - "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.19", - "@types/webpack-env": "^1.16.0", - "babel-plugin-add-react-displayname": "^0.0.5", - "babel-plugin-named-asset-import": "^0.3.1", - "babel-plugin-react-docgen": "^4.2.1", - "core-js": "^3.8.2", - "global": "^4.4.0", - "lodash": "^4.17.21", - "prop-types": "^15.7.2", - "react-refresh": "^0.11.0", - "read-pkg-up": "^7.0.1", - "regenerator-runtime": "^0.13.7", - "ts-dedent": "^2.0.0", - "webpack": "4" - }, - "dependencies": { - "@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", - "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", - "dev": true, - "requires": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", - "dev": true - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "type-fest": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.12.1.tgz", - "integrity": "sha512-AiknQSEqKVGDDjtZqeKrUoTlcj7FKhupmnVUgz6KoOKtvMwRGE6hUNJ/nVear+h7fnUPO1q/htSkYKb1pyntkQ==", - "dev": true, - "optional": true, - "peer": true - } - } - }, - "@storybook/react-docgen-typescript-plugin": { - "version": "1.0.2-canary.253f8c1.0", - "resolved": "https://registry.npmjs.org/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.2-canary.253f8c1.0.tgz", - "integrity": "sha512-mmoRG/rNzAiTbh+vGP8d57dfcR2aP+5/Ll03KKFyfy5FqWFm/Gh7u27ikx1I3LmVMI8n6jh5SdWMkMKon7/tDw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "endent": "^2.0.1", - "find-cache-dir": "^3.3.1", - "flat-cache": "^3.0.4", - "micromatch": "^4.0.2", - "react-docgen-typescript": "^2.0.0", - "tslib": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@storybook/router": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.4.19.tgz", - "integrity": "sha512-KWWwIzuyeEIWVezkCihwY2A76Il9tUNg0I410g9qT7NrEsKyqXGRYOijWub7c1GGyNjLqz0jtrrehtixMcJkuA==", - "dev": true, - "requires": { - "@storybook/client-logger": "6.4.19", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "history": "5.0.0", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "qs": "^6.10.0", - "react-router": "^6.0.0", - "react-router-dom": "^6.0.0", - "ts-dedent": "^2.0.0" - } - }, - "@storybook/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@storybook/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg==", - "dev": true, - "requires": { - "core-js": "^3.6.5", - "find-up": "^4.1.0" - } - }, - "@storybook/source-loader": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.4.19.tgz", - "integrity": "sha512-XqTsqddRglvfW7mhyjwoqd/B8L6samcBehhO0OEbsFp6FPWa9eXuObCxtRYIcjcSIe+ksbW3D/54ppEs1L/g1Q==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "core-js": "^3.8.2", - "estraverse": "^5.2.0", - "global": "^4.4.0", - "loader-utils": "^2.0.0", - "lodash": "^4.17.21", - "prettier": ">=2.2.1 <=2.3.0", - "regenerator-runtime": "^0.13.7" - }, - "dependencies": { - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "prettier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", - "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", - "dev": true - } - } - }, - "@storybook/store": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.4.19.tgz", - "integrity": "sha512-N9/ZjemRHGfT3InPIbqQqc6snkcfnf3Qh9oOr0smbfaVGJol//KOX65kzzobtzFcid0WxtTDZ3HmgFVH+GvuhQ==", - "dev": true, - "requires": { - "@storybook/addons": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/csf": "0.0.2--canary.87bc651.0", - "core-js": "^3.8.2", - "fast-deep-equal": "^3.1.3", - "global": "^4.4.0", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "regenerator-runtime": "^0.13.7", - "slash": "^3.0.0", - "stable": "^0.1.8", - "synchronous-promise": "^2.0.15", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - } - }, - "@storybook/testing-library": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/@storybook/testing-library/-/testing-library-0.0.9.tgz", - "integrity": "sha512-X4/Tk7RryB0tZ/9NLUHYTBXW01zRpf6+IhdhqsVl6WOWRyUaIv3zEhr43gQyZhBe4ZZyt5d90FJC9qWmY1oFKg==", - "dev": true, - "requires": { - "@storybook/client-logger": "^6.4.0 || >=6.5.0-0", - "@storybook/instrumenter": "^6.4.0 || >=6.5.0-0", - "@testing-library/dom": "^8.3.0", - "@testing-library/user-event": "^13.2.1", - "ts-dedent": "^2.2.0" - } - }, - "@storybook/theming": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.19.tgz", - "integrity": "sha512-V4pWmTvAxmbHR6B3jA4hPkaxZPyExHvCToy7b76DpUTpuHihijNDMAn85KhOQYIeL9q14zP/aiz899tOHsOidg==", - "dev": true, - "requires": { - "@emotion/core": "^10.1.1", - "@emotion/is-prop-valid": "^0.8.6", - "@emotion/styled": "^10.0.27", - "@storybook/client-logger": "6.4.19", - "core-js": "^3.8.2", - "deep-object-diff": "^1.1.0", - "emotion-theming": "^10.0.27", - "global": "^4.4.0", - "memoizerific": "^1.11.3", - "polished": "^4.0.5", - "resolve-from": "^5.0.0", - "ts-dedent": "^2.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@storybook/ui": { - "version": "6.4.19", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.19.tgz", - "integrity": "sha512-gFwdn5LA2U6oQ4bfUFLyHZnNasGQ01YVdwjbi+l6yjmnckBNtZfJoVTZ1rzGUbxSE9rK48InJRU+latTsr7xAg==", - "dev": true, - "requires": { - "@emotion/core": "^10.1.1", - "@storybook/addons": "6.4.19", - "@storybook/api": "6.4.19", - "@storybook/channels": "6.4.19", - "@storybook/client-logger": "6.4.19", - "@storybook/components": "6.4.19", - "@storybook/core-events": "6.4.19", - "@storybook/router": "6.4.19", - "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.4.19", - "copy-to-clipboard": "^3.3.1", - "core-js": "^3.8.2", - "core-js-pure": "^3.8.2", - "downshift": "^6.0.15", - "emotion-theming": "^10.0.27", - "fuse.js": "^3.6.1", - "global": "^4.4.0", - "lodash": "^4.17.21", - "markdown-to-jsx": "^7.1.3", - "memoizerific": "^1.11.3", - "polished": "^4.0.5", - "qs": "^6.10.0", - "react-draggable": "^4.4.3", - "react-helmet-async": "^1.0.7", - "react-sizeme": "^3.0.1", - "regenerator-runtime": "^0.13.7", - "resolve-from": "^5.0.0", - "store2": "^2.12.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@stripe/react-stripe-js": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@stripe/react-stripe-js/-/react-stripe-js-1.7.0.tgz", - "integrity": "sha512-L20v8Jq0TDZFL2+y+uXD751t6q9SalSFkSYZpmZ2VWrGZGK7HAGfRQ804dzYSSr5fGenW6iz6y7U0YKfC/TK3g==", - "requires": { - "prop-types": "^15.7.2" - } - }, - "@stripe/stripe-js": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/@stripe/stripe-js/-/stripe-js-1.25.0.tgz", - "integrity": "sha512-cywIoKu3sJnBPQ1eKi3BzFHWslA2ePqHvQhcxp7iYYlo1tWcVgEKTSh7y7hb6GoR4TyT3DwlK4v1vOZpVg8u4Q==" - }, - "@supabase/functions-js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-1.3.4.tgz", - "integrity": "sha512-yYVgkECjv7IZEBKBI3EB5Q7R1p0FJ10g8Q9N7SWKIHUU6i6DnbEGHIMFLyQRm1hmiNWD8fL7bRVEYacmTRJhHw==", - "requires": { - "cross-fetch": "^3.1.5" - } - }, - "@supabase/gotrue-js": { - "version": "1.23.0-next.4", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.23.0-next.4.tgz", - "integrity": "sha512-w+qCUc7BA0t1Tx08ylObz/XzmnVlTwkdDPrYlE/gC9Qr6n1MmuNNbmz6Odz66CtFQiDjS+62uTJbxJSnn/Mygg==", - "requires": { - "cross-fetch": "^3.1.5" - } - }, - "@supabase/postgres-meta": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/@supabase/postgres-meta/-/postgres-meta-0.26.1.tgz", - "integrity": "sha512-z4ws1fD+sPwb+J2PRMe2/Oe4HuVwGjPESjFqCR8uiWauTlfbtYR0bXFPMxPA6SkJFqOq/86uJPwzHgHURWZDiA==", - "requires": { - "@sinclair/typebox": "^0.19.2", - "pg": "^8.7.1", - "pg-format": "^1.0.4" - } - }, - "@supabase/postgrest-js": { - "version": "1.0.0-next.2", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.0.0-next.2.tgz", - "integrity": "sha512-8hg7xbT6w07BjrQRqQT4DOVg9NkcBFdvlpdArriKwOtqKiztVy32HXT/CjPTgMxl9Z4Bc7n2krhS5EKOB7Wmvw==", - "requires": { - "cross-fetch": "^3.1.5" - } - }, - "@supabase/react-data-grid": { - "version": "7.1.0-beta.7", - "resolved": "https://registry.npmjs.org/@supabase/react-data-grid/-/react-data-grid-7.1.0-beta.7.tgz", - "integrity": "sha512-6Kjdk9Z3N2mycq63L22VFM4zY0w9HNdpB0HgaUcM3nIMtMxA3cldLnHDVMD2R0zNV7+1wlOr8hz3vsbS+zlOXQ==", - "requires": { - "clsx": "^1.1.1" - } - }, - "@supabase/realtime-js": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.7.3.tgz", - "integrity": "sha512-iNUWhVeYRi5+XUlW2zJ7ccGfhI6caLxcn2t6VuQK3OTJNzXdVXeKb25nffLx1g4F7Ty6VM8Xiue7i0z0cWG3pQ==", - "requires": { - "@types/phoenix": "^1.5.4", - "websocket": "^1.0.34" - } - }, - "@supabase/shared-types": { - "version": "0.1.25", - "resolved": "https://registry.npmjs.org/@supabase/shared-types/-/shared-types-0.1.25.tgz", - "integrity": "sha512-nKIwMc/Ig22s58FxH9lyCJ+hAqp3D4Qq7LDCTlGlzTV7sOeKXFyMQuevwGdCVfIuQbp99QC1y2rS9pyV+R7RFA==" - }, - "@supabase/storage-js": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.7.2.tgz", - "integrity": "sha512-HX4HAfLUJznVgAwiKVgdTe5QD0bpUcqgc0hpk/s5Uy8qoe1tHZAc5qE9kI+tqk7rQKyymFpiA7+bAHlzyZXxxQ==", - "requires": { - "cross-fetch": "^3.1.0" - } - }, - "@supabase/supabase-js": { - "version": "1.36.0-next.9", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.36.0-next.9.tgz", - "integrity": "sha512-GzaCNe7maoaao6MjX+MZoEd3EZnMCbathvXmh77vLOWD72HuQKVxUM77CR1cO/Ry8tZpbQlHkAiPKM122NSQkQ==", - "requires": { - "@supabase/functions-js": "^1.3.3", - "@supabase/gotrue-js": "^1.23.0-next.3", - "@supabase/postgrest-js": "^1.0.0-next.2", - "@supabase/realtime-js": "^1.7.3", - "@supabase/storage-js": "^1.7.0", - "cross-fetch": "^3.1.5" - } - }, - "@supabase/ui": { - "version": "0.37.0-alpha.80", - "resolved": "https://registry.npmjs.org/@supabase/ui/-/ui-0.37.0-alpha.80.tgz", - "integrity": "sha512-oTBX43SipvCOmdG4UTt2yM//Meqfof4j7Fgmdi6rAn2EGpqo9xVqWxqlCLLvcbaK94Sl0i5R43zZEWz6RJoUIg==", - "requires": { - "@headlessui/react": "^1.0.0", - "@mertasan/tailwindcss-variables": "^2.0.1", - "@radix-ui/colors": "^0.1.8", - "@radix-ui/react-accordion": "^0.1.5", - "@radix-ui/react-collapsible": "^0.1.5", - "@radix-ui/react-context-menu": "^0.1.0", - "@radix-ui/react-dialog": "^0.1.5", - "@radix-ui/react-dropdown-menu": "^0.1.4", - "@radix-ui/react-popover": "^0.1.0", - "@radix-ui/react-portal": "^0.1.3", - "@radix-ui/react-tabs": "^0.1.0", - "@tailwindcss/forms": "^0.4.0", - "@tailwindcss/typography": "^0.5.0", - "autoprefixer": "^10.4.2", - "deepmerge": "^4.2.2", - "formik": "^2.2.9", - "fsevents": "^2.3.2", - "lodash": "^4.17.20", - "postcss": "^8.4.5", - "prop-types": "^15.7.2", - "tailwindcss": "^3.0.15", - "tailwindcss-radix": "^1.6.0" - } - }, - "@tailwindcss/forms": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.4.1.tgz", - "integrity": "sha512-gS9xjCmJjUBz/eP12QlENPLnf0tCx68oYE3mri0GMP5jdtVwLbGUNSRpjsp6NzLAZzZy3ueOwrcqB78Ax6Z84A==", - "requires": { - "mini-svg-data-uri": "^1.2.3" - } - }, - "@tailwindcss/typography": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.2.tgz", - "integrity": "sha512-coq8DBABRPFcVhVIk6IbKyyHUt7YTEC/C992tatFB+yEx5WGBQrCgsSFjxHUr8AWXphWckadVJbominEduYBqw==", - "requires": { - "lodash.castarray": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2" - } - }, - "@testing-library/dom": { - "version": "8.11.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.1.tgz", - "integrity": "sha512-3KQDyx9r0RKYailW2MiYrSSKEfH0GTkI51UGEvJenvcoDoeRYs0PZpi2SXqtnMClQvCqdtTTpOfFETDTVADpAg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/react": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.2.tgz", - "integrity": "sha512-ihQiEOklNyHIpo2Y8FREkyD1QAea054U0MVbwH1m8N9TxeFz+KoJ9LkqoKqJlzx2JDm56DVwaJ1r36JYxZM05g==", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0" - } - }, - "@testing-library/user-event": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", - "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.5" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@types/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==", - "dev": true - }, - "@types/babel__core": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/color-convert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.0.tgz", - "integrity": "sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==", - "dev": true, - "requires": { - "@types/color-name": "*" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/crypto-js": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/crypto-js/-/crypto-js-4.0.2.tgz", - "integrity": "sha512-sCVniU+h3GcGqxOmng11BRvf9TfN9yIs8KKjB8C8d75W69cpTfZG80gau9yTx5SxF3gvHGbJhdESzzvnjtf3Og==", - "dev": true - }, - "@types/d3-color": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-2.0.3.tgz", - "integrity": "sha512-+0EtEjBfKEDtH9Rk3u3kLOUXM5F+iZK+WvASPb0MhIZl8J8NUvGeZRwKCXl+P3HkYx5TdU4YtcibpqHkSR9n7w==" - }, - "@types/d3-interpolate": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-2.0.2.tgz", - "integrity": "sha512-lElyqlUfIPyWG/cD475vl6msPL4aMU7eJvx1//Q177L8mdXoVPFl1djIESF2FKnc0NyaHvQlJpWwKJYwAhUoCw==", - "requires": { - "@types/d3-color": "^2" - } - }, - "@types/d3-path": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.1.tgz", - "integrity": "sha512-6K8LaFlztlhZO7mwsZg7ClRsdLg3FJRzIIi6SZXDWmmSJc2x8dd2VkESbLXdk3p8cuvz71f36S0y8Zv2AxqvQw==" - }, - "@types/d3-scale": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.2.tgz", - "integrity": "sha512-gGqr7x1ost9px3FvIfUMi5XA/F/yAf4UkUDtdQhpH92XCT0Oa7zkkRzY61gPVJq+DxpHn/btouw5ohWkbBsCzQ==", - "requires": { - "@types/d3-time": "^2" - } - }, - "@types/d3-shape": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.1.3.tgz", - "integrity": "sha512-HAhCel3wP93kh4/rq+7atLdybcESZ5bRHDEZUojClyZWsRuEMo3A52NGYJSh48SxfxEU6RZIVbZL2YFZ2OAlzQ==", - "requires": { - "@types/d3-path": "^2" - } - }, - "@types/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-9MVYlmIgmRR31C5b4FVSWtuMmBHh2mOWQYfl7XAYOa8dsnb7iEmUmRSWSFgXFtkjxO65d7hTUHQC+RhR/9IWFg==" - }, - "@types/debounce-promise": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/debounce-promise/-/debounce-promise-3.1.4.tgz", - "integrity": "sha512-9SEVY3nsz+uMN2DwDocftB5TAgZe7D0cOzxxRhpotWs6T4QFqRaTXpXbOSzbk31/7iYcfCkJJPwWGzTxyuGhCg==" - }, - "@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "requires": { - "@types/ms": "*" - } - }, - "@types/file-saver": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.2.tgz", - "integrity": "sha512-xbqnZmGrCEqi/KUzOkeUSe77p7APvLuyellGaAoeww3CHJ1AbjQWjPSCFtKIzZn8L7LpEax4NXnC+gfa6nM7IA==", - "dev": true - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", - "requires": { - "@types/unist": "*" - } - }, - "@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "@types/html-minifier-terser": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", - "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", - "dev": true - }, - "@types/is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha512-A79HEEiwXTFtfY+Bcbo58M2GRYzCr9itHWzbzHVFNEYCcoU/MMGwYYf721gBrnhpj1s6RGVVha/IgNFnR0Iw/Q==", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jsdom": { - "version": "16.2.13", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.13.tgz", - "integrity": "sha512-8JQCjdeAidptSsOcRWk2iTm9wCcwn9l+kRG6k5bzUacrnm1ezV4forq0kWjUih/tumAeoG+OspOvQEbbRucBTw==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/parse5": "*", - "@types/tough-cookie": "*" - } - }, - "@types/json-logic-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@types/json-logic-js/-/json-logic-js-1.2.1.tgz", - "integrity": "sha512-g/g+wj/7sgazpiCHiyAtndoNiy/LodLkNG4I9MILAl0UinKKwv3GiPKbtvcE1hIoezQqgDamXfx8Lht62/hHqw==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/lodash": { - "version": "4.14.182", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", - "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==" - }, - "@types/markdown-table": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/markdown-table/-/markdown-table-3.0.0.tgz", - "integrity": "sha512-vX5zya26rnLLHdAKA3E9ZOT07CJslYp2gZfAZiXKUY5vd2RRiJyOQKrSlmUjyJ+eNoDAPkHflebG3PsfqC32aA==", - "dev": true, - "requires": { - "markdown-table": "*" - } - }, - "@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "requires": { - "@types/unist": "*" - } - }, - "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==" - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "@types/node": { - "version": "16.9.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.4.tgz", - "integrity": "sha512-KDazLNYAGIuJugdbULwFZULF9qQ13yNWEBFnfVpqlpgAAo6H/qnM9RjBgh0A0kmHf3XxAKLdN5mTIng9iUvVLA==", - "devOptional": true - }, - "@types/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "@types/npmlog": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/npmlog/-/npmlog-4.1.4.tgz", - "integrity": "sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ==", - "dev": true - }, - "@types/overlayscrollbars": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@types/overlayscrollbars/-/overlayscrollbars-1.12.1.tgz", - "integrity": "sha512-V25YHbSoKQN35UasHf0EKD9U2vcmexRSp78qa8UglxFH8H3D+adEa9zGZwrqpH4TdvqeMrgMqVqsLB4woAryrQ==", - "dev": true - }, - "@types/papaparse": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@types/papaparse/-/papaparse-5.3.1.tgz", - "integrity": "sha512-1lbngk9wty2kCyQB42LjqSa12SEop3t9wcEC7/xYr3ujTSTmv7HWKjKYXly0GkMfQ42PRb2lFPFEibDOiMXS0g==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", - "dev": true - }, - "@types/phoenix": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.5.4.tgz", - "integrity": "sha512-L5eZmzw89eXBKkiqVBcJfU1QGx9y+wurRIEgt0cuLH0hwNtVUxtx+6cu0R2STwWj468sjXyBYPYDtGclUd1kjQ==" - }, - "@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==", - "dev": true - }, - "@types/pretty-hrtime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz", - "integrity": "sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "@types/react": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.11.tgz", - "integrity": "sha512-yFRQbD+whVonItSk7ZzP/L+gPTJVBkL/7shLEF+i9GC/1cV3JmUxEQz6+9ylhUpWSDuqo1N9qEvqS6vTj4USUA==", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-beautiful-dnd": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/@types/react-beautiful-dnd/-/react-beautiful-dnd-13.1.2.tgz", - "integrity": "sha512-+OvPkB8CdE/bGdXKyIhc/Lm2U7UAYCCJgsqmopFmh9gbAudmslkI8eOrPDjg4JhwSE6wytz4a3/wRjKtovHVJg==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-csv": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@types/react-csv/-/react-csv-1.1.2.tgz", - "integrity": "sha512-hCtZyXAubxBtn3Oi3I9kNAx2liRTaMtl1eWpO2M98aYkHuoSTbYO8OcZEjyr9aJJ30Xnoxj+uES3G6L6O1qgtg==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-datepicker": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/react-datepicker/-/react-datepicker-4.3.4.tgz", - "integrity": "sha512-5nTTz37KdTUgMZ1AAxztMWNtEnIMVRo8oCAEhIv0a6uUqDjvSKaMyPRpBV+8chi6f/A8wlTKJIpojpXca2dx3A==", - "dev": true, - "requires": { - "@popperjs/core": "^2.9.2", - "@types/react": "*", - "date-fns": "^2.0.1", - "react-popper": "^2.2.5" - } - }, - "@types/react-dom": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz", - "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-grid-layout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/react-grid-layout/-/react-grid-layout-1.3.0.tgz", - "integrity": "sha512-Pytm7lvm4h91yN9CpdjV8IpU/hgVRHrUhDEIX593e4Mx9V14Pr3gWtj21WHzy5bDqU//jnGGVVSYJ3QVuI1NaQ==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-redux": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.20.tgz", - "integrity": "sha512-q42es4c8iIeTgcnB+yJgRTTzftv3eYYvCZOh1Ckn2eX/3o5TdsQYKUWpLoLuGlcY/p+VAhV9IOEZJcWk/vfkXw==", - "requires": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "@types/react-syntax-highlighter": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.5.tgz", - "integrity": "sha512-VIOi9i2Oj5XsmWWoB72p3KlZoEbdRAcechJa8Ztebw7bDl2YmR+odxIqhtJGp1q2EozHs02US+gzxJ9nuf56qg==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-virtualized-auto-sizer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.1.tgz", - "integrity": "sha512-GH8sAnBEM5GV9LTeiz56r4ZhMOUSrP43tAQNSRVxNexDjcNKLCEtnxusAItg1owFUFE6k0NslV26gqVClVvong==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-window": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@types/react-window/-/react-window-1.8.5.tgz", - "integrity": "sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-window-infinite-loader": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/react-window-infinite-loader/-/react-window-infinite-loader-1.0.5.tgz", - "integrity": "sha512-3v45+4oBNJpSroULtb2EgTJyyK4pCjOMCg+RT/HnA3or5zY4jYufv6uH9NWPyLv0nx8dqt1s4nJqHilfthwKSw==", - "dev": true, - "requires": { - "@types/react": "*", - "@types/react-window": "*" - } - }, - "@types/resize-observer-browser": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@types/resize-observer-browser/-/resize-observer-browser-0.1.6.tgz", - "integrity": "sha512-61IfTac0s9jvNtBCpyo86QeaN8qqpMGHdK0uGKCCIy2dt5/Yk84VduHIdWAcmkC5QvdkPL0p5eWYgUZtHKKUVg==" - }, - "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "@types/semver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==", - "dev": true - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", - "dev": true - }, - "@types/sqlstring": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@types/sqlstring/-/sqlstring-2.3.0.tgz", - "integrity": "sha512-kMFecDYYFk/f5fljO0UFrSPwU1JxY4mIjX6ic7MHv5nD6sEd3NYLoWcOV/3s6Drs7RHdCwTQdD5NdgVl0I2zzg==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/tapable": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz", - "integrity": "sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==", - "dev": true - }, - "@types/tough-cookie": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.1.tgz", - "integrity": "sha512-Y0K95ThC3esLEYD6ZuqNek29lNX2EM1qxV8y2FTLUB0ff5wWrk7az+mLrnNFUnaXcgKye22+sFBRXOgpPILZNg==", - "dev": true - }, - "@types/uglify-js": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz", - "integrity": "sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "@types/uuid": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", - "dev": true - }, - "@types/webpack": { - "version": "4.41.32", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz", - "integrity": "sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@types/webpack-env": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.3.tgz", - "integrity": "sha512-9gtOPPkfyNoEqCQgx4qJKkuNm/x0R2hKR7fdl7zvTJyHnIisuE/LfvXOsYWL0o3qq6uiBnKZNNNzi3l0y/X+xw==", - "dev": true - }, - "@types/webpack-sources": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz", - "integrity": "sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "@types/zxcvbn": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@types/zxcvbn/-/zxcvbn-4.4.1.tgz", - "integrity": "sha512-3NoqvZC2W5gAC5DZbTpCeJ251vGQmgcWIHQJGq2J240HY6ErQ9aWKkwfoKJlHLx+A83WPNTZ9+3cd2ILxbvr1w==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "devOptional": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "devOptional": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "devOptional": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "devOptional": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "devOptional": true, - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "devOptional": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "devOptional": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "devOptional": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "devOptional": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "devOptional": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "devOptional": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "devOptional": true - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "airbnb-js-shims": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz", - "integrity": "sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "array.prototype.flatmap": "^1.2.1", - "es5-shim": "^4.5.13", - "es6-shim": "^0.35.5", - "function.prototype.name": "^1.1.0", - "globalthis": "^1.0.0", - "object.entries": "^1.1.0", - "object.fromentries": "^2.0.0 || ^1.0.0", - "object.getownpropertydescriptors": "^2.0.3", - "object.values": "^1.1.0", - "promise.allsettled": "^1.0.0", - "promise.prototype.finally": "^3.1.0", - "string.prototype.matchall": "^4.0.0 || ^3.0.1", - "string.prototype.padend": "^3.0.0", - "string.prototype.padstart": "^3.0.0", - "symbol.prototype.description": "^1.0.0" - } - }, - "ajv": { - "version": "8.6.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz", - "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "devOptional": true, - "requires": {} - }, - "analytics-node": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/analytics-node/-/analytics-node-3.5.0.tgz", - "integrity": "sha512-XgQq6ejZHCehUSnZS4V7QJPLIP7S9OAWwQDYl4WTLtsRvc5fCxIwzK/yihzmIW51v9PnyBmrl9dMcqvwfOE8WA==", - "requires": { - "@segment/loosely-validate-event": "^2.0.0", - "axios": "^0.21.1", - "axios-retry": "^3.0.2", - "lodash.isstring": "^4.0.1", - "md5": "^2.2.1", - "ms": "^2.0.0", - "remove-trailing-slash": "^0.1.0", - "uuid": "^3.2.1" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dev": true, - "requires": { - "string-width": "^4.1.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansi-to-html": { - "version": "0.6.15", - "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.15.tgz", - "integrity": "sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ==", - "dev": true, - "requires": { - "entities": "^2.0.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-dir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", - "integrity": "sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg=", - "dev": true - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-hidden": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.1.3.tgz", - "integrity": "sha512-RhVWFtKH5BiGMycI72q2RAFMLQi8JP9bLuQXgR5a8Znp7P5KOIADSJeyfI8PCVxLEp067B2HbP5JIiI/PXIZeA==", - "requires": { - "tslib": "^1.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "devOptional": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "devOptional": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "devOptional": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "devOptional": true - }, - "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "array.prototype.map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.4.tgz", - "integrity": "sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" - } - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "devOptional": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "devOptional": true - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "devOptional": true - }, - "autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", - "requires": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "awesome-debounce-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/awesome-debounce-promise/-/awesome-debounce-promise-2.1.0.tgz", - "integrity": "sha512-0Dv4j2wKk5BrNZh4jgV2HUdznaeVgEK/WTvcHhZWUElhmQ1RR+iURRoLEwICFyR0S/5VtxfcvY6gR+qSe95jNg==", - "requires": { - "@types/debounce-promise": "^3.1.1", - "awesome-imperative-promise": "^1.0.1", - "awesome-only-resolves-last-promise": "^1.0.3", - "debounce-promise": "^3.1.0" - } - }, - "awesome-imperative-promise": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/awesome-imperative-promise/-/awesome-imperative-promise-1.0.1.tgz", - "integrity": "sha512-EmPr3FqbQGqlNh+WxMNcF9pO9uDQJnOC4/3rLBQNH9m4E9qI+8lbfHCmHpVAsmGqPJPKhCjJLHUQzQW/RBHRdQ==" - }, - "awesome-only-resolves-last-promise": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/awesome-only-resolves-last-promise/-/awesome-only-resolves-last-promise-1.0.3.tgz", - "integrity": "sha512-7q4WPsYiD8Omvi/yHL314DkvsD/lM//Z2/KcU1vWk0xJotiV0GMJTgHTpWl3n90HJqpXKg7qX+VVNs5YbQyPRQ==", - "requires": { - "awesome-imperative-promise": "^1.0.1" - } - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "axios-retry": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.2.4.tgz", - "integrity": "sha512-Co3UXiv4npi6lM963mfnuH90/YFLKWWDmoBYfxkHT5xtkSSWNqK9zdG3fw5/CP/dsoKB5aMMJCsgab+tp1OxLQ==", - "requires": { - "@babel/runtime": "^7.15.4", - "is-retry-allowed": "^2.2.0" - } - }, - "babel-jest": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.2.tgz", - "integrity": "sha512-MADrjb3KBO2eyZCAc6QaJg6RT5u+6oEdDyHO5HEalnpwQ6LrhTsQF2Kj1Wnz2t6UPXIXPk18dSXXOT0wF5yTxA==", - "dev": true, - "requires": { - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.4.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "babel-loader": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.4.tgz", - "integrity": "sha512-8dytA3gcvPPPv4Grjhnt8b5IIiTcq/zeXOPk4iTYI0SVXcsmuGg7JtBRDp8S9X+gJfhQ8ektjXZlDu1Bb33U8A==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, - "babel-plugin-add-react-displayname": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz", - "integrity": "sha1-M51M3be2X9YtHfnbn+BN4TQSK9U=", - "dev": true - }, - "babel-plugin-apply-mdx-type-prop": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", - "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@mdx-js/util": "1.6.22" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-emotion": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz", - "integrity": "sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/serialize": "^0.11.16", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^1.0.5", - "find-root": "^1.1.0", - "source-map": "^0.5.7" - }, - "dependencies": { - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "babel-plugin-extract-import-names": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", - "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - } - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "dependencies": { - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - } - } - }, - "babel-plugin-jest-hoist": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz", - "integrity": "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - } - }, - "babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "dev": true, - "requires": {} - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", - "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.1.5", - "core-js-compat": "^3.8.1" - }, - "dependencies": { - "@babel/helper-define-polyfill-provider": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", - "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "babel-plugin-react-docgen": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.1.tgz", - "integrity": "sha512-UQ0NmGHj/HAqi5Bew8WvNfCk8wSsmdgNd8ZdMjBCICtyCJCq9LiqgqvjCYe570/Wg7AQArSq1VQ60Dd/CHN7mQ==", - "dev": true, - "requires": { - "ast-types": "^0.14.2", - "lodash": "^4.17.15", - "react-docgen": "^5.0.0" - }, - "dependencies": { - "ast-types": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", - "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", - "dev": true, - "requires": { - "tslib": "^2.0.1" - } - } - } - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", - "dev": true - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz", - "integrity": "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.4.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "devOptional": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "devOptional": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "devOptional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "devOptional": true - }, - "batch-processor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz", - "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=", - "dev": true - }, - "better-opn": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz", - "integrity": "sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==", - "dev": true, - "requires": { - "open": "^7.0.3" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "devOptional": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "devOptional": true - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "devOptional": true - }, - "body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", - "dev": true - }, - "raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - } - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "devOptional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "devOptional": true - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "devOptional": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "devOptional": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "devOptional": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "devOptional": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "devOptional": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "devOptional": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", - "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - }, - "dependencies": { - "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" - } - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "devOptional": true - }, - "buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "devOptional": true - }, - "bufferutil": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", - "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "devOptional": true - }, - "c8": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.0.tgz", - "integrity": "sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@istanbuljs/schema": "^0.1.2", - "find-up": "^5.0.0", - "foreground-child": "^2.0.0", - "istanbul-lib-coverage": "^3.0.1", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "rimraf": "^3.0.0", - "test-exclude": "^6.0.0", - "v8-to-istanbul": "^8.0.0", - "yargs": "^16.2.0", - "yargs-parser": "^20.2.7" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "devOptional": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" - }, - "caniuse-lite": { - "version": "1.0.30001373", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", - "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==" - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", - "dev": true - }, - "ccount": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "dev": true - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "dev": true - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "dev": true - }, - "charcodes": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", - "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", - "dev": true - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "devOptional": true - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "devOptional": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "devOptional": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "devOptional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "devOptional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "devOptional": true - } - } - }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "cli-table3": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz", - "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==", - "dev": true, - "requires": { - "colors": "1.4.0", - "string-width": "^4.2.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "clipboard": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.8.tgz", - "integrity": "sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==", - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - } - } - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "devOptional": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "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==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "optional": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "dev": true - }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" - }, - "common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "devOptional": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "devOptional": true - }, - "component-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz", - "integrity": "sha1-ikeQFwAjjk/DIml3EjAibyS0Fak=" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "compute-scroll-into-view": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", - "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "devOptional": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "devOptional": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "configcat-common": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/configcat-common/-/configcat-common-4.5.0.tgz", - "integrity": "sha512-RZA0C1BVRlXJaavehPXk8q2YpmZyLovUFz0SHHdfePteDJjZ2iL7USahQi0SwpPK+BA5PKUvHZMkchMV2UGuPA==" - }, - "configcat-js": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/configcat-js/-/configcat-js-5.6.0.tgz", - "integrity": "sha512-lMNdspGPCTSoIqtNQojXCKi4wjX1hl0vnTN3FMUKJQjCY32A6b9kBlbEocsVgzXEoArktRuMzOaXOVmY9+J8Tg==", - "requires": { - "configcat-common": "^4.5.0" - } - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "devOptional": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "devOptional": true - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "devOptional": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "devOptional": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "devOptional": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "devOptional": true - }, - "copy-to-clipboard": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz", - "integrity": "sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==", - "dev": true, - "requires": { - "toggle-selection": "^1.0.6" - } - }, - "core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", - "dev": true - }, - "core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", - "dev": true, - "requires": { - "browserslist": "^4.19.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "requires": { - "@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" - } - }, - "cp-file": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-7.0.0.tgz", - "integrity": "sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "nested-error-stacks": "^2.0.0", - "p-event": "^4.1.0" - } - }, - "cpy": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/cpy/-/cpy-8.1.2.tgz", - "integrity": "sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg==", - "dev": true, - "requires": { - "arrify": "^2.0.1", - "cp-file": "^7.0.0", - "globby": "^9.2.0", - "has-glob": "^1.0.0", - "junk": "^3.1.0", - "nested-error-stacks": "^2.1.0", - "p-all": "^2.1.0", - "p-filter": "^2.1.0", - "p-map": "^3.0.0" - }, - "dependencies": { - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "requires": { - "path-type": "^3.0.0" - } - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "dev": true, - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "globby": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", - "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^1.0.2", - "dir-glob": "^2.2.2", - "fast-glob": "^2.2.6", - "glob": "^7.1.3", - "ignore": "^4.0.3", - "pify": "^4.0.1", - "slash": "^2.0.0" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "devOptional": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "devOptional": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "devOptional": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "devOptional": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" - }, - "css-box-model": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "requires": { - "tiny-invariant": "^1.0.6" - } - }, - "css-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", - "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.0", - "semver": "^6.3.0" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-unit-converter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", - "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==" - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssfontparser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz", - "integrity": "sha1-9AIvyPlwDGgCnVQghK+69CWj8+M=", - "dev": true - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "csstype": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.9.tgz", - "integrity": "sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==" - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "devOptional": true - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", - "requires": { - "internmap": "^1.0.0" - } - }, - "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" - }, - "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" - }, - "d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", - "requires": { - "d3-color": "1 - 2" - } - }, - "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" - }, - "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", - "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" - } - }, - "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", - "requires": { - "d3-path": "1 - 2" - } - }, - "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", - "requires": { - "d3-array": "2" - } - }, - "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", - "requires": { - "d3-time": "1 - 2" - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "dependencies": { - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - } - } - }, - "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" - }, - "dayjs": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.0.tgz", - "integrity": "sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==" - }, - "debounce-promise": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/debounce-promise/-/debounce-promise-3.1.2.tgz", - "integrity": "sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" - }, - "decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "requires": { - "character-entities": "^2.0.0" - }, - "dependencies": { - "character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" - } - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "devOptional": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deep-object-diff": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.7.tgz", - "integrity": "sha512-QkgBca0mL08P6HiOjoqvmm6xOAl2W6CT2+34Ljhg0OeFan8cwlcdq8jrLKsBBuUFAZLsN5b6y491KdKEoSo9lg==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "devOptional": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "dequal": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", - "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "devOptional": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", - "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", - "dev": true, - "requires": { - "repeat-string": "^1.5.4" - } - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" - }, - "detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", - "dev": true, - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - } - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==" - }, - "diff-sequences": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", - "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "devOptional": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - } - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "dnd-core": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-14.0.0.tgz", - "integrity": "sha512-wTDYKyjSqWuYw3ZG0GJ7k+UIfzxTNoZLjDrut37PbcPGNfwhlKYlPUqjAKUjOOv80izshUiqusaKgJPItXSevA==", - "requires": { - "@react-dnd/asap": "^4.0.0", - "@react-dnd/invariant": "^2.0.0", - "redux": "^4.0.5" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-accessibility-api": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.10.tgz", - "integrity": "sha512-Xu9mD0UjrJisTmv7lmVSDMagQcU9R5hwAbxsaAE/35XPnPLJobbuREfV/rraiSaEj/UOvgrzQs66zyTWTlyd+g==", - "dev": true - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "requires": { - "utila": "~0.4" - } - }, - "dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "requires": { - "@babel/runtime": "^7.1.2" - } - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "dev": true - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "downshift": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/downshift/-/downshift-6.1.7.tgz", - "integrity": "sha512-cVprZg/9Lvj/uhYRxELzlu1aezRcgPWBjTvspiGTVEU64gF5pRdSRKFVLcxqsZC637cLAGMbL40JavEfWnqgNg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.14.8", - "compute-scroll-into-view": "^1.0.17", - "prop-types": "^15.7.2", - "react-is": "^17.0.2", - "tslib": "^2.3.0" - } - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "devOptional": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.96", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.96.tgz", - "integrity": "sha512-DPNjvNGPabv6FcyjzLAN4C0psN/GgD9rSGvMTuv81SeXG/EX3mCz0wiw9N1tUEnfQXYCJi3H8M0oFPRziZh7rw==" - }, - "element-resize-detector": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.4.tgz", - "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==", - "dev": true, - "requires": { - "batch-processor": "1.0.0" - } - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "devOptional": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - } - } - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "devOptional": true - }, - "emotion-theming": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.3.0.tgz", - "integrity": "sha512-mXiD2Oj7N9b6+h/dC6oLf9hwxbtKHQjoIqtodEyL8CpkN4F3V4IK/BT4D0C7zSs4BBFOu4UlPJbvvBLa88SGEA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.5.5", - "@emotion/weak-memoize": "0.2.5", - "hoist-non-react-statics": "^3.3.0" - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "peer": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "devOptional": true, - "requires": { - "once": "^1.4.0" - } - }, - "endent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", - "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", - "dev": true, - "requires": { - "dedent": "^0.7.0", - "fast-json-parse": "^1.0.3", - "objectorarray": "^1.0.5" - } - }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "devOptional": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "devOptional": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "devOptional": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", - "dev": true, - "requires": { - "stackframe": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - } - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.61", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz", - "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==", - "requires": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - } - }, - "es5-shim": { - "version": "4.6.5", - "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.6.5.tgz", - "integrity": "sha512-vfQ4UAai8szn0sAubCy97xnZ4sJVDD1gt/Grn736hg8D7540wemIb1YPrYZSTqlM2H69EQX1or4HU/tSwRTI3w==", - "dev": true - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-shim": { - "version": "0.35.6", - "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.6.tgz", - "integrity": "sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA==", - "dev": true - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } - } - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "devOptional": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "devOptional": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "devOptional": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "devOptional": true - }, - "estree-to-babel": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/estree-to-babel/-/estree-to-babel-3.2.1.tgz", - "integrity": "sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.6", - "@babel/types": "^7.2.0", - "c8": "^7.6.0" - } - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "devOptional": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "devOptional": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - } - } - }, - "exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "devOptional": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "devOptional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "devOptional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "devOptional": true - } - } - }, - "expect": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz", - "integrity": "sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.4.0", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", - "dev": true, - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", - "dev": true - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - } - } - }, - "ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", - "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "devOptional": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "devOptional": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "devOptional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true - } - } - }, - "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==" - }, - "fast-equals": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-2.0.3.tgz", - "integrity": "sha512-0EMw4TTUxsMDpDkCg0rXor2gsg+npVrMIHbEhvD0HZyIhUX6AktC/yasm+qKwfyswd06Qy95ZKk8p2crTo0iPA==" - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-parse": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", - "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "devOptional": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "requires": { - "reusify": "^1.0.4" - } - }, - "fault": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", - "dev": true, - "requires": { - "format": "^0.2.0" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "devOptional": true - }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "file-saver": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", - "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" - }, - "file-system-cache": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-1.0.5.tgz", - "integrity": "sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08=", - "dev": true, - "requires": { - "bluebird": "^3.3.5", - "fs-extra": "^0.30.0", - "ramda": "^0.21.0" - }, - "dependencies": { - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "devOptional": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "follow-redirects": { - "version": "1.14.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz", - "integrity": "sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==" - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "devOptional": true - }, - "foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - } - }, - "fork-ts-checker-webpack-plugin": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", - "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", - "dev": true - }, - "formik": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", - "integrity": "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==", - "requires": { - "deepmerge": "^2.1.1", - "hoist-non-react-statics": "^3.3.0", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "react-fast-compare": "^2.0.1", - "tiny-warning": "^1.0.2", - "tslib": "^1.10.0" - }, - "dependencies": { - "deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fraction.js": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.3.tgz", - "integrity": "sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "devOptional": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "devOptional": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", - "dev": true - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "devOptional": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "devOptional": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.2.tgz", - "integrity": "sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==", - "dev": true - }, - "fuse.js": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz", - "integrity": "sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "generate-password": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/generate-password/-/generate-password-1.7.0.tgz", - "integrity": "sha512-WPCtlfy0jexf7W5IbwxGUgpIDvsZIohbI2DAq2Q6TSlKKis+G4GT9sxvPxrZUGL8kP6WUXMWNqYnxY6DDKAdFA==" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "devOptional": true - }, - "github-slugger": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", - "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==", - "dev": true - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "devOptional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-promise": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", - "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", - "dev": true, - "requires": { - "@types/glob": "*" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globalthis": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", - "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "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" - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "requires": { - "delegate": "^3.1.2" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "devOptional": true - }, - "gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "requires": { - "duplexer": "^0.1.2" - } - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-glob/-/has-glob-1.0.0.tgz", - "integrity": "sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc=", - "dev": true, - "requires": { - "is-glob": "^3.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "devOptional": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "devOptional": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "devOptional": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "devOptional": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hast-to-hyperscript": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", - "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", - "dev": true, - "requires": { - "@types/unist": "^2.0.3", - "comma-separated-tokens": "^1.0.0", - "property-information": "^5.3.0", - "space-separated-tokens": "^1.0.0", - "style-to-object": "^0.3.0", - "unist-util-is": "^4.0.0", - "web-namespaces": "^1.0.0" - } - }, - "hast-util-from-parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", - "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", - "dev": true, - "requires": { - "@types/parse5": "^5.0.0", - "hastscript": "^6.0.0", - "property-information": "^5.0.0", - "vfile": "^4.0.0", - "vfile-location": "^3.2.0", - "web-namespaces": "^1.0.0" - }, - "dependencies": { - "@types/parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==", - "dev": true - } - } - }, - "hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", - "dev": true - }, - "hast-util-raw": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", - "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", - "dev": true, - "requires": { - "@types/hast": "^2.0.0", - "hast-util-from-parse5": "^6.0.0", - "hast-util-to-parse5": "^6.0.0", - "html-void-elements": "^1.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^3.0.0", - "vfile": "^4.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - } - }, - "hast-util-to-parse5": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", - "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", - "dev": true, - "requires": { - "hast-to-hyperscript": "^9.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - } - }, - "hast-util-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz", - "integrity": "sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==" - }, - "hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "dev": true, - "requires": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "dev": true - }, - "history": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/history/-/history-5.0.0.tgz", - "integrity": "sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.6" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "devOptional": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "dev": true, - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - } - } - }, - "html-tags": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", - "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", - "dev": true - }, - "html-void-elements": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", - "dev": true - }, - "html-webpack-plugin": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", - "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", - "dev": true, - "requires": { - "@types/html-minifier-terser": "^5.0.0", - "@types/tapable": "^1.0.5", - "@types/webpack": "^4.41.8", - "html-minifier-terser": "^5.0.1", - "loader-utils": "^1.2.3", - "lodash": "^4.17.20", - "pretty-error": "^2.1.1", - "tapable": "^1.1.3", - "util.promisify": "1.0.0" - } - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "devOptional": true - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "peer": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "dev": true, - "requires": { - "postcss": "^7.0.14" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "devOptional": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "devOptional": true - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, - "immutability-helper": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-3.1.1.tgz", - "integrity": "sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==" - }, - "import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "requires": { - "import-from": "^3.0.0" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - } - } - }, - "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "devOptional": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "devOptional": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "devOptional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "devOptional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "dev": true - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dev": true, - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - }, - "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - } - } - }, - "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "devOptional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "dev": true - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "devOptional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-dom": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.1.0.tgz", - "integrity": "sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ==", - "dev": true, - "requires": { - "is-object": "^1.0.1", - "is-window": "^1.0.2" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "devOptional": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "dev": true - }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "devOptional": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-retry-allowed": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", - "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==" - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", - "dev": true - }, - "is-window": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz", - "integrity": "sha1-LIlspT25feRdPDMTOmXYyfVjSA0=", - "dev": true - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "devOptional": true - }, - "is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "devOptional": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.0.tgz", - "integrity": "sha512-rgeP8yMlXeH4mfd9K/sQXZv1lvcS7xo379zntcotPDdMwkcGYwMxGHGZYo0/+YW5B/nor2YGKz2BH5ume405ow==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "iterate-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz", - "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==", - "dev": true - }, - "iterate-value": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", - "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", - "dev": true, - "requires": { - "es-get-iterator": "^1.0.2", - "iterate-iterator": "^1.0.1" - } - }, - "jest": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.2.tgz", - "integrity": "sha512-TAReynFYCfHNcrL+8Z74WPGafLFLF++bGkrpcsk6cO5G9S2VuJGhu2c44YFForMgF0GlYmtbpmeznkvZpNgTxg==", - "dev": true, - "requires": { - "@jest/core": "^27.4.2", - "import-local": "^3.0.2", - "jest-cli": "^27.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-cli": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.2.tgz", - "integrity": "sha512-Ex2WhCj4s0XFntTKTnyLgV/CZKgQaZBYrKz02XOZ4nUjFD+26Fji/M1SgHm+2IWEIsQqoipNRx9RJH56p8d7MQ==", - "dev": true, - "requires": { - "@jest/core": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-canvas-mock": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/jest-canvas-mock/-/jest-canvas-mock-2.3.1.tgz", - "integrity": "sha512-5FnSZPrX3Q2ZfsbYNE3wqKR3+XorN8qFzDzB5o0golWgt6EOX1+emBnpOc9IAQ+NXFj8Nzm3h7ZdE/9H0ylBcg==", - "dev": true, - "requires": { - "cssfontparser": "^1.2.1", - "moo-color": "^1.0.2" - } - }, - "jest-changed-files": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz", - "integrity": "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.2.tgz", - "integrity": "sha512-2ePUSru1BGMyzxsMvRfu+tNb+PW60rUyMLJBfw1Nrh5zC8RoTPfF+zbE0JToU31a6ZVe4nnrNKWYRzlghAbL0A==", - "dev": true, - "requires": { - "@jest/environment": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-config": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.2.tgz", - "integrity": "sha512-2vKqelsfHPnIzrPTpE9hImqxZLp5l9Vszpci19RdVB2i5OwoM+OkPExZMQb8aGrpEGXoKtlzvdqCL1GObiz8JQ==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.4.2", - "@jest/types": "^27.4.2", - "babel-jest": "^27.4.2", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.4.2", - "jest-environment-jsdom": "^27.4.2", - "jest-environment-node": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-jasmine2": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-runner": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-diff": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", - "integrity": "sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.4.0", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-docblock": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz", - "integrity": "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.4.2.tgz", - "integrity": "sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.2.tgz", - "integrity": "sha512-L0dV4oq4+Ll7hZ8QCGvSELn8uOr938/QKOg6o70kMHiZOpWOjAqSf7fMVAtGhG/BVSvk1GTzhGJNOWsxtH5KbQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.4.2", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/jsdom": "^16.2.4", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2", - "jsdom": "^16.6.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-node": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.2.tgz", - "integrity": "sha512-nzTZ5nJ+FabuZPH2YVci7SZIHpvtNRHPt8+vipLkCnAgXGjVzHm7XJWdnNqXbAkExIgiKeVEkVMNZOZE/LeiIg==", - "dev": true, - "requires": { - "@jest/environment": "^27.4.2", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "dev": true - }, - "jest-haste-map": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.2.tgz", - "integrity": "sha512-foiyAEePORUN2eeJnOtcM1y8qW0ShEd9kTjWVL4sVaMcuCJM6gtHegvYPBRT0mpI/bs4ueThM90+Eoj2ncoNsA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-jasmine2": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.2.tgz", - "integrity": "sha512-VO/fyAJSH9u0THjbteFiL8qc93ufU+yW+bdieDc8tzTCWwlWzO53UHS5nFK1qmE8izb5Smkn+XHlVt6/l06MKQ==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.4.2", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz", - "integrity": "sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw==", - "dev": true, - "requires": { - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - } - }, - "jest-matcher-utils": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz", - "integrity": "sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-message-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz", - "integrity": "sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-mock": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.2.tgz", - "integrity": "sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", - "dev": true - }, - "jest-resolve": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.2.tgz", - "integrity": "sha512-d/zqPjxCzMqHlOdRTg8cTpO9jY+1/T74KazT8Ws/LwmwxV5sRMWOkiLjmzUCDj/5IqA5XHNK4Hkmlq9Kdpb9Sg==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.2.tgz", - "integrity": "sha512-hb++cTpqvOWfU49MCP/JQkxmnrhKoAVqXWFjgYXswRSVGk8Q6bDTSvhbCeYXDtXaymY0y7WrrSIlKogClcKJuw==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-snapshot": "^27.4.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-runner": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.2.tgz", - "integrity": "sha512-YsgbYKk8V7J5BQPINXhdzNLoqIwUWrJkV9h6/ccsn6fbmC3n3ax1K5cDWzAU9qXyaQhetwFqPpHmAHIACscRKQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.4.0", - "jest-environment-jsdom": "^27.4.2", - "jest-environment-node": "^27.4.2", - "jest-haste-map": "^27.4.2", - "jest-leak-detector": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-runtime": "^27.4.2", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.2", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-runtime": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.2.tgz", - "integrity": "sha512-eqPgcBaUNaw6j8T5M+dnfAEh6MIrh2YmtskCr9sl50QYpD22Sg+QqHw3J3nmaLzVMbBtOMHFFxLF0Qx8MsZVFQ==", - "dev": true, - "requires": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.2", - "@jest/globals": "^27.4.2", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.2", - "jest-snapshot": "^27.4.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-snapshot": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz", - "integrity": "sha512-DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.2", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.0.tgz", - "integrity": "sha512-9HL5h/IWeg2u2dt0UIiseVRCnadh7CMPD4B9AeoEO23/NofaEfcPzIfl8dw45CpGHjP+xenw1viQYMd25DWquA==", - "dev": true, - "requires": { - "@jest/types": "^27.4.0", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "join-component": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", - "integrity": "sha1-uEF7dQZho5K+4sJTfGiyqdSXfNU=" - }, - "js-string-escape": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", - "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", - "dev": true - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-logic-js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/json-logic-js/-/json-logic-js-2.0.2.tgz", - "integrity": "sha512-ZBtBdMJieqQcH7IX/LaBsr5pX+Y5JIW+EhejtM3Ffg2jdN9Iwf+Ht6TbHnvAZ/YtwyuhPaCBlnvzrwVeWdvGDQ==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "devOptional": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "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==" - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "junk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", - "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "devOptional": true - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "dev": true - }, - "lazy-universal-dotenv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz", - "integrity": "sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.5.0", - "app-root-dir": "^1.0.2", - "core-js": "^3.0.4", - "dotenv": "^8.0.0", - "dotenv-expand": "^5.1.0" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", - "requires": { - "immediate": "~3.0.5" - } - }, - "lilconfig": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.3.tgz", - "integrity": "sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==" - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "devOptional": true - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "devOptional": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "devOptional": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "localforage": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", - "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", - "requires": { - "lie": "3.1.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "lodash.castarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", - "integrity": "sha1-wCUTUV4wna3dTCTGDP3c9ZdtkRU=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lottie-react": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/lottie-react/-/lottie-react-2.2.1.tgz", - "integrity": "sha512-lAdIUw+zeHLX3gtyLkisa4QM9NkTUUeZTsEL53laBEsjIH4JibgwkioZuza8CtwZ7/cpPZRbCRXWKfiuaDZWww==", - "requires": { - "lottie-web": "^5.8.1" - } - }, - "lottie-web": { - "version": "5.9.4", - "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.9.4.tgz", - "integrity": "sha512-bSs1ZTPifnBVejO1MnQHdfrKfcn02YTCmgOh2wcAEICqRA0V7GzDh8FnwXY6+EzT+i8XOunaIloo/5xC5YNbsA==" - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "lowlight": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", - "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", - "dev": true, - "requires": { - "fault": "^1.0.0", - "highlight.js": "~10.7.0" - } - }, - "lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "lz-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "devOptional": true - }, - "map-or-similar": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", - "integrity": "sha1-beJlMXSt+12e3DPGnT6Sobdvrwg=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "devOptional": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", - "dev": true - }, - "markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "requires": { - "repeat-string": "^1.0.0" - } - }, - "markdown-to-jsx": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.1.7.tgz", - "integrity": "sha512-VI3TyyHlGkO8uFle0IOibzpO1c1iJDcXcS/zBrQrXQQvJ2tpdwVzVZ7XdKsyRz1NdRmre4dqQkMZzUHaKIG/1w==", - "dev": true, - "requires": {} - }, - "md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "requires": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "devOptional": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdast-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", - "dev": true, - "requires": { - "unist-util-remove": "^2.0.0" - } - }, - "mdast-util-definitions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", - "dev": true, - "requires": { - "unist-util-visit": "^2.0.0" - } - }, - "mdast-util-from-markdown": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", - "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - }, - "dependencies": { - "mdast-util-to-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz", - "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" - }, - "unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "requires": { - "@types/unist": "^2.0.0" - } - } - } - }, - "mdast-util-to-hast": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", - "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", - "dev": true, - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "mdast-util-definitions": "^4.0.0", - "mdurl": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", - "dev": true - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", - "dev": true, - "requires": { - "fs-monkey": "1.0.3" - } - }, - "memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==" - }, - "memoizerific": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", - "integrity": "sha1-fIekZGREwy11Q4VwkF8tvRsagFo=", - "dev": true, - "requires": { - "map-or-similar": "^1.5.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "devOptional": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", - "dev": true - }, - "micromark": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", - "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", - "requires": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "micromark-core-commonmark": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", - "requires": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-factory-label": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-factory-title": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-factory-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", - "requires": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", - "requires": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-chunked": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-classify-character": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-combine-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", - "requires": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-decode-numeric-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-decode-string": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", - "requires": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==" - }, - "micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==" - }, - "micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", - "requires": { - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-resolve-all": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", - "requires": { - "micromark-util-types": "^1.0.0" - } - }, - "micromark-util-sanitize-uri": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.0.0.tgz", - "integrity": "sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==", - "requires": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "micromark-util-subtokenize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", - "requires": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==" - }, - "micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "devOptional": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - } - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, - "requires": { - "dom-walk": "^0.1.0" - } - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true - }, - "mini-svg-data-uri": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", - "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==" - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "devOptional": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "devOptional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "devOptional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "devOptional": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "devOptional": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "mobx": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.3.3.tgz", - "integrity": "sha512-JoNU50rO6d1wHwKPJqKq4rmUMbYnI9CsJmBo+Cu4exBYenFvIN77LWrZENpzW6reZPADtXMmB1DicbDSfy8Clw==" - }, - "mobx-react-lite": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-3.2.1.tgz", - "integrity": "sha512-hwURgfmP2apX3HQrB55V9DN47kuN3C6KlQvI5UIfJRibXma72C/JudcNt2r9dWjAdFMrcZoz1ivvtXMCkJ2aQA==", - "requires": {} - }, - "monaco-editor": { - "version": "0.33.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.33.0.tgz", - "integrity": "sha512-VcRWPSLIUEgQJQIE0pVT8FcGBIgFoxz7jtqctE+IiCxWugD0DwgyQBcZBhdSrdMC84eumoqMZsGl2GTreOzwqw==", - "peer": true - }, - "moo-color": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.2.tgz", - "integrity": "sha512-5iXz5n9LWQzx/C2WesGFfpE6RLamzdHwsn3KpfzShwbfIqs7stnoEpaNErf/7+3mbxwZ4s8Foq7I0tPxw7BWHg==", - "dev": true, - "requires": { - "color-name": "^1.1.4" - }, - "dependencies": { - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "devOptional": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "devOptional": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "devOptional": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, - "optional": true - }, - "nanoclone": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", - "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==" - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "devOptional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "devOptional": true - }, - "nested-error-stacks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz", - "integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==", - "dev": true - }, - "next": { - "version": "12.0.9", - "resolved": "https://registry.npmjs.org/next/-/next-12.0.9.tgz", - "integrity": "sha512-omfYqoR/DvbdOIJ6SS1unKJ4mGIxUPs0RPa7wr/Mft22OCKgJhuG+aI9KFYi5ZJBwoFQk1vqaMKpWz5qr+dN0Q==", - "requires": { - "@next/env": "12.0.9", - "@next/swc-android-arm64": "12.0.9", - "@next/swc-darwin-arm64": "12.0.9", - "@next/swc-darwin-x64": "12.0.9", - "@next/swc-linux-arm-gnueabihf": "12.0.9", - "@next/swc-linux-arm64-gnu": "12.0.9", - "@next/swc-linux-arm64-musl": "12.0.9", - "@next/swc-linux-x64-gnu": "12.0.9", - "@next/swc-linux-x64-musl": "12.0.9", - "@next/swc-win32-arm64-msvc": "12.0.9", - "@next/swc-win32-ia32-msvc": "12.0.9", - "@next/swc-win32-x64-msvc": "12.0.9", - "caniuse-lite": "^1.0.30001283", - "postcss": "8.4.5", - "styled-jsx": "5.0.0", - "use-subscription": "1.5.1" - }, - "dependencies": { - "postcss": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", - "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", - "requires": { - "nanoid": "^3.1.30", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.1" - } - }, - "styled-jsx": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.0.tgz", - "integrity": "sha512-qUqsWoBquEdERe10EW8vLp3jT25s/ssG1/qX5gZ4wu15OZpmSMFI2v+fWlRhLfykA5rFtlJ1ME8A8pm/peV4WA==", - "requires": {} - } - } - }, - "next-compose-plugins": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/next-compose-plugins/-/next-compose-plugins-2.2.1.tgz", - "integrity": "sha512-OjJ+fV15FXO2uQXQagLD4C0abYErBjyjE0I0FHpOEIB8upw0hg1ldFP6cqHTJBH1cZqy96OeR3u1dJ+Ez2D4Bg==" - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-dir": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", - "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", - "dev": true, - "requires": { - "minimatch": "^3.0.2" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp-build": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", - "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "devOptional": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "devOptional": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "devOptional": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "devOptional": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "devOptional": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "devOptional": true - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "devOptional": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "devOptional": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "devOptional": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "devOptional": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "devOptional": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "devOptional": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "devOptional": true, - "requires": { - "inherits": "2.0.3" - } - } - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "devOptional": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "devOptional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "devOptional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "devOptional": true - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "devOptional": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "devOptional": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "objectorarray": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz", - "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "devOptional": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "openapi-types": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-9.3.0.tgz", - "integrity": "sha512-sR23YjmuwDSMsQVZDHbV9mPgi0RyniQlqR0AQxTC2/F3cpSjRFMH3CFPjoWvNqhC4OxPkDYNb2l8Mc1Me6D/KQ==" - }, - "opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "devOptional": true - }, - "overlayscrollbars": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz", - "integrity": "sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ==", - "dev": true - }, - "p-all": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-all/-/p-all-2.1.0.tgz", - "integrity": "sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA==", - "dev": true, - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - } - } - }, - "p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "dev": true, - "requires": { - "p-timeout": "^3.1.0" - } - }, - "p-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", - "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", - "dev": true, - "requires": { - "p-map": "^2.0.0" - }, - "dependencies": { - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - } - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "requires": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - } - }, - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "requires": { - "p-finally": "^1.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "devOptional": true - }, - "packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "devOptional": true - }, - "papaparse": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.1.tgz", - "integrity": "sha512-Dbt2yjLJrCwH2sRqKFFJaN5XgIASO9YOFeFP8rIBRG2Ain8mqk5r1M6DkfvqEVozVcz3r3HaUGw253hA1nLIcA==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "devOptional": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "devOptional": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dev": true, - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@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": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "devOptional": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "devOptional": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz", - "integrity": "sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==" - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "devOptional": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pg": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.1.tgz", - "integrity": "sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==", - "requires": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.4.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - } - }, - "pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" - }, - "pg-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pg-format/-/pg-format-1.0.4.tgz", - "integrity": "sha1-J3NCNsKtP05QZJFaWTNOIAQKgo4=" - }, - "pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" - }, - "pg-pool": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.4.1.tgz", - "integrity": "sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==", - "requires": {} - }, - "pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" - }, - "pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "requires": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - } - }, - "pgpass": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz", - "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", - "requires": { - "split2": "^3.1.1" - } - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "devOptional": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "pnp-webpack-plugin": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", - "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", - "dev": true, - "requires": { - "ts-pnp": "^1.1.6" - } - }, - "polished": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.1.4.tgz", - "integrity": "sha512-Nq5Mbza+Auo7N3sQb1QMFaQiDO+4UexWuSGR7Cjb4Sw11SZIJcrrFtiZ+L0jT9MBsUsxDboHVASbCLbE1rnECg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.16.7" - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "devOptional": true - }, - "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-flexbugs-fixes": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz", - "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==", - "dev": true, - "requires": { - "postcss": "^7.0.26" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", - "requires": { - "camelcase-css": "^2.0.1" - } - }, - "postcss-load-config": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.0.tgz", - "integrity": "sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==", - "requires": { - "import-cwd": "^3.0.0", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "postcss-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.3.0.tgz", - "integrity": "sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==", - "dev": true, - "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.4", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.4" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "dev": true, - "requires": { - "postcss": "^7.0.5" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-modules-local-by-default": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", - "dev": true, - "requires": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "dev": true, - "requires": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", - "dev": true, - "requires": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "requires": { - "postcss-selector-parser": "^6.0.6" - } - }, - "postcss-selector-parser": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", - "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==" - }, - "postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=" - }, - "postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==" - }, - "postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "requires": { - "xtend": "^4.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", - "dev": true - }, - "pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", - "dev": true, - "requires": { - "lodash": "^4.17.20", - "renderkid": "^2.0.4" - } - }, - "pretty-format": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", - "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", - "dev": true, - "requires": { - "@jest/types": "^27.4.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "prism-react-renderer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz", - "integrity": "sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg==", - "requires": {} - }, - "prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "devOptional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "devOptional": true - }, - "promise.allsettled": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.5.tgz", - "integrity": "sha512-tVDqeZPoBC0SlzJHzWGZ2NKAguVq2oiYj7gbggbiTvH2itHohijTp7njOUA0aQ/nl+0lr/r6egmhoYu63UZ/pQ==", - "dev": true, - "requires": { - "array.prototype.map": "^1.0.4", - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "iterate-value": "^1.0.2" - } - }, - "promise.prototype.finally": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.3.tgz", - "integrity": "sha512-EXRF3fC9/0gz4qkt/f5EP5iW4kj9oFpBICNpCNOb/52+8nlHIX07FPLbi/q4qYBQ1xZqivMzTpNQSnArVASolQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "property-expr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", - "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" - }, - "property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "dev": true, - "requires": { - "xtend": "^4.0.0" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "proxy-compare": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.0.2.tgz", - "integrity": "sha512-3qUXJBariEj3eO90M3Rgqq3+/P5Efl0t/dl9g/1uVzIQmO3M+ql4hvNH3mYdu8H+1zcKv07YvL55tsY74jmH1A==" - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "devOptional": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "devOptional": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "devOptional": true - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "devOptional": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "devOptional": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "devOptional": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "querystring": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", - "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "devOptional": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "raf-schd": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", - "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" - }, - "ramda": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", - "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "devOptional": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "devOptional": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", - "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-beautiful-dnd": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz", - "integrity": "sha512-aGvblPZTJowOWUNiwd6tNfEpgkX5OxmpqxHKNW/4VmvZTNTbeiq7bA3bn5T+QSF2uibXB0D1DmJsb1aC/+3cUA==", - "requires": { - "@babel/runtime": "^7.9.2", - "css-box-model": "^1.2.0", - "memoize-one": "^5.1.1", - "raf-schd": "^4.0.2", - "react-redux": "^7.2.0", - "redux": "^4.0.4", - "use-memo-one": "^1.1.1" - } - }, - "react-colorful": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.5.1.tgz", - "integrity": "sha512-M1TJH2X3RXEt12sWkpa6hLc/bbYS0H6F4rIqjQZ+RxNBstpY67d9TrFXtqdZwhpmBXcCwEi7stKqFue3ZRkiOg==", - "dev": true, - "requires": {} - }, - "react-contexify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/react-contexify/-/react-contexify-5.0.0.tgz", - "integrity": "sha512-2FIp7lxJ6dtfGr8EZ4uVV5p5TQjd0n2h/JU7PrejNIMiCeZWvSVPFh4lj1ZvjXosglBvP7q5JQQ8yUCdSaMSaw==", - "requires": { - "clsx": "^1.1.1" - } - }, - "react-csv": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/react-csv/-/react-csv-2.0.3.tgz", - "integrity": "sha512-exyAdFLAxtuM4wNwLYrlKyPYLiJ7e0mv9tqPAd3kq+k1CiJFtznevR3yP0icv5q/y200w+lzNgi7TQn1Wrhu0w==" - }, - "react-datepicker": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.7.0.tgz", - "integrity": "sha512-FS8KgbwqpxmJBv/bUdA42MYqYZa+fEYcpc746DZiHvVE2nhjrW/dg7c5B5fIUuI8gZET6FOzuDgezNcj568Czw==", - "requires": { - "@popperjs/core": "^2.9.2", - "classnames": "^2.2.6", - "date-fns": "^2.24.0", - "prop-types": "^15.7.2", - "react-onclickoutside": "^6.12.0", - "react-popper": "^2.2.5" - } - }, - "react-dnd": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-14.0.3.tgz", - "integrity": "sha512-i73Hx5SKfDRdwXe30+CjF/DidiRdt/gwpPN14ajkPR20t/0osnNKFNHg3DLV6RZym+DJ0pO9H5APeMsBWGU3+Q==", - "requires": { - "@react-dnd/invariant": "^2.0.0", - "@react-dnd/shallowequal": "^2.0.0", - "dnd-core": "14.0.0", - "fast-deep-equal": "^3.1.3", - "hoist-non-react-statics": "^3.3.2" - } - }, - "react-dnd-html5-backend": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-14.0.1.tgz", - "integrity": "sha512-ZDmpvFpd1NR4riw/CMbr8C3mgP6ZhsTf0c48a36kw4ZW8emgiugNlAz/qhhZ4/Pz9TO6DZ63sQohUTTl+AWGiA==", - "requires": { - "dnd-core": "14.0.0" - } - }, - "react-docgen": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.0.tgz", - "integrity": "sha512-JBjVQ9cahmNlfjMGxWUxJg919xBBKAoy3hgDgKERbR+BcF4ANpDuzWAScC7j27hZfd8sJNmMPOLWo9+vB/XJEQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@babel/generator": "^7.12.11", - "@babel/runtime": "^7.7.6", - "ast-types": "^0.14.2", - "commander": "^2.19.0", - "doctrine": "^3.0.0", - "estree-to-babel": "^3.1.0", - "neo-async": "^2.6.1", - "node-dir": "^0.1.10", - "strip-indent": "^3.0.0" - }, - "dependencies": { - "ast-types": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz", - "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==", - "dev": true, - "requires": { - "tslib": "^2.0.1" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "react-docgen-typescript": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz", - "integrity": "sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==", - "dev": true, - "requires": {} - }, - "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - } - }, - "react-draggable": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.4.tgz", - "integrity": "sha512-6e0WdcNLwpBx/YIDpoyd2Xb04PB0elrDrulKUgdrIlwuYvxh5Ok9M+F8cljm8kPXXs43PmMzek9RrB1b7mLMqA==", - "requires": { - "clsx": "^1.1.1", - "prop-types": "^15.6.0" - } - }, - "react-element-to-jsx-string": { - "version": "14.3.4", - "resolved": "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-14.3.4.tgz", - "integrity": "sha512-t4ZwvV6vwNxzujDQ+37bspnLwA4JlgUPWhLjBJWsNIDceAf6ZKUTCjdm08cN6WeZ5pTMKiCJkmAYnpmR4Bm+dg==", - "dev": true, - "requires": { - "@base2/pretty-print-object": "1.0.1", - "is-plain-object": "5.0.0", - "react-is": "17.0.2" - }, - "dependencies": { - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - } - } - }, - "react-fast-compare": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" - }, - "react-from-dom": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.6.1.tgz", - "integrity": "sha512-7aAZx7LhRnmR51W5XtmTBYHGFl2n1AdEk1uoXLuzHa1OoGXrxOW/iwLcudvgp6BGX/l4Yh1rtMrIzvhlvbVddg==", - "requires": {} - }, - "react-grid-layout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.3.0.tgz", - "integrity": "sha512-WqFwybAItXu0AaSt9YL8+9xE5YotIzMcCYE0Q9XBqSKNyShTxPbC0LjObV/tOWZoADNWJ+osseVfRoZsjzwWXg==", - "requires": { - "classnames": "2.3.1", - "lodash.isequal": "^4.0.0", - "prop-types": "^15.0.0", - "react-draggable": "^4.0.0", - "react-resizable": "^3.0.4" - }, - "dependencies": { - "classnames": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz", - "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==" - } - } - }, - "react-helmet-async": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.2.3.tgz", - "integrity": "sha512-mCk2silF53Tq/YaYdkl2sB+/tDoPnaxN7dFS/6ZLJb/rhUY2EWGI5Xj2b4jHppScMqY45MbgPSwTxDchKpZ5Kw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.5", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.2.0", - "shallowequal": "^1.1.0" - }, - "dependencies": { - "react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==", - "dev": true - } - } - }, - "react-hot-toast": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.1.1.tgz", - "integrity": "sha512-Odrp4wue0fHh0pOfZt5H+9nWCMtqs3wdlFSzZPp7qsxfzmbE26QmGWIh6hG43CukiPeOjA8WQhBJU8JwtWvWbQ==", - "requires": { - "goober": "^2.0.35" - }, - "dependencies": { - "csstype": { - "version": "2.6.18", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.18.tgz", - "integrity": "sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==", - "peer": true - }, - "goober": { - "version": "2.0.41", - "resolved": "https://registry.npmjs.org/goober/-/goober-2.0.41.tgz", - "integrity": "sha512-kwjegMT5018zWydhOQlQneCgCtrKJaPsru7TaBWmTYV0nsMeUrM6L6O8JmNYb9UbPMgWcmtf+9p4Y3oJabIH1A==", - "requires": {} - } - } - }, - "react-inlinesvg": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-2.3.0.tgz", - "integrity": "sha512-fEGOdDf4k4bcveArbEpj01pJcH8pOCKLxmSj2POFdGvEk5YK0NZVnH6BXpW/PzACHPRsuh1YKAhNZyFnD28oxg==", - "requires": { - "exenv": "^1.2.2", - "react-from-dom": "^0.6.0" - } - }, - "react-inspector": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-5.1.1.tgz", - "integrity": "sha512-GURDaYzoLbW8pMGXwYPDBIv6nqei4kK7LPRZ9q9HCZF54wqXz/dnylBp/kfE9XmekBhHvLDdcYeyIwSrvtOiWg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.0.0", - "is-dom": "^1.0.0", - "prop-types": "^15.0.0" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-markdown": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.3.tgz", - "integrity": "sha512-We36SfqaKoVNpN1QqsZwWSv/OZt5J15LNgTLWynwAN5b265hrQrsjMtlRNwUvS+YyR3yDM8HpTNc4pK9H/Gc0A==", - "requires": { - "@types/hast": "^2.0.0", - "@types/prop-types": "^15.0.0", - "@types/unist": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "prop-types": "^15.0.0", - "property-information": "^6.0.0", - "react-is": "^18.0.0", - "remark-parse": "^10.0.0", - "remark-rehype": "^10.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.3.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0" - }, - "dependencies": { - "bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" - }, - "comma-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz", - "integrity": "sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==" - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - }, - "is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" - }, - "property-information": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz", - "integrity": "sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==" - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "remark-parse": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", - "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - } - }, - "space-separated-tokens": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", - "integrity": "sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==" - }, - "trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" - }, - "unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" - }, - "unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-visit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz", - "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - } - }, - "unist-util-visit-parents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", - "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - }, - "vfile": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.4.tgz", - "integrity": "sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - } - } - }, - "react-onclickoutside": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.12.1.tgz", - "integrity": "sha512-a5Q7CkWznBRUWPmocCvE8b6lEYw1s6+opp/60dCunhO+G6E4tDTO2Sd2jKE+leEnnrLAE2Wj5DlDHNqj5wPv1Q==", - "requires": {} - }, - "react-popper": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.2.5.tgz", - "integrity": "sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw==", - "requires": { - "react-fast-compare": "^3.0.1", - "warning": "^4.0.2" - }, - "dependencies": { - "react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" - } - } - }, - "react-popper-tooltip": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz", - "integrity": "sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.5", - "@popperjs/core": "^2.5.4", - "react-popper": "^2.2.4" - } - }, - "react-redux": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.6.tgz", - "integrity": "sha512-10RPdsz0UUrRL1NZE0ejTkucnclYSgXp5q+tB5SWx2qeG2ZJQJyymgAhwKy73yiL/13btfB6fPr+rgbMAaZIAQ==", - "requires": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - } - }, - "react-remove-scroll": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.4.4.tgz", - "integrity": "sha512-EyC5ohYhaeKbThMSQxuN2i+QC5HqV3AJvNZKEdiATITexu0gHm00+5ko0ltNS1ajYJVeDgVG2baRSCei0AUWlQ==", - "requires": { - "react-remove-scroll-bar": "^2.1.0", - "react-style-singleton": "^2.1.0", - "tslib": "^1.0.0", - "use-callback-ref": "^1.2.3", - "use-sidecar": "^1.0.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "react-remove-scroll-bar": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.2.0.tgz", - "integrity": "sha512-UU9ZBP1wdMR8qoUs7owiVcpaPwsQxUDC2lypP6mmixaGlARZa7ZIBx1jcuObLdhMOvCsnZcvetOho0wzPa9PYg==", - "requires": { - "react-style-singleton": "^2.1.0", - "tslib": "^1.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "react-resizable": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-resizable/-/react-resizable-3.0.4.tgz", - "integrity": "sha512-StnwmiESiamNzdRHbSSvA65b0ZQJ7eVQpPusrSmcpyGKzC0gojhtO62xxH6YOBmepk9dQTBi9yxidL3W4s3EBA==", - "requires": { - "prop-types": "15.x", - "react-draggable": "^4.0.3" - } - }, - "react-resize-detector": { - "version": "6.7.6", - "resolved": "https://registry.npmjs.org/react-resize-detector/-/react-resize-detector-6.7.6.tgz", - "integrity": "sha512-/6RZlul1yePSoYJxWxmmgjO320moeLC/khrwpEVIL+D2EjLKhqOwzFv+H8laMbImVj7Zu4FlMa0oA7au3/ChjQ==", - "requires": { - "@types/resize-observer-browser": "^0.1.6", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "resize-observer-polyfill": "^1.5.1" - } - }, - "react-router": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.2.2.tgz", - "integrity": "sha512-/MbxyLzd7Q7amp4gDOGaYvXwhEojkJD5BtExkuKmj39VEE0m3l/zipf6h2WIB2jyAO0lI6NGETh4RDcktRm4AQ==", - "dev": true, - "requires": { - "history": "^5.2.0" - }, - "dependencies": { - "history": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", - "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.6" - } - } - } - }, - "react-router-dom": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.2.2.tgz", - "integrity": "sha512-AtYEsAST7bDD4dLSQHDnk/qxWLJdad5t1HFa1qJyUrCeGgEuCSw0VB/27ARbF9Fi/W5598ujvJOm3ujUCVzuYQ==", - "dev": true, - "requires": { - "history": "^5.2.0", - "react-router": "6.2.2" - }, - "dependencies": { - "history": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", - "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.6" - } - } - } - }, - "react-sizeme": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/react-sizeme/-/react-sizeme-3.0.2.tgz", - "integrity": "sha512-xOIAOqqSSmKlKFJLO3inBQBdymzDuXx4iuwkNcJmC96jeiOg5ojByvL+g3MW9LPEsojLbC6pf68zOfobK8IPlw==", - "dev": true, - "requires": { - "element-resize-detector": "^1.2.2", - "invariant": "^2.2.4", - "shallowequal": "^1.1.0", - "throttle-debounce": "^3.0.1" - } - }, - "react-smooth": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-2.0.0.tgz", - "integrity": "sha512-wK4dBBR6P21otowgMT9toZk+GngMplGS1O5gk+2WSiHEXIrQgDvhR5IIlT74Vtu//qpTcipkgo21dD7a7AUNxw==", - "requires": { - "fast-equals": "^2.0.0", - "raf": "^3.4.0", - "react-transition-group": "2.9.0" - } - }, - "react-split": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/react-split/-/react-split-2.0.13.tgz", - "integrity": "sha512-suq/UH4epMu2aF4NBh+imlpUvntsIvU3li9EBBLdxqNtYEg+nY7TGl8Ij65mD1qYyhs3dQhA1Pv3rLXd1s5/lQ==", - "requires": { - "prop-types": "^15.5.7", - "split.js": "^1.6.0" - } - }, - "react-style-singleton": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.1.1.tgz", - "integrity": "sha512-jNRp07Jza6CBqdRKNgGhT3u9umWvils1xsuMOjZlghBDH2MU0PL2WZor4PGYjXpnRCa9DQSlHMs/xnABWOwYbA==", - "requires": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^1.0.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "react-syntax-highlighter": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.3.tgz", - "integrity": "sha512-crPaF+QGPeHNIblxxCdf2Lg936NAHKhNhuMzRL3F9ct6aYXL3NcZtCL0Rms9+qVo6Y1EQLdXGypBNSbPL/r+qg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.3.1", - "highlight.js": "^10.1.1", - "lowlight": "^1.14.0", - "prismjs": "^1.21.0", - "refractor": "^3.1.0" - } - }, - "react-textarea-autosize": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.3.tgz", - "integrity": "sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "use-composed-ref": "^1.0.0", - "use-latest": "^1.0.0" - } - }, - "react-tracked": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/react-tracked/-/react-tracked-1.7.5.tgz", - "integrity": "sha512-RSlYpSZ5vGe09crxwZRQUZeTGkNOL529KLpGwwTysoBGuJOW4V8nECn0aP7+gcvEovd9VJN/pgrf9axbvZawog==", - "requires": { - "proxy-compare": "2.0.2", - "use-context-selector": "1.3.9" - }, - "dependencies": { - "use-context-selector": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/use-context-selector/-/use-context-selector-1.3.9.tgz", - "integrity": "sha512-YgzRyeFjoJXwFn2qLVAuIbV6EQ8DOuzu3SS/eiCxyAyvBhcn02jYSz8c5v22QQU3LW6Ez/Iyo62kKvS7Kdqt3A==", - "requires": {} - } - } - }, - "react-transition-group": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", - "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", - "requires": { - "dom-helpers": "^3.4.0", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" - } - }, - "react-virtualized-auto-sizer": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz", - "integrity": "sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==", - "requires": {} - }, - "react-window": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.6.tgz", - "integrity": "sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==", - "requires": { - "@babel/runtime": "^7.0.0", - "memoize-one": ">=3.1.1 <6" - } - }, - "react-window-infinite-loader": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/react-window-infinite-loader/-/react-window-infinite-loader-1.0.7.tgz", - "integrity": "sha512-wg3LWkUpG21lhv+cZvNy+p0+vtclZw+9nP2vO6T9PKT50EN1cUq37Dq6FzcM38h/c2domE0gsUhb6jHXtGogAA==", - "requires": {} - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "recharts": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.1.6.tgz", - "integrity": "sha512-KnRNnCum1hL27DYhUfcdcKUEQkYnda6G+KDN4n/nCiTKp7UzJSgHfFHQvCkBujPi/U98dGd430DA2/8RJpkPlg==", - "requires": { - "@types/d3-interpolate": "^2.0.0", - "@types/d3-scale": "^3.0.0", - "@types/d3-shape": "^2.0.0", - "classnames": "^2.2.5", - "d3-interpolate": "^2.0.0", - "d3-scale": "^3.0.0", - "d3-shape": "^2.0.0", - "eventemitter3": "^4.0.1", - "lodash": "^4.17.19", - "react-is": "^16.10.2", - "react-resize-detector": "^6.6.3", - "react-smooth": "^2.0.0", - "recharts-scale": "^0.4.4", - "reduce-css-calc": "^2.1.8" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "recharts-scale": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", - "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", - "requires": { - "decimal.js-light": "^2.4.1" - } - }, - "reduce-css-calc": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.8.tgz", - "integrity": "sha512-8liAVezDmUcH+tdzoEGrhfbGcP7nOV4NkGE3a74+qqvE7nt9i4sKLGBuZNOnpI4WiGksiNPklZxva80061QiPg==", - "requires": { - "css-unit-converter": "^1.1.1", - "postcss-value-parser": "^3.3.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "redux": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.1.tgz", - "integrity": "sha512-hZQZdDEM25UY2P493kPYuKqviVwZ58lEmGQNeQ+gXa+U0gYPUBf7NKYazbe3m+bs/DzM/ahN12DbF+NG8i0CWw==", - "requires": { - "@babel/runtime": "^7.9.2" - } - }, - "refractor": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", - "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", - "dev": true, - "requires": { - "hastscript": "^6.0.0", - "parse-entities": "^2.0.0", - "prismjs": "~1.27.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "devOptional": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remark-external-links": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz", - "integrity": "sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==", - "dev": true, - "requires": { - "extend": "^3.0.0", - "is-absolute-url": "^3.0.0", - "mdast-util-definitions": "^4.0.0", - "space-separated-tokens": "^1.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "remark-footnotes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", - "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", - "dev": true - }, - "remark-mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", - "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", - "dev": true, - "requires": { - "@babel/core": "7.12.9", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-syntax-jsx": "7.12.1", - "@mdx-js/util": "1.6.22", - "is-alphabetical": "1.0.4", - "remark-parse": "8.0.3", - "unified": "9.2.0" - }, - "dependencies": { - "@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "remark-parse": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", - "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", - "dev": true, - "requires": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - } - }, - "remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "requires": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" - }, - "dependencies": { - "bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - }, - "is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" - }, - "mdast-util-definitions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.1.tgz", - "integrity": "sha512-rQ+Gv7mHttxHOBx2dkF4HWTg+EE+UR78ptQWDylzPKaQuVGdG4HIoY3SrS/pCp80nZ04greFvXbVFHT+uf0JVQ==", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - } - }, - "mdast-util-to-hast": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.1.2.tgz", - "integrity": "sha512-Wn6Mcj04qU4qUXHnHpPATYMH2Jd8RlntdnloDfYLe1ErWRHo6+pvSl/DzHp6sCZ9cBSYlc8Sk8pbwb8xtUoQhQ==", - "requires": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/mdurl": "^1.0.0", - "mdast-util-definitions": "^5.0.0", - "mdurl": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "trim-lines": "^3.0.0", - "unist-builder": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - } - }, - "trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" - }, - "unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - } - }, - "unist-builder": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.0.tgz", - "integrity": "sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-generated": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.0.tgz", - "integrity": "sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==" - }, - "unist-util-is": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.1.1.tgz", - "integrity": "sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==" - }, - "unist-util-position": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.3.tgz", - "integrity": "sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-stringify-position": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", - "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", - "requires": { - "@types/unist": "^2.0.0" - } - }, - "unist-util-visit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz", - "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" - } - }, - "unist-util-visit-parents": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", - "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - } - }, - "vfile": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.4.tgz", - "integrity": "sha512-KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - } - }, - "vfile-message": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", - "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - } - } - } - }, - "remark-slug": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-6.1.0.tgz", - "integrity": "sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==", - "dev": true, - "requires": { - "github-slugger": "^1.0.0", - "mdast-util-to-string": "^1.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "remark-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", - "dev": true, - "requires": { - "mdast-squeeze-paragraphs": "^4.0.0" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "remove-trailing-slash": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", - "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==" - }, - "renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", - "dev": true, - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "devOptional": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "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==" - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "devOptional": true - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "devOptional": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "devOptional": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "devOptional": true, - "requires": { - "aproba": "^1.1.1" - } - }, - "sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "requires": { - "mri": "^1.1.0" - } - }, - "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==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "devOptional": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "devOptional": true - }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "sass": { - "version": "1.43.4", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz", - "integrity": "sha512-/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==", - "requires": { - "chokidar": ">=3.0.0 <4.0.0" - } - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-favicon": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", - "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", - "dev": true, - "requires": { - "etag": "~1.8.1", - "fresh": "0.5.2", - "ms": "2.1.1", - "parseurl": "~1.3.2", - "safe-buffer": "5.1.1" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "devOptional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "devOptional": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "devOptional": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" - }, - "sirv": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.18.tgz", - "integrity": "sha512-f2AOPogZmXgJ9Ma2M22ZEhc1dNtRIzcEkiflMFeVTRq+OViOZMvH1IPMVOwrKaxpSaHioBJiDR0SluRqGa7atA==", - "requires": { - "@polka/url": "^1.0.0-next.20", - "mime": "^2.3.1", - "totalist": "^1.0.0" - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "devOptional": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "devOptional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "devOptional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "devOptional": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "devOptional": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "devOptional": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "devOptional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "devOptional": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "devOptional": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "devOptional": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "devOptional": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true - } - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "devOptional": true - }, - "space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "devOptional": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "split.js": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/split.js/-/split.js-1.6.4.tgz", - "integrity": "sha512-kYmQZprRJrF1IOjg/E+gdBEsKFv5kbgUE6RJVJZvrIzTOK/IHzKSqIeiJnWs7IP5D9TnpTQ2CbanuDuIWcyDUQ==" - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "requires": { - "readable-stream": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sqlstring": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.2.tgz", - "integrity": "sha512-vF4ZbYdKS8OnoJAWBmMxCQDkiEBkGQYU7UZPtL8flbDRSNkhaXvRJ279ZtI6M+zDaQovVU4tuRgzK5fVhvFAhg==" - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==", - "dev": true - }, - "state-local": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", - "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" - }, - "state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "devOptional": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "devOptional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "devOptional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "devOptional": true - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "store2": { - "version": "2.13.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.13.2.tgz", - "integrity": "sha512-CMtO2Uneg3SAz/d6fZ/6qbqqQHi2ynq6/KzMD/26gTkiEShCcpqFfTHgOxsE0egAq6SX3FmN4CeSqn8BzXQkJg==", - "dev": true - }, - "storybook-dark-mode": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/storybook-dark-mode/-/storybook-dark-mode-1.0.9.tgz", - "integrity": "sha512-ITPXM2OSaga1zM5blpZy5HxMWAhrAqYi9aJtLgRtSdgoRrxVNAInDRD14TjmObdgLHNWxINoNbnEB+sKETa+iw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.0.0", - "memoizerific": "^1.11.3" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "devOptional": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "devOptional": true - }, - "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==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", - "side-channel": "^1.0.4" - } - }, - "string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "string.prototype.padstart": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.3.tgz", - "integrity": "sha512-NZydyOMtYxpTjGqp0VN5PYUF/tsU15yDMZnUdj16qRUIUiMJkHHSDElYyQFrMu+/WloTpA7MQSiADhBicDfaoA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "requires": { - "min-indent": "^1.0.0" - } - }, - "style-loader": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", - "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.7.0" - }, - "dependencies": { - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, - "style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "requires": { - "inline-style-parser": "0.1.1" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "swr": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/swr/-/swr-1.2.1.tgz", - "integrity": "sha512-1cuWXqJqXcFwbgONGCY4PHZ8v05009JdHsC3CIC6u7d00kgbMswNr1sHnnhseOBxtzVqcCNpOHEgVDciRer45w==", - "requires": {} - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "symbol.prototype.description": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/symbol.prototype.description/-/symbol.prototype.description-1.0.5.tgz", - "integrity": "sha512-x738iXRYsrAt9WBhRCVG5BtIC3B7CUkFwbHW2zOvGtwM33s7JjrCDyq8V0zgMYVb5ymsL8+qkzzpANH63CPQaQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-symbol-description": "^1.0.0", - "has-symbols": "^1.0.2", - "object.getownpropertydescriptors": "^2.1.2" - } - }, - "synchronous-promise": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.15.tgz", - "integrity": "sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg==", - "dev": true - }, - "tailwindcss": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", - "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", - "requires": { - "arg": "^5.0.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss": "^8.4.6", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "requires": { - "is-glob": "^4.0.3" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "requires": { - "has": "^1.0.3" - } - }, - "postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "tailwindcss-radix": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tailwindcss-radix/-/tailwindcss-radix-1.6.0.tgz", - "integrity": "sha512-5oBgGCVGsITMiUVlc6Euj4kt03l8htLJxVT9AXbkFxcJiXLtQxJriFq/8R+3s63OKit/ynCVdkqvlnW6H7iG1g==" - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "devOptional": true - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dev": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "telejson": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/telejson/-/telejson-5.3.3.tgz", - "integrity": "sha512-PjqkJZpzEggA9TBpVtJi1LVptP7tYtXB6rEubwlHap76AMjzvOdKX41CxyaW7ahhzDU1aftXnMCx5kAPDZTQBA==", - "dev": true, - "requires": { - "@types/is-function": "^1.0.0", - "global": "^4.4.0", - "is-function": "^1.0.2", - "is-regex": "^1.1.2", - "is-symbol": "^1.0.3", - "isobject": "^4.0.0", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3" - }, - "dependencies": { - "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", - "dev": true - } - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", - "devOptional": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "devOptional": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true - } - } - }, - "terser-webpack-plugin": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", - "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", - "dev": true, - "requires": { - "cacache": "^15.0.5", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.5.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.3.4", - "webpack-sources": "^1.4.3" - }, - "dependencies": { - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "throttle-debounce": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-3.0.1.tgz", - "integrity": "sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==", - "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "devOptional": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "devOptional": true, - "requires": { - "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" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "devOptional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "devOptional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "devOptional": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, - "tiny-invariant": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", - "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "devOptional": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "devOptional": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha1-bkWxJj8gF/oKzH2J14sVuL932jI=", - "dev": true - }, - "toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" - }, - "totalist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "dependencies": { - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - } - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", - "dev": true - }, - "trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" - }, - "trim-trailing-lines": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", - "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", - "dev": true - }, - "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "dev": true - }, - "ts-dedent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", - "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", - "dev": true - }, - "ts-jest": { - "version": "27.0.7", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.0.7.tgz", - "integrity": "sha512-O41shibMqzdafpuP+CkrOL7ykbmLh+FqQrXEmV9CydQ5JBk0Sj0uAEF5TNNe94fZWKm3yYvWa/IbyV4Yg1zK2Q==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^27.0.0", - "json5": "2.x", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "ts-pnp": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", - "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", - "dev": true - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "devOptional": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.4.tgz", - "integrity": "sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==", - "dev": true - }, - "uglify-js": { - "version": "3.15.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.3.tgz", - "integrity": "sha512-6iCVm2omGJbsu3JWac+p6kUiOpg3wFO2f8lIXjfEb8RrmLjzog1wTPMmwKB7swfzzqxj9YM+sGUM++u1qN4qJg==", - "dev": true, - "optional": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unfetch": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", - "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", - "dev": true - }, - "unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "dev": true, - "requires": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true - }, - "unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "dev": true, - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - } - } - }, - "uniforms": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/uniforms/-/uniforms-3.6.2.tgz", - "integrity": "sha512-3mPd7xRkL5MHdV18z/+xYDayCMr4Ed675FFOQG7bPWQ1sHXMoM3YGhx/rz3h8sqWKyOetbPeQKiHnCSWq1AxgQ==", - "requires": { - "invariant": "^2.0.0", - "lodash": "^4.0.0", - "tslib": "^2.2.0" - } - }, - "uniforms-bootstrap4": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/uniforms-bootstrap4/-/uniforms-bootstrap4-3.6.2.tgz", - "integrity": "sha512-rdQClzTs171OLV/cxT5Ggl5fhx0cteVrOWVs6Jgbk3Wl1LUMBrZCynwz5TLVvM+Ayj7F47/DjoKYREF/HOE/5Q==", - "requires": { - "classnames": "^2.0.0", - "invariant": "^2.0.0", - "lodash": "^4.0.0", - "tslib": "^2.2.0", - "uniforms": "^3.6.2", - "warning": "^4.0.0" - } - }, - "uniforms-bridge-json-schema": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/uniforms-bridge-json-schema/-/uniforms-bridge-json-schema-3.6.2.tgz", - "integrity": "sha512-NI9qfFpImxsljw+k17D/QEAQwKlQHVtJlTVRlcMI00pHf3bx+3Kg2E3f/b5OLHKiM0eK3xF1hldBU0zpopuw3g==", - "requires": { - "invariant": "^2.0.0", - "lodash": "^4.0.0", - "tslib": "^2.2.0", - "uniforms": "^3.6.2" - } - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "devOptional": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true - } - } - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "devOptional": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "devOptional": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unist-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", - "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", - "dev": true - }, - "unist-util-generated": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", - "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", - "dev": true - }, - "unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "dev": true - }, - "unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", - "dev": true - }, - "unist-util-remove": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", - "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", - "dev": true, - "requires": { - "unist-util-is": "^4.0.0" - } - }, - "unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", - "dev": true, - "requires": { - "unist-util-visit": "^2.0.0" - } - }, - "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dev": true, - "requires": { - "@types/unist": "^2.0.2" - } - }, - "unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - } - }, - "unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "devOptional": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "devOptional": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "devOptional": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "devOptional": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "devOptional": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "devOptional": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "devOptional": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "devOptional": true - } - } - }, - "url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "devOptional": true - }, - "use-callback-ref": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.2.5.tgz", - "integrity": "sha512-gN3vgMISAgacF7sqsLPByqoePooY3n2emTH59Ur5d/M8eg4WTWu1xp8i8DHjohftIyEx0S08RiYxbffr4j8Peg==", - "requires": {} - }, - "use-composed-ref": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.2.1.tgz", - "integrity": "sha512-6+X1FLlIcjvFMAeAD/hcxDT8tmyrWnbSPMU0EnxQuDLIxokuFzWliXBiYZuGIx+mrAMLBw0WFfCkaPw8ebzAhw==", - "dev": true, - "requires": {} - }, - "use-isomorphic-layout-effect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz", - "integrity": "sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ==", - "dev": true, - "requires": {} - }, - "use-latest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.0.tgz", - "integrity": "sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==", - "dev": true, - "requires": { - "use-isomorphic-layout-effect": "^1.0.0" - } - }, - "use-memo-one": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz", - "integrity": "sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==", - "requires": {} - }, - "use-sidecar": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.0.5.tgz", - "integrity": "sha512-k9jnrjYNwN6xYLj1iaGhonDghfvmeTmYjAiGvOr7clwKfPjMXJf4/HOr7oT5tJwYafgp2tG2l3eZEOfoELiMcA==", - "requires": { - "detect-node-es": "^1.1.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "use-subscription": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.5.1.tgz", - "integrity": "sha512-Xv2a1P/yReAjAbhylMfFplFKj9GssgTwN7RlcTxBujFQcloStWNDQdc4g4NRWH9xS4i/FDk04vQBptAXoF3VcA==", - "requires": { - "object-assign": "^4.1.1" - } - }, - "utf-8-validate": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", - "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "uuid-browser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid-browser/-/uuid-browser-3.1.0.tgz", - "integrity": "sha1-DwWkCu90+eWVHiDvv0SxGHHlZBA=", - "dev": true - }, - "uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "requires": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "dependencies": { - "kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==" - } - } - }, - "v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "dev": true - } - } - }, - "vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", - "dev": true - }, - "vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dev": true, - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "devOptional": true - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "optional": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "optional": true, - "requires": { - "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" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "devOptional": true, - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "devOptional": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "devOptional": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "devOptional": true, - "requires": {} - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "devOptional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "devOptional": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "devOptional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "devOptional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "devOptional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "devOptional": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "devOptional": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "devOptional": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "devOptional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "devOptional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "devOptional": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "devOptional": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "devOptional": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "devOptional": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "devOptional": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "devOptional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "devOptional": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "devOptional": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "devOptional": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "devOptional": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "devOptional": true, - "requires": { - "find-up": "^3.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "devOptional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "devOptional": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "devOptional": true - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "devOptional": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true - }, - "ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "devOptional": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "devOptional": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "devOptional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "devOptional": true, - "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "devOptional": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "devOptional": true - } - } - }, - "webpack-bundle-analyzer": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.3.0.tgz", - "integrity": "sha512-J3TPm54bPARx6QG8z4cKBszahnUglcv70+N+8gUqv2I5KOFHJbzBiLx+pAp606so0X004fxM7hqRu10MLjJifA==", - "requires": { - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", - "commander": "^6.2.0", - "gzip-size": "^6.0.0", - "lodash": "^4.17.20", - "opener": "^1.5.2", - "sirv": "^1.0.7", - "ws": "^7.3.1" - }, - "dependencies": { - "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==" - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "webpack-filter-warnings-plugin": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/webpack-filter-warnings-plugin/-/webpack-filter-warnings-plugin-1.2.1.tgz", - "integrity": "sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg==", - "dev": true, - "requires": {} - }, - "webpack-hot-middleware": { - "version": "2.25.1", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.1.tgz", - "integrity": "sha512-Koh0KyU/RPYwel/khxbsDz9ibDivmUbrRuKSSQvW42KSDdO4w23WI3SkHpSUKHE76LrFnnM/L7JCrpBwu8AXYw==", - "dev": true, - "requires": { - "ansi-html-community": "0.0.8", - "html-entities": "^2.1.0", - "querystring": "^0.2.0", - "strip-ansi": "^6.0.0" - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "devOptional": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true - } - } - }, - "webpack-virtual-modules": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz", - "integrity": "sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA==", - "dev": true, - "requires": { - "debug": "^3.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "requires": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - } - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "requires": { - "string-width": "^4.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "devOptional": true, - "requires": { - "errno": "~0.1.7" - } - }, - "worker-rpc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", - "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", - "dev": true, - "requires": { - "microevent.ts": "~0.1.1" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "devOptional": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "yup": { - "version": "0.32.11", - "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.11.tgz", - "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==", - "requires": { - "@babel/runtime": "^7.15.4", - "@types/lodash": "^4.14.175", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "nanoclone": "^0.2.1", - "property-expr": "^2.0.4", - "toposort": "^2.0.2" - } - }, - "zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "dev": true - }, - "zxcvbn": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/zxcvbn/-/zxcvbn-4.4.2.tgz", - "integrity": "sha1-KOwXzwl0PtyrBW3dixsGJizHPDA=" - } - } -} diff --git a/studio/package.json b/studio/package.json index d999b79baad..1b9790d0711 100644 --- a/studio/package.json +++ b/studio/package.json @@ -26,18 +26,20 @@ "@stripe/stripe-js": "^1.25.0", "@supabase/postgres-meta": "^0.26.1", "@supabase/react-data-grid": "^7.1.0-beta.7", - "@supabase/shared-types": "^0.1.25", - "@supabase/supabase-js": "^1.36.0-next.9", - "@supabase/ui": "0.37.0-alpha.80", + "@supabase/shared-types": "^0.1.29", + "@supabase/supabase-js": "^2.0.0", "ajv": "^8.6.3", "analytics-node": "^3.5.0", "awesome-debounce-promise": "^2.1.0", "clipboard": "^2.0.8", + "common": "*", + "config": "*", "configcat-js": "^5.6.0", "crypto-js": "^4.1.1", "dayjs": "^1.11.0", "file-saver": "^2.0.5", "generate-password": "^1.7.0", + "html-to-image": "^1.10.8", "immutability-helper": "^3.1.1", "json-logic-js": "^2.0.2", "lodash": "^4.17.21", @@ -47,6 +49,7 @@ "mobx-react-lite": "^3.2.0", "next": "12.0.9", "next-compose-plugins": "^2.2.1", + "next-transpile-modules": "^9.0.0", "openapi-types": "^9.1.0", "p-queue": "^6.6.2", "papaparse": "^5.3.1", @@ -57,12 +60,12 @@ "react-beautiful-dnd": "^13.1.0", "react-contexify": "^5.0.0", "react-csv": "^2.0.3", - "react-datepicker": "^4.6.0", + "react-datepicker": "^4.8.0", "react-dnd": "^14.0.3", "react-dnd-html5-backend": "^14.0.1", "react-dom": "^17.0.2", "react-grid-layout": "^1.3.0", - "react-hot-toast": "^2.1.1", + "react-hot-toast": "2.3.0", "react-inlinesvg": "^2.3.0", "react-markdown": "^8.0.3", "react-split": "^2.0.13", @@ -70,12 +73,13 @@ "react-virtualized-auto-sizer": "^1.0.6", "react-window": "^1.8.6", "react-window-infinite-loader": "^1.0.7", - "recharts": "^2.1.6", + "recharts": "2.1.6", "sass": "^1.43.4", "scheduler": "^0.20.2", "semver": "^6.3.0", "sqlstring": "^2.3.2", "swr": "^1.2.1", + "ui": "*", "uniforms-bootstrap4": "^3.6.2", "uniforms-bridge-json-schema": "^3.6.2", "uuid": "^8.3.2", @@ -113,8 +117,10 @@ "@types/sqlstring": "^2.3.0", "@types/uuid": "^8.3.4", "@types/zxcvbn": "^4.4.1", - "autoprefixer": "^10.4.2", + "autoprefixer": "10.4.2", "babel-loader": "^8.2.3", + "common": "*", + "config": "*", "jest": "^27.4.0", "jest-canvas-mock": "^2.3.1", "postcss": "^8.4.6", diff --git a/studio/pages/404.tsx b/studio/pages/404.tsx index 4c55a1f4f18..7f6ead08fe6 100644 --- a/studio/pages/404.tsx +++ b/studio/pages/404.tsx @@ -2,7 +2,7 @@ import { NextPage } from 'next' import Image from 'next/image' import { useEffect, useState } from 'react' import Link from 'next/link' -import { Button } from '@supabase/ui' +import { Button } from 'ui' import { useStore } from 'hooks' @@ -19,11 +19,11 @@ const Error404: NextPage = ({}) => { }, []) return ( -
    -
    +
    +

    404

    -
    +

    Looking for something? 🔍

    We couldn't find the page that you're looking for!

    diff --git a/studio/pages/500.tsx b/studio/pages/500.tsx index 03ac6231660..981f27fd7b1 100644 --- a/studio/pages/500.tsx +++ b/studio/pages/500.tsx @@ -1,7 +1,7 @@ import { NextPage } from 'next' import Link from 'next/link' import Image from 'next/image' -import { Button, Typography } from '@supabase/ui' +import { Button } from 'ui' import { observer } from 'mobx-react-lite' import { useStore } from 'hooks' @@ -11,11 +11,11 @@ const Error500: NextPage = ({}) => { const { theme } = ui return ( -
    -
    +
    + -
    - Something went wrong 🤕 - +
    +

    Something went wrong 🤕

    +

    Sorry about that, please try again later or feel free to reach out to us if the problem persists. - +

    diff --git a/studio/pages/_app.tsx b/studio/pages/_app.tsx index a9164e58828..64b3e5375c8 100644 --- a/studio/pages/_app.tsx +++ b/studio/pages/_app.tsx @@ -16,15 +16,18 @@ import customParseFormat from 'dayjs/plugin/customParseFormat' import timezone from 'dayjs/plugin/timezone' import utc from 'dayjs/plugin/utc' +// @ts-ignore +import Prism from 'prism-react-renderer/prism' + import Head from 'next/head' import { AppPropsWithLayout } from 'types' -import { useRouter } from 'next/router' import { useEffect, useState } from 'react' import { RootStore } from 'stores' import { StoreProvider } from 'hooks' -import { getParameterByName } from 'lib/common/fetch' import { GOTRUE_ERRORS } from 'lib/constants' +import { auth } from 'lib/gotrue' +import { dart } from 'lib/constants/prism' import { PortalToast, RouteValidationWrapper, AppBannerWrapper } from 'components/interfaces/App' import PageTelemetry from 'components/ui/PageTelemetry' @@ -34,19 +37,56 @@ dayjs.extend(customParseFormat) dayjs.extend(utc) dayjs.extend(timezone) +dart(Prism) + function MyApp({ Component, pageProps }: AppPropsWithLayout) { const [rootStore] = useState(() => new RootStore()) - const router = useRouter() useEffect(() => { - const errorDescription = getParameterByName('error_description', router.asPath) - if (errorDescription === GOTRUE_ERRORS.UNVERIFIED_GITHUB_USER) { - rootStore.ui.setNotification({ - category: 'error', - message: - 'Please verify your email on GitHub first, then reach out to us at support@supabase.io to log into the dashboard', - }) + async function handleEmailVerificationError() { + const { error } = await auth.initialize() + + if (error?.message === GOTRUE_ERRORS.UNVERIFIED_GITHUB_USER) { + rootStore.ui.setNotification({ + category: 'error', + message: + 'Please verify your email on GitHub first, then reach out to us at support@supabase.io to log into the dashboard', + }) + } } + + handleEmailVerificationError() + }, []) + + const getSavingState = () => rootStore.content.savingState + + // prompt the user if they try and leave with unsaved content store changes + useEffect(() => { + const warningText = 'You have unsaved changes - are you sure you wish to leave this page?' + + const handleWindowClose = (e: BeforeUnloadEvent) => { + const savingState = getSavingState() + + const unsavedChanges = + savingState === 'UPDATING_REQUIRED' || + savingState === 'UPDATING' || + savingState === 'UPDATING_FAILED' + + if (!unsavedChanges) { + return + } + + e.preventDefault() + + return (e.returnValue = warningText) + } + + window.addEventListener('beforeunload', handleWindowClose) + + return () => { + window.removeEventListener('beforeunload', handleWindowClose) + } + // eslint-disable-next-line react-hooks/exhaustive-deps }, []) const getLayout = Component.getLayout ?? ((page) => page) diff --git a/studio/pages/account/me.tsx b/studio/pages/account/me.tsx index 8da31cf3466..c307bb6902b 100644 --- a/studio/pages/account/me.tsx +++ b/studio/pages/account/me.tsx @@ -1,6 +1,6 @@ import React from 'react' import { observer } from 'mobx-react-lite' -import { IconMoon, IconSun, Typography, Input, Listbox } from '@supabase/ui' +import { IconMoon, IconSun, Input, Listbox } from 'ui' import { useProfile, useStore } from 'hooks' import { post } from 'lib/common/fetch' @@ -91,9 +91,9 @@ const GithubProfile = observer(() => { return ( +
    Account Information - +
    } > @@ -122,13 +122,7 @@ const ThemeSettings = observer(() => { const { ui } = useStore() return ( - - Theme - - } - > + Theme}> ( title="Supabase" breadcrumbs={[ { - key: `supabase-account-tokens`, + key: 'supabase-account-tokens', label: 'Access Tokens', }, ]} diff --git a/studio/pages/api/auth/[ref]/users.ts b/studio/pages/api/auth/[ref]/users.ts index 5839d8bb135..c68e00cc7f7 100644 --- a/studio/pages/api/auth/[ref]/users.ts +++ b/studio/pages/api/auth/[ref]/users.ts @@ -25,15 +25,16 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { const headers = constructHeaders(req.headers) - const { keywords, limit, offset } = req.query + const { keywords, limit, offset, verified } = req.query const limitInt = tryParseInt(limit as string) || 10 const offsetInt = tryParseInt(offset as string) || 0 const hasValidKeywords = keywords && keywords != '' + const hasVerifiedValue = verified && verified != '' let queryCount = '' let queryUsers = '' - if (hasValidKeywords) { + if (hasValidKeywords && !hasVerifiedValue) { queryCount = SqlString.format('SELECT count(*) from auth.users WHERE email ilike ?;', [ `%${keywords}%`, ]) @@ -41,7 +42,53 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { 'SELECT * from auth.users WHERE email ilike ? ORDER BY created_at DESC LIMIT ? OFFSET ?;', [`%${keywords}%`, limitInt, offsetInt] ) - } else { + } + + if (!hasValidKeywords && hasVerifiedValue) { + if (verified === 'verified') { + queryCount = SqlString.format( + 'SELECT count(*) from auth.users WHERE (email_confirmed_at IS NOT NULL or phone_confirmed_at IS NOT NULL);' + ) + queryUsers = SqlString.format( + 'SELECT * from auth.users WHERE (email_confirmed_at IS NOT NULL or phone_confirmed_at IS NOT NULL) ORDER BY created_at DESC LIMIT ? OFFSET ?;', + [limitInt, offsetInt] + ) + } + if (verified === 'unverified') { + queryCount = SqlString.format( + 'SELECT count(*) from auth.users WHERE (email_confirmed_at IS NULL AND phone_confirmed_at IS NULL);' + ) + queryUsers = SqlString.format( + 'SELECT * from auth.users WHERE (email_confirmed_at IS NULL AND phone_confirmed_at IS NULL) ORDER BY created_at DESC LIMIT ? OFFSET ?;', + [limitInt, offsetInt] + ) + } + } + + if (hasValidKeywords && hasVerifiedValue) { + if (verified === 'verified') { + queryCount = SqlString.format( + 'SELECT count(*) from auth.users WHERE (email_confirmed_at IS NOT NULL or phone_confirmed_at IS NOT NULL) AND email ilike ?;', + [`%${keywords}%`] + ) + queryUsers = SqlString.format( + 'SELECT * from auth.users WHERE (email_confirmed_at IS NOT NULL or phone_confirmed_at IS NOT NULL) AND email ilike ? ORDER BY created_at DESC LIMIT ? OFFSET ?;', + [`%${keywords}%`, limitInt, offsetInt] + ) + } + if (verified === 'unverified') { + queryCount = SqlString.format( + 'SELECT count(*) from auth.users WHERE (email_confirmed_at IS NULL AND phone_confirmed_at IS NULL) AND email ilike ?;', + [`%${keywords}%`] + ) + queryUsers = SqlString.format( + 'SELECT * from auth.users WHERE (email_confirmed_at IS NULL AND phone_confirmed_at IS NULL) AND email ilike ? ORDER BY created_at DESC LIMIT ? OFFSET ?;', + [`%${keywords}%`, limitInt, offsetInt] + ) + } + } + + if (!hasValidKeywords && !hasVerifiedValue) { queryCount = 'SELECT count(*) from auth.users;' queryUsers = SqlString.format( 'SELECT * from auth.users ORDER BY created_at DESC LIMIT ? OFFSET ?;', diff --git a/studio/pages/api/organizations/index.ts b/studio/pages/api/organizations/index.ts index d347ad0c017..48ac8439cfc 100644 --- a/studio/pages/api/organizations/index.ts +++ b/studio/pages/api/organizations/index.ts @@ -1,6 +1,7 @@ -import apiWrapper from 'lib/api/apiWrapper' import { NextApiRequest, NextApiResponse } from 'next' +import apiWrapper from 'lib/api/apiWrapper' + export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) async function handler(req: NextApiRequest, res: NextApiResponse) { @@ -20,7 +21,7 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { const response = [ { id: 1, - name: 'Default Organization', + name: process.env.DEFAULT_ORGANIZATION_NAME || 'Default Organization', slug: 'default-org-slug', billing_email: 'billing@supabase.co', }, diff --git a/studio/pages/api/profile/index.ts b/studio/pages/api/profile/index.ts index c6945b970ef..6b25f3d3396 100644 --- a/studio/pages/api/profile/index.ts +++ b/studio/pages/api/profile/index.ts @@ -1,7 +1,8 @@ import { NextApiRequest, NextApiResponse } from 'next' + import { IS_PLATFORM } from 'lib/constants' -import { createEncryptedDbConnectionString } from 'lib/api/apiHelpers' import apiWrapper from 'lib/api/apiWrapper' +import { createEncryptedDbConnectionString } from 'lib/api/apiHelpers' export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) @@ -28,14 +29,14 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { organizations: [ { id: 1, - name: 'Default Organization', + name: process.env.DEFAULT_ORGANIZATION_NAME || 'Default Organization', slug: 'default-org-slug', billing_email: 'billing@supabase.co', projects: [ { id: 1, ref: 'default', - name: 'Default Project', + name: process.env.DEFAULT_PROJECT_NAME || 'Default Project', organization_id: 1, cloud_provider: 'localhost', status: 'ACTIVE_HEALTHY', diff --git a/studio/pages/api/projects/[ref]/index.ts b/studio/pages/api/projects/[ref]/index.ts index 5d0e34ff354..44f61bec1e7 100644 --- a/studio/pages/api/projects/[ref]/index.ts +++ b/studio/pages/api/projects/[ref]/index.ts @@ -1,6 +1,7 @@ -import apiWrapper from 'lib/api/apiWrapper' import { NextApiRequest, NextApiResponse } from 'next' +import apiWrapper from 'lib/api/apiWrapper' + export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) async function handler(req: NextApiRequest, res: NextApiResponse) { @@ -20,7 +21,7 @@ const handleGet = async (req: NextApiRequest, res: NextApiResponse) => { const response = { id: 1, ref: 'default', - name: 'Default Project', + name: process.env.DEFAULT_PROJECT_NAME || 'Default Project', organization_id: 1, cloud_provider: 'localhost', status: 'ACTIVE_HEALTHY', diff --git a/studio/pages/api/projects/index.ts b/studio/pages/api/projects/index.ts index f708142b571..a6a20f609b3 100644 --- a/studio/pages/api/projects/index.ts +++ b/studio/pages/api/projects/index.ts @@ -1,6 +1,7 @@ -import apiWrapper from 'lib/api/apiWrapper' import { NextApiRequest, NextApiResponse } from 'next' +import apiWrapper from 'lib/api/apiWrapper' + export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) async function handler(req: NextApiRequest, res: NextApiResponse) { @@ -21,7 +22,7 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { { id: 1, ref: 'default', - name: 'Default Project', + name: process.env.DEFAULT_PROJECT_NAME || 'Default Project', organization_id: 1, cloud_provider: 'localhost', status: 'ACTIVE_HEALTHY', diff --git a/studio/pages/api/props/project/[ref]/api.ts b/studio/pages/api/props/project/[ref]/api.ts index 556f4deb40b..5851e330242 100644 --- a/studio/pages/api/props/project/[ref]/api.ts +++ b/studio/pages/api/props/project/[ref]/api.ts @@ -1,4 +1,5 @@ import { NextApiRequest, NextApiResponse } from 'next' + import apiWrapper from 'lib/api/apiWrapper' export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) @@ -27,7 +28,7 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { db_user: 'postgres', id: 1, inserted_at: undefined, - name: 'Default Project', + name: process.env.DEFAULT_PROJECT_NAME || 'Default Project', ref: 'default', status: 'ACTIVE_HEALTHY', services: [ diff --git a/studio/pages/api/props/project/[ref]/index.ts b/studio/pages/api/props/project/[ref]/index.ts index 27de041115f..a197855ddaf 100644 --- a/studio/pages/api/props/project/[ref]/index.ts +++ b/studio/pages/api/props/project/[ref]/index.ts @@ -1,4 +1,5 @@ import { NextApiRequest, NextApiResponse } from 'next' + import apiWrapper from 'lib/api/apiWrapper' export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) @@ -21,7 +22,7 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { project: { id: 1, ref: 'default', - name: 'Default Project', + name: process.env.DEFAULT_PROJECT_NAME || 'Default Project', status: 'ACTIVE_HEALTHY', organization_id: 1, inserted_at: '2021-08-02T06:40:40.646362', diff --git a/studio/pages/api/props/project/[ref]/settings.ts b/studio/pages/api/props/project/[ref]/settings.ts index a5ed9be25e9..5677414b23a 100644 --- a/studio/pages/api/props/project/[ref]/settings.ts +++ b/studio/pages/api/props/project/[ref]/settings.ts @@ -1,4 +1,5 @@ import { NextApiRequest, NextApiResponse } from 'next' + import apiWrapper from 'lib/api/apiWrapper' export default (req: NextApiRequest, res: NextApiResponse) => apiWrapper(req, res, handler) @@ -29,7 +30,7 @@ const handleGetAll = async (req: NextApiRequest, res: NextApiResponse) => { id: 1, inserted_at: undefined, jwt_secret: '-', - name: 'Default Project', + name: process.env.DEFAULT_PROJECT_NAME || 'Default Project', ref: 'default', region: 'ap-southeast-1', status: 'ACTIVE_HEALTHY', diff --git a/studio/pages/index.tsx b/studio/pages/index.tsx index c7660240b37..c85615379e9 100644 --- a/studio/pages/index.tsx +++ b/studio/pages/index.tsx @@ -58,12 +58,12 @@ const UnauthorizedLanding = () => { const queryParams = (router.query as any) || {} const params = new URLSearchParams(queryParams) // trigger github signIn - auth.signIn( - { provider: 'github' }, - { + auth.signInWithOAuth({ + provider: 'github', + options: { redirectTo: `${process.env.NEXT_PUBLIC_SITE_URL}?${params.toString()}`, - } - ) + }, + }) } }, []) diff --git a/studio/pages/join/index.tsx b/studio/pages/join/index.tsx index 2a837c8f4a8..c44e6729258 100644 --- a/studio/pages/join/index.tsx +++ b/studio/pages/join/index.tsx @@ -1,7 +1,7 @@ import Link from 'next/link' import { useState, useEffect } from 'react' import { useRouter } from 'next/router' -import { Button, IconCheckSquare, Loading } from '@supabase/ui' +import { Button, IconCheckSquare, Loading } from 'ui' import { useProfile, useStore } from 'hooks' import { auth } from 'lib/gotrue' @@ -132,7 +132,7 @@ const JoinOrganizationPage = () => {

    To accept this invitation, you will need to{' '} { await auth.signOut() router.reload() @@ -160,27 +160,27 @@ const JoinOrganizationPage = () => { <>

    @@ -206,7 +206,7 @@ const JoinOrganizationPage = () => { {!profile && (
    -

    +

    You will need to sign in to accept this invitation

    @@ -231,7 +231,7 @@ const JoinOrganizationPage = () => { return (
    {
    diff --git a/studio/pages/new/[slug].tsx b/studio/pages/new/[slug].tsx index 589a768b650..a19a5d656af 100644 --- a/studio/pages/new/[slug].tsx +++ b/studio/pages/new/[slug].tsx @@ -4,7 +4,7 @@ import { debounce, isUndefined, values } from 'lodash' import { toJS } from 'mobx' import { observer } from 'mobx-react-lite' import generator from 'generate-password' -import { Button, Listbox, IconUsers, Input, IconLoader, Alert } from '@supabase/ui' +import { Button, Listbox, IconUsers, Input, Alert } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' import { NextPageWithLayout } from 'types' @@ -19,10 +19,16 @@ import { PRICING_TIER_LABELS, PRICING_TIER_DEFAULT_KEY, PRICING_TIER_FREE_KEY, - DEFAULT_FREE_PROJECTS_LIMIT, PRICING_TIER_PRODUCT_IDS, } from 'lib/constants' -import { useStore, useFlag, withAuth, useSubscriptionStats, checkPermissions } from 'hooks' +import { + useStore, + useFlag, + withAuth, + useSubscriptionStats, + checkPermissions, + useFreeProjectLimitCheck, +} from 'hooks' import { WizardLayoutWithoutAuth } from 'components/layouts' import Panel from 'components/ui/Panel' @@ -41,7 +47,10 @@ const Wizard: NextPageWithLayout = () => { const enablePermissions = useFlag('enablePermissions') const projectCreationDisabled = useFlag('disableProjectCreationAndUpdate') + const kpsEnabled = useFlag('initWithKps') const subscriptionStats = useSubscriptionStats() + const { membersExceededLimit, isLoading: isLoadingFreeProjectLimitCheck } = + useFreeProjectLimitCheck(slug as string) const [projectName, setProjectName] = useState('') const [dbPass, setDbPass] = useState('') @@ -58,31 +67,29 @@ const Wizard: NextPageWithLayout = () => { const stripeCustomerId = currentOrg?.stripe_customer_id const isOrganizationOwner = ui.selectedOrganization?.is_owner - const totalFreeProjects = subscriptionStats.total_active_free_projects - const freeProjectsLimit = ui.profile?.free_project_limit ?? DEFAULT_FREE_PROJECTS_LIMIT const availableRegions = getAvailableRegions() const isAdmin = enablePermissions ? checkPermissions(PermissionAction.CREATE, 'projects') : isOrganizationOwner + const isInvalidSlug = isUndefined(currentOrg) const isEmptyOrganizations = organizations.length <= 0 && app.organizations.isInitialized const isEmptyPaymentMethod = paymentMethods ? !paymentMethods.length : false - const isOverFreeProjectLimit = totalFreeProjects >= freeProjectsLimit - const isInvalidSlug = isUndefined(currentOrg) const isSelectFreeTier = dbPricingTierKey === PRICING_TIER_FREE_KEY + const hasMembersExceedingFreeTierLimit = (membersExceededLimit || []).length > 0 const canCreateProject = isAdmin && !subscriptionStats.isError && !subscriptionStats.isLoading && - (!isSelectFreeTier || (isSelectFreeTier && !isOverFreeProjectLimit)) + (!isSelectFreeTier || (isSelectFreeTier && !hasMembersExceedingFreeTierLimit)) const canSubmit = - projectName != '' && + projectName !== '' && passwordStrengthScore >= DEFAULT_MINIMUM_PASSWORD_STRENGTH && - dbRegion != '' && - dbPricingTierKey != '' && + dbRegion !== '' && + dbPricingTierKey !== '' && (isSelectFreeTier || (!isSelectFreeTier && !isEmptyPaymentMethod)) const delayedCheckPasswordStrength = useRef( @@ -163,6 +170,7 @@ const Wizard: NextPageWithLayout = () => { db_pass: dbPass, db_region: dbRegion, db_pricing_tier_id: (PRICING_TIER_PRODUCT_IDS as any)[dbPricingTierKey], + kps_enabled: kpsEnabled, } const response = await post(`${API_URL}/projects`, data) if (response.error) { @@ -200,7 +208,11 @@ const Wizard: NextPageWithLayout = () => { return (

    Create a new project

    @@ -213,7 +225,7 @@ const Wizard: NextPageWithLayout = () => {
    {!projectCreationDisabled && ( - You can rename your project later + You can rename your project later )}
    -

    You can rename your organization later

    +

    You can rename your organization later

    @@ -79,7 +79,7 @@ const Wizard: NextPageWithLayout = () => { >

    This is your organization's name within Supabase.

    -

    +

    For example, you can use the name of your company or department

    diff --git a/studio/pages/org/[slug]/settings.tsx b/studio/pages/org/[slug]/settings.tsx index 7ca63b1cd18..ce93ffa0d5f 100644 --- a/studio/pages/org/[slug]/settings.tsx +++ b/studio/pages/org/[slug]/settings.tsx @@ -1,10 +1,10 @@ -import { Tabs } from '@supabase/ui' +import { Tabs } from 'ui' import { observer, useLocalObservable } from 'mobx-react-lite' import { useRouter } from 'next/router' import { createContext, useContext, useEffect, useState } from 'react' import { Member, NextPageWithLayout, Organization, Project, Role, User } from 'types' -import { useOrganizationDetail, useOrganizationRoles, useStore, withAuth } from 'hooks' +import { useFlag, useOrganizationDetail, useOrganizationRoles, useStore, withAuth } from 'hooks' import { AccountLayoutWithoutAuth } from 'components/layouts' import { GeneralSettings, @@ -21,7 +21,14 @@ const OrgSettingsLayout = withAuth( const router = useRouter() const slug = ui.selectedOrganization?.slug || '' - const { roles } = useOrganizationRoles(slug) + + const { roles: allRoles } = useOrganizationRoles(slug) + const enableBillingOnlyReadOnly = useFlag('enableBillingOnlyReadOnlyRoles') + const roles = enableBillingOnlyReadOnly + ? allRoles + : (allRoles ?? []).filter((role) => + ['Owner', 'Administrator', 'Developer'].includes(role.name) + ) // [Refactor] Eventually move away from useLocalObservable const PageState: any = useLocalObservable(() => ({ diff --git a/studio/pages/project/[ref]/api/index.tsx b/studio/pages/project/[ref]/api/index.tsx index 502bd1521d5..8b4cfaa92f4 100644 --- a/studio/pages/project/[ref]/api/index.tsx +++ b/studio/pages/project/[ref]/api/index.tsx @@ -1,24 +1,17 @@ import useSWR, { mutate } from 'swr' import { useRouter } from 'next/router' -import { Button, Dropdown, IconKey, Typography } from '@supabase/ui' +import { Button, Dropdown, IconKey } from 'ui' import { FC, createContext, useContext, useEffect, useState } from 'react' import { observer, useLocalObservable } from 'mobx-react-lite' +import { NextPageWithLayout } from 'types' import { API_URL, IS_PLATFORM } from 'lib/constants' -import { useStore } from 'hooks' +import { checkPermissions, useStore } from 'hooks' import { get } from 'lib/common/fetch' import { snakeToCamel } from 'lib/helpers' import { DocsLayout } from 'components/layouts' -import Snippets from 'components/to-be-cleaned/Docs/Snippets' -import CodeSnippet from 'components/to-be-cleaned/Docs/CodeSnippet' -import Param from 'components/to-be-cleaned/Docs/Param' -import Introduction from 'components/to-be-cleaned/Docs/Pages/Introduction' -import Authentication from 'components/to-be-cleaned/Docs/Pages/Authentication' -import TablesIntroduction from 'components/to-be-cleaned/Docs/Pages/Tables/Introduction' -import UserManagement from 'components/to-be-cleaned/Docs/Pages/UserManagement' -import RpcIntroduction from 'components/to-be-cleaned/Docs/Pages/Rpc/Introduction' -import Description from 'components/to-be-cleaned/Docs/Description' -import { NextPageWithLayout } from 'types' +import { GeneralContent, ResourceContent, RpcContent } from 'components/interfaces/Docs' +import { PermissionAction } from '@supabase/shared-types/out/constants' const PageContext = createContext(null) @@ -78,10 +71,15 @@ const DocView: FC = observer(({}) => { const [showApiKey, setShowApiKey] = useState(DEFAULT_KEY) const { data, error }: any = useSWR(`${API_URL}/props/project/${PageState.projectRef}/api`, get) - const API_KEY = data?.autoApiService?.serviceApiKey + const API_KEY = data?.autoApiService?.defaultApiKey const swaggerUrl = data?.autoApiService?.restUrl const headers: any = { apikey: API_KEY } + const canReadServiceKey = checkPermissions( + PermissionAction.READ, + 'service_api_keys.service_role_key' + ) + if (API_KEY?.length > 40) headers['Authorization'] = `Bearer ${API_KEY}` const { data: jsonSchema, error: jsonSchemaError } = useSWR( @@ -102,16 +100,16 @@ const DocView: FC = observer(({}) => { if (error || jsonSchemaError) return (
    - +

    Error connecting to API

    {`${error || jsonSchemaError}`}

    -
    +

    ) if (!data || !jsonSchema || !PageState.jsonSchema) return (
    - Building docs ... +

    Building docs ...

    ) @@ -140,9 +138,9 @@ const DocView: FC = observer(({}) => { onClick={() => setSelectedLang('js')} className={`${ selectedLang == 'js' - ? 'text-scale-1200 bg-scale-300 dark:bg-scale-200 font-medium' - : 'text-scale-900 bg-scale-100 dark:bg-scale-100' - } border-scale-200 hover:text-scale-1200 relative inline-flex items-center border-r p-1 px-2 text-sm transition focus:outline-none`} + ? 'bg-scale-300 font-medium text-scale-1200 dark:bg-scale-200' + : 'bg-scale-100 text-scale-900 dark:bg-scale-100' + } relative inline-flex items-center border-r border-scale-200 p-1 px-2 text-sm transition hover:text-scale-1200 focus:outline-none`} > JavaScript @@ -151,28 +149,29 @@ const DocView: FC = observer(({}) => { onClick={() => setSelectedLang('bash')} className={`${ selectedLang == 'bash' - ? 'text-scale-1200 bg-scale-300 dark:bg-scale-200 font-medium' - : 'text-scale-900 bg-scale-100 dark:bg-scale-100' - } border-scale-200 hover:text-scale-1200 relative inline-flex items-center border-r p-1 px-2 text-sm transition focus:outline-none`} + ? 'bg-scale-300 font-medium text-scale-1200 dark:bg-scale-200' + : 'bg-scale-100 text-scale-900 dark:bg-scale-100' + } relative inline-flex items-center border-r border-scale-200 p-1 px-2 text-sm transition hover:text-scale-1200 focus:outline-none`} > Bash {selectedLang == 'bash' && (
    -
    +
    Project API key :
    - setShowApiKey(DEFAULT_KEY)}> + setShowApiKey(DEFAULT_KEY)}> hide setShowApiKey({ key: autoApiService?.defaultApiKey, @@ -182,16 +181,19 @@ const DocView: FC = observer(({}) => { > anon (public) - - setShowApiKey({ - key: autoApiService?.serviceApiKey, - name: 'service_role (secret)', - }) - } - > - service_role (secret) - + {canReadServiceKey && ( + + setShowApiKey({ + key: autoApiService?.serviceApiKey, + name: 'service_role (secret)', + }) + } + > + service_role (secret) + + )} } > @@ -237,400 +239,3 @@ const DocView: FC = observer(({}) => {
    ) }) - -const GeneralContent = ({ autoApiService, selectedLang, page, showApiKey }: any) => { - let selected = page?.toLowerCase() - if (selected == 'intro' || selected == null) - return - if (selected == 'auth') - return ( - - ) - if (selected == 'users') - return ( - - ) - if (selected == 'tables-intro') - return - if (selected == 'rpc-intro') return - else - return ( -
    -

    Not found

    -

    Looks like you went somewhere that nobody knows.

    -
    - ) -} - -/** - * TODO: need to support rpc with the same name and different params type - */ -const RpcContent = ({ - autoApiService, - rpcId, - rpcs, - paths, - selectedLang, - refreshDocs, - showApiKey, -}: any) => { - const meta = rpcs[rpcId] - const pathKey = `/rpc/${rpcId}` - const path = paths && pathKey in paths ? paths[pathKey] : undefined - const keyToShow = !!showApiKey ? showApiKey : 'SUPABASE_KEY' - - if (!path) return null - - const { - post: { parameters, summary }, - } = path - const rpcParamsObject = - parameters && parameters[0] && parameters[0].schema && parameters[0].schema.properties - ? parameters[0].schema.properties - : {} - const rpcParams = Object.entries(rpcParamsObject) - .map(([k, v]: any) => ({ name: k, ...v })) - .filter((x) => !!x.name) - const paramList = rpcParams.map((x) => x.type).join(', ') - return ( - <> -

    - {meta.id} -

    - -
    -
    - -
    -
    - -
    -
    - {rpcParams.length > 0 && ( -
    -

    Function Arguments

    - {rpcParams.map((x) => { - return ( -
    -
    - -
    -
    -
    - ) - })} -
    - )} - - ) -} - -const ResourceContent = ({ - autoApiService, - resourceId, - resources, - definitions, - paths, - selectedLang, - showApiKey, - refreshDocs, -}: any) => { - if (!paths || !definitions) return null - - const keyToShow = !!showApiKey ? showApiKey : 'SUPABASE_KEY' - const resourcePaths = paths[`/${resourceId}`] - const resourceDefinition = definitions[resourceId] - const resourceMeta = resources[resourceId] - const description = resourceDefinition.description || null - const methods = Object.keys(resourcePaths).map((x) => x.toUpperCase()) - const properties = Object.entries(resourceDefinition.properties || []).map(([id, val]: any) => ({ - ...val, - id, - required: resourceDefinition?.required?.includes(id), - })) - - return ( - <> -

    - {resourceId} -

    - -
    -
    - -
    -
    -
    - {properties.length > 0 && ( -
    - {/*

    Fields

    */} - {properties.map((x) => ( -
    -
    - -
    -
    - -
    -
    - ))} -
    - )} - {methods.includes('GET') && ( - <> -

    Read rows

    -
    - -
    - - - - -
    -
    -
    - - )} - {methods.includes('POST') && ( - <> -

    Insert rows

    -
    -
    -

    - insert lets you insert into your tables. You can also insert in bulk - and do UPSERT. -

    -

    - insert will also return the replaced values for UPSERT. -

    -

    - - Learn more. - -

    -
    -
    - - - -
    -
    - - )} - {methods.includes('PATCH') && ( - <> -

    Update rows

    -
    - - )} - {methods.includes('DELETE') && ( - <> -

    Delete rows

    -
    -
    -

    - delete lets you delete rows. delete will match all rows by - default, so remember to specify your filters! -

    -

    - - Learn more. - -

    -
    -
    - -
    -
    - - )} - <> -

    Subscribe to changes

    -
    -
    -

    - Supabase provides realtime functionality and broadcasts database changes to authorized - users depending on Row Level Security (RLS) policies. -

    -

    - - Learn more. - -

    -
    -
    - - - - - -
    -
    - - <> -

    Much more

    -
    -
    -

    - These docs are a work in progress! See our{' '} - - docs - {' '} - for the additional functionality Supabase has to offer. -

    -
    -
    -
    - - - ) -} diff --git a/studio/pages/project/[ref]/auth/auth-logs.tsx b/studio/pages/project/[ref]/auth/auth-logs.tsx deleted file mode 100644 index fc343aa0542..00000000000 --- a/studio/pages/project/[ref]/auth/auth-logs.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { observer } from 'mobx-react-lite' -import { useStore } from 'hooks' -import { AuthLayout } from 'components/layouts' -import LogsPreviewer from 'components/interfaces/Settings/Logs/LogsPreviewer' -import { NextPageWithLayout } from 'types' - -const LogsPage: NextPageWithLayout = () => { - const { ui } = useStore() - const project = ui.selectedProject - - return ( - <>{project && } - ) -} - -LogsPage.getLayout = (page) => {page} - -export default observer(LogsPage) diff --git a/studio/pages/project/[ref]/auth/logs.tsx b/studio/pages/project/[ref]/auth/logs.tsx new file mode 100644 index 00000000000..bf2fbffeee6 --- /dev/null +++ b/studio/pages/project/[ref]/auth/logs.tsx @@ -0,0 +1,25 @@ +import { observer } from 'mobx-react-lite' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { NextPageWithLayout } from 'types' +import { checkPermissions, useStore } from 'hooks' +import { AuthLayout } from 'components/layouts' +import LogsPreviewer from 'components/interfaces/Settings/Logs/LogsPreviewer' +import NoPermission from 'components/ui/NoPermission' + +const LogsPage: NextPageWithLayout = () => { + const { ui } = useStore() + const project = ui.selectedProject + + const canReadAuthLogs = checkPermissions(PermissionAction.ANALYTICS_READ, 'logflare') + + return !canReadAuthLogs ? ( + + ) : ( + <>{project && } + ) +} + +LogsPage.getLayout = (page) => {page} + +export default observer(LogsPage) diff --git a/studio/pages/project/[ref]/auth/policies.tsx b/studio/pages/project/[ref]/auth/policies.tsx index 231a9dcfbaa..e728c4a44ba 100644 --- a/studio/pages/project/[ref]/auth/policies.tsx +++ b/studio/pages/project/[ref]/auth/policies.tsx @@ -1,21 +1,22 @@ -import React, { useState, PropsWithChildren, FC } from 'react' +import React, { useState, FC } from 'react' import { isEmpty } from 'lodash' -import { Button, IconSearch, Input } from '@supabase/ui' +import { Button, IconSearch, Input, IconHelpCircle } from 'ui' +import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' -import { useStore } from 'hooks' +import { checkPermissions, useStore } from 'hooks' import { AuthLayout } from 'components/layouts' import { NextPageWithLayout } from 'types' -import { PolicyEditorModal, PolicyTableRow } from 'components/interfaces/Authentication/Policies' +import { PolicyEditorModal, PolicyTableRow } from 'components/interfaces/Auth/Policies' import { PostgresRole } from '@supabase/postgres-meta' import { PostgresTable, PostgresPolicy } from '@supabase/postgres-meta' import ConfirmModal from 'components/ui/Dialogs/ConfirmDialog' import NoTableState from 'components/ui/States/NoTableState' import NoSearchResults from 'components/to-be-cleaned/NoSearchResults' - -const AuthPoliciesLayout = ({ children }: PropsWithChildren<{}>) => { - return
    {children}
    -} +import { PermissionAction } from '@supabase/shared-types/out/constants' +import NoPermission from 'components/ui/NoPermission' +import ProductEmptyState from 'components/to-be-cleaned/ProductEmptyState' +import InformationBox from 'components/ui/InformationBox' /** * Filter tables by table name and policy name @@ -52,43 +53,50 @@ const onFilterTables = ( const AuthPoliciesPage: NextPageWithLayout = () => { const { meta } = useStore() + const [policiesFilter, setPoliciesFilter] = useState(undefined) const publicTables = meta.tables.list((table: { schema: string }) => table.schema === 'public') const policies = meta.policies.list() const filteredTables = onFilterTables(publicTables, policies, policiesFilter) + const canReadPolicies = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'policies') + + if (!canReadPolicies) { + return + } + return ( - <> -
    -
    - setPoliciesFilter(e.target.value)} - icon={} - /> - +
    + {(publicTables || []).length > 0 && ( +
    +
    + setPoliciesFilter(e.target.value)} + icon={} + /> + +
    -
    -
    - 0} tables={filteredTables} /> -
    - + )} + 0} tables={filteredTables} /> +
    ) } AuthPoliciesPage.getLayout = (page) => ( - {page} +
    {page}
    ) @@ -99,6 +107,9 @@ interface AuthPoliciesTablesProps { tables: any[] } const AuthPoliciesTables: FC = observer(({ tables, hasPublicTables }) => { + const router = useRouter() + const { ref } = router.query + const { ui, meta } = useStore() const roles = meta.roles.list((role: PostgresRole) => !meta.roles.systemRoles.includes(role.name)) @@ -194,19 +205,15 @@ const AuthPoliciesTables: FC = observer(({ tables, hasP } return ( -
    + <> {tables.length > 0 ? ( tables.map((table: any) => (
    @@ -214,7 +221,39 @@ const AuthPoliciesTables: FC = observer(({ tables, hasP ) : hasPublicTables ? ( ) : ( - +
    + router.push(`/project/${ref}/editor`)} + > +
    + } + description={ +
    +

    + Policies restrict, on a per-user basis, which rows can be returned by normal + queries, or inserted, updated, or deleted by data modification commands. +

    +

    + This is also known as Row-Level Security (RLS). Each policy is attached to a + table, and the policy is executed everytime a time is accessed. +

    +
    + } + /> +

    + A table within the public schema is required before you can create a Row-Level + Security policy. +

    +
    +
    +
    )} = observer(({ tables, hasP onSelectCancel={closeConfirmModal} onSelectConfirm={onToggleRLS} /> -
    + ) }) diff --git a/studio/pages/project/[ref]/auth/settings.tsx b/studio/pages/project/[ref]/auth/settings.tsx index 2762edc57c9..ea14e36bc0d 100644 --- a/studio/pages/project/[ref]/auth/settings.tsx +++ b/studio/pages/project/[ref]/auth/settings.tsx @@ -9,6 +9,7 @@ import AutoSchemaForm from 'components/interfaces/Auth/AutoSchemaForm' import RedirectDomains from 'components/interfaces/Auth/RedirectDomains/RedirectDomains' import { AuthLayout } from 'components/layouts' import { FormsContainer } from 'components/ui/Forms' +import NoPermission from 'components/ui/NoPermission' const PageLayout: NextPageWithLayout = () => { const { ui, authConfig } = useStore() @@ -17,9 +18,11 @@ const PageLayout: NextPageWithLayout = () => { authConfig.load() }, [ui.selectedProjectRef]) - // const canUpdate = checkPermissions(PermissionAction.UPDATE, 'custom_config_gotrue') + const canReadAuthSettings = checkPermissions(PermissionAction.READ, 'custom_config_gotrue') - if (authConfig) { + if (!canReadAuthSettings) { + return + } else if (authConfig) { return ( diff --git a/studio/pages/project/[ref]/auth/templates.tsx b/studio/pages/project/[ref]/auth/templates.tsx index 74e27bf1e6f..56a21f3dee6 100644 --- a/studio/pages/project/[ref]/auth/templates.tsx +++ b/studio/pages/project/[ref]/auth/templates.tsx @@ -1,20 +1,26 @@ -import { EmailTemplates, SmtpForm } from 'components/interfaces' -import { AuthLayout } from 'components/layouts' -import { FormsContainer } from 'components/ui/Forms' -import { useStore } from 'hooks' -import { observer } from 'mobx-react-lite' import { useEffect } from 'react' +import { observer } from 'mobx-react-lite' +import { PermissionAction } from '@supabase/shared-types/out/constants' + import { NextPageWithLayout } from 'types' +import { useStore, checkPermissions } from 'hooks' +import { AuthLayout } from 'components/layouts' +import { EmailTemplates, SmtpForm } from 'components/interfaces' +import { FormsContainer } from 'components/ui/Forms' +import NoPermission from 'components/ui/NoPermission' const PageLayout: NextPageWithLayout = () => { const { ui, authConfig } = useStore() useEffect(() => { - // temporary store loader authConfig.load() }, [ui.selectedProjectRef]) - if (authConfig) { + const canReadAuthSettings = checkPermissions(PermissionAction.READ, 'custom_config_gotrue') + + if (!canReadAuthSettings) { + return + } else if (authConfig) { return ( diff --git a/studio/pages/project/[ref]/auth/users.tsx b/studio/pages/project/[ref]/auth/users.tsx index d88d8b88a14..25b4cd71939 100644 --- a/studio/pages/project/[ref]/auth/users.tsx +++ b/studio/pages/project/[ref]/auth/users.tsx @@ -4,10 +4,12 @@ import { useRouter } from 'next/router' import { get } from 'lib/common/fetch' import { API_URL } from 'lib/constants' -import { useStore } from 'hooks' +import { checkPermissions, useStore } from 'hooks' import { AuthLayout } from 'components/layouts' -import { Users } from 'components/interfaces/Authentication' +import { Users } from 'components/interfaces/Auth' import { NextPageWithLayout } from 'types' +import { PermissionAction } from '@supabase/shared-types/out/constants' +import NoPermission from 'components/ui/NoPermission' export const PageContext = createContext(null) @@ -17,17 +19,20 @@ const PageLayout = ({ children }: PropsWithChildren<{}>) => { projectKpsVersion: undefined, filterInputValue: '', filterKeywords: '', + filterVerified: undefined, users: [], totalUsers: 0, usersLoading: true, page: 1, pageLimit: 10, get fetchQuery() { - return { + let queryObj = { limit: this.pageLimit, offset: (this.page - 1) * this.pageLimit, keywords: this.filterKeywords, } + + return this.filterVerified ? { ...queryObj, verified: this.filterVerified } : queryObj }, get fromRow() { const value = this.pageLimit * (this.page - 1) + 1 @@ -84,7 +89,13 @@ const UsersPage: NextPageWithLayout = () => { PageState!.projectKpsVersion = project?.kpsVersion }, [project]) - return + const canReadUsers = checkPermissions(PermissionAction.TENANT_SQL_SELECT, 'auth.users') + + return !canReadUsers ? ( + + ) : ( + + ) } UsersPage.getLayout = (page) => ( diff --git a/studio/pages/project/[ref]/database/api-usage.tsx b/studio/pages/project/[ref]/database/api-usage.tsx new file mode 100644 index 00000000000..cfddd507e4a --- /dev/null +++ b/studio/pages/project/[ref]/database/api-usage.tsx @@ -0,0 +1,18 @@ +import { observer } from 'mobx-react-lite' +import { useRouter } from 'next/router' + +import { NextPageWithLayout } from 'types' +import PresetReport from 'components/interfaces/Reports/PresetReport' +import { Presets } from 'components/interfaces/Reports/Reports.types' +import { DatabaseLayout } from 'components/layouts' + +export const ApiUsagePage: NextPageWithLayout = () => { + const router = useRouter() + const { ref } = router.query + + return +} + +ApiUsagePage.getLayout = (page) => {page} + +export default observer(ApiUsagePage) diff --git a/studio/pages/project/[ref]/database/backups/pitr.tsx b/studio/pages/project/[ref]/database/backups/pitr.tsx index 65985343f81..28937220e2f 100644 --- a/studio/pages/project/[ref]/database/backups/pitr.tsx +++ b/studio/pages/project/[ref]/database/backups/pitr.tsx @@ -1,21 +1,25 @@ +import Link from 'next/link' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' -import { Tabs } from '@supabase/ui' +import { IconInfo, Tabs } from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' -import { useStore } from 'hooks' -import { DatabaseLayout } from 'components/layouts' -import { PITRBackupSelection } from 'components/interfaces/Database' import { NextPageWithLayout } from 'types' +import { useStore, checkPermissions } from 'hooks' +import { DatabaseLayout } from 'components/layouts' +import Loading from 'components/ui/Loading' +import NoPermission from 'components/ui/NoPermission' +import { PITRNotice, PITRSelection } from 'components/interfaces/Database/Backups/PITR' +import BackupsError from 'components/interfaces/Database/Backups/BackupsError' -const DatabaseScheduledBackups: NextPageWithLayout = () => { +const DatabasePhysicalBackups: NextPageWithLayout = () => { const { ui } = useStore() const router = useRouter() - const ref = ui.selectedProject?.ref ?? 'default' return (
    -

    Backups

    +

    Backups

    { if (id === 'scheduled') router.push(`/project/${ref}/database/backups/scheduled`) }} > - + -
    -

    - Restore your project from a specific date and time. -

    - +
    +
    ) } -DatabaseScheduledBackups.getLayout = (page) => ( +DatabasePhysicalBackups.getLayout = (page) => ( {page} ) -export default observer(DatabaseScheduledBackups) +const PITR = () => { + const { ui, backups } = useStore() + const { configuration, error, isLoading } = backups + + const ref = ui.selectedProject?.ref ?? 'default' + const isEnabled = configuration.walg_enabled + + const canReadPhysicalBackups = checkPermissions(PermissionAction.READ, 'physical_backups') + if (!canReadPhysicalBackups) return + + if (isLoading) return + if (error) return + if (!isEnabled) + return ( +
    +
    + +

    + Point in time backups is an Enterprise feature. Reach out to us{' '} + + here + {' '} + if you're interested! +

    +
    +
    + ) + + return ( + <> + + + + ) +} + +export default observer(DatabasePhysicalBackups) diff --git a/studio/pages/project/[ref]/database/backups/scheduled.tsx b/studio/pages/project/[ref]/database/backups/scheduled.tsx index 2b8cfefd74d..2bb2950cfff 100644 --- a/studio/pages/project/[ref]/database/backups/scheduled.tsx +++ b/studio/pages/project/[ref]/database/backups/scheduled.tsx @@ -1,20 +1,24 @@ import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' -import { Tabs } from '@supabase/ui' +import { Tabs } from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' -import { useStore } from 'hooks' +import { NextPageWithLayout } from 'types' +import { checkPermissions, useStore } from 'hooks' import { DatabaseLayout } from 'components/layouts' import { BackupsList } from 'components/interfaces/Database' -import { NextPageWithLayout } from 'types' +import NoPermission from 'components/ui/NoPermission' const DatabaseScheduledBackups: NextPageWithLayout = () => { const { ui } = useStore() const router = useRouter() const ref = ui.selectedProject?.ref + const canReadScheduledBackups = checkPermissions(PermissionAction.READ, 'back_ups') + return (
    -

    Backups

    +

    Backups

    { if (id === 'pitr') router.push(`/project/${ref}/database/backups/pitr`) }} > - +
    -

    +

    Projects are backed up daily around midnight of your project's region and can be restored at any time.

    - + {canReadScheduledBackups ? ( + + ) : ( + + )}
    ) diff --git a/studio/pages/project/[ref]/database/extensions.tsx b/studio/pages/project/[ref]/database/extensions.tsx index 5d0c2e1da0e..24fcb9af95d 100644 --- a/studio/pages/project/[ref]/database/extensions.tsx +++ b/studio/pages/project/[ref]/database/extensions.tsx @@ -1,15 +1,19 @@ import { observer } from 'mobx-react-lite' +import { PermissionAction } from '@supabase/shared-types/out/constants' +import { NextPageWithLayout } from 'types' +import { checkPermissions } from 'hooks' import { DatabaseLayout } from 'components/layouts' import { Extensions } from 'components/interfaces/Database' -import { NextPageWithLayout } from 'types' +import NoPermission from 'components/ui/NoPermission' const DatabaseExtensions: NextPageWithLayout = () => { - return ( -
    - -
    - ) + const canReadExtensions = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'extensions') + if (!canReadExtensions) { + return + } + + return } DatabaseExtensions.getLayout = (page) => {page} diff --git a/studio/pages/project/[ref]/database/functions.tsx b/studio/pages/project/[ref]/database/functions.tsx index 7aa87a696d1..86e19b62999 100644 --- a/studio/pages/project/[ref]/database/functions.tsx +++ b/studio/pages/project/[ref]/database/functions.tsx @@ -1,27 +1,13 @@ -import { FC, useState, useEffect } from 'react' -import { useRouter } from 'next/router' -import { uniqBy, map as lodashMap, includes } from 'lodash' -import { - Button, - Dropdown, - IconEdit3, - IconFileText, - IconMoreVertical, - IconSearch, - IconTrash, - IconLoader, - Input, - Typography, -} from '@supabase/ui' +import { useState, useEffect } from 'react' import { observer } from 'mobx-react-lite' +import { PermissionAction } from '@supabase/shared-types/out/constants' -import { useStore } from 'hooks' +import { useStore, checkPermissions } from 'hooks' import { DatabaseLayout } from 'components/layouts' import { CreateFunction, DeleteFunction } from 'components/interfaces/Database' -import Table from 'components/to-be-cleaned/Table' -import AlphaPreview from 'components/to-be-cleaned/AlphaPreview' -import ProductEmptyState from 'components/to-be-cleaned/ProductEmptyState' import { NextPageWithLayout } from 'types' +import NoPermission from 'components/ui/NoPermission' +import FunctionsList from 'components/interfaces/Database/Functions/FunctionsList/FunctionsList' const FunctionsPage: NextPageWithLayout = () => { const { meta, ui } = useStore() @@ -30,11 +16,13 @@ const FunctionsPage: NextPageWithLayout = () => { const [showCreateFunctionForm, setShowCreateFunctionForm] = useState(false) const [showDeleteFunctionForm, setShowDeleteFunctionForm] = useState(false) + const canReadFunctions = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'functions') + useEffect(() => { - if (ui.selectedProject) { + if (ui.selectedProject?.ref) { fetchFunctions() } - }, [ui.selectedProject]) + }, [ui.selectedProject?.ref]) const fetchFunctions = async () => { meta.functions.load() @@ -55,9 +43,13 @@ const FunctionsPage: NextPageWithLayout = () => { setShowDeleteFunctionForm(true) } + if (!canReadFunctions) { + return + } + return ( <> - { FunctionsPage.getLayout = (page) => {page} export default observer(FunctionsPage) - -const PageLayout: FC = observer( - ({ - filterString, - setFilterString = () => {}, - createFunction = () => {}, - editFunction = () => {}, - deleteFunction = () => {}, - }) => { - const { meta } = useStore() - const functions = meta.functions.list((fn: any) => !meta.excludedSchemas.includes(fn.schema)) - const filteredFunctions = functions.filter((x: any) => - includes(x.name.toLowerCase(), filterString.toLowerCase()) - ) - const filteredFunctionSchemas = lodashMap(uniqBy(filteredFunctions, 'schema'), 'schema') - - if (meta.functions.isLoading) { - return ( -
    - - Loading functions... -
    - ) - } - - if (meta.functions.hasError) { - return ( - -

    Error connecting to API

    -

    {`${meta.functions.error?.message ?? 'Unknown error'}`}

    -
    - ) - } - - return ( - <> - {functions.length == 0 ? ( -
    - createFunction()} - > - -

    - PostgreSQL functions, also known as stored procedures, is a set of SQL and - procedural commands such as declarations, assignments, loops, flow-of-control, etc. -

    -

    - It's stored on the database server and can be invoked using the SQL interface. -

    -
    -
    - ) : ( -
    -
    - } - value={filterString} - onChange={(e) => setFilterString(e.target.value)} - /> - -
    - {filteredFunctions.length <= 0 && ( -
    - No results match your filter query - -
    - )} - {filteredFunctionSchemas.map((schema: any) => ( - - ))} -
    - )} - - ) - } -) - -type SchemaTableProps = { - schema: string - filterString: string - editFunction: (fn: any) => void - deleteFunction: (fn: any) => void -} - -const SchemaTable: FC = observer( - ({ schema, filterString, editFunction = () => {}, deleteFunction = () => {} }) => { - return ( -
    -
    -
    - - schema - - {schema} -
    -
    - - - Name - - - Arguments - - - Return type - - - - } - body={ - - } - /> - - ) - } -) - -type FunctionListProps = { - schema: string - filterString: string - editFunction: (fn: any) => void - deleteFunction: (fn: any) => void -} - -const FunctionList: FC = observer( - ({ schema, filterString, editFunction = () => {}, deleteFunction = () => {} }) => { - const router = useRouter() - const { ui, meta } = useStore() - const functions = meta.functions.list((fn: any) => !meta.excludedSchemas.includes(fn.schema)) - const filteredFunctions = functions.filter((x: any) => - includes(x.name.toLowerCase(), filterString.toLowerCase()) - ) - const _functions = filteredFunctions.filter((x) => x.schema == schema) - const isApiDocumentAvailable = schema == 'public' - const projectRef = ui.selectedProject?.ref - - function onEdit(func: any) { - editFunction(func) - } - - function onDelete(func: any) { - deleteFunction(func) - } - - return ( - <> - {_functions.map((x) => ( - - - {x.name} - - - {x.argument_types} - - - {x.return_type} - - - - {isApiDocumentAvailable && ( - } - onClick={() => router.push(`/project/${projectRef}/api?rpc=${x.name}`)} - > - Client API docs - - )} - } onClick={() => onEdit(x)}> - Edit function - - } - onClick={() => onDelete(x)} - > - Delete function - - - } - > - -
    +
    - {logsData?.map((log: any) => { + {logsData?.map((log: any, i: number) => { return ( -
    +
    - - [{log.method}] - - - {log.url} - +

    [{log.method}]

    +

    {log.url}

    - +

    {dayjs(log.created_at).format('DDMMYYY')} - +

    - {/* created at: {log.created_at} - headers: {log.headers} - args: {log.args} - method: {log.method} - status: {log.status} */}
    ) })} diff --git a/studio/pages/project/[ref]/database/hooks/index.tsx b/studio/pages/project/[ref]/database/hooks/index.tsx index 0d845254a20..67f796cd866 100644 --- a/studio/pages/project/[ref]/database/hooks/index.tsx +++ b/studio/pages/project/[ref]/database/hooks/index.tsx @@ -1,34 +1,17 @@ -import { FC, useEffect, useState } from 'react' +import { useEffect, useState } from 'react' import { useRouter } from 'next/router' -import { includes, uniqBy, map as lodashMap } from 'lodash' import { observer } from 'mobx-react-lite' -import { - Typography, - Badge, - Button, - Dropdown, - IconMoreVertical, - IconTrash, - Input, - IconSearch, - IconEdit3, - IconLoader, -} from '@supabase/ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' -import { useStore } from 'hooks' +import { NextPageWithLayout } from 'types' +import { checkPermissions, useStore } from 'hooks' import { API_URL } from 'lib/constants' import { post } from 'lib/common/fetch' import { DatabaseLayout } from 'components/layouts' -import Table from 'components/to-be-cleaned/Table' -import AlphaPreview from 'components/to-be-cleaned/AlphaPreview' -import ProductEmptyState from 'components/to-be-cleaned/ProductEmptyState' +import NoPermission from 'components/ui/NoPermission' import CreateHook from 'components/interfaces/Database/Hooks/CreateHook' import DeleteHook from 'components/interfaces/Database/Hooks/DeleteHook' -import { NextPageWithLayout } from 'types' - -function isHooksEnabled(schemas: any): boolean { - return schemas.some((schema: any) => schema.name === 'supabase_functions') -} +import HooksList from 'components/interfaces/Database/Hooks/HooksList/HooksList' const HooksPage: NextPageWithLayout = () => { const { meta, ui } = useStore() @@ -42,11 +25,13 @@ const HooksPage: NextPageWithLayout = () => { const [showCreateHookForm, setShowCreateHookForm] = useState(false) const [showDeleteHookForm, setShowDeleteHookForm] = useState(false) + const canReadWebhooks = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'triggers') + useEffect(() => { - if (ui.selectedProject) { + if (ui.selectedProject?.ref) { fetchHooks() } - }, [ui.selectedProject]) + }, [ui.selectedProject?.ref]) const fetchHooks = async () => { meta.hooks.load() @@ -79,9 +64,13 @@ const HooksPage: NextPageWithLayout = () => { setShowDeleteHookForm(true) } + if (!canReadWebhooks) { + return + } + return ( <> - { HooksPage.getLayout = (page) => {page} export default observer(HooksPage) - -const TriggersList: FC = observer( - ({ - hooksEnabled, - filterString, - setFilterString = () => {}, - createHook = () => {}, - editHook = () => {}, - deleteHook = () => {}, - enableHooks = () => {}, - }) => { - const { meta } = useStore() - const hooks = meta.hooks.list() - const schemas = meta.schemas.list() - const filteredHooks = hooks.filter((x: any) => - includes(x.name.toLowerCase(), filterString.toLowerCase()) - ) - const filteredHookSchemas = lodashMap(uniqBy(filteredHooks, 'schema'), 'schema') - - const isEnabled = hooksEnabled || isHooksEnabled(schemas) - - if (!isEnabled) { - return ( - <> - {schemas.length === 0 ? ( - Checking if hooks are enabled... - ) : ( - enableHooks()} - > - -

    Enable hooks on your project.

    -
    - )} - - ) - } - - if (meta.hooks.isLoading) { - return ( -
    - - Loading hooks... -
    - ) - } - - if (meta.hooks.hasError) { - return ( - -

    Error connecting to API

    -

    {`${meta.hooks.error?.message ?? 'Unknown error'}`}

    -
    - ) - } - - return ( - <> - {hooks.length == 0 ? ( -
    - createHook()} - > - -

    - Database Webhooks can be used to trigger serverless functions or send requests to an - HTTP endpoint. -

    -
    -
    - ) : ( -
    -
    - } - value={filterString} - onChange={(e) => setFilterString(e.target.value)} - /> - -
    - {filteredHooks.length <= 0 && ( -
    - No results match your filter query - -
    - )} - {filteredHookSchemas.map((schema: any) => ( - - ))} -
    - )} - - ) - } -) - -type SchemaTableProps = { - schema: string - filterString: string - editHook: (hook: any) => void - deleteHook: (hook: any) => void -} - -const SchemaTable: FC = observer( - ({ schema, filterString, editHook = () => {}, deleteHook = () => {} }) => { - return ( -
    -
    -
    - - schema - - {schema} -
    -
    -
    - - Name - - - Table - - - Events - - - Webhook - - - - } - body={ - - } - /> - - ) - } -) - -type HookListProps = { - schema: string - filterString: string - editHook: (hook: any) => void - deleteHook: (hook: any) => void -} - -const HookList: FC = observer( - ({ schema, filterString, editHook = () => {}, deleteHook = () => {} }) => { - const { meta } = useStore() - const hooks = meta.hooks.list() - const filteredHooks = hooks.filter((x: any) => - includes(x.name.toLowerCase(), filterString.toLowerCase()) - ) - const _hooks = filteredHooks.filter((x: any) => x.schema == schema) - - function onEdit(trigger: any) { - editHook(trigger) - } - - function onDelete(trigger: any) { - deleteHook(trigger) - } - - return ( - <> - {_hooks.map((x: any) => ( - - - {x.name} - - - {x.table} - - - - {x.events.map((event: string) => ( - {event} - ))} - - - - - {x.function_args[0]} - - - -
    - {/* - - */} - - } onClick={() => onEdit(x)}> - Edit hook - - } - onClick={() => onDelete(x)} - > - Delete hook - - - } - > -
    -
    -
    - ))} - - ) - } -) diff --git a/studio/pages/project/[ref]/database/replication.tsx b/studio/pages/project/[ref]/database/replication.tsx index e86f8f83853..d088599b009 100644 --- a/studio/pages/project/[ref]/database/replication.tsx +++ b/studio/pages/project/[ref]/database/replication.tsx @@ -1,10 +1,12 @@ import { useState } from 'react' import { observer } from 'mobx-react-lite' +import { PermissionAction } from '@supabase/shared-types/out/constants' -import { useStore } from 'hooks' +import { checkPermissions, useStore } from 'hooks' import { NextPageWithLayout } from 'types' import { DatabaseLayout } from 'components/layouts' import { PublicationsList, PublicationsTables } from 'components/interfaces/Database' +import NoPermission from 'components/ui/NoPermission' // [Joshen] Technically, best that we have these as separate URLs // makes it easier to manage state, but foresee that this page might @@ -14,9 +16,18 @@ const DatabaseReplication: NextPageWithLayout = () => { const { meta } = useStore() const publications = meta.publications.list() + const canViewPublications = checkPermissions( + PermissionAction.TENANT_SQL_ADMIN_READ, + 'publications' + ) + const [selectedPublicationId, setSelectedPublicationId] = useState() const selectedPublication = publications.find((pub) => pub.id === selectedPublicationId) + if (!canViewPublications) { + return + } + return (
    {selectedPublicationId === undefined ? ( diff --git a/studio/pages/project/[ref]/database/tables.tsx b/studio/pages/project/[ref]/database/tables.tsx index 541095f6f05..e7750e36de0 100644 --- a/studio/pages/project/[ref]/database/tables.tsx +++ b/studio/pages/project/[ref]/database/tables.tsx @@ -2,7 +2,7 @@ import { useState, useEffect } from 'react' import { observer } from 'mobx-react-lite' import { isUndefined } from 'lodash' import { PostgresColumn, PostgresTable } from '@supabase/postgres-meta' -import { Modal } from '@supabase/ui' +import { Modal } from 'ui' import { useStore } from 'hooks' @@ -16,8 +16,10 @@ const DatabaseTables: NextPageWithLayout = () => { const { meta, ui } = useStore() const [isDeleting, setIsDeleting] = useState(false) + const [selectedSchema, setSelectedSchema] = useState('public') const [selectedTable, setSelectedTable] = useState() const [sidePanelKey, setSidePanelKey] = useState<'column' | 'table'>() + const [selectedColumnToEdit, setSelectedColumnToEdit] = useState() const [selectedTableToEdit, setSelectedTableToEdit] = useState() @@ -25,10 +27,10 @@ const DatabaseTables: NextPageWithLayout = () => { const [selectedTableToDelete, setSelectedTableToDelete] = useState() useEffect(() => { - if (ui.selectedProject) { + if (ui.selectedProject?.ref) { meta.types.load() } - }, [ui.selectedProject]) + }, [ui.selectedProject?.ref]) const onAddTable = () => { setSidePanelKey('table') @@ -121,6 +123,8 @@ const DatabaseTables: NextPageWithLayout = () => {
    {isUndefined(selectedTable) ? ( { } children={ -

    +

    Are you sure you want to delete the selected table? This action cannot be undone.

    @@ -160,7 +164,7 @@ const DatabaseTables: NextPageWithLayout = () => { header={`Confirm deletion of column "${selectedColumnToDelete?.name}"`} children={ -

    +

    Are you sure you want to delete the selected column? This action cannot be undone.

    @@ -172,7 +176,7 @@ const DatabaseTables: NextPageWithLayout = () => { /> { const { meta, ui } = useStore() @@ -30,11 +17,13 @@ const TriggersPage: NextPageWithLayout = () => { const [showCreateTriggerForm, setShowCreateTriggerForm] = useState(false) const [showDeleteTriggerForm, setShowDeleteTriggerForm] = useState(false) + const canReadTriggers = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'triggers') + useEffect(() => { - if (ui.selectedProject) { + if (ui.selectedProject?.ref) { fetchTriggers() } - }, [ui.selectedProject]) + }, [ui.selectedProject?.ref]) const fetchTriggers = async () => { meta.triggers.load() @@ -55,6 +44,10 @@ const TriggersPage: NextPageWithLayout = () => { setShowDeleteTriggerForm(true) } + if (!canReadTriggers) { + return + } + return ( <> { TriggersPage.getLayout = (page) => {page} export default observer(TriggersPage) - -const TriggersList: FC = observer( - ({ - filterString, - setFilterString = () => {}, - createTrigger = () => {}, - editTrigger = () => {}, - deleteTrigger = () => {}, - }) => { - const { meta } = useStore() - const triggers = meta.triggers.list() - const filteredTriggers = triggers.filter((x: any) => - includes(x.name.toLowerCase(), filterString.toLowerCase()) - ) - const filteredTriggerSchemas = lodashMap(uniqBy(filteredTriggers, 'schema'), 'schema') - - if (meta.triggers.isLoading) { - return ( -
    - - Loading triggers... -
    - ) - } - - if (meta.triggers.hasError) { - return ( - -

    Error connecting to API

    -

    {`${meta.triggers.error?.message ?? 'Unknown error'}`}

    -
    - ) - } - - return ( - <> - {triggers.length == 0 ? ( -
    - createTrigger()} - > - -

    - A PostgreSQL trigger is a function invoked automatically whenever an event - associated with a table occurs. -

    -

    - An event could be any of the following: INSERT, UPDATE, DELETE. A trigger is a - special user-defined function associated with a table. -

    -
    -
    - ) : ( -
    -
    - } - value={filterString} - onChange={(e) => setFilterString(e.target.value)} - /> - -
    - {filteredTriggers.length <= 0 && ( -
    - No results match your filter query - -
    - )} - {filteredTriggerSchemas.map((schema: any) => ( - - ))} -
    - )} - - ) - } -) - -type SchemaTableProps = { - filterString: string - schema: string - editTrigger: (trigger: any) => void - deleteTrigger: (trigger: any) => void -} - -const SchemaTable: FC = observer( - ({ filterString, schema, editTrigger, deleteTrigger }) => { - return ( -
    -
    -
    - - schema - - {schema} -
    -
    -
    - - Name - - - Table - - - Function - - - Events - - - - } - body={ - - } - /> - - ) - } -) - -type TriggerListProps = { - filterString: string - schema: string - editTrigger: (trigger: any) => void - deleteTrigger: (trigger: any) => void -} - -const TriggerList: FC = observer( - ({ filterString, schema, editTrigger, deleteTrigger }) => { - const { meta } = useStore() - const triggers = meta.triggers.list() - const filteredTriggers = triggers.filter((x: any) => - includes(x.name.toLowerCase(), filterString.toLowerCase()) - ) - - const _triggers = filteredTriggers.filter((x: any) => x.schema == schema) - - function onEdit(trigger: any) { - editTrigger(trigger) - } - - function onDelete(trigger: any) { - deleteTrigger(trigger) - } - - return ( - <> - {_triggers.map((x: any) => ( - - - {x.name} - - - {x.table} - - -
    - {x.function_name} - {x.function_schema} -
    -
    - -
    - {x.events.map((event: string) => ( - {event} - ))} -
    -
    - - - } onClick={() => onEdit(x)}> - Edit trigger - - } - onClick={() => onDelete(x)} - > - Delete trigger - - - } - > - - - -
    -

    Function examples

    -
    -
    -
    - -
    -
    -

    Stripe payments

    -

    - Charge a payment credit card when a database event occurs -

    -
    -
    -
    -
    - -
    -
    -

    Stripe payments

    -

    - Charge a payment credit card when a database event occurs -

    -
    -
    -
    -
    - -
    -
    -

    Stripe payments

    -

    - Charge a payment credit card when a database event occurs -

    -
    -
    -
    -
    - - ) -} - -const FunctionsList = () => { - const [detailVisible, setDetailVisible] = useState(false) - - const router = useRouter() - const { ref } = router.query - - const PageState = { - functions: [ - { - name: 'hello-world', - id: 1, - runtime: 'Node14', - memory: 256, - created_at: 1646524256, - }, - { - name: 'charge', - id: 2, - runtime: 'Node14', - memory: 256, - created_at: 1646524256, - }, - { - name: 'projects', - id: 3, - runtime: 'Node14', - memory: 512, - created_at: 1646524256, - }, - ], - } - - const logDetails = ( -
    - Status -
    -
    -
    200 OK
    -
    -
    - -
    ID
    -
    - {LOGS_DATA[0].id} -
    - -
    Time
    -
    - {dayjs(LOGS_DATA[0].created_at).format('DD MMM, YYYY HH:mm')} -
    - -
    IP Address
    -
    - {/* - // @ts-ignore */} - {LOGS_DATA[0].ip_address} -
    - -
    API Version
    -
    - v0.1 -
    - -
    Source
    -
    - Something -
    - - {/*
    User agent
    -
    - {LOGS_DATA[0].user_agent} -
    */} -
    - ) - - return ( -
    -
    -
    - } placeholder="Filter by anything.." size="tiny" /> -
    - - -
    - - -
    Status
    - -
    - } - onOpenChange={function noRefCheck() {}} - overlay={[ - <> -
    - - - -
    - , - ]} - > - - -
    - -
    -
    -
    -
    - Response - Method - URL - Timestamp - - } - body={ - <> - {LOGS_DATA.length > 0 && - LOGS_DATA.map((x: any) => ( - { - setDetailVisible(true) - }} - /> - ))} - - } - /> - -
    -

    - POST /readededeaded/functions/hello-world -

    - {logDetails} - -

    Response body

    -
    - - setDetailVisible(false)} - > -
    - {logDetails} - - -

    Response body

    -
    -
    -
    - - ) -} - -const PageLayout = () => { - const [pageState, setPageState] = useState('list') - - const Selection = () => ( -
    - - -
    - ) - - return ( - - - - ) -} - -export default withAuth(observer(PageLayout)) diff --git a/studio/pages/project/[ref]/functions/[id]/logs.tsx b/studio/pages/project/[ref]/functions/[id]/logs.tsx index bdaf82e2195..2913da2c2d2 100644 --- a/studio/pages/project/[ref]/functions/[id]/logs.tsx +++ b/studio/pages/project/[ref]/functions/[id]/logs.tsx @@ -1,17 +1,22 @@ -import React from 'react' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { NextPageWithLayout } from 'types' +import { checkPermissions } from 'hooks' +import NoPermission from 'components/ui/NoPermission' import LogsPreviewer from 'components/interfaces/Settings/Logs/LogsPreviewer' -import FunctionsLayout from 'components/interfaces/Functions/FunctionsLayout' -import { NextPageWithLayout } from 'types' +import FunctionsLayout from 'components/layouts/FunctionsLayout' -/** - * Placeholder page for logs previewers until we figure out where to slot them - */ export const LogPage: NextPageWithLayout = () => { const router = useRouter() const { ref, id } = router.query + const canReadFunction = checkPermissions(PermissionAction.FUNCTIONS_READ, id as string) + if (!canReadFunction) { + return + } + return ( { - return
    Triggers
    -} - -PageLayout.getLayout = (page) => {page} - -export default observer(PageLayout) diff --git a/studio/pages/project/[ref]/functions/index.tsx b/studio/pages/project/[ref]/functions/index.tsx index cd02ec93a0e..f8778eb09f5 100644 --- a/studio/pages/project/[ref]/functions/index.tsx +++ b/studio/pages/project/[ref]/functions/index.tsx @@ -1,191 +1,16 @@ -import Link from 'next/link' -import { useEffect } from 'react' -import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' -import { Button, IconBookOpen, IconSearch, IconTerminal, Input, Loading } from '@supabase/ui' -import { useProjectSettings, useStore, withAuth } from 'hooks' -import { post } from 'lib/common/fetch' -import { API_URL, PROJECT_STATUS } from 'lib/constants' -import Table from 'components/to-be-cleaned/Table' -import FunctionsLayout from 'components/interfaces/Functions/FunctionsLayout' -import FunctionsListItem from 'components/interfaces/Functions/FunctionsListItem' -import CommandRender from 'components/interfaces/Functions/CommandRender' -import { Function } from 'components/interfaces/Functions/Functions.types' import { NextPageWithLayout } from 'types' -import { useAccessTokens } from 'hooks/queries/useAccessTokens' -import useSWR from 'swr' +import { useStore } from 'hooks' +import FunctionsLayout from 'components/layouts/FunctionsLayout' -import { get } from 'lib/common/fetch' - -const EmptyFunctions = () => { - const router = useRouter() - const { ref } = router.query - - const { tokens, isLoading } = useAccessTokens() - const { services } = useProjectSettings(ref as string | undefined) - - const API_SERVICE_ID = 1 - - // Get the API service - const apiService = (services ?? []).find((x: any) => x.app.id == API_SERVICE_ID) - const apiKeys = apiService?.service_api_keys ?? [] - const anonKey = apiKeys.find((x: any) => x.name === 'anon key')?.api_key - - interface Commands { - command: string - description: string - jsx?: () => void - comment?: string - } - const commands: Commands[] = [ - // { - // command: 'supabase init', - // description: "Needed if the project hasen't been inited before", - // jsx: () => { - // return ( - // <> - // supabase init - // - // ) - // }, - // comment: 'Initialize Supabase locally', - // }, - // { - // command: 'supabase login', - // description: "Writes the user's API token to disk", - // jsx: () => { - // return ( - // <> - // supabase login - // - // ) - // }, - // comment: 'Login using your access token', - // }, - // { - // command: `supabase link --ref ${ref}`, - // description: `Associate the current folder with your Supabase project ${ref}`, - // jsx: () => { - // return ( - // <> - // supabase link --ref {ref} - // - // ) - // }, - // comment: 'Link this project', - // }, - { - command: 'supabase functions new hello-world', - description: ' creates a function stub at ./functions/hello-world/index.ts', - jsx: () => { - return ( - <> - supabase functions new hello-world - - ) - }, - comment: 'Create a function', - }, - { - command: `supabase functions deploy hello-world --project-ref ${ref}`, - description: 'Deploys function at ./functions/hello-world/index.ts', - jsx: () => { - return ( - <> - supabase functions deploy hello-world - --project-ref {ref} - - ) - }, - comment: 'Deploy your function', - }, - { - command: `curl -L -X POST 'https://${ref}.functions.supabase.co/hello-world' -H 'Authorization: Bearer ${ - anonKey ?? '[YOUR ANON KEY]' - }' --data '{"name":"Functions"}'`, - description: 'Invokes the hello-world function', - jsx: () => { - return ( - <> - curl -L -X POST 'https://{ref} - .functions.supabase.co/hello-world' -H 'Authorization: Bearer [YOUR ANON KEY]'{' '} - {`--data '{"name":"Functions"}'`} - - ) - }, - comment: 'Invoke your function', - }, - ] - return ( - <> -
    -
    -

    - Scalable functions to run your code with no server management. -

    -

    - Edge Functions are server-side Typescript functions, distributed globally at the edge - - close to your users. They can be used for listening to webhooks or integrating your - Supabase project with third-parties. -

    -
    - - - -
    -
    -
    -
    -
    -
    - -
    -

    Terminal instructions

    -
    -
    - -
    -
    - {tokens && tokens.length == 0 ? ( -
    -
    -

    - You may need to create an access token -

    -

    - You can create a secure access token in your account section -

    -
    - -
    - ) : null} - {/*
    - -
    */} -
    -
    - - ) -} +import Table from 'components/to-be-cleaned/Table' +import { Function } from 'components/interfaces/Functions/Functions.types' +import { + FunctionsListItem, + FunctionsEmptyState, + TerminalInstructions, +} from 'components/interfaces/Functions' const FunctionsList = ({ functions }: { functions: Function[] }) => { return ( @@ -217,53 +42,6 @@ const FunctionsList = ({ functions }: { functions: Function[] }) => { /> - - {/*
    -

    Function examples

    -
    -
    -
    - -
    -
    -

    Stripe payments

    -

    - Charge a payment credit card when a database event occurs -

    -
    -
    -
    -
    - -
    -
    -

    Stripe payments

    -

    - Charge a payment credit card when a database event occurs -

    -
    -
    -
    -
    - -
    -
    -

    Stripe payments

    -

    - Charge a payment credit card when a database event occurs -

    -
    -
    -
    -
    */} ) } @@ -272,7 +50,14 @@ const PageLayout: NextPageWithLayout = () => { const { functions } = useStore() const hasFunctions = functions.list().length > 0 - return hasFunctions ? : + return hasFunctions ? ( +
    + + +
    + ) : ( + + ) } PageLayout.getLayout = (page) => {page} diff --git a/studio/pages/project/[ref]/index.tsx b/studio/pages/project/[ref]/index.tsx index b62411ce8c8..aad709957fa 100644 --- a/studio/pages/project/[ref]/index.tsx +++ b/studio/pages/project/[ref]/index.tsx @@ -1,5 +1,4 @@ import { observer } from 'mobx-react-lite' -import { Typography } from '@supabase/ui' import { useStore } from 'hooks' import { NextPageWithLayout } from 'types' @@ -9,10 +8,13 @@ import { ExampleProject, ClientLibrary } from 'components/interfaces/Home' import { CLIENT_LIBRARIES, EXAMPLE_PROJECTS } from 'components/interfaces/Home/Home.constants' import ProjectUsageSection from 'components/interfaces/Home/ProjectUsageSection' import ProjectPausedState from 'components/layouts/ProjectLayout/ProjectPausedState' +import OveragesBanner from 'components/ui/OveragesBanner/OveragesBanner' const Home: NextPageWithLayout = () => { const { ui } = useStore() + const project = ui.selectedProject + const projectTier = ui.selectedProject?.subscription_tier const projectName = project?.ref !== 'default' && project?.name !== undefined @@ -25,13 +27,19 @@ const Home: NextPageWithLayout = () => {

    {projectName}

    +
    + {projectTier !== undefined && } +
    + {project?.status === PROJECT_STATUS.INACTIVE && } - {IS_PLATFORM && project?.status !== PROJECT_STATUS.INACTIVE && } +
    + {IS_PLATFORM && project?.status !== PROJECT_STATUS.INACTIVE && } +
    - Client libraries +

    Client libraries

    {CLIENT_LIBRARIES.map((library) => ( @@ -41,7 +49,7 @@ const Home: NextPageWithLayout = () => {
    - Example projects +

    Example projects

    {EXAMPLE_PROJECTS.sort((a, b) => a.title.localeCompare(b.title)).map((project) => ( @@ -53,6 +61,12 @@ const Home: NextPageWithLayout = () => { ) } -Home.getLayout = (page) => {page} +Home.getLayout = (page) => ( + +
    + {page} +
    +
    +) export default observer(Home) diff --git a/studio/pages/project/[ref]/logs-explorer/index.tsx b/studio/pages/project/[ref]/logs-explorer/index.tsx index 6c819ef40ac..c4bd0350289 100644 --- a/studio/pages/project/[ref]/logs-explorer/index.tsx +++ b/studio/pages/project/[ref]/logs-explorer/index.tsx @@ -1,9 +1,18 @@ -import React, { useEffect, useState } from 'react' +import dayjs from 'dayjs' +import toast from 'react-hot-toast' +import { useEffect, useState } from 'react' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' -import { Input, Modal, Form, Button } from '@supabase/ui' -import { useStore } from 'hooks' +import { Input, Modal, Form, Button } from 'ui' + +import { useProjectSubscription, useStore } from 'hooks' +import useLogsQuery from 'hooks/analytics/useLogsQuery' +import { NextPageWithLayout, UserContent } from 'types' +import { uuidv4 } from 'lib/helpers' +import { LogsExplorerLayout } from 'components/layouts' import CodeEditor from 'components/ui/CodeEditor' +import ShimmerLine from 'components/ui/ShimmerLine' +import LoadingOpacity from 'components/ui/LoadingOpacity' import { DatePickerToFrom, LogsQueryPanel, @@ -12,16 +21,11 @@ import { LOGS_LARGE_DATE_RANGE_DAYS_THRESHOLD, LogTable, LogTemplate, + maybeShowUpgradePrompt, TEMPLATES, } from 'components/interfaces/Settings/Logs' -import { uuidv4 } from 'lib/helpers' -import useLogsQuery from 'hooks/analytics/useLogsQuery' -import { LogsExplorerLayout } from 'components/layouts' -import ShimmerLine from 'components/ui/ShimmerLine' -import LoadingOpacity from 'components/ui/LoadingOpacity' -import { NextPageWithLayout, UserContent } from 'types' -import toast from 'react-hot-toast' -import dayjs from 'dayjs' +import { useUpgradePrompt } from 'hooks/misc/useUpgradePrompt' +import { StripeProduct } from 'components/interfaces/Billing' import UpgradePrompt from 'components/interfaces/Settings/Logs/UpgradePrompt' export const LogsExplorerPage: NextPageWithLayout = () => { @@ -32,6 +36,8 @@ export const LogsExplorerPage: NextPageWithLayout = () => { const [saveModalOpen, setSaveModalOpen] = useState(false) const [warnings, setWarnings] = useState([]) const { content } = useStore() + const { subscription } = useProjectSubscription(ref as string) + const tier = subscription?.tier const [{ params, logData, error, isLoading }, { changeQuery, runQuery, setParams }] = useLogsQuery(ref as string, { @@ -39,6 +45,10 @@ export const LogsExplorerPage: NextPageWithLayout = () => { iso_timestamp_end: ite ? (ite as string) : undefined, }) + const { showUpgradePrompt, setShowUpgradePrompt } = useUpgradePrompt( + params.iso_timestamp_start as string + ) + useEffect(() => { // on mount, set initial values if (q) { @@ -64,6 +74,16 @@ export const LogsExplorerPage: NextPageWithLayout = () => { setWarnings(newWarnings) }, [editorValue, params.iso_timestamp_start, params.iso_timestamp_end]) + // Show the prompt on page load based on query params + useEffect(() => { + if (its) { + const shouldShowUpgradePrompt = maybeShowUpgradePrompt(its as string, tier?.key) + if (shouldShowUpgradePrompt) { + setShowUpgradePrompt(!showUpgradePrompt) + } + } + }, [its, tier]) + const onSelectTemplate = (template: LogTemplate) => { setEditorValue(template.searchString) changeQuery(template.searchString) @@ -72,6 +92,9 @@ export const LogsExplorerPage: NextPageWithLayout = () => { pathname: router.pathname, query: { ...router.query, q: template.searchString }, }) + content.addRecentLogSqlSnippet({ + sql: template.searchString, + }) } const handleRun = (value?: string | React.MouseEvent) => { @@ -106,15 +129,21 @@ export const LogsExplorerPage: NextPageWithLayout = () => { } const handleDateChange = ({ to, from }: DatePickerToFrom) => { - setParams((prev) => ({ - ...prev, - iso_timestamp_start: from || '', - iso_timestamp_end: to || '', - })) - router.push({ - pathname: router.pathname, - query: { ...router.query, its: from || '', ite: to || '' }, - }) + const shouldShowUpgradePrompt = maybeShowUpgradePrompt(from, tier?.key) + + if (shouldShowUpgradePrompt) { + setShowUpgradePrompt(!showUpgradePrompt) + } else { + setParams((prev) => ({ + ...prev, + iso_timestamp_start: from || '', + iso_timestamp_end: to || '', + })) + router.push({ + pathname: router.pathname, + query: { ...router.query, its: from || '', ite: to || '' }, + }) + } } return ( @@ -135,7 +164,6 @@ export const LogsExplorerPage: NextPageWithLayout = () => { isLoading={isLoading} warnings={warnings} /> -
    {
    - +
    @@ -206,17 +234,19 @@ export const LogsExplorerPage: NextPageWithLayout = () => {
    - +
    + +
    -
    +
    - )} - - }> - - - {/* */} -
    -
    - - {config.layout.length <= 0 ? ( -
    - }> - - -
    - ) : ( -
    - {config && startDate && endDate && ( - // @ts-ignore - - )} -
    - )} -
    - ) -} - -const GridResize = ({ startDate, endDate, interval, editableReport, setEditableReport }: any) => { - if (!editableReport) return - - useEffect(() => { - generateDOM() - }, [editableReport]) - - function generateDOM() { - return editableReport.layout.map((x: any, i: number) => { - // const availableHandles = ['s', 'w', 'e', 'n', 'sw', 'nw', 'se', 'ne'] - // x.resizeHandles = availableHandles - return ( -
    - -
    -
    -
    -
    -
    -
    -
    -
    - ) - }) - } - - function onLayoutChange(layout: any) { - let updatedLayout = editableReport.layout - layout.map((item: any) => { - const index = updatedLayout.findIndex((x: any) => x.id === item.i) - updatedLayout[index].w = layout[index].w - updatedLayout[index].h = layout[index].h - updatedLayout[index].x = layout[index].x - updatedLayout[index].y = layout[index].y - }) - const payload = { - ...editableReport, - layout: updatedLayout, - } - setEditableReport(payload) - } - - return ( - <> - onLayoutChange(layout)} - rowHeight={60} - cols={LAYOUT_COLUMN_COUNT} - containerPadding={[0, 0]} - compactType="horizontal" - > - {generateDOM()} - - - ) -} diff --git a/studio/pages/project/[ref]/reports/index.tsx b/studio/pages/project/[ref]/reports/index.tsx index d49fb9663fa..3c8315fd8e4 100644 --- a/studio/pages/project/[ref]/reports/index.tsx +++ b/studio/pages/project/[ref]/reports/index.tsx @@ -4,7 +4,7 @@ import { useRouter } from 'next/router' import { PermissionAction } from '@supabase/shared-types/out/constants' import { NextPageWithLayout } from 'types' -import { checkPermissions, useStore } from 'hooks' +import { checkPermissions, useFlag, useStore } from 'hooks' import { post } from 'lib/common/fetch' import { API_URL, PROJECT_STATUS } from 'lib/constants' import { useProjectContentStore } from 'stores/projectContentStore' @@ -13,7 +13,7 @@ import { ProjectLayoutWithAuth } from 'components/layouts' import ProductEmptyState from 'components/to-be-cleaned/ProductEmptyState' import { createReport } from 'components/to-be-cleaned/Reports/Reports.utils' -const PageLayout: NextPageWithLayout = () => { +export const UserReportPage: NextPageWithLayout = () => { const [loading, setLoading] = useState(true) const router = useRouter() @@ -22,14 +22,17 @@ const PageLayout: NextPageWithLayout = () => { const { ui } = useStore() const project = ui.selectedProject - // const canCreateReport = checkPermissions(PermissionAction.CREATE, 'user_content', { - // resource: { type: 'report' }, - // }) const contentStore = useProjectContentStore(ref) + const canCreateReport = checkPermissions(PermissionAction.CREATE, 'user_content', { + resource: { type: 'report', owner_id: ui.profile?.id }, + subject: { id: ui.profile?.id }, + }) + + const kpsEnabled = useFlag('initWithKps') useEffect(() => { if (project && project.status === PROJECT_STATUS.INACTIVE) { - post(`${API_URL}/projects/${ref}/restore`, {}) + post(`${API_URL}/projects/${ref}/restore`, { kps_enabled: kpsEnabled }) } }, [project]) @@ -66,6 +69,8 @@ const PageLayout: NextPageWithLayout = () => { }) } }} + disabled={!canCreateReport} + disabledMessage="You need additional permissions to create a report" >

    Create custom reports for your projects.

    @@ -78,6 +83,6 @@ const PageLayout: NextPageWithLayout = () => { ) } -PageLayout.getLayout = (page) => {page} +UserReportPage.getLayout = (page) => {page} -export default observer(PageLayout) +export default observer(UserReportPage) diff --git a/studio/pages/project/[ref]/settings/api.tsx b/studio/pages/project/[ref]/settings/api.tsx index 02039f27d6e..37e3947aee2 100644 --- a/studio/pages/project/[ref]/settings/api.tsx +++ b/studio/pages/project/[ref]/settings/api.tsx @@ -1,78 +1,14 @@ -import useSWR from 'swr' -import { - Dispatch, - FC, - SetStateAction, - createContext, - useContext, - useEffect, - useRef, - useState, -} from 'react' -import { indexOf } from 'lodash' +import { createContext } from 'react' import { useRouter } from 'next/router' -import { AutoField } from 'uniforms-bootstrap4' import { observer, useLocalObservable } from 'mobx-react-lite' -import { - JwtSecretUpdateError, - JwtSecretUpdateProgress, - JwtSecretUpdateStatus, -} from '@supabase/shared-types/out/events' -import { - Alert, - Typography, - Input, - IconAlertCircle, - Modal, - IconKey, - Button, - Dropdown, - IconPenTool, - IconRefreshCw, - IconChevronDown, - IconLoader, - IconEye, - IconEyeOff, -} from '@supabase/ui' -import { API_URL } from 'lib/constants' -import { uuidv4 } from 'lib/helpers' -import { patch, get } from 'lib/common/fetch' -import { useStore, useJwtSecretUpdateStatus } from 'hooks' - -import Panel from 'components/ui/Panel' -import SchemaFormPanel from 'components/to-be-cleaned/forms/SchemaFormPanel' - -import { SettingsLayout } from 'components/layouts' -import Flag from 'components/ui/Flag/Flag' -import ConfirmModal from 'components/ui/Dialogs/ConfirmDialog' -import MultiSelect from 'components/ui/MultiSelect' -import { DisplayApiSettings } from 'components/ui/ProjectSettings' +import { useStore } from 'hooks' import { NextPageWithLayout } from 'types' +import { SettingsLayout } from 'components/layouts' +import ServiceList from 'components/interfaces/Settings/API/ServiceList' +import { FormsContainer } from 'components/ui/Forms' -const JWT_SECRET_UPDATE_ERROR_MESSAGES = { - [JwtSecretUpdateError.APIServicesConfigurationUpdateFailed]: - 'failed to update configuration for API services', - [JwtSecretUpdateError.APIServicesRestartFailed]: 'failed to restart API services', - [JwtSecretUpdateError.DatabaseAdminAPIConfigurationUpdateFailed]: - 'failed to update configuration for database admin API', - [JwtSecretUpdateError.PostgreSQLRestartFailed]: 'failed to restart PostgreSQL service', - [JwtSecretUpdateError.SupabaseAPIKeyUpdateFailed]: 'failed to update Supabase API key', - [JwtSecretUpdateError.APIGatewayUpdateFailed]: 'failed to update API Gateway', -} - -const JWT_SECRET_UPDATE_PROGRESS_MESSAGES = { - [JwtSecretUpdateProgress.RestartedAPIServices]: 'restarted API services', - [JwtSecretUpdateProgress.RestartedPostgreSQL]: 'restarted PostgreSQL service', - [JwtSecretUpdateProgress.Started]: 'started updating', - [JwtSecretUpdateProgress.UpdatedAPIServicesConfiguration]: - 'updated configuration for API services', - [JwtSecretUpdateProgress.UpdatedDatabaseAdminAPIConfiguration]: - 'updated configuration for database admin API', - [JwtSecretUpdateProgress.UpdatedAPIGatewayConfiguration]: 'updated configuration for API Gateway', -} - -const PageContext: any = createContext(null) +export const PageContext: any = createContext(null) const ApiSettings: NextPageWithLayout = () => { const router = useRouter() @@ -81,7 +17,6 @@ const ApiSettings: NextPageWithLayout = () => { const { meta, ui } = useStore() const project = ui.selectedProject - // page context const PageState: any = useLocalObservable(() => ({ project: null, projectRef: ref, @@ -103,9 +38,9 @@ const ApiSettings: NextPageWithLayout = () => { return ( -

    - -
    + + + ) } @@ -113,451 +48,3 @@ const ApiSettings: NextPageWithLayout = () => { ApiSettings.getLayout = (page) => {page} export default observer(ApiSettings) - -const ServiceList: FC = ({ projectRef }) => { - const { ui } = useStore() - const router = useRouter() - const { ref } = router.query - - const [showCustomTokenInput, setShowCustomTokenInput] = useState(false) - const [customToken, setCustomToken] = useState('') - const [isRegeneratingKey, setIsGeneratingKey] = useState(false) - const [isCreatingKey, setIsCreatingKey] = useState(false) - const [isSubmittingJwtSecretUpdateRequest, setIsSubmittingJwtSecretUpdateRequest] = - useState(false) - - const { - data, - error, - mutate: mutateSettings, - }: any = useSWR(`${API_URL}/props/project/${projectRef}/settings`, get) - const { data: config, mutate: mutateConfig }: any = useSWR( - `${API_URL}/projects/${projectRef}/config?app=postgrest`, - get - ) - const { - changeTrackingId, - isError: isJwtSecretUpdateStatusError, - isLoading: isJwtSecretUpdateStatusLoading, - jwtSecretUpdateError, - jwtSecretUpdateProgress, - jwtSecretUpdateStatus, - mutateJwtSecretUpdateStatus, - }: any = useJwtSecretUpdateStatus(ref) - - const { Failed, Updated, Updating } = JwtSecretUpdateStatus - - const isJwtSecretUpdateFailed = jwtSecretUpdateStatus === Failed - const isNotUpdatingJwtSecret = - jwtSecretUpdateStatus === undefined || jwtSecretUpdateStatus === Updated - const isUpdatingJwtSecret = jwtSecretUpdateStatus === Updating - const jwtSecretUpdateErrorMessage = - JWT_SECRET_UPDATE_ERROR_MESSAGES[jwtSecretUpdateError as JwtSecretUpdateError] - const jwtSecretUpdateProgressMessage = - JWT_SECRET_UPDATE_PROGRESS_MESSAGES[jwtSecretUpdateProgress as JwtSecretUpdateProgress] - - const previousJwtSecretUpdateStatus = useRef() - - useEffect(() => { - if (previousJwtSecretUpdateStatus.current === Updating) { - switch (jwtSecretUpdateStatus) { - case Updated: - mutateConfig() - mutateSettings() - ui.setNotification({ category: 'success', message: 'Successfully updated JWT secret' }) - break - case Failed: - ui.setNotification({ - category: 'error', - message: `JWT secret update failed: ${jwtSecretUpdateErrorMessage}`, - }) - break - } - } - - previousJwtSecretUpdateStatus.current = jwtSecretUpdateStatus - }, [jwtSecretUpdateStatus]) - - if (error || isJwtSecretUpdateStatusError) { - return ( -
    - Error loading API settings -
    - ) - } - if (!data || isJwtSecretUpdateStatusLoading) { - return ( -
    - Loading... -
    - ) - } - - const { services } = data - - // Get the API service - const API_SERVICE_ID = 1 - const apiService = services.find((x: any) => x.app.id == API_SERVICE_ID) - const apiConfig = apiService?.app_config - - async function handleJwtSecretUpdate( - jwt_secret: string, - setModalVisibility: Dispatch> - ) { - setIsSubmittingJwtSecretUpdateRequest(true) - try { - const trackingId = uuidv4() - const res = await patch(`${API_URL}/projects/${ref}/config?app=secrets`, { - jwt_secret, - change_tracking_id: trackingId, - }) - if (res.error) throw res.error - setModalVisibility(false) - mutateJwtSecretUpdateStatus() - ui.setNotification({ - category: 'info', - message: - 'Successfully submitted JWT secret update request. Please wait while your project is updated.', - }) - } catch (error: any) { - ui.setNotification({ category: 'error', message: error.message }) - } finally { - setIsSubmittingJwtSecretUpdateRequest(false) - } - } - - return ( - <> -
    -
    - - Project URL - - } - > - - - - -
    - -
    - -
    - -
    - - JWT Settings - - } - > - - -
    -
    - {isUpdatingJwtSecret ? ( -
    - -

    - Updating JWT secret: {jwtSecretUpdateProgressMessage} -

    -
    - ) : ( -
    -
    -
    - Generate a new JWT secret -

    - A random secret will be created, or you can create your own. -

    -
    -
    - {isUpdatingJwtSecret ? ( - - ) : ( - - setIsGeneratingKey(true)} - icon={} - > - Generate a random secret - - - setIsCreatingKey(true)} - icon={} - > - Create my own secret - - - } - > - - - )} -
    -
    -
    - )} -
    - {isJwtSecretUpdateFailed ? ( - - Please try again. If the failures persist, please contact Supabase support with - the following details:
    - Change tracking ID: {changeTrackingId}
    - Error message: {jwtSecretUpdateErrorMessage} -
    - ) : ( - - Generating a new JWT secret will invalidate all of your API keys, - including your service_role and anon keys. Your - project will also be restarted during this process, which will terminate any - existing connections. - - )} -
    -
    -
    -
    - -
    {config && }
    -
    - - setIsGeneratingKey(false)} - onSelectConfirm={() => handleJwtSecretUpdate('ROLL', setIsGeneratingKey)} - /> - - - - - - } - > - -
    -

    - Create a custom JWT secret. Make sure it is a strong combination of characters that - cannot be guessed easily. -

    - - setCustomToken(e.target.value)} - value={customToken} - icon={} - type={showCustomTokenInput ? 'text' : 'password'} - className="w-full text-left" - label="Custom JWT secret" - descriptionText="Minimally 32 characters long, '@' and '$' are not allowed." - actions={ -
    -
    - } - /> -
    -
    -
    - - ) -} - -const PostgrestConfig = observer(({ config, projectRef }: any) => { - const PageState: any = useContext(PageContext) - const { ui } = useStore() - const { meta } = PageState - - const [updates, setUpdates] = useState({ - db_schema: config.db_schema, - max_rows: config.max_rows, - db_extra_search_path: config.db_extra_search_path || '', - }) - - const updateConfig = async (updatedConfig: any) => { - try { - const response = await patch( - `${API_URL}/projects/${projectRef}/config?app=postgrest`, - updatedConfig - ) - if (response.error) { - throw response.error - } else { - ui.setNotification({ category: 'success', message: 'Successfully saved settings' }) - } - } catch (error: any) { - ui.setNotification({ - error, - category: 'error', - message: `Failed to update config: ${error.message}`, - }) - } - } - - // manually filter out following schema - const hiddenSchema = ['auth', 'pgbouncer', 'hooks', 'extensions'] - // following schema is permament - const permanentSchema = ['public', 'storage'] - // construct list of schema for input controller - const schema = - meta.schemas - .list( - (x: any) => { - const find = indexOf(hiddenSchema, x.name) - if (find < 0) return x - }, - { allSchemas: true } - ) - .map((x: any) => { - return { - id: x.id, - value: x.name, - name: x.name, - disabled: indexOf(permanentSchema, x.name) >= 0 ? true : false, - } - }) ?? [] - - return ( - <> - updateConfig(model)} - onReset={() => setUpdates(config)} - > -
    - {schema.length >= 1 && ( - { - let payload = updates - payload.db_schema = event.join(', ') // permanentSchema.concat(event).join(', ') - setUpdates({ ...payload }) - updateConfig({ ...payload }) - }} - label={'Schema'} - descriptionText={ - <> - The schema to expose in your API. Tables, views and stored procedures in this - schema will get API endpoints.public and storage are - protected by default. - - } - emptyMessage={ - <> - -
    -

    No schema available to choose

    -

    New schemas you create will appear here

    -
    - - } - /> - )} - - -
    -
    - - ) -}) diff --git a/studio/pages/project/[ref]/settings/billing/index.tsx b/studio/pages/project/[ref]/settings/billing/index.tsx index af343ba0a7c..f1db9798a2a 100644 --- a/studio/pages/project/[ref]/settings/billing/index.tsx +++ b/studio/pages/project/[ref]/settings/billing/index.tsx @@ -1,17 +1,18 @@ import dayjs from 'dayjs' import { FC, useEffect, useState } from 'react' import { observer } from 'mobx-react-lite' -import { Typography, Loading, IconArrowRight } from '@supabase/ui' +import { Loading, IconArrowRight } from 'ui' import { Project, NextPageWithLayout } from 'types' import { useProjectPaygStatistics, useProjectSubscription, useStore } from 'hooks' import { STRIPE_PRODUCT_IDS, TIME_PERIODS_REPORTS, TIME_PERIODS_BILLING } from 'lib/constants' import { SettingsLayout } from 'components/layouts' -import ProjectUsage from 'components/ui/Usage' import LoadingUI from 'components/ui/Loading' -import { PAYGUsage, Subscription, Invoices } from 'components/interfaces/Billing' +import OveragesBanner from 'components/ui/OveragesBanner/OveragesBanner' import DateRangePicker from 'components/to-be-cleaned/DateRangePicker' +import { PAYGUsage, Subscription, Invoices } from 'components/interfaces/Billing' import { PaygStats } from 'components/interfaces/Billing/PAYGUsage/PAYGUsage.types' +import ProjectUsage from 'components/interfaces/Settings/ProjectUsageBars/ProjectUsageBars' const ProjectBilling: NextPageWithLayout = () => { const { ui } = useStore() @@ -38,6 +39,9 @@ interface SettingsProps { const Settings: FC = ({ project }) => { const { ui } = useStore() + const projectTier = ui.selectedProject?.subscription_tier + + const [dateRange, setDateRange] = useState() const { subscription, @@ -50,8 +54,6 @@ const Settings: FC = ({ project }) => { subscription?.tier?.supabase_prod_id ) - const [dateRange, setDateRange] = useState() - useEffect(() => { if (error) { ui.setNotification({ @@ -67,6 +69,7 @@ const Settings: FC = ({ project }) => { return (
    + {projectTier !== undefined && } = ({ project }) => { /> {loading ? ( -
    -
    - Loading usage breakdown +
    +
    +

    Loading usage breakdown

    @@ -95,22 +98,22 @@ const Settings: FC = ({ project }) => { /> {dateRange && (
    - +

    {dayjs(dateRange.period_start.date).format('MMM D, YYYY')} - - +

    +

    - - +

    +

    {dayjs(dateRange.period_end.date).format('MMM D, YYYY')} - +

    )}
    {paygStats && dateRange && }
    ) : ( - + )}

    Invoices

    diff --git a/studio/pages/project/[ref]/settings/billing/update/index.tsx b/studio/pages/project/[ref]/settings/billing/update/index.tsx index c39fe993a65..a7a0587251d 100644 --- a/studio/pages/project/[ref]/settings/billing/update/index.tsx +++ b/studio/pages/project/[ref]/settings/billing/update/index.tsx @@ -1,16 +1,11 @@ import { useEffect, useState } from 'react' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' -import { Button, Modal } from '@supabase/ui' +import { Button, Modal } from 'ui' -import { useStore, useSubscriptionStats } from 'hooks' +import { useFreeProjectLimitCheck, useStore } from 'hooks' import { get } from 'lib/common/fetch' -import { - API_URL, - DEFAULT_FREE_PROJECTS_LIMIT, - PRICING_TIER_PRODUCT_IDS, - STRIPE_PRODUCT_IDS, -} from 'lib/constants' +import { API_URL, PRICING_TIER_PRODUCT_IDS, STRIPE_PRODUCT_IDS } from 'lib/constants' import { BillingLayout } from 'components/layouts' import ConfirmModal from 'components/ui/Dialogs/ConfirmDialog' @@ -21,11 +16,11 @@ import { NextPageWithLayout } from 'types' const BillingUpdate: NextPageWithLayout = () => { const { ui } = useStore() const router = useRouter() + const orgSlug = ui.selectedOrganization?.slug const projectRef = ui.selectedProject?.ref - const subscriptionStats = useSubscriptionStats() - const freeProjectsLimit = ui?.profile?.free_project_limit ?? DEFAULT_FREE_PROJECTS_LIMIT - const freeProjectsOwned = subscriptionStats.total_active_free_projects ?? 0 + const { membersExceededLimit } = useFreeProjectLimitCheck(orgSlug as string) + const hasMembersExceedingFreeTierLimit = (membersExceededLimit || []).length > 0 const [isLoadingProducts, setIsLoadingProducts] = useState(false) const [showConfirmDowngrade, setShowConfirmDowngrade] = useState(false) @@ -97,7 +92,7 @@ const BillingUpdate: NextPageWithLayout = () => { } const onConfirmDowngrade = () => { - if (freeProjectsOwned >= freeProjectsLimit) { + if (hasMembersExceedingFreeTierLimit) { setShowDowngradeError(true) setShowConfirmDowngrade(false) setSelectedPlan(undefined) @@ -143,17 +138,30 @@ const BillingUpdate: NextPageWithLayout = () => { setShowDowngradeError(false)} >
    -

    - Your account is entitled up to {freeProjectsLimit} free projects across all - organizations you own. You will need to delete or upgrade an existing free project - first, before being able to downgrade this project. -

    +
    +

    + The following members have reached their maximum limits for the number of active + free tier projects within organizations where they are an administrator or owner: +

    +
      + {(membersExceededLimit || []).map((member, idx: number) => ( +
    • + {member.username || member.primary_email} (Limit: {member.free_project_limit}{' '} + free projects) +
    • + ))} +
    +

    + These members will need to either delete, pause, or upgrade one or more of these + projects before you're able to downgrade this project. +

    +
    diff --git a/studio/pages/project/[ref]/settings/database.tsx b/studio/pages/project/[ref]/settings/database.tsx index 36981ea51b9..dd89bf6e2ad 100644 --- a/studio/pages/project/[ref]/settings/database.tsx +++ b/studio/pages/project/[ref]/settings/database.tsx @@ -7,10 +7,11 @@ import { observer } from 'mobx-react-lite' import { useRouter } from 'next/router' import { debounce } from 'lodash' import generator from 'generate-password' -import { Typography, Input, Button, IconDownload, IconArrowRight, Tabs, Modal } from '@supabase/ui' +import { Input, Button, IconDownload, IconArrowRight, Tabs, Modal } from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' -import { checkPermissions, useStore } from 'hooks' +import { NextPageWithLayout } from 'types' +import { checkPermissions, useFlag, useStore } from 'hooks' import { get, patch } from 'lib/common/fetch' import { pluckObjectFields, passwordStrength } from 'lib/helpers' import { API_URL, DEFAULT_MINIMUM_PASSWORD_STRENGTH, TIME_PERIODS_INFRA } from 'lib/constants' @@ -18,11 +19,10 @@ import { API_URL, DEFAULT_MINIMUM_PASSWORD_STRENGTH, TIME_PERIODS_INFRA } from ' import { SettingsLayout } from 'components/layouts' import PasswordStrengthBar from 'components/ui/PasswordStrengthBar' import Panel from 'components/ui/Panel' -import { ProjectUsageMinimal } from 'components/ui/Usage' import DateRangePicker from 'components/to-be-cleaned/DateRangePicker' import ChartHandler from 'components/to-be-cleaned/Charts/ChartHandler' import ConnectionPooling from 'components/interfaces/Database/Pooling/ConnectionPooling' -import { NextPageWithLayout } from 'types' +import ProjectUsageMinimal from 'components/interfaces/Settings/ProjectUsageBars/ProjectUsageMinimal' const ProjectSettings: NextPageWithLayout = () => { const router = useRouter() @@ -35,7 +35,7 @@ const ProjectSettings: NextPageWithLayout = () => {
    - +
    @@ -48,7 +48,7 @@ ProjectSettings.getLayout = (page) => {page} = ({ project }) => { +const DatabaseUsage: FC = ({ project }) => { const [dateRange, setDateRange] = useState(undefined) const router = useRouter() const ref = router.query.ref as string @@ -59,9 +59,9 @@ const Usage: FC = ({ project }) => {
    +
    Database health - +
    } > @@ -75,15 +75,15 @@ const Usage: FC = ({ project }) => { /> {dateRange && (
    - +

    {dayjs(dateRange.period_start.date).format('MMMM D, hh:mma')} - - +

    +

    - - +

    +

    {dayjs(dateRange.period_end.date).format('MMMM D, hh:mma')} - +

    )}
    @@ -129,17 +129,13 @@ const Usage: FC = ({ project }) => {
    - Database storage - +
    + Database usage +
    } > - +
    @@ -152,7 +148,10 @@ const ResetDbPassword: FC = () => { const { ui } = useStore() const projectRef = ui.selectedProject?.ref - const canResetDbPassword = checkPermissions(PermissionAction.UPDATE, 'projects') + const enablePermissions = useFlag('enablePermissions') + const canResetDbPassword = enablePermissions + ? checkPermissions(PermissionAction.UPDATE, 'projects') + : ui.selectedOrganization?.is_owner const [showResetDbPass, setShowResetDbPass] = useState(false) const [isUpdatingPassword, setIsUpdatingPassword] = useState(false) @@ -222,7 +221,7 @@ const ResetDbPassword: FC = () => {
    - Database password +

    Database password

    You can use this password to connect directly to your Postgres database. @@ -245,11 +244,11 @@ const ResetDbPassword: FC = () => {

    - + You need additional permissions to reset the database password
    @@ -262,7 +261,7 @@ const ResetDbPassword: FC = () => { Reset database password} + header={
    Reset database password
    } confirmText="Reset password" alignFooter="right" size="medium" @@ -320,7 +319,7 @@ const DownloadCertificate: FC = ({ createdAt }) => {
    - SSL Connection +

    SSL Connection

    Use this certificate when connecting to your database to prevent snooping and @@ -349,7 +348,7 @@ const GeneralSettings: FC = ({ projectRef }) => { if (data?.error || error) { return (

    - Error loading database settings +

    Error loading database settings

    ) } @@ -357,7 +356,7 @@ const GeneralSettings: FC = ({ projectRef }) => { if (!data) { return (
    - Loading... +

    Loading...

    ) } @@ -387,10 +386,9 @@ const GeneralSettings: FC = ({ projectRef }) => {
    +
    Connection info - - // Connection info +
    } > @@ -452,9 +450,9 @@ const GeneralSettings: FC = ({ projectRef }) => {
    +
    Connection string - +
    } > diff --git a/studio/pages/project/[ref]/settings/general.tsx b/studio/pages/project/[ref]/settings/general.tsx index 7cced5a8f45..d5b6a739db6 100644 --- a/studio/pages/project/[ref]/settings/general.tsx +++ b/studio/pages/project/[ref]/settings/general.tsx @@ -1,5 +1,4 @@ import { observer } from 'mobx-react-lite' - import { NextPageWithLayout } from 'types' import { SettingsLayout } from 'components/layouts' import { FormsContainer } from 'components/ui/Forms' @@ -16,5 +15,4 @@ const ProjectSettings: NextPageWithLayout = () => { } ProjectSettings.getLayout = (page) => {page} - export default observer(ProjectSettings) diff --git a/studio/pages/project/[ref]/sql/index.tsx b/studio/pages/project/[ref]/sql/index.tsx index d25e7de4522..e45b4fc7301 100644 --- a/studio/pages/project/[ref]/sql/index.tsx +++ b/studio/pages/project/[ref]/sql/index.tsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react' +import React, { useEffect } from 'react' import { observer } from 'mobx-react-lite' import { useMonaco } from '@monaco-editor/react' import { useSqlStore, TAB_TYPES } from 'localStores/sqlEditor/SqlEditorStore' @@ -15,7 +15,6 @@ const SqlEditor: NextPageWithLayout = () => { const { isDarkTheme } = ui const sqlEditorStore: any = useSqlStore() const monaco = useMonaco() - const [theme, setTheme] = useState(localStorage.getItem('theme')) useEffect(() => { if (monaco) { diff --git a/studio/pages/project/[ref]/sql/sql-new.tsx b/studio/pages/project/[ref]/sql/sql-new.tsx deleted file mode 100644 index 995b0787d75..00000000000 --- a/studio/pages/project/[ref]/sql/sql-new.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { NextPage } from 'next' -import { useRouter } from 'next/router' -import { observer } from 'mobx-react-lite' -import { isUndefined } from 'lodash' - -import { withAuth } from 'hooks' -import { SQLEditorLayout } from 'components/layouts' -import { SQLEditor } from 'components/interfaces' - -// [Joshen] This is the mid re-written SQL which will replace index.tsx - -const Sql: NextPage = () => { - const router = useRouter() - const { queryId, templateId } = router.query - - return ( - - - - ) -} - -export default withAuth(observer(Sql)) diff --git a/studio/pages/project/[ref]/storage/buckets/[bucketId].tsx b/studio/pages/project/[ref]/storage/buckets/[bucketId].tsx index 901c93ae87c..721cd9cc538 100644 --- a/studio/pages/project/[ref]/storage/buckets/[bucketId].tsx +++ b/studio/pages/project/[ref]/storage/buckets/[bucketId].tsx @@ -4,7 +4,7 @@ import { observer } from 'mobx-react-lite' import { find } from 'lodash' import { API_URL } from 'lib/constants' -import { useStore } from 'hooks' +import { useFlag, useStore } from 'hooks' import { post } from 'lib/common/fetch' import { PROJECT_STATUS } from 'lib/constants' import { StorageLayout } from 'components/layouts' @@ -26,9 +26,11 @@ const PageLayout: NextPageWithLayout = () => { const storageStore = useStorageStore() const { buckets, loaded, openCreateBucketModal } = storageStore + const kpsEnabled = useFlag('initWithKps') + useEffect(() => { if (project && project.status === PROJECT_STATUS.INACTIVE) { - post(`${API_URL}/projects/${ref}/restore`, {}) + post(`${API_URL}/projects/${ref}/restore`, { kps_enabled: kpsEnabled }) } }, [project]) diff --git a/studio/pages/project/[ref]/storage/buckets/index.tsx b/studio/pages/project/[ref]/storage/buckets/index.tsx index 1204c62c4fe..80ca79f9f03 100644 --- a/studio/pages/project/[ref]/storage/buckets/index.tsx +++ b/studio/pages/project/[ref]/storage/buckets/index.tsx @@ -3,7 +3,7 @@ import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' import { API_URL } from 'lib/constants' -import { useStore } from 'hooks' +import { useFlag, useStore } from 'hooks' import { post } from 'lib/common/fetch' import { PROJECT_STATUS } from 'lib/constants' import { StorageLayout } from 'components/layouts' @@ -24,9 +24,11 @@ const PageLayout: NextPageWithLayout = ({}) => { const storageStore = useStorageStore() const { openCreateBucketModal } = storageStore + const kpsEnabled = useFlag('initWithKps') + useEffect(() => { if (project && project.status === PROJECT_STATUS.INACTIVE) { - post(`${API_URL}/projects/${ref}/restore`, {}) + post(`${API_URL}/projects/${ref}/restore`, { kps_enabled: kpsEnabled }) } }, [project]) diff --git a/studio/pages/project/[ref]/storage/logs.tsx b/studio/pages/project/[ref]/storage/logs.tsx new file mode 100644 index 00000000000..099a27f43a2 --- /dev/null +++ b/studio/pages/project/[ref]/storage/logs.tsx @@ -0,0 +1,25 @@ +import React from 'react' +import { useRouter } from 'next/router' +import { observer } from 'mobx-react-lite' +import { StorageLayout } from 'components/layouts' +import LogsPreviewer from 'components/interfaces/Settings/Logs/LogsPreviewer' +import { NextPageWithLayout } from 'types' + +export const LogPage: NextPageWithLayout = () => { + const router = useRouter() + const { ref } = router.query + + return ( + + ) +} + +LogPage.getLayout = (page) => {page} + +export default observer(LogPage) diff --git a/studio/pages/project/[ref]/storage/policies.tsx b/studio/pages/project/[ref]/storage/policies.tsx index 50f477bbfb5..09d5f8d667f 100644 --- a/studio/pages/project/[ref]/storage/policies.tsx +++ b/studio/pages/project/[ref]/storage/policies.tsx @@ -5,7 +5,7 @@ import { observer } from 'mobx-react-lite' import { API_URL } from 'lib/constants' import { post } from 'lib/common/fetch' import { PROJECT_STATUS } from 'lib/constants' -import { useStore } from 'hooks' +import { useFlag, useStore } from 'hooks' import { StorageLayout } from 'components/layouts' import { StoragePolicies } from 'components/to-be-cleaned/Storage' import { NextPageWithLayout } from 'types' @@ -20,9 +20,11 @@ const PageLayout: NextPageWithLayout = () => { const { ui, meta } = useStore() const project = ui.selectedProject + const kpsEnabled = useFlag('initWithKps') + useEffect(() => { if (project && project.status === PROJECT_STATUS.INACTIVE) { - post(`${API_URL}/projects/${ref}/restore`, {}) + post(`${API_URL}/projects/${ref}/restore`, { kps_enabled: kpsEnabled }) } meta.roles.load() }, [project]) diff --git a/studio/pages/project/[ref]/storage/settings.tsx b/studio/pages/project/[ref]/storage/settings.tsx index 4de917bef40..84101380950 100644 --- a/studio/pages/project/[ref]/storage/settings.tsx +++ b/studio/pages/project/[ref]/storage/settings.tsx @@ -3,7 +3,7 @@ import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' import { API_URL, PROJECT_STATUS } from 'lib/constants' -import { useStore } from 'hooks' +import { useFlag, useStore } from 'hooks' import { post } from 'lib/common/fetch' import { StorageLayout } from 'components/layouts' import { StorageSettings } from 'components/to-be-cleaned/Storage' @@ -19,9 +19,11 @@ const PageLayout: NextPageWithLayout = () => { const { ui } = useStore() const project = ui.selectedProject + const kpsEnabled = useFlag('initWithKps') + useEffect(() => { if (project && project.status === PROJECT_STATUS.INACTIVE) { - post(`${API_URL}/projects/${ref}/restore`, {}) + post(`${API_URL}/projects/${ref}/restore`, { kps_enabled: kpsEnabled }) } }, [project]) diff --git a/studio/pages/project/[ref]/storage/usage.tsx b/studio/pages/project/[ref]/storage/usage.tsx deleted file mode 100644 index 3f3e7fc2849..00000000000 --- a/studio/pages/project/[ref]/storage/usage.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import React, { useEffect } from 'react' -import { useRouter } from 'next/router' -import { observer } from 'mobx-react-lite' - -import { API_URL } from 'lib/constants' -import { useStore } from 'hooks' -import { post } from 'lib/common/fetch' -import { PROJECT_STATUS } from 'lib/constants' -import { StorageLayout } from 'components/layouts' -import { StorageUsage } from 'components/to-be-cleaned/Storage' -import { NextPageWithLayout } from 'types' - -/** - * PageLayout is used to setup layout - as usual it will requires inject global store - */ -const PageLayout: NextPageWithLayout = () => { - const router = useRouter() - const { ref } = router.query - - const { ui } = useStore() - const project = ui.selectedProject - - useEffect(() => { - if (project && project.status === PROJECT_STATUS.INACTIVE) { - post(`${API_URL}/projects/${ref}/restore`, {}) - } - }, [project]) - - if (!project) return
    - - return ( -
    - -
    - ) -} - -PageLayout.getLayout = (page) => {page} - -export default observer(PageLayout) diff --git a/studio/pages/project/_/[[...routeSlug]].tsx b/studio/pages/project/_/[[...routeSlug]].tsx index c63e4e74c9d..05fd6583827 100644 --- a/studio/pages/project/_/[[...routeSlug]].tsx +++ b/studio/pages/project/_/[[...routeSlug]].tsx @@ -48,15 +48,18 @@ const GenericProjectPage: NextPage = () => { } return ( -
    + <>
    -
    -

    Select a project to continue

    -
    +
    +

    Select a project to continue

    +
    -
    + ) } diff --git a/studio/pages/support/new.tsx b/studio/pages/support/new.tsx index 28d951729b6..f9745dfe77e 100644 --- a/studio/pages/support/new.tsx +++ b/studio/pages/support/new.tsx @@ -1,280 +1,18 @@ -import { useEffect, useReducer, useState } from 'react' -import { observer } from 'mobx-react-lite' -import { - Button, - IconArrowLeft, - IconCheck, - IconMail, - Input, - Listbox, - Typography, -} from '@supabase/ui' -import Divider from 'components/ui/Divider' - import SVG from 'react-inlinesvg' -import Link from 'next/link' -import { useRouter } from 'next/router' +import { useState } from 'react' +import { observer } from 'mobx-react-lite' +import { Button, IconArrowLeft } from 'ui' -import { API_URL, PRICING_TIER_PRODUCT_IDS } from 'lib/constants' -import { useStore, withAuth, useFlag } from 'hooks' -import { post, get } from 'lib/common/fetch' -import { Project } from 'types' -import { isUndefined } from 'lodash' -import Connecting from 'components/ui/Loading/Loading' +import { withAuth, useFlag } from 'hooks' +import Success from 'components/interfaces/Support/Success' +import SupportForm from 'components/interfaces/Support/SupportForm' -const DEFAULT = { - category: { - value: 'Problem', - error: '', - }, - severity: { - value: 'Low', - error: '', - }, - project: { - value: '', - error: '', - }, - subject: { - value: '', - error: '', - }, - body: { - value: '', - error: '', - }, -} - -/* - * Move this to schema files - */ -const categoryOptions = [ - { - value: 'Problem', - label: 'Issue with project / API / Client library / REST API', - description: 'Issues with project API, client libraries', - }, - { - value: 'Sales', - label: 'Sales enquiry', - description: 'Questions about pricing, paid plans and Enterprise plans', - }, - { - value: 'Billing', - label: 'Billing', - description: 'Issues with credit card charges | invoices | overcharing', - }, - { - value: 'Abuse', - label: 'Abuse report', - description: 'Report abuse of a Supabase project or Supabase brand', - }, - { - value: 'Refund', - label: 'Refund enquiry', - description: 'Formal enquiry form for requesting refunds', - }, -] - -const severityOptions = [ - { - value: 'Low', - label: 'Low', - description: 'General guidance', - }, - { - value: 'Normal', - label: 'Normal', - description: 'System impaired', - }, - { - value: 'High', - label: 'High', - description: 'Production system impaired', - }, - { - value: 'Urgent', - label: 'Urgent', - description: 'Production system down', - }, - { - value: 'Critical', - label: 'Critical', - description: 'Business-critical system down (Unavailable for free projects)', - }, -] - -function formReducer(state: any, action: any) { - return { - ...state, - [action.name]: { - value: action.value, - error: action.error, - }, - } -} - -const SupportNew = () => { - const { ui, app } = useStore() - const router = useRouter() - const projectRef = router.query.ref - const category = router.query.category - - const [formState, formDispatch] = useReducer(formReducer, DEFAULT) - const [errors, setErrors] = useState([]) - const [loading, setLoading] = useState(false) +const SupportPage = () => { const [sent, setSent] = useState(false) const ongoingIncident = useFlag('ongoingIncident') const maxHeight = ongoingIncident ? 'calc(100vh - 44px)' : '100vh' - /* - * Get all orgs and projects from global store - */ - const sortedOrganizations = app.organizations.list() - const sortedProjects = app.projects.list() - - const projectDefaults: Partial[] = [ - { - ref: 'no-project', - name: 'No specific project', - }, - ] - - const isInitialized = app.projects.isInitialized - const projects = [...sortedProjects, ...projectDefaults] - - useEffect(() => { - if (isInitialized) { - // set project default - if (sortedProjects.length > 1) { - const selectedProject = sortedProjects.find( - (project: Project) => project.ref === projectRef - ) - if (!isUndefined(selectedProject)) { - handleOnChange({ name: 'project', value: selectedProject.ref }) - } else { - handleOnChange({ name: 'project', value: sortedProjects[0].ref }) - } - } else { - // set as 'No specific project' - handleOnChange({ name: 'project', value: projectDefaults[0].ref }) - } - - // Set category based on query param - if (category) { - const selectedCategory = categoryOptions.find((option) => { - if (option.value.toLowerCase() === category) return option - }) - if (selectedCategory) handleOnChange({ name: 'category', value: selectedCategory.value }) - } - } - }, [isInitialized]) - - function handleOnChange(x: any) { - formDispatch({ - name: x.name, - value: x.value, - error: x.error, - }) - // Reset severity value when changing project to prevent selection of Critical - if (x.name === 'project') { - const selectedProject = projects.find((project: any) => project.ref === x.value) - if ( - (selectedProject?.subscription_tier ?? PRICING_TIER_PRODUCT_IDS.FREE) === - PRICING_TIER_PRODUCT_IDS.FREE && - formState.severity.value === 'Critical' - ) { - formDispatch({ - name: 'severity', - value: 'Low', - error: '', - }) - } - } - } - - async function handleSubmit(e: any) { - e.preventDefault() - - let errors: any = [] - - if (!formState.subject.value) { - const message = 'Please add a subject heading' - handleOnChange({ name: 'subject', error: message }) - errors.push([...errors, message]) - } - - if (!formState.body.value) { - const message = 'Please type in a message' - handleOnChange({ name: 'body', error: message }) - errors.push([...errors, message]) - } - - setErrors([...errors]) - - if (errors.length === 0) { - const projectRef = formState.project.value - const payload = { - projectRef, - message: formState.body.value, - category: formState.category.value, - verified: true, - tags: ['dashboard-support-form'], - subject: formState.subject.value, - severity: formState.severity.value, - siteUrl: '', - additionalRedirectUrls: '', - } - - if (projectRef !== 'no-project') { - const URL = `${API_URL}/auth/${projectRef}/config` - const authConfig = await get(URL) - if (!authConfig.error) { - payload.siteUrl = authConfig.SITE_URL - payload.additionalRedirectUrls = authConfig.URI_ALLOW_LIST - } - } - - setLoading(true) - const response = await post(`${API_URL}/feedback/send`, payload) - setLoading(false) - - if (response.error) { - ui.setNotification({ - category: 'error', - message: `Failed to submit support ticket: ${response.error.message}`, - }) - } else { - ui.setNotification({ category: 'success', message: 'Support request sent. Thank you!' }) - setSent(true) - } - } - } - - const Success = () => { - return ( -
    -
    - -
    -
    - - Support request successfully sent - - - We will email you back using your GitHub email address - -
    - - - -
    - ) - } - - if (!isInitialized) return - return (
    {
    - - Supabase support - +

    Supabase support

    -
    - {sent ? ( - - ) : ( - handleSubmit(e)} className="space-y-8"> -
    - What problem are you facing? -
    - -
    -
    - handleOnChange({ name: 'category', value })} - > - {categoryOptions.map((option, i) => { - return ( - { - return ( - <> - {option.label} - - {option.description} - - - ) - }} - /> - ) - })} - -
    -
    - handleOnChange({ name: 'project', value })} - > - {projects.map((option) => { - return ( - { - const organization = sortedOrganizations.find( - (x) => x.id === option.organization_id - ) - return ( -
    - {option.name} - - {organization?.name} - -
    - ) - }} - /> - ) - })} -
    -
    - -
    - handleOnChange({ name: 'severity', value })} - > - {severityOptions.map((option: any) => { - const selectedProject = projects.find( - (project: any) => project.ref === formState.project.value - ) - const isAllowedCritical = - (selectedProject?.subscription_tier ?? PRICING_TIER_PRODUCT_IDS.FREE) !== - PRICING_TIER_PRODUCT_IDS.FREE - return ( - { - return ( - <> - {option.label} - - {option.description} - - - ) - }} - /> - ) - })} - -
    - - - -
    - handleOnChange({ name: 'subject', value: e.target.value })} - value={formState.subject.value} - error={formState.subject.error} - /> -
    - -
    - handleOnChange({ name: 'body', value: e.target.value })} - value={formState.body.value} - error={formState.body.error} - /> -
    -
    - {errors.length >= 1 && ( - There are errors here - )} -
    -
    - -
    -
    - - )} +
    + {sent ? : }
    @@ -455,4 +44,4 @@ const SupportNew = () => { ) } -export default withAuth(observer(SupportNew)) +export default withAuth(observer(SupportPage)) diff --git a/studio/pages/vercel/complete.tsx b/studio/pages/vercel/complete.tsx index 7f542aaf7ed..3674227b857 100644 --- a/studio/pages/vercel/complete.tsx +++ b/studio/pages/vercel/complete.tsx @@ -1,7 +1,7 @@ import { createContext, useEffect, useState } from 'react' import { observer, useLocalObservable } from 'mobx-react-lite' import VercelIntegrationLayout from 'components/layouts/VercelIntegrationLayout' -import { Button, IconLoader } from '@supabase/ui' +import { Button, IconLoader } from 'ui' const PageContext = createContext(null) function IntegrationComplete() { @@ -32,7 +32,7 @@ function IntegrationComplete() { // @ts-ignore -
    +

    Your new project is spinning up

    This may take up to 2 mins, but you can continue on Vercel.

    diff --git a/studio/pages/vercel/integrate.tsx b/studio/pages/vercel/integrate.tsx index 4b33d73deea..13956ad8251 100644 --- a/studio/pages/vercel/integrate.tsx +++ b/studio/pages/vercel/integrate.tsx @@ -1,17 +1,10 @@ +import Link from 'next/link' import { ChangeEvent, createContext, FC, useContext, useEffect, useState } from 'react' import { toast } from 'react-hot-toast' import { useRouter } from 'next/router' import { observer, useLocalObservable } from 'mobx-react-lite' import { makeAutoObservable, runInAction } from 'mobx' -import { - Button, - Select, - Typography, - IconPlusCircle, - IconX, - IconChevronRight, - Listbox, -} from '@supabase/ui' +import { Button, Select, IconPlusCircle, IconX, IconChevronRight, Listbox } from 'ui' import Divider from 'components/ui/Divider' import { Dictionary } from 'components/grid' @@ -215,19 +208,21 @@ const Connecting = () => (
    - Connecting... +

    Connecting...

    ) const ProjectLinksEmptyState = () => (
    - +

    You haven't created a Supabase project yet. Get started by creating a new Supabase project, then close this window and retry adding integration. - - - Start a new Supabase project - +

    + + + Start a new Supabase project + +
    ) @@ -285,23 +280,17 @@ const IntegrationProject: FC = observer(() => {
    - - {name} - +

    {name}

    - {errorMsg && ( - - {errorMsg} - - )} + {errorMsg &&

    {errorMsg}

    }
    ) }) @@ -451,21 +440,15 @@ const ProjectLinks: FC = observer(() => { return (
    - Link Vercel to Supabase - - Choose which of your Vercel projects to link to your existing Supabase projects. - +

    Link Vercel to Supabase

    +

    Choose which of your Vercel projects to link to your existing Supabase projects.

    - - Vercel Projects - +

    Vercel Projects

    - - Supabase Projects - +

    Supabase Projects

    @@ -502,9 +485,9 @@ const ProjectLinkList: FC = observer(() => {
    {_store.projectLinkRemaining == 0 ? ( - +

    All Vercel projects for selected scope have been added - +

    ) : (
    - +

    {_store.projectLinkRemaining} project(s) remaining - +

    )}
    @@ -596,9 +579,7 @@ const ProjectLinkItem: FC = observer(
    - - - +
    = observer(
    )}
    - {error && ( - - {error} - - )} + {error &&

    {error}

    } {_store.waitingIntegration && result && ( - {result?.message ?? 'Processing...'} - +

    )} ) diff --git a/studio/pages/vercel/setupOrg.tsx b/studio/pages/vercel/setupOrg.tsx index 12241c20e7d..00413581948 100644 --- a/studio/pages/vercel/setupOrg.tsx +++ b/studio/pages/vercel/setupOrg.tsx @@ -1,7 +1,7 @@ import { createContext, useEffect, useContext, useState, ChangeEvent } from 'react' import { useRouter } from 'next/router' import { observer, useLocalObservable } from 'mobx-react-lite' -import { Button, Input, Select } from '@supabase/ui' +import { Button, Input, Select } from 'ui' import { runInAction } from 'mobx' import { API_URL } from 'lib/constants' @@ -170,7 +170,7 @@ const OrgSelection = observer(({}) => { return (
    -
    +
    - ) -}) -useMonaco.mockImplementation((v) => v) - -// mock usage flags -jest.mock('components/ui/Flag/Flag') -import Flag from 'components/ui/Flag/Flag' -Flag.mockImplementation(({ children }) => <>{children}) -jest.mock('hooks') -import { useStore, useFlag } from 'hooks' -useFlag.mockReturnValue(true) -useStore.mockImplementation(() => ({ - content: { - addRecentLogSqlSnippet: jest.fn(), - }, -})) - -jest.mock('hooks') -import { useProjectSubscription } from 'hooks' -useProjectSubscription = jest.fn((ref) => ({ - subscription: { - tier: { - supabase_prod_id: 'tier_free', - }, - }, -})) - -import { SWRConfig } from 'swr' -import { LogsExplorerPage as Page } from 'pages/project/[ref]/logs-explorer/index' -const LogsExplorerPage = (props) => ( - new Map(), - shouldRetryOnError: false, - }} - > - - -) - -import { render, fireEvent, waitFor, screen } from '@testing-library/react' -import userEvent from '@testing-library/user-event' -import { logDataFixture } from '../../fixtures' -import { clickDropdown } from 'tests/helpers' -import dayjs from 'dayjs' beforeEach(() => { // reset mocks between tests get.mockReset() @@ -197,21 +139,6 @@ test('custom sql querying', async () => { await expect(screen.findByText(/Load older/)).rejects.toThrow() }) -test('datepicker interaction updates query params', async () => { - render() - clickDropdown(await screen.findByText(/Last day/)) - userEvent.click(await screen.findByText(/Last 3 days/)) - - const router = useRouter() - expect(router.push).toBeCalledWith( - expect.objectContaining({ - query: expect.objectContaining({ - its: expect.any(String), - }), - }) - ) -}) - test('query warnings', async () => { const router = defaultRouterMock() router.query = { @@ -224,3 +151,42 @@ test('query warnings', async () => { render() await screen.findByText('1 warning') }) + +describe.each(['FREE', 'PRO', 'ENTERPRISE'])('upgrade modal for %s', (key) => { + beforeEach(() => { + useProjectSubscription.mockReturnValue({ + subscription: { + tier: { + supabase_prod_id: `tier_${key.toLocaleLowerCase()}`, + key, + }, + }, + }) + }) + test('based on query params', async () => { + const router = defaultRouterMock() + router.query = { + ...router.query, + q: 'some_query', + its: dayjs().subtract(5, 'month').toISOString(), + ite: dayjs().toISOString(), + } + useRouter.mockReturnValue(router) + render() + await screen.findByText(/Log retention/) // assert modal title is present + }) + + test('based on datepicker helpers', async () => { + render() + // click on the dropdown + clickDropdown(await screen.findByText('Last 24 hours')) + userEvent.click(await screen.findByText('Last 3 days')) + + // only free tier will show modal + if (key === 'FREE') { + await screen.findByText('Log retention') // assert modal title is present + } else { + await expect(screen.findByText('Log retention')).rejects.toThrow() + } + }) +}) diff --git a/studio/tsconfig.json b/studio/tsconfig.json index 71436a2fdd4..200eb6a9998 100644 --- a/studio/tsconfig.json +++ b/studio/tsconfig.json @@ -14,7 +14,8 @@ "isolatedModules": true, "jsx": "preserve", "baseUrl": ".", - "downlevelIteration": true + "downlevelIteration": true, + "incremental": true }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"], "exclude": ["node_modules"] diff --git a/studio/types/base.ts b/studio/types/base.ts index 970cfb7c3cc..002e303ee2c 100644 --- a/studio/types/base.ts +++ b/studio/types/base.ts @@ -1,3 +1,4 @@ +import jsonLogic from 'json-logic-js' import { PermissionAction } from '@supabase/shared-types/out/constants' export interface Organization { @@ -70,7 +71,7 @@ export interface Role { export interface Permission { actions: PermissionAction[] - condition: string | null + condition: jsonLogic.RulesLogic organization_id: number resources: string[] } diff --git a/studio/types/ui.ts b/studio/types/ui.ts index 2095094d2ed..e14c8948e7e 100644 --- a/studio/types/ui.ts +++ b/studio/types/ui.ts @@ -5,6 +5,11 @@ export interface Notification { error?: any // Optional: Any other errors that needs to be logged out in the console progress?: number // Optional: For loading messages to show a progress bar (Out of 100) duration?: number // Optional: How long to show the message for (ms) + metadata?: NotificationMetadata +} + +interface NotificationMetadata { + [key: string]: any } export interface ChartIntervals { diff --git a/tests/.jest/teardown.ts b/tests/.jest/teardown.ts index 6ef6f4bc7c6..afb2b1cb2c9 100644 --- a/tests/.jest/teardown.ts +++ b/tests/.jest/teardown.ts @@ -1,20 +1,21 @@ -import { ApiError, createClient, User } from '@supabase/supabase-js' +import { createClient, User, UserResponse } from '@supabase/supabase-js' const removeAllUsers = async () => { - const sb = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const sb = createClient( + process.env.SUPABASE_URL as string, + process.env.SUPABASE_KEY_ADMIN as string + ) - const { data: users } = await sb.auth.api.listUsers() + const { + data: { users }, + } = await sb.auth.admin.listUsers() - const promises: Promise<{ - user: User - data: User - error: ApiError - }>[] = [] + const promises: Promise[] = [] users.map((u) => { sb.from('profiles') .delete() .match({ id: u.id }) - .then(() => promises.push(sb.auth.api.deleteUser(u.id))) + .then(() => promises.push(sb.auth.admin.deleteUser(u.id))) }) await Promise.all(promises) } diff --git a/tests/data/func.ts b/tests/data/func.ts new file mode 100644 index 00000000000..37809150683 --- /dev/null +++ b/tests/data/func.ts @@ -0,0 +1,12 @@ +import { serve } from 'https://deno.land/std@0.131.0/http/server.ts' + +console.log('Hello from Functions!') + +serve(async (req) => { + const { name } = await req.json() + const data = { + message: `Hello ${name}!`, + } + + return new Response(JSON.stringify(data), { headers: { 'Content-Type': 'application/json' } }) +}) diff --git a/tests/features/javascript/authAdmin.spec.ts b/tests/features/javascript/authAdmin.spec.ts new file mode 100644 index 00000000000..57b55cf495f --- /dev/null +++ b/tests/features/javascript/authAdmin.spec.ts @@ -0,0 +1,319 @@ +import { params, retries, suite, test } from '@testdeck/jest' +import { faker } from '@faker-js/faker' +import { Severity } from 'allure-js-commons' + +import { AdminUserAttributes, AuthError, SupabaseClient, UserResponse } from '@supabase/supabase-js' + +import { FEATURE } from '../templates/enums' +import { description, feature, log, severity, step } from '../../.jest/jest-custom-reporter' +import { Hooks } from './hooks' + +@suite('auth_admin') +class AuthenticationAPI extends Hooks { + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.NORMAL) + @description('When you create user then it has to be in auth db schema') + @test + async 'create user via admin api'() { + const { user, error } = await this.createUserAsAdmin() + expect(error).toBeNull() + expect(user).not.toBeNull() + } + + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.NORMAL) + @description('When you create user then he can sign in') + @test + async 'user created by admin can login'() { + const { user, error } = await this.createUserAsAdmin() + expect(error).toBeNull() + expect(user).not.toBeNull() + + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + + const { + data: { user: createdUser }, + error: getErr, + } = await supabase.auth.signInWithPassword({ + email: user.email, + password: user.password, + }) + expect(getErr).toBeNull() + expect(createdUser).not.toBeNull() + expect(createdUser.id).toBe(user.id) + } + + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.CRITICAL) + @description('When you try to create user with anon key then you should get error') + @test + async 'admin create user with anon key should fail'() { + const fakeUser = { + email: faker.internet.exampleEmail(), + password: faker.internet.password(), + email_confirm: true, + } + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) + + const { + error, + data: { user }, + } = await supabase.auth.admin.createUser(fakeUser) + expect(user).toBeNull() + expect(error).not.toBeNull() + } + + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.CRITICAL) + @description('When you try to create user as logged in user then you should get error') + @test + async 'admin create user with logged in user should fail'() { + const { user } = await this.createUserAsAdmin() + + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) + const { error: signInError } = await supabase.auth.signInWithPassword({ + email: user.email, + password: user.password, + }) + expect(signInError).toBeNull() + + const fakeUser = { + email: faker.internet.exampleEmail(), + password: faker.internet.password(), + } + const { + error, + data: { user: newUser }, + } = await supabase.auth.admin.createUser(fakeUser) + expect(newUser).toBeNull() + expect(error).not.toBeNull() + } + + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.NORMAL) + @description('When you list users then you should get all users') + @test + async 'list users with service key'() { + const { user: user1 } = await this.createUserAsAdmin() + const { user: user2 } = await this.createUserAsAdmin() + + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const { + data: { users }, + error, + } = await supabase.auth.admin.listUsers() + + expect(error).toBeNull() + expect(users).not.toBeNull() + expect(users.length).toBeGreaterThanOrEqual(2) + expect(users.map((u) => u.id)).toEqual(expect.arrayContaining([user1.id, user2.id])) + } + + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.CRITICAL) + @description('When you try to list user with anon key then you should get error') + @test + async 'list users with anon key should fail'() { + await this.createUserAsAdmin() + await this.createUserAsAdmin() + + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) + const { + data: { users }, + error, + } = await supabase.auth.admin.listUsers() + + expect(error).not.toBeNull() + expect(users).toHaveLength(0) + } + + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.CRITICAL) + @description('When you try to list user as logged in user then you should get error') + @test + async 'list users as logged in user should fail'() { + const { user } = await this.createUserAsAdmin() + await this.createUserAsAdmin() + + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) + const { error: signInError } = await supabase.auth.signInWithPassword({ + email: user.email, + password: user.password, + }) + expect(signInError).toBeNull() + + const { + data: { users }, + error, + } = await supabase.auth.admin.listUsers() + expect(error).not.toBeNull() + expect(users).toHaveLength(0) + } + + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.NORMAL) + @description('When you get provider url then corresponding auth provider url should be returned') + @params.skip({ provider: 'google', options: {}, expectedURL: 'todo' }) + @params.skip({ + provider: 'google', + options: { redirectTo: 'todo', scopes: 'todo' }, + expectedURL: 'todo', + }) + @params.skip({ provider: 'twitter', options: {}, expectedURL: 'todo' }) + // ... + async 'get url for provider'() { + // todo + } + + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.NORMAL) + @description('When you get user by id he has to be returned') + @test + async 'get user should work'() { + const { user } = await this.createUserAsAdmin() + + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const { + data: { user: foundUser }, + error, + } = await supabase.auth.admin.getUserById(user.id) + + expect(error).toBeNull() + expect(foundUser).not.toBeNull() + expect(foundUser.id).toBe(user.id) + expect(foundUser.email).toBe(user.email) + } + + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.NORMAL) + @description('When you update user then this user has to be updated') + @test + async 'update user should work'() { + const { user } = await this.createUserAsAdmin() + + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + + const updatedUser = { + email: faker.internet.exampleEmail(), + phone: faker.phone.phoneNumber('!#!##!######'), + } + let { + data: { user: resultUser }, + error, + } = await this.updateWithRetries(supabase, user.id, updatedUser) + + expect(error).toBeNull() + expect(resultUser).not.toBeNull() + expect(resultUser.id).toBe(user.id) + expect(resultUser.email).toBe(updatedUser.email) + expect(resultUser.phone).toBe(updatedUser.phone) + } + + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.NORMAL) + @description('When you delete user then this user has to be removed') + @test + async 'delete user should work'() { + const { user } = await this.createUserAsAdmin() + + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const { + data: { user: deletedUser }, + error, + } = await supabase.auth.admin.deleteUser(user.id) + expect(error).toBeNull() + + const { + data: { user: foundUser }, + error: getError, + } = await supabase.auth.admin.getUserById(user.id) + expect(getError).not.toBeNull() + expect(foundUser).toBeNull() + } + + @feature(FEATURE.AUTH_ADMIN) + @severity(Severity.CRITICAL) + @description('When you delete user with anon key you have to receive an error') + @test + async 'delete user with anon key should fail'() { + const { user } = await this.createUserAsAdmin() + const { user: villain } = await this.createUserAsAdmin() + + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) + await supabase.auth.signInWithPassword({ + email: villain.email, + password: villain.password, + }) + + const { + data: { user: deletedUser }, + error, + } = await supabase.auth.admin.deleteUser(user.id) + + expect(error).not.toBeNull() + expect(deletedUser).toBeNull() + + const sbAdmin = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const { + data: { user: foundUser }, + error: getError, + } = await sbAdmin.auth.admin.getUserById(user.id) + expect(getError).toBeNull() + expect(foundUser).not.toBeNull() + expect(foundUser.email).toBe(user.email) + } + + @step('Create a user as admin') + async createUserAsAdmin(data: AdminUserAttributes = undefined): Promise<{ + user: { + email: string + password: string + username: string + id: string + } + error: AuthError + }> { + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + + let fakeUser: AdminUserAttributes + if (data) { + fakeUser = data + } else { + fakeUser = { + email: faker.internet.exampleEmail(), + password: faker.internet.password(), + email_confirm: true, + } + } + + const { + error, + data: { user }, + } = await supabase.auth.admin.createUser(fakeUser) + + return { + error: error, + user: { + email: user?.email, + password: fakeUser.password, + username: faker.internet.userName(), + id: user?.id, + }, + } + } + + @step('Update user with retries') + async updateWithRetries(supabase: SupabaseClient, uid: string, attributes: AdminUserAttributes) { + let result: UserResponse + for (let i = 1; i < 5; i++) { + result = await supabase.auth.admin.updateUserById(uid, attributes) + + if (result.error && result.error.name === 'AuthRetryableFetchError') { + await new Promise((resolve) => setTimeout(resolve, 1000 * i)) + } else { + break + } + } + return result + } +} diff --git a/tests/features/javascript/authentication.spec.ts b/tests/features/javascript/authentication.spec.ts index f3e3c7f3c84..c63af999c2c 100644 --- a/tests/features/javascript/authentication.spec.ts +++ b/tests/features/javascript/authentication.spec.ts @@ -1,8 +1,8 @@ -import { suite, test } from '@testdeck/jest' +import { suite, test, timeout } from '@testdeck/jest' import { faker } from '@faker-js/faker' import { Severity } from 'allure-js-commons' -import { ApiError, Session, SupabaseClient, User, UserAttributes } from '@supabase/supabase-js' +import { AuthChangeEvent, Session } from '@supabase/supabase-js' import { FEATURE } from '../templates/enums' import { description, feature, log, severity, step } from '../../.jest/jest-custom-reporter' @@ -22,7 +22,10 @@ class Authentication extends Hooks { password: faker.internet.password(), username: faker.internet.userName(), } - const { user, session, error: signUpError } = await this.signUp(supabase, fakeUser) + const { + data: { user, session }, + error: signUpError, + } = await this.signUp(supabase, fakeUser) expect(signUpError).toBeNull() expect(user).toBeDefined() @@ -37,7 +40,7 @@ class Authentication extends Hooks { @severity(Severity.BLOCKER) @description('When user sign up then he should not be logged in until he confirms his email') @test - async 'new users'() { + async 'sing up new user and sign in'() { // sign up user const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) @@ -47,35 +50,31 @@ class Authentication extends Hooks { username: faker.internet.userName(), } const { - user, - session: emptySession, + data: { user, session: emptySession }, error: signUpError, } = await this.signUp(supabase, fakeUser) expect(signUpError).toBeNull() expect(user).toBeDefined() expect(user.email).toEqual(fakeUser.email.toLowerCase()) - expect(emptySession).toBeNull() + expect(emptySession).not.toBeNull() - // check if user is not signed in cause he has not confirmed his email - const { error: errorInsertFailed } = await this.insertProfile(supabase, user, fakeUser) - log('check if insert failed caused user has not confirmed email') - expect(errorInsertFailed).not.toBeNull() - - // confirm user email and sign in - const [{ confirmation_token: token }] = await this.getConfirmationToken(user) - const verifyResponse = await this.verify(token) - expect(verifyResponse.ok).toBeTruthy() - - const { session, error: signInError } = await supabase.auth.signIn({ + const { + data: { session }, + error: signInError, + } = await supabase.auth.signInWithPassword({ email: fakeUser.email, password: fakeUser.password, }) expect(signInError).toBeNull() expect(session).toBeDefined() + await supabase.auth.setSession(session) // check if user is signed in - const { data: profile, error: errorInsert } = await this.insertProfile(supabase, user, fakeUser) + const { + data: [profile], + error: errorInsert, + } = await this.insertProfile(supabase, user, fakeUser) expect(errorInsert).toBeNull() expect(profile.username).toMatch(fakeUser.username) @@ -91,7 +90,7 @@ class Authentication extends Hooks { @severity(Severity.BLOCKER) @description('When user sign up with phone then he should be logged in') @test - async 'new users by phone'() { + async 'create new users by phone auth'() { // sign up user const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) @@ -100,7 +99,10 @@ class Authentication extends Hooks { username: faker.internet.userName(), phone: faker.phone.phoneNumber('!#!##!######'), } - const { user, session, error: signUpError } = await this.signUpByPhone(supabase, fakeUser) + const { + data: { user, session }, + error: signUpError, + } = await this.signUpByPhone(supabase, fakeUser) expect(signUpError).toBeNull() expect(user).toBeDefined() @@ -108,7 +110,10 @@ class Authentication extends Hooks { expect(session).toBeDefined() // check if user is signed in - const { data: profile, error: errorInsert } = await this.insertProfile(supabase, user, fakeUser) + const { + data: [profile], + error: errorInsert, + } = await this.insertProfile(supabase, user, fakeUser) expect(errorInsert).toBeNull() expect(profile.username).toMatch(fakeUser.username) @@ -124,17 +129,16 @@ class Authentication extends Hooks { @severity(Severity.BLOCKER) @description('When user is already signed up then he should be able to log in') @test - async 'existing users'() { + async 'existing users should be able to login'() { // create user const fakeUser = await this.createUser() // sign in as user const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) const { - session, - user, + data: { session, user }, error: signInError, - } = await supabase.auth.signIn({ + } = await supabase.auth.signInWithPassword({ email: fakeUser.email, password: fakeUser.password, }) @@ -145,11 +149,10 @@ class Authentication extends Hooks { expect(user.email).toEqual(fakeUser.email.toLowerCase()) // check if user is signed in correctly and rls is working - const { data: profileInserted, error: errorInsert } = await this.insertProfile( - supabase, - user, - fakeUser - ) + const { + data: [profileInserted], + error: errorInsert, + } = await this.insertProfile(supabase, user, fakeUser) expect(errorInsert).toBeNull() expect(profileInserted.username).toMatch(fakeUser.username) @@ -165,7 +168,7 @@ class Authentication extends Hooks { @severity(Severity.NORMAL) @description('When user is signed in then he should be able to get his info and metadata') @test - async 'get user'() { + async 'get user should return logged in user'() { // create user const username = faker.internet.userName() const date = faker.date.recent().toUTCString() @@ -176,16 +179,20 @@ class Authentication extends Hooks { // sign in as user const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) - await supabase.auth.signIn({ + await supabase.auth.signInWithPassword({ email: fakeUser.email, password: fakeUser.password, }) // get signed in user data - const user = this.getUser(supabase) + const { + data: { user }, + error: getUserErr, + } = await this.getUser(supabase) log('Check if user is signed in correctly and can get his data') - expect(user).toBeDefined() + expect(getUserErr).toBeNull() + expect(user).not.toBeNull() expect(user.email).toEqual(fakeUser.email.toLowerCase()) expect(user.role).toEqual('authenticated') expect(user.aud).toEqual('authenticated') @@ -200,132 +207,124 @@ class Authentication extends Hooks { @severity(Severity.NORMAL) @description('When user is signed in then he should be able update himself in auth schema') @test.skip - async 'update user'() { + async 'update user should update logged in user'() { // create user const fakeUser = await this.createUser() // sign in as user const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) - await supabase.auth.signIn({ + await supabase.auth.signInWithPassword({ email: fakeUser.email, password: fakeUser.password, }) // get signed in user data - const user = this.getUser(supabase) + const user = await this.getUser(supabase) // update user - // todo update params + const updParams = { + email: faker.internet.email(), + password: faker.internet.password(), + phone: faker.phone.phoneNumber('!#!##!######'), + } const { - user: updUser, - data: updUserData, + data: { user: updUser }, error: updUserError, - } = await this.updateUser(supabase, {}) + } = await this.updateUser(supabase, updParams) + expect(updUserError).toBeNull() + expect(updUser).not.toBeNull() + expect(updUser.email).toEqual(updParams.email.toLowerCase()) + expect(updUser.phone).toEqual(updParams.phone) - // todo check if returned user is updated + // get user and check it was updated + const updatedUser = await this.getUser(supabase) + expect(updatedUser.data.user.email).toEqual(updParams.email.toLowerCase()) + expect(updatedUser.data.user.phone).toEqual(updParams.phone) - const updatedUser = this.getUser(supabase) - - // todo check if user is updated - - const userFromApi = this.getUserFromApi(supabase) - - // todo check if user is updated on backend + // sign in with new credentials + await supabase.auth.signOut() + const signIn = await supabase.auth.signInWithPassword({ + email: updParams.email, + password: updParams.password, + }) + expect(signIn.error).toBeNull() } @feature(FEATURE.AUTHENTICATION) @severity(Severity.NORMAL) @description('When user changes session then he still should be correctly logined') - @test.skip - async 'set session'() { - // todo - } + @test + async 'set session should set new auth'() { + // create user + const fakeUser = await this.createUser() - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When user changes auth then all new requests should have new JWT') - @test.skip - async 'set auth'() { - // todo - } + // sign in as user + const sb = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) + const { + data: { session }, + } = await sb.auth.signInWithPassword({ + email: fakeUser.email, + password: fakeUser.password, + }) - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When user refreshes session then user and session have to be updated') - @test.skip - async 'refresh session'() { - // todo + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) + const { error: sessionErr } = await supabase.auth.setSession(session) + expect(sessionErr).toBeNull() + + // check if user is signed in correctly and rls is working + const { data: profileInserted, error: errorInsert } = await this.insertProfile( + supabase, + fakeUser, + fakeUser + ) + expect(errorInsert).toBeNull() + expect(profileInserted).toHaveLength(1) + expect(profileInserted[0].username).toMatch(fakeUser.username) } @feature(FEATURE.AUTHENTICATION) @severity(Severity.NORMAL) @description('When user subscribes on auth changes then user has to receive auth updates') - @test.skip - async 'on auth state changed'() { - // todo - } - - // steps - - @step('I sign up with a valid email and password') - private async signUpByPhone( - supabase: SupabaseClient, - { - phone = faker.phone.phoneNumber(), - password = faker.internet.password(), - }: { - phone?: string - password?: string - } = {}, - options: { - redirectTo?: string - data?: object - } = {} - ): Promise<{ - user: User - session: Session - error: ApiError - }> { - return supabase.auth.signUp( - { - phone: phone, - password: password, - }, - options - ) - } - - @step('Check if I am logged in by checking if I can insert my profile') - private async insertProfile( - supabase: SupabaseClient, - user: User, - fakeUser: { - username: string + @test + async 'on auth state changed should return events'() { + // create user + const fakeUser = await this.createUser() + const events: { event: AuthChangeEvent; token: string }[] = [] + const onAuthStateChanged = (event: AuthChangeEvent, session: Session) => { + log('onAuthStateChanged triggered', event) + events.push({ event, token: session?.access_token }) } - ): Promise<{ data: any; error: any }> { - return supabase - .from('profiles') - .insert({ - id: user.id, - username: fakeUser.username, - }) - .single() - } - @step('Check if I am logged in by checking if I can get my profile') - private async getUserProfile(supabase: SupabaseClient): Promise<{ data: any }> { - return supabase.from('profiles').select().maybeSingle() - } + // create client and subscribe on auth state changes + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) + const { + data: { subscription }, + } = supabase.auth.onAuthStateChange(onAuthStateChanged) - @step('Update user info') - private async updateUser( - supabase: SupabaseClient, - attr: UserAttributes - ): Promise<{ - data: User - user: User - error: ApiError - }> { - return supabase.auth.update(attr) + // sign in as user + await supabase.auth.signInWithPassword({ + email: fakeUser.email, + password: fakeUser.password, + }) + + // update user + const updParams = { + email: faker.internet.email(), + password: faker.internet.password(), + phone: faker.phone.phoneNumber('!#!##!######'), + } + const { error: updUserError } = await this.updateUser(supabase, updParams) + expect(updUserError).toBeNull() + + // remove subscription and sign out + subscription.unsubscribe() + await supabase.auth.signOut() + + // check if sign in and update events were triggered and sign out event was not triggered + expect(events).toHaveLength(2) + expect(events.map((e) => e.event)).toEqual( + expect.arrayContaining(['SIGNED_IN', 'USER_UPDATED']) + ) + expect(events.map((e) => e.event)).not.toContain('SIGNED_OUT') } } diff --git a/tests/features/javascript/authenticationAPI.spec.ts b/tests/features/javascript/authenticationAPI.spec.ts deleted file mode 100644 index a03303a80ca..00000000000 --- a/tests/features/javascript/authenticationAPI.spec.ts +++ /dev/null @@ -1,208 +0,0 @@ -import { params, suite, test } from '@testdeck/jest' -import { faker } from '@faker-js/faker' -import { Severity } from 'allure-js-commons' - -import { ApiError, Session, SupabaseClient, User, UserAttributes } from '@supabase/supabase-js' - -import { FEATURE } from '../templates/enums' -import { description, feature, log, severity, step } from '../../.jest/jest-custom-reporter' -import { Hooks } from './hooks' - -@suite('authentication API') -class AuthenticationAPI extends Hooks { - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you create user then it has to be in auth db schema') - @test.skip - async 'create user'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you create user then he can sign in') - @test.skip - async 'create user can login'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.CRITICAL) - @description('When you try to create user with anon key then you should get error') - @test.skip - async 'create user with anon key'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you list users then you should get all users') - @test.skip - async 'list users'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.CRITICAL) - @description('When you try to list user with anon key then you should get error') - @test.skip - async 'list users with anon key'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you sign up user with email then he should be able to login') - @test.skip - async 'sign up with email'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you sign in user with email then he should be able to update his profile') - @test.skip - async 'sign in with email'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you sign up user with phone then he should be able to login') - @test.skip - async 'sign up with phone'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you sign in user with phone then he should be able to update his profile') - @test.skip - async 'sign in with phone'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you send magic link then email should be sent to user') - @test.skip - async 'send magic link'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you send invite then corresponding email should be sent to user') - @test.skip - async 'send invite link'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you send reset password then corresponding email should be sent to user') - @test.skip - async 'send reset password'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you sign out user then current session has to be removed') - @test.skip - async 'sign out'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you get provider url then corresponding auth provider url should be returned') - @params.skip({ provider: 'google', options: {}, expectedURL: 'todo' }) - @params.skip({ - provider: 'google', - options: { redirectTo: 'todo', scopes: 'todo' }, - expectedURL: 'todo', - }) - @params.skip({ provider: 'twitter', options: {}, expectedURL: 'todo' }) - // ... - async 'get url for provider'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you get user then currently logined user date has to be returned') - @test.skip - async 'get user'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you update user then currently logined user date has to be updated') - @test.skip - async 'update user'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you delete user then this user has to be deleted and unable to login') - @test.skip - async 'delete user'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.CRITICAL) - @description('When you delete user with anon key you have to receive an error') - @test.skip - async 'delete user with anon key'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you change auth cookie then all new requests should have new JWT') - @test.skip - async 'set auth cookie'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you refreshes session then user and session have to be updated') - @test.skip - async 'refresh session'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you get user by cookie then the corresponding user data has to be returned') - @test.skip - async 'get user by cookie'() { - // todo - } - - @feature(FEATURE.AUTHENTICATION) - @severity(Severity.NORMAL) - @description('When you generate link then the right link has to be returned') - @params.skip({ type: 'signup', options: {}, email: 'todo' }) - @params.skip({ - type: 'signup', - options: { - redirectTo: 'todo', - password: 'todo', - data: { - /* todo */ - }, - }, - email: 'todo', - }) - @params.skip({ type: 'magiclink', options: {}, email: 'todo' }) - // ... - async 'generate link'() { - // todo - } -} diff --git a/tests/features/javascript/functions.spec.ts b/tests/features/javascript/functions.spec.ts index 74434af7414..0aa8fc33e42 100644 --- a/tests/features/javascript/functions.spec.ts +++ b/tests/features/javascript/functions.spec.ts @@ -1,12 +1,15 @@ import { params, suite, test } from '@testdeck/jest' import { faker } from '@faker-js/faker' import { Severity } from 'allure-js-commons' +import { exec, ExecException } from 'child_process' +import os from 'os' -import { ApiError, Session, SupabaseClient, User, UserAttributes } from '@supabase/supabase-js' +import { Session, SupabaseClient, User, UserAttributes } from '@supabase/supabase-js' import { FEATURE } from '../templates/enums' import { description, feature, log, severity, step } from '../../.jest/jest-custom-reporter' import { Hooks } from './hooks' +import path from 'path' @suite('functions') class Functions extends Hooks { @@ -15,6 +18,25 @@ class Functions extends Hooks { @description('When you get functions client then you are able to set auth') @test.skip async 'set auth'() { - // todo + // execute cli command + const deno = path.join(os.homedir(), '.supabase', 'deno') + const funcPath = path.join(process.cwd(), 'data', 'func.ts') + let prom = new Promise<{ error: ExecException; stdout: string; stderr: string }>((resolve) => { + exec(`${deno} bundle --no-check=remote --quiet ${funcPath}`, (error, stdout, stderr) => + resolve({ error, stdout, stderr }) + ) + }) + const { supabase } = await this.createSignedInSupaClient() + const sb = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_ANON_KEY) + const { + data: { session }, + } = await supabase.auth.getSession() + + sb.functions.setAuth(session.access_token) + const { error, stdout, stderr } = await prom + expect([null, undefined]).toContain(error) + expect([null, undefined]).toContain(stderr) + expect(stdout).toBeDefined() + sb.functions.invoke('get_user') } } diff --git a/tests/features/javascript/hooks.ts b/tests/features/javascript/hooks.ts index 382b011b0a8..25993a4ee6e 100644 --- a/tests/features/javascript/hooks.ts +++ b/tests/features/javascript/hooks.ts @@ -2,12 +2,13 @@ import postgres from 'postgres' import crossFetch from 'cross-fetch' import { faker } from '@faker-js/faker' import { - ApiError, + AuthResponse, createClient, - Session, SupabaseClient, SupabaseClientOptions, User, + UserAttributes, + UserResponse, } from '@supabase/supabase-js' import { JasmineAllureReporter, step } from '../../.jest/jest-custom-reporter' @@ -32,7 +33,14 @@ export abstract class Hooks { } @step('Create Supabase client') - createSupaClient(url: string, key: string, options: SupabaseClientOptions = {}): SupabaseClient { + createSupaClient( + url: string, + key: string, + options: SupabaseClientOptions<'public'> = {} + ): SupabaseClient { + options.auth = options.auth || {} + options.auth.persistSession = false + return createClient(url, key, options) } @@ -41,6 +49,7 @@ export abstract class Hooks { email: string password: string username: string + id: string }> { const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) @@ -48,26 +57,30 @@ export abstract class Hooks { email: faker.internet.exampleEmail(), password: faker.internet.password(), username: faker.internet.userName(), + id: '', } - const { user, error: signUpError } = await this.signUp(supabase, fakeUser, { + const { + error: signUpError, + data: { user }, + } = await this.signUp(supabase, fakeUser, { data: data, }) expect(signUpError).toBeNull() - - const [{ confirmation_token: token }] = await this.getConfirmationToken(user) - - await this.verify(token) + expect(user).not.toBeNull() + fakeUser.id = user.id return fakeUser } + // todo: rework this @step((token: string) => `verify with token ${token}`) - async verify(token: string): Promise { + async verify(token: string, email: string): Promise { return crossFetch(`${process.env.SUPABASE_GOTRUE}/verify`, { method: 'POST', body: JSON.stringify({ type: 'signup', token: token, + email: email, }), }) } @@ -94,19 +107,14 @@ export abstract class Hooks { options: { redirectTo?: string data?: object + captchaToken?: string } = {} - ): Promise<{ - user: User - session: Session - error: ApiError - }> { - return supabase.auth.signUp( - { - email: email, - password: password, - }, - options - ) + ): Promise { + return supabase.auth.signUp({ + email: email, + password: password, + options: options, + }) } @step('Check if I am being able to log out') @@ -116,12 +124,7 @@ export abstract class Hooks { @step('Get user data, if there is a logged in user') getUser(supabase: SupabaseClient) { - return supabase.auth.user() - } - - @step('Get user data, if there is a logged in user') - getUserFromApi(supabase: SupabaseClient) { - return supabase.auth.api.getUser(supabase.auth.session().access_token) + return supabase.auth.getUser() } @step((user: User) => `Get user by ID (${user.id}) from Supabase auth schema`) @@ -134,4 +137,75 @@ export abstract class Hooks { id = ${user.id} ` } + + @step('I sign up with a valid email and password') + async signUpByPhone( + supabase: SupabaseClient, + { + phone = faker.phone.phoneNumber(), + password = faker.internet.password(), + }: { + phone?: string + password?: string + } = {}, + options: { + redirectTo?: string + data?: object + } = {} + ): Promise { + return supabase.auth.signUp({ + phone: phone, + password: password, + options: options, + }) + } + + @step('User inserts profile') + async insertProfile( + supabase: SupabaseClient, + user: { + id: string + }, + fakeUser: { + username: string + } + ): Promise<{ data: any; error: any }> { + return await supabase + .from('profiles') + .insert({ + id: user.id, + username: fakeUser.username, + }) + .select() + } + + @step('I can get my profile via postgREST') + async getUserProfile(supabase: SupabaseClient): Promise<{ data: any; error: any }> { + return supabase.from('profiles').select().maybeSingle() + } + + @step('Update user info') + async updateUser(supabase: SupabaseClient, attr: UserAttributes): Promise { + return supabase.auth.updateUser(attr) + } + + @step('Create signed in supabase client') + async createSignedInSupaClient() { + // create user + const fakeUser = await this.createUser() + + // sign in as user + const supabase = this.createSupaClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ANON) + const { + data: { user }, + error: signInError, + } = await supabase.auth.signInWithPassword({ + email: fakeUser.email, + password: fakeUser.password, + }) + expect(signInError).toBeNull() + fakeUser.id = user.id + + return { supabase, user: fakeUser } + } } diff --git a/tests/features/javascript/postgrest.spec.ts b/tests/features/javascript/postgrest.spec.ts new file mode 100644 index 00000000000..d0602ce19ce --- /dev/null +++ b/tests/features/javascript/postgrest.spec.ts @@ -0,0 +1,86 @@ +import { suite, test, timeout } from '@testdeck/jest' +import { faker } from '@faker-js/faker' +import { Severity } from 'allure-js-commons' + +import { FEATURE } from '../templates/enums' +import { description, feature, log, severity, step } from '../../.jest/jest-custom-reporter' +import { Hooks } from './hooks' + +@suite('postgrest') +class PostgREST extends Hooks { + @feature(FEATURE.POSTGREST) + @severity(Severity.BLOCKER) + @description('User can insert profile for himself according to RLS to profiles table') + @test + async 'insert row'() { + const { supabase, user } = await this.createSignedInSupaClient() + + // check if user can insert profile for himself + const { + data: [profileInserted], + error: errorInsert, + } = await this.insertProfile(supabase, user, user) + expect(errorInsert).toBeNull() + expect(profileInserted.username).toMatch(user.username) + } + + @feature(FEATURE.POSTGREST) + @severity(Severity.BLOCKER) + @description('User can select his profile from profiles table') + @test + async 'select row'() { + const { supabase, user } = await this.createSignedInSupaClient() + + // insert profile for user + await this.insertProfile(supabase, user, user) + + const { data: profileGot, error } = await this.getUserProfile(supabase) + expect(error).toBeNull() + expect(profileGot.username).toMatch(user.username) + } + + @feature(FEATURE.POSTGREST) + @severity(Severity.BLOCKER) + @description('User can update his profile in profiles table') + @test + async 'update row'() { + const { supabase, user } = await this.createSignedInSupaClient() + + // insert profile for user + await this.insertProfile(supabase, user, user) + + const newName = faker.internet.userName() + // update profile for user + const { data: updUser, error } = await supabase + .from('profiles') + .update({ + id: user.id, + username: newName, + }) + .select() + expect(error).toBeNull() + expect(updUser.length).toEqual(1) + expect(updUser[0].username).toMatch(newName) + + const { data: profileGot } = await this.getUserProfile(supabase) + expect(profileGot.username).toMatch(newName) + } + + @feature(FEATURE.POSTGREST) + @severity(Severity.BLOCKER) + @description('User can delete his profile in profiles table') + @test + async 'delete row'() { + const { supabase, user } = await this.createSignedInSupaClient() + + // insert profile for user + await this.insertProfile(supabase, user, user) + + // delete profile for user + const { error } = await supabase.from('profiles').delete().eq('id', user.id).select() + expect(error).toBeNull() + + const { data: profileGot } = await this.getUserProfile(supabase) + expect(profileGot).toBeNull() + } +} diff --git a/tests/features/javascript/realtime.spec.ts b/tests/features/javascript/realtime.spec.ts index 3930f42391d..59ba68289bf 100644 --- a/tests/features/javascript/realtime.spec.ts +++ b/tests/features/javascript/realtime.spec.ts @@ -1,29 +1,107 @@ -import { params, suite, test } from '@testdeck/jest' +import { params, suite, test, timeout } from '@testdeck/jest' import { faker } from '@faker-js/faker' import { Severity } from 'allure-js-commons' -import { ApiError, Session, SupabaseClient, User, UserAttributes } from '@supabase/supabase-js' +import { RealtimeChannel } from '@supabase/supabase-js' import { FEATURE } from '../templates/enums' import { description, feature, log, severity, step } from '../../.jest/jest-custom-reporter' import { Hooks } from './hooks' @suite('realtime') +@timeout(30000) class Realtime extends Hooks { @feature(FEATURE.REALTIME) @severity(Severity.BLOCKER) @description('When you call "on" table then connected realtime client should be returned') - @test.skip - async 'realtime connect'() { - // todo + @test + async '[skip-stage] connect to realtime'() { + const { supabase } = await this.createSignedInSupaClient() + + const channel = supabase + .channel('profiles') + .on('postgres_changes', { event: '*', schema: 'public' }, (payload: any) => + console.log(payload) + ) + channel.subscribe() + + expect(channel).toBeDefined() + const err = await this.waitForChannelJoined(channel) + await new Promise((resolve) => setTimeout(resolve, 1000)) + expect(err).toBeNull() + const ok = await supabase.removeChannel(channel) + expect(ok).toBe('ok') + } + + @feature(FEATURE.REALTIME) + @severity(Severity.BLOCKER) + @description('When you subscrive to realtime, you have to receive updates') + @timeout(60000) + @test + async '[skip-stage] receive event when connected to realtime'() { + let res: any + let t: NodeJS.Timeout + const { supabase, user } = await this.createSignedInSupaClient() + + let payloadReceived = (payload: any) => { + if (payload?.eventType !== 'INSERT') { + return + } + clearTimeout(t) + expect(payload.schema).toBe('public') + expect(payload.table).toBe('profiles') + expect(payload.new.id).toBe(user.id) + expect(payload.new.username).toBe(user.username) + expect(payload.old).toEqual({}) + expect(payload.error).toBeUndefined() + res(null) + } + + const channel = supabase + .channel('profiles') + .on('postgres_changes', { event: '*', schema: 'public' }, payloadReceived) + channel.subscribe() + + expect(channel).toBeDefined() + await this.waitForChannelJoined(channel) + // we should wait some time seconds to connect to database changes + await new Promise((resolve) => setTimeout(resolve, 10000)) + + const eventPromise = new Promise((resolve) => { + res = resolve + new Promise(() => { + t = setTimeout(() => resolve(new Error('timeout')), 30000) + }) + }) + await this.insertProfile(supabase, user, user) + expect(await eventPromise).toBeNull() + + const ok = await supabase.removeChannel(channel) + expect(ok).toBe('ok') } @feature(FEATURE.REALTIME) @severity(Severity.NORMAL) @description('When you call "on" table but not subscribe then no events have to be returned') - @test.skip - async 'no event updates until subscribe'() { - // todo + @test + async 'you should get no events until subscribe'() { + const { supabase, user } = await this.createSignedInSupaClient() + + const channel = supabase + .channel('profiles') + .on('postgres_changes', { event: '*', schema: 'public' }, (payload: any) => { + console.log(payload) + expect('event received').toBe('should not receive event') + }) + + expect(channel).toBeDefined() + await this.insertProfile(supabase, user, user) + + // wait for 1 second to see if we receive any events + await new Promise((resolve) => setTimeout(resolve, 1000)) + expect(channel._isClosed).toBeTruthy() + const ok = await supabase.removeChannel(channel) + expect(ok).toBe('ok') } @feature(FEATURE.REALTIME) @@ -31,9 +109,27 @@ class Realtime extends Hooks { @description( 'When you create 2 subs (1 subscribed and 1 not yet) then both should be returned on get subs' ) - @test.skip - async 'get subscriptions'() { - // todo + @test + async 'get supabase client subscriptions'() { + const { supabase } = await this.createSignedInSupaClient() + + const channel1 = supabase + .channel('profiles') + .on('postgres_changes', { event: '*', schema: 'public' }, (payload: any) => { + console.log(payload) + expect('event received').toBe('should not receive event') + }) + const channel2 = supabase + .channel('profiles') + .on('postgres_changes', { event: '*', schema: 'public' }, (payload: any) => { + console.log(payload) + expect('event received').toBe('should not receive event') + }) + + const channels = supabase.getChannels() + expect(channels).toEqual(expect.arrayContaining([channel1, channel2])) + supabase.removeAllChannels() + expect(supabase.getChannels().length).toEqual(0) } @feature(FEATURE.REALTIME) @@ -125,24 +221,96 @@ class Realtime extends Hooks { @feature(FEATURE.REALTIME) @severity(Severity.CRITICAL) @description('When you unsubscribe from table then no events have to be returned') - @test.skip - async 'unsubscribe from table'() { - // todo + @test + async '[skip-stage] unsubscribe from table'() { + const { supabase, user } = await this.createSignedInSupaClient() + + const channel = supabase + .channel('profiles') + .on('postgres_changes', { event: '*', schema: 'public' }, (payload: any) => { + console.log(payload) + expect('event received').toBe('should not receive event') + }) + channel.subscribe() + // wait for subscription to postgres + await new Promise((resolve) => setTimeout(resolve, 8000)) + const ok = await channel.unsubscribe() + expect(ok).toEqual('ok') + + await this.insertProfile(supabase, user, user) + + // wait for 1 second to see if we receive any events + await new Promise((resolve) => setTimeout(resolve, 1000)) + expect(channel._isClosed).toBeTruthy() + await supabase.removeChannel(channel) } @feature(FEATURE.REALTIME) @severity(Severity.CRITICAL) @description('When you remove one subscription then only events from another have to be returned') - @test.skip - async 'remove one subscription'() { - // todo + @test + async '[skip-stage] remove one subscription from client'() { + const { supabase, user } = await this.createSignedInSupaClient() + + const channel = supabase + .channel('profiles') + .on('postgres_changes', { event: '*', schema: 'public' }, (payload: any) => { + console.log(payload) + expect('event received').toBe('should not receive event') + }) + channel.subscribe() + // wait for subscription to postgres + await new Promise((resolve) => setTimeout(resolve, 8000)) + const ok = await supabase.removeChannel(channel) + expect(ok).toEqual('ok') + + await this.insertProfile(supabase, user, user) + + // wait for 1 second to see if we receive any events + await new Promise((resolve) => setTimeout(resolve, 1000)) + expect(channel._isClosed).toBeTruthy() } @feature(FEATURE.REALTIME) @severity(Severity.CRITICAL) @description('When you remove all subscription then no events have to be returned') - @test.skip - async 'remove all subscriptions'() { - // todo + @test + async '[skip-stage] remove all subscriptions from client'() { + const { supabase, user } = await this.createSignedInSupaClient() + + const channel = supabase + .channel('profiles') + .on('postgres_changes', { event: '*', schema: 'public' }, (payload: any) => { + console.log(payload) + expect('event received').toBe('should not receive event') + }) + channel.subscribe() + // wait for subscription to postgres + await new Promise((resolve) => setTimeout(resolve, 8000)) + const ok = await supabase.removeAllChannels() + expect(ok).toEqual(expect.arrayContaining(['ok'])) + + await this.insertProfile(supabase, user, user) + + // wait for 1 second to see if we receive any events + await new Promise((resolve) => setTimeout(resolve, 1000)) + expect(channel._isClosed).toBeTruthy() + } + + @step('Wait until channel is joined') + async waitForChannelJoined(channel: RealtimeChannel): Promise { + for (let i = 0; i < 30; i++) { + if (channel._isJoined()) { + return null + } + if (channel._isLeaving()) { + return new Error('Channel is leaving') + } + if (channel._isClosed()) { + return new Error('Channel is closed') + } + await new Promise((resolve) => setTimeout(resolve, 100)) + } + return new Error("Channel didn't join in 3 seconds") } } diff --git a/tests/features/javascript/rpc.spec.ts b/tests/features/javascript/rpc.spec.ts index c09f973c39e..71883f2dd5c 100644 --- a/tests/features/javascript/rpc.spec.ts +++ b/tests/features/javascript/rpc.spec.ts @@ -1,20 +1,134 @@ -import { params, suite, test } from '@testdeck/jest' -import { faker } from '@faker-js/faker' +import { suite, test, timeout } from '@testdeck/jest' import { Severity } from 'allure-js-commons' -import { ApiError, Session, SupabaseClient, User, UserAttributes } from '@supabase/supabase-js' +import { SupabaseClient } from '@supabase/supabase-js' import { FEATURE } from '../templates/enums' -import { description, feature, log, severity, step } from '../../.jest/jest-custom-reporter' +import { description, feature, severity, step } from '../../.jest/jest-custom-reporter' import { Hooks } from './hooks' +import { PendingQuery, Row } from 'postgres' @suite('rpc') +@timeout(30000) class Procedures extends Hooks { - @feature(FEATURE.STORAGE) + @feature(FEATURE.RPC) @severity(Severity.BLOCKER) @description('When you call rpc then you are able to receive its result') - @test.skip - async 'call rpc'() { - // todo + @test + async 'call rpc and get result'() { + await this.createFunction(Procedures.sql` + CREATE OR REPLACE FUNCTION public.test_procedure() RETURNS int language plpgsql as $$ + declare + profile_count integer; + begin + select count(*) + into profile_count + from profiles; + + return profile_count; + end; + $$;`) + + const { supabase, user } = await this.createSignedInSupaClient() + await this.insertProfile(supabase, user, user) + + const result = await this.callRpc(supabase, 'test_procedure') + expect(result.error).toBeNull() + expect(result.data).toBeDefined() + expect(result.data).toBeGreaterThanOrEqual(1) + + await this.dropFunction(Procedures.sql`test_procedure()`) + } + + @feature(FEATURE.RPC) + @severity(Severity.BLOCKER) + @description('When you call rpc, params should be passed properly') + @test + async 'call rpc method that has params'() { + await this.createFunction(Procedures.sql` + CREATE OR REPLACE FUNCTION public.test_procedure(filter text) + RETURNS int language plpgsql as $$ + declare + profile_count integer; + begin + select count(*) + into profile_count + from profiles + where username LIKE '%' || filter || '%'; + + return profile_count; + end; + $$;`) + + const { supabase, user } = await this.createSignedInSupaClient() + await this.insertProfile(supabase, user, user) + + const result = await this.callRpc(supabase, 'test_procedure', { filter: user.username }) + expect(result.error).toBeNull() + expect(result.data).toBeDefined() + expect(result.data).toBeGreaterThanOrEqual(1) + + await this.dropFunction(Procedures.sql`test_procedure(filter text)`) + } + + @feature(FEATURE.RPC) + @severity(Severity.NORMAL) + @description('When you call rpc with head param, no data should be returned') + @test + async 'call rpc with head option'() { + await this.createFunction(Procedures.sql` + CREATE OR REPLACE FUNCTION public.test_procedure() RETURNS int language plpgsql as $$ + declare + profile_count integer; + begin + select count(*) + into profile_count + from profiles; + + return profile_count; + end; + $$;`) + + const { supabase, user } = await this.createSignedInSupaClient() + await this.insertProfile(supabase, user, user) + + const result = await this.callRpc(supabase, 'test_procedure', {}, { head: true }) + expect(result.error).toBeNull() + expect(result.data).toBeNull() + + await this.dropFunction(Procedures.sql`test_procedure()`) + } + + @step('create function') + private async createFunction(body: PendingQuery) { + await Procedures.sql`${body}` + await Procedures.sql`NOTIFY pgrst, 'reload schema';` + } + + @step('drop function') + private async dropFunction(signature: PendingQuery) { + await Procedures.sql`DROP FUNCTION public.${signature};` + } + + @step('call supabase rpc') + private async callRpc( + supabase: SupabaseClient, + name: string, + args?: any, + options?: { + head?: boolean + count?: 'exact' | 'planned' | 'estimated' + } + ) { + let result = await supabase.rpc(name, args, options) + for (let i = 1; i <= 5; i++) { + if (result.error) { + await new Promise((resolve) => setTimeout(resolve, 0.5 * 1000 * i)) + result = await supabase.rpc(name, args, options) + } else { + break + } + } + return result } } diff --git a/tests/features/javascript/storage.spec.ts b/tests/features/javascript/storage.spec.ts index 41a71ef692a..455b1d51c75 100644 --- a/tests/features/javascript/storage.spec.ts +++ b/tests/features/javascript/storage.spec.ts @@ -2,27 +2,423 @@ import { params, suite, test } from '@testdeck/jest' import { faker } from '@faker-js/faker' import { Severity } from 'allure-js-commons' -import { ApiError, Session, SupabaseClient, User, UserAttributes } from '@supabase/supabase-js' +import { createClient, Session, SupabaseClient, User, UserAttributes } from '@supabase/supabase-js' +import { Bucket } from '@supabase/storage-js' import { FEATURE } from '../templates/enums' import { description, feature, log, severity, step } from '../../.jest/jest-custom-reporter' import { Hooks } from './hooks' +import fetch from 'cross-fetch' @suite('storage') class Storage extends Hooks { - @feature(FEATURE.STORAGE) - @severity(Severity.BLOCKER) - @description('When you create public bucket then it has to be available') - @test.skip - async 'create public bucket'() { - // todo + static buckets: Pick[] = [] as any + static async after() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const requests = [] + for (const bucket of this.buckets) { + requests.push( + new Promise((resolve) => + (async () => { + await supabase.storage.emptyBucket(bucket.name) + await supabase.storage.deleteBucket(bucket.name) + resolve(null) + })() + ) + ) + } + await Promise.all(requests) + await Hooks.after() } @feature(FEATURE.STORAGE) @severity(Severity.BLOCKER) - @description('When you create private bucket then it has to be available') - @test.skip - async 'create private bucket'() { - // todo + @description('When you create public bucket then it has to be available') + @params({ public: true }) + @params({ public: false }) + async 'create bucket'(params: { public: boolean }) { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucketName = faker.unique(faker.random.word) + const { data: bucket, error } = await supabase.storage.createBucket(bucketName, { + public: params.public, + }) + expect(error).toBeNull() + expect(bucket).toBeDefined() + expect(bucket.name).toBe(bucketName) + Storage.buckets.push(bucket) + + const { data: gotBucket, error: error2 } = await supabase.storage.getBucket(bucketName) + expect(error2).toBeNull() + expect(gotBucket).toBeDefined() + expect(gotBucket.name).toBe(bucketName) + expect(gotBucket.public).toBe(params.public) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('There has to be default RLS policy to not allow users to create bucket') + @params({ public: true }) + @params({ public: false }) + async 'user cannot create bucket because of RLS'(params: { public: boolean }) { + const { supabase } = await this.createSignedInSupaClient() + const bucketName = faker.unique(faker.random.word) + + const { data: bucket, error } = await supabase.storage.createBucket(bucketName, { + public: params.public, + }) + expect(error).not.toBeNull() + expect(error.message).toContain('row-level security') + expect(error.message).toContain('"buckets"') + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('list buckets should return all buckets') + @test + async 'list buckets as admin'() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + + const bucket1 = await this.createBucket() + const bucket2 = await this.createBucket() + + const { data: buckets, error } = await supabase.storage.listBuckets() + expect(buckets.length).toBeGreaterThanOrEqual(2) + expect(buckets.map((b) => b.name)).toEqual(expect.arrayContaining([bucket1.name, bucket2.name])) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('get bucket should return bucket info') + @test + async 'get bucket'() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket() + + const { data: gotBucket, error } = await supabase.storage.getBucket(bucket.id) + expect(error).toBeNull() + expect(gotBucket).toEqual(bucket) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('update bucket should change bucket both public->private and back') + @params({ public: true }) + @params({ public: false }) + async 'update bucket'(params: { public: boolean }) { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket(params.public) + + const { + data: { message }, + error, + } = await supabase.storage.updateBucket(bucket.id, { + public: !params.public, + }) + expect(error).toBeNull() + expect(message).toBe('Successfully updated') + + bucket.public = !params.public + const { data: gotBucket } = await supabase.storage.getBucket(bucket.id) + expect(gotBucket).toEqual(bucket) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('get bucket should return bucket info') + @test + async 'delete bucket'() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket() + + const { + data: { message }, + error, + } = await supabase.storage.deleteBucket(bucket.id) + expect(error).toBeNull() + expect(message).toBe('Successfully deleted') + + const { data: buckets } = await supabase.storage.listBuckets() + expect( + buckets.map((b) => { + return { name: b.name, id: b.id } + }) + ).not.toContain({ name: bucket.name, id: bucket.id }) + + Storage.buckets = Storage.buckets.filter((b) => b.name != bucket.name) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('upload to bucket') + @test + async 'upload to bucket'() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket() + + const file = { + path: faker.random.word() + '.txt', + data: faker.lorem.paragraph(), + } + const { + data: { path }, + error, + } = await supabase.storage.from(bucket.name).upload(file.path, file.data) + expect(error).toBeNull() + expect(path).toEqual(file.path) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('list files in bucket') + @test + async 'list files'() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket() + + const files: { path: string; data: string }[] = [] + const requests: Promise[] = [] + for (let i = 0; i < 3; i++) { + requests.push( + new Promise((resolve) => { + const dir = faker.random.word() + const file = { + path: dir + '/' + faker.random.word() + '.txt', + data: faker.lorem.sentence(), + } + files.push(file) + const p1 = supabase.storage.from(bucket.name).upload(file.path, file.data) + const file2 = { + path: dir + '/' + faker.random.word() + '.txt', + data: faker.lorem.sentence(), + } + files.push(file2) + const p2 = supabase.storage.from(bucket.name).upload(file2.path, file2.data) + Promise.all([p1, p2]).finally(() => resolve()) + }) + ) + } + await Promise.all(requests) + + const { data: dirs, error: error1 } = await supabase.storage.from(bucket.name).list() + expect(error1).toBeNull() + expect(dirs.map((d) => d.name)).toEqual( + expect.arrayContaining([...new Set(files.map((f) => f.path.split('/')[0]))]) + ) + + const dir = files[0].path.split('/')[0] + const { data: filesInDir, error: error2 } = await supabase.storage.from(bucket.name).list(dir) + expect(error2).toBeNull() + expect(filesInDir.map((d) => d.name)).toEqual( + expect.arrayContaining( + files.filter((f) => f.path.split('/')[0] === dir).map((f) => f.path.split('/')[1]) + ) + ) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('download file') + @test + async 'download file from bucket'() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket() + + const file = { + path: faker.random.word() + '/' + faker.random.word() + '.txt', + data: faker.lorem.paragraph(), + } + await supabase.storage.from(bucket.name).upload(file.path, file.data) + + const { data, error } = await supabase.storage.from(bucket.name).download(file.path) + expect(error).toBeNull() + expect(await data.text()).toEqual(file.data) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('move file') + @test + async '[skip-local] move file in bucket'() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket() + + const file = { + path: faker.random.word() + '/' + faker.random.word() + '.txt', + newPath: faker.random.word() + '/' + faker.random.word() + '.txt', + data: faker.lorem.paragraph(), + } + await supabase.storage.from(bucket.name).upload(file.path, file.data) + + const { error } = await supabase.storage.from(bucket.name).move(file.path, file.newPath) + expect(error).toBeNull() + const { data: filesRoot } = await supabase.storage.from(bucket.name).list() + expect(filesRoot.map((f) => f.name)).not.toContain(file.path.split('/')[0]) + const { data: files } = await supabase.storage + .from(bucket.name) + .list(file.newPath.split('/')[0]) + expect(files.map((f) => f.name)).toEqual(expect.arrayContaining([file.newPath.split('/')[1]])) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('copy file') + @test + async '[skip-local] copy file in bucket'() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket() + + const file = { + path: faker.random.word() + '/' + faker.random.word() + '.txt', + newPath: faker.random.word() + '/' + faker.random.word() + '.txt', + data: faker.lorem.paragraph(), + } + await supabase.storage.from(bucket.name).upload(file.path, file.data) + + const { error } = await supabase.storage.from(bucket.name).copy(file.path, file.newPath) + expect(error).toBeNull() + + const { data: filesRoot } = await supabase.storage.from(bucket.name).list() + expect(filesRoot.map((f) => f.name)).toEqual( + expect.arrayContaining([file.path.split('/')[0], file.newPath.split('/')[0]]) + ) + const { data: filesNew } = await supabase.storage + .from(bucket.name) + .list(file.newPath.split('/')[0]) + expect(filesNew.map((f) => f.name)).toEqual( + expect.arrayContaining([file.newPath.split('/')[1]]) + ) + const { data: files } = await supabase.storage.from(bucket.name).list(file.path.split('/')[0]) + expect(files.map((f) => f.name)).toEqual(expect.arrayContaining([file.path.split('/')[1]])) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('get public link to file in the public bucket') + @test + async 'get public link to file'() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket() + + const file = { + path: faker.random.word() + '/' + faker.random.word() + '.txt', + data: faker.lorem.paragraph(), + } + await supabase.storage.from(bucket.name).upload(file.path, file.data) + + const { + data: { publicUrl }, + } = supabase.storage.from(bucket.name).getPublicUrl(file.path) + expect(publicUrl).toBeDefined() + expect(publicUrl.length).toBeGreaterThan(1) + expect(publicUrl).toMatch(new RegExp(`^http[s]?://.*storage.*/${bucket.name}/.*`)) + + const resp = await fetch(publicUrl) + expect(resp.status).toEqual(200) + expect(await resp.text()).toEqual(file.data) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('get public link to file in the private bucket') + @test + async 'get public link to private file'() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket(false) + + const file = { + path: faker.random.word() + '/' + faker.random.word() + '.txt', + data: faker.lorem.paragraph(), + } + await supabase.storage.from(bucket.name).upload(file.path, file.data) + + const { + data: { publicUrl }, + } = supabase.storage.from(bucket.name).getPublicUrl(file.path) + expect(publicUrl).toBeDefined() + expect(publicUrl.length).toBeGreaterThan(1) + expect(publicUrl).toMatch(new RegExp(`^http[s]?://.*storage.*/${bucket.name}/.*`)) + + const resp = await fetch(publicUrl) + expect(resp.status).toEqual(400) // todo 400 should be 404 too I guess + const error = await resp.json() + expect(error.statusCode).toBe('404') // todo should be a number? + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('get signed link to file in the bucket') + @params({ public: true }) + @params({ public: false }) + async 'get signed link to file'(params: { public: boolean }) { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket(params.public) + + const file = { + path: faker.random.word() + '/' + faker.random.word() + '.txt', + data: faker.lorem.paragraph(), + } + await supabase.storage.from(bucket.name).upload(file.path, file.data) + + const { + data: { signedUrl }, + error, + } = await supabase.storage.from(bucket.name).createSignedUrl(file.path, 10000) + expect(error).toBeNull() + expect(signedUrl).toBeDefined() + expect(signedUrl.length).toBeGreaterThan(1) + expect(signedUrl).toMatch(new RegExp(`^http[s]?://.*storage.*/${bucket.name}/.*`)) + + const resp = await fetch(signedUrl) + expect(resp.status).toEqual(200) + expect(await resp.text()).toEqual(file.data) + } + + @feature(FEATURE.STORAGE) + @severity(Severity.BLOCKER) + @description('update file check if it will change') + @test + async 'update file'() { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucket = await this.createBucket() + + const file = { + path: faker.random.word() + '/' + faker.random.word() + '/' + faker.random.word() + '.txt', + data: faker.lorem.paragraph(), + } + await supabase.storage.from(bucket.name).upload(file.path, file.data) + + const { + data: { publicUrl }, + } = supabase.storage.from(bucket.name).getPublicUrl(file.path) + expect(publicUrl).toBeDefined() + expect(publicUrl.length).toBeGreaterThan(1) + expect(publicUrl).toMatch(new RegExp(`^http[s]?://.*storage.*/${bucket.name}/.*`)) + + const newFile = { + path: file.path, + data: faker.lorem.paragraph(10), + } + await supabase.storage.from(bucket.name).update(newFile.path, newFile.data) + + const resp = await fetch(publicUrl) + expect(resp.status).toEqual(200) + expect(await resp.text()).toEqual(newFile.data) + } + + @step('create bucket') + async createBucket(pub = true) { + const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY_ADMIN) + const bucketName = faker.unique(faker.random.word) + + const { data: bucket, error } = await supabase.storage.createBucket(bucketName, { + public: pub, + }) + expect(error).toBeNull() + expect(bucket).toBeDefined() + expect(bucket.name).toBe(bucketName) + Storage.buckets.push(bucket) + + const { data: buckets } = await supabase.storage.listBuckets() + return buckets.find((b) => b.name === bucketName) } } diff --git a/tests/features/templates/enums.ts b/tests/features/templates/enums.ts index 3ce59684e85..fed746cf37a 100644 --- a/tests/features/templates/enums.ts +++ b/tests/features/templates/enums.ts @@ -1,10 +1,11 @@ export enum FEATURE { AUTHENTICATION = 'authentication', + AUTH_ADMIN = 'auth_admin', REALTIME = 'realtime', STORAGE = 'storage', FUNCTIONS = 'functions', RPC = 'rpc', - DB = 'database', - Filters = 'database.filters', - Modifiers = 'database.modifiers', + POSTGREST = 'postgrest', + FILTERS = 'postgrest_filters', + MODIFIERS = 'postgrest_modifiers', } diff --git a/tests/package-lock.json b/tests/package-lock.json index 5a91bb4e9c0..16b0e91e8a7 100644 --- a/tests/package-lock.json +++ b/tests/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "devDependencies": { "@faker-js/faker": "^6.1.2", - "@supabase/supabase-js": "^1.34.1", + "@supabase/supabase-js": "^2.0.0", "@testdeck/jest": "^0.2.0", "@types/jest": "^27.4.0", "@types/node": "^17.0.24", @@ -1023,36 +1023,36 @@ } }, "node_modules/@supabase/functions-js": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-1.3.3.tgz", - "integrity": "sha512-35vO9niHRtzGe1QSvXKdOfvGPiX2KC44dGpWU6y0/gZCfTIgog/soU9HqABzQC/maVowO3hGLWfez5aN0MKfow==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.0.0.tgz", + "integrity": "sha512-ozb7bds2yvf5k7NM2ZzUkxvsx4S4i2eRKFSJetdTADV91T65g4gCzEs9L3LUXSrghcGIkUaon03VPzOrFredqg==", "dev": true, "dependencies": { "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/gotrue-js": { - "version": "1.22.12", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.22.12.tgz", - "integrity": "sha512-/baPkNiumE2B+OLSpvZquDsTqnOTAsG/07GBq5rXU8/e0rSyjljAFf8gnawGPezjlDGTFr2fjRYs0BYMz4LD/A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.0.1.tgz", + "integrity": "sha512-PCzHeFhz33lPWLZT+UiVDpGkZQI3K1wwhkhgAjvJdkyCbwK5u+LWWUzz0AX66bGGLpg1IYQIP7oz8V68XVjzMA==", "dev": true, "dependencies": { - "cross-fetch": "^3.0.6" + "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/postgrest-js": { - "version": "0.37.2", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.37.2.tgz", - "integrity": "sha512-3Dgx5k3RvtKqc8DvR2BEyh2fVyjZe5P4e0zD1r8dyuVmpaYDaASZ2YeNVgyWXMCWH7xzrj4vepTYlKwfj78QLg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.0.0.tgz", + "integrity": "sha512-MRR4g8dThgSnlnjkL2Jvc6gS73W68hLq48/Q245CLvUPt3KtOh3WXpvo4rZDEDHYVkyVga+L9IQixo6YTsjMQg==", "dev": true, "dependencies": { - "cross-fetch": "^3.0.6" + "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/realtime-js": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.7.1.tgz", - "integrity": "sha512-ovp9UXzi3ibA/AOyL4CXW7hjbrR+ZQoxbJZ8rfZTSMpqYhT8Jl8/sLUozMobIzSV6gsZYuHR3QnzJmemzvBQhg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.0.0.tgz", + "integrity": "sha512-DJVt5Z76pik3Fxt1es4fmquq6GrwR3nLqcb2Q6VpHXSudtixML0Cyxsu0DPzxa6ruSQrO9s08s0OQgwaIA1C0Q==", "dev": true, "dependencies": { "@types/phoenix": "^1.5.4", @@ -1060,25 +1060,26 @@ } }, "node_modules/@supabase/storage-js": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.7.0.tgz", - "integrity": "sha512-f5EBw0wM96hKmnrXhgiqq2Reh9O0NgjKE+jkaKY4jQmfutefqaCAWn+cBzlmHs9h135H2ldaGmhWRFHUSkLt2g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.0.0.tgz", + "integrity": "sha512-7kXThdRt/xqnOOvZZxBqNkeX1CFNUWc0hYBJtNN/Uvt8ok9hD14foYmroWrHn046wEYFqUrB9U35JYsfTrvltA==", "dev": true, "dependencies": { - "cross-fetch": "^3.1.0" + "cross-fetch": "^3.1.5" } }, "node_modules/@supabase/supabase-js": { - "version": "1.34.1", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.34.1.tgz", - "integrity": "sha512-0K9iJXvGcg+iBrUXf9vBlCObPVXn7B77tdCUcaw2/0XgJJBNFg90t43zNnY51KdjT1AZCm/1Kpwx2zd7FdCzKQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.0.0.tgz", + "integrity": "sha512-8nNMXYzBlQVSDONFaNgyyxsAdUY+C9Q/7vEDYDdTFTyC3i+luXTDOSjHMLcjIky/+x5rIAcNQqqIJ48HJUluXA==", "dev": true, "dependencies": { - "@supabase/functions-js": "^1.3.3", - "@supabase/gotrue-js": "^1.22.12", - "@supabase/postgrest-js": "^0.37.2", - "@supabase/realtime-js": "^1.7.1", - "@supabase/storage-js": "^1.7.0" + "@supabase/functions-js": "^2.0.0", + "@supabase/gotrue-js": "^2.0.1", + "@supabase/postgrest-js": "^1.0.0", + "@supabase/realtime-js": "^2.0.0", + "@supabase/storage-js": "^2.0.0", + "cross-fetch": "^3.1.5" } }, "node_modules/@testdeck/core": { @@ -2229,9 +2230,9 @@ "dev": true }, "node_modules/es5-ext": { - "version": "0.10.60", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.60.tgz", - "integrity": "sha512-jpKNXIt60htYG59/9FGf2PYT3pwMpnEbNKysU+k/4FGwyGtMotOvcZOuW+EmXXYASRqYSXQfGL5cVIthOTgbkg==", + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -2246,7 +2247,7 @@ "node_modules/es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dev": true, "dependencies": { "d": "1", @@ -2652,18 +2653,18 @@ } }, "node_modules/ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dev": true, "dependencies": { - "type": "^2.5.0" + "type": "^2.7.2" } }, "node_modules/ext/node_modules/type": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", - "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", "dev": true }, "node_modules/fast-deep-equal": { @@ -5397,7 +5398,7 @@ "node_modules/websocket/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/whatwg-encoding": { @@ -5533,7 +5534,7 @@ "node_modules/yaeti": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", "dev": true, "engines": { "node": ">=0.10.32" @@ -6349,36 +6350,36 @@ } }, "@supabase/functions-js": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-1.3.3.tgz", - "integrity": "sha512-35vO9niHRtzGe1QSvXKdOfvGPiX2KC44dGpWU6y0/gZCfTIgog/soU9HqABzQC/maVowO3hGLWfez5aN0MKfow==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.0.0.tgz", + "integrity": "sha512-ozb7bds2yvf5k7NM2ZzUkxvsx4S4i2eRKFSJetdTADV91T65g4gCzEs9L3LUXSrghcGIkUaon03VPzOrFredqg==", "dev": true, "requires": { "cross-fetch": "^3.1.5" } }, "@supabase/gotrue-js": { - "version": "1.22.12", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.22.12.tgz", - "integrity": "sha512-/baPkNiumE2B+OLSpvZquDsTqnOTAsG/07GBq5rXU8/e0rSyjljAFf8gnawGPezjlDGTFr2fjRYs0BYMz4LD/A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.0.1.tgz", + "integrity": "sha512-PCzHeFhz33lPWLZT+UiVDpGkZQI3K1wwhkhgAjvJdkyCbwK5u+LWWUzz0AX66bGGLpg1IYQIP7oz8V68XVjzMA==", "dev": true, "requires": { - "cross-fetch": "^3.0.6" + "cross-fetch": "^3.1.5" } }, "@supabase/postgrest-js": { - "version": "0.37.2", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.37.2.tgz", - "integrity": "sha512-3Dgx5k3RvtKqc8DvR2BEyh2fVyjZe5P4e0zD1r8dyuVmpaYDaASZ2YeNVgyWXMCWH7xzrj4vepTYlKwfj78QLg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.0.0.tgz", + "integrity": "sha512-MRR4g8dThgSnlnjkL2Jvc6gS73W68hLq48/Q245CLvUPt3KtOh3WXpvo4rZDEDHYVkyVga+L9IQixo6YTsjMQg==", "dev": true, "requires": { - "cross-fetch": "^3.0.6" + "cross-fetch": "^3.1.5" } }, "@supabase/realtime-js": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.7.1.tgz", - "integrity": "sha512-ovp9UXzi3ibA/AOyL4CXW7hjbrR+ZQoxbJZ8rfZTSMpqYhT8Jl8/sLUozMobIzSV6gsZYuHR3QnzJmemzvBQhg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.0.0.tgz", + "integrity": "sha512-DJVt5Z76pik3Fxt1es4fmquq6GrwR3nLqcb2Q6VpHXSudtixML0Cyxsu0DPzxa6ruSQrO9s08s0OQgwaIA1C0Q==", "dev": true, "requires": { "@types/phoenix": "^1.5.4", @@ -6386,25 +6387,26 @@ } }, "@supabase/storage-js": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.7.0.tgz", - "integrity": "sha512-f5EBw0wM96hKmnrXhgiqq2Reh9O0NgjKE+jkaKY4jQmfutefqaCAWn+cBzlmHs9h135H2ldaGmhWRFHUSkLt2g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.0.0.tgz", + "integrity": "sha512-7kXThdRt/xqnOOvZZxBqNkeX1CFNUWc0hYBJtNN/Uvt8ok9hD14foYmroWrHn046wEYFqUrB9U35JYsfTrvltA==", "dev": true, "requires": { - "cross-fetch": "^3.1.0" + "cross-fetch": "^3.1.5" } }, "@supabase/supabase-js": { - "version": "1.34.1", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.34.1.tgz", - "integrity": "sha512-0K9iJXvGcg+iBrUXf9vBlCObPVXn7B77tdCUcaw2/0XgJJBNFg90t43zNnY51KdjT1AZCm/1Kpwx2zd7FdCzKQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.0.0.tgz", + "integrity": "sha512-8nNMXYzBlQVSDONFaNgyyxsAdUY+C9Q/7vEDYDdTFTyC3i+luXTDOSjHMLcjIky/+x5rIAcNQqqIJ48HJUluXA==", "dev": true, "requires": { - "@supabase/functions-js": "^1.3.3", - "@supabase/gotrue-js": "^1.22.12", - "@supabase/postgrest-js": "^0.37.2", - "@supabase/realtime-js": "^1.7.1", - "@supabase/storage-js": "^1.7.0" + "@supabase/functions-js": "^2.0.0", + "@supabase/gotrue-js": "^2.0.1", + "@supabase/postgrest-js": "^1.0.0", + "@supabase/realtime-js": "^2.0.0", + "@supabase/storage-js": "^2.0.0", + "cross-fetch": "^3.1.5" } }, "@testdeck/core": { @@ -7292,9 +7294,9 @@ "dev": true }, "es5-ext": { - "version": "0.10.60", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.60.tgz", - "integrity": "sha512-jpKNXIt60htYG59/9FGf2PYT3pwMpnEbNKysU+k/4FGwyGtMotOvcZOuW+EmXXYASRqYSXQfGL5cVIthOTgbkg==", + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", "dev": true, "requires": { "es6-iterator": "^2.0.3", @@ -7305,7 +7307,7 @@ "es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dev": true, "requires": { "d": "1", @@ -7602,18 +7604,18 @@ } }, "ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dev": true, "requires": { - "type": "^2.5.0" + "type": "^2.7.2" }, "dependencies": { "type": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", - "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", "dev": true } } @@ -9671,7 +9673,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -9774,7 +9776,7 @@ "yaeti": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", "dev": true }, "yallist": { diff --git a/tests/package.json b/tests/package.json index 4a62edfbe7c..1633462bdbc 100644 --- a/tests/package.json +++ b/tests/package.json @@ -3,9 +3,12 @@ "version": "1.0.0", "description": "These tests can be run with Docker.", "scripts": { - "docker:up": "cd ../docker && docker-compose --env-file ./.env -f docker-compose.yml -f dev/docker-compose.dev.yml up -d", + "docker:up": "cd ../docker && ENABLE_EMAIL_AUTOCONFIRM=true docker-compose --env-file ./.env -f docker-compose.yml -f dev/docker-compose.dev.yml up -d", "docker:down": "cd ../docker && docker-compose --env-file ./.env -f docker-compose.yml -f dev/docker-compose.dev.yml down", "test": "jest", + "test:local": "jest --testNamePattern '^((?!\\[skip-local\\]).)*$' --testPathPattern '^((?!realtime).)*$' --detectOpenHandles", + "test:stage": "jest --testNamePattern '^((?!\\[skip-stage\\]).)*$' --detectOpenHandles", + "test:prod": "jest --detectOpenHandles", "allure:generate": "rm -rf allure-report && node_modules/allure-commandline/bin/allure generate", "allure:serve": "node_modules/allure-commandline/bin/allure serve", "test:report": "npm run allure:generate && npm run allure:serve", @@ -15,7 +18,7 @@ "license": "MIT", "devDependencies": { "@faker-js/faker": "^6.1.2", - "@supabase/supabase-js": "^1.34.1", + "@supabase/supabase-js": "^2.0.0", "@testdeck/jest": "^0.2.0", "@types/jest": "^27.4.0", "@types/node": "^17.0.24", diff --git a/tests/supabase/.gitignore b/tests/supabase/.gitignore new file mode 100644 index 00000000000..773c7c3e0a1 --- /dev/null +++ b/tests/supabase/.gitignore @@ -0,0 +1,3 @@ +# Supabase +.branches +.temp diff --git a/tests/supabase/config.toml b/tests/supabase/config.toml new file mode 100644 index 00000000000..2d4498ba196 --- /dev/null +++ b/tests/supabase/config.toml @@ -0,0 +1,71 @@ +# A string used to distinguish different Supabase projects on the same host. Defaults to the working +# directory name when running `supabase init`. +project_id = "tests" + +[api] +# Port to use for the API URL. +port = 54321 +# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API +# endpoints. public and storage are always included. +schemas = [] +# Extra schemas to add to the search_path of every request. +extra_search_path = ["extensions"] +# The maximum number of rows returns from a view, table, or stored procedure. Limits payload size +# for accidental or malicious requests. +max_rows = 1000 + +[db] +# Port to use for the local database URL. +port = 54322 +# The database major version to use. This has to be the same as your remote database's. Run `SHOW +# server_version;` on the remote database to check. +major_version = 14 + +[studio] +# Port to use for Supabase Studio. +port = 54323 + +# Email testing server. Emails sent with the local dev setup are not actually sent - rather, they +# are monitored, and you can view the emails that would have been sent from the web interface. +[inbucket] +# Port to use for the email testing server web interface. +port = 54324 +smtp_port = 54325 +pop3_port = 54326 + +[auth] +# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used +# in emails. +site_url = "http://localhost:3000" +# A list of *exact* URLs that auth providers are permitted to redirect to post authentication. +additional_redirect_urls = ["https://localhost:3000"] +# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 seconds (one +# week). +jwt_expiry = 3600 +# Allow/disallow new user signups to your project. +enable_signup = true + +[auth.email] +# Allow/disallow new user signups via email to your project. +enable_signup = true +# If enabled, a user will be required to confirm any email change on both the old, and new email +# addresses. If disabled, only the new email is required to confirm. +double_confirm_changes = true +# If enabled, users need to confirm their email address before signing in. +enable_confirmations = false + +[auth.phone] +# Allow/disallow new user signups via phone to your project. +enable_signup = true +double_confirm_changes = true +enable_confirmations = false + +# Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`, +# `discord`, `facebook`, `github`, `gitlab`, `google`, `twitch`, `twitter`, `slack`, `spotify`. +[auth.external.apple] +enabled = false +client_id = "" +secret = "" +# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure, +# or any other third-party OIDC providers. +url = "" diff --git a/tests/supabase/migrations/data.sql b/tests/supabase/migrations/data.sql new file mode 100644 index 00000000000..88b84570933 --- /dev/null +++ b/tests/supabase/migrations/data.sql @@ -0,0 +1,50 @@ +create table if not exists profiles ( + id uuid references auth.users not null, + updated_at timestamp with time zone, + username text unique, + avatar_url text, + website text, + + primary key (id), + unique(username), + constraint username_length check (char_length(username) >= 3) +); + +alter table profiles enable row level security; + +create policy "Public profiles are viewable by the owner." + on profiles for select + using ( auth.uid() = id ); + +create policy "Users can insert their own profile." + on profiles for insert + with check ( auth.uid() = id ); + +create policy "Users can update own profile." + on profiles for update + using ( auth.uid() = id ); + +create policy "Users can delete own profile." + on profiles for delete + using ( auth.uid() = id ); + +-- Set up Realtime +drop publication if exists supabase_realtime; +create publication supabase_realtime; +alter publication supabase_realtime add table profiles; + +-- Set up Storage +insert into storage.buckets (id, name) +values ('avatars', 'avatars') on conflict do nothing; + +create policy "Avatar images are publicly accessible." + on storage.objects for select + using ( bucket_id = 'avatars' ); + +create policy "Anyone can upload an avatar." + on storage.objects for insert + with check ( bucket_id = 'avatars' ); + +create policy "Anyone can update an avatar." + on storage.objects for update + with check ( bucket_id = 'avatars' ); diff --git a/turbo.json b/turbo.json index 33d0621ee2f..176ef881d41 100644 --- a/turbo.json +++ b/turbo.json @@ -9,6 +9,9 @@ }, "dev": { "cache": false + }, + "test": { + "cache": false } } } diff --git a/web/.gitignore b/web/.gitignore deleted file mode 100644 index bd4efd55fd9..00000000000 --- a/web/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -node_modules -build -.docusaurus -docs/client -docs/gotrue/client -docs/postgrest/client -docs/realtime/client - -docs/reference/**/* -!docs/reference/tools/ -!docs/reference/tools/**/* \ No newline at end of file diff --git a/web/README.md b/web/README.md deleted file mode 100644 index 0df143b8749..00000000000 --- a/web/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Supabase Docs - -### Contributing to the specs - -- `cd ./web/spec/` -- run `npm install` -- run `make` which will pull the latest TSDoc with your updates - -> Note: `make` requires [`jq - a lightweight and flexible command-line JSON processor`](https://stedolan.github.io/jq/). To install on OSX with homebrew, run: `brew install jq`. - -- Apply your updates to `supabase.yml` | `dart.yml` | `postgrest.yml` | `gotrue.yml` | `realtime.yml` -- run `npm run build && npm run start` to make sure the build is working -- Submit your PR diff --git a/web/ReferenceGenerator.ts b/web/ReferenceGenerator.ts deleted file mode 100644 index 6b4ce2ac111..00000000000 --- a/web/ReferenceGenerator.ts +++ /dev/null @@ -1,279 +0,0 @@ -/** - * Usage: - * ts-node ReferenceGenerator.ts -o {output_dir} {input}.yml - * - * Example: - * ts-node ReferenceGenerator.ts -o docs/client spec/supabase.yml - */ - -import Example from './spec/gen/components/Example' -import Page from './spec/gen/components/Page' -import Sidebar from './spec/gen/components/Sidebar' -import SidebarCategory from './spec/gen/components/SidebarCategory' -import Tab from './spec/gen/components/Tab' -import { slugify, tsDocCommentToMdComment, writeToDisk } from './spec/gen/lib/helpers' -import { TsDoc, OpenRef } from './spec/gen/definitions' - -const yaml = require('js-yaml') -const fs = require('fs') - -const main = (fileNames, options) => { - try { - const outputDir = options.o || options.output || '' - fileNames.forEach((inputFileName) => { - gen(inputFileName, outputDir) - }) - return - } catch (e) { - console.log(e) - } -} - -async function gen(inputFileName, outputDir) { - const docSpec = yaml.safeLoad(fs.readFileSync(inputFileName, 'utf8')) - const defRef = docSpec.info.definition ? fs.readFileSync(docSpec.info.definition, 'utf8') : '{}' - - const definition = JSON.parse(defRef) - const id = docSpec.info.id - const allLanguages = docSpec.info.libraries - const pages = Object.entries(docSpec.pages).map(([name, x]: [string, OpenRef.Page]) => ({ - ...x, - pageName: name, - })) - - // Sidebar - const inputFileNameToSnakeCase = inputFileName.replace('/', '_').replace('.yml', '') - const sidebarFileName = `sidebar_${inputFileNameToSnakeCase}.js` - const sidebar = generateSidebar(docSpec) - await writeToDisk(sidebarFileName, sidebar) - console.log('Sidebar created: ', sidebarFileName) - - // Index Page - const indexFilename = outputDir + `/index.mdx` - const index = generateDocsIndexPage(docSpec, inputFileName) - await writeToDisk(indexFilename, index) - console.log('The index was saved: ', indexFilename) - - // Generate Pages - pages.forEach(async (pageSpec: OpenRef.Page) => { - try { - const slug = slugify(pageSpec.pageName) - const hasTsRef = pageSpec['$ref'] || null - const tsDefinition = hasTsRef && extractTsDocNode(hasTsRef, definition) - if (hasTsRef && !tsDefinition) throw new Error('Definition not found: ' + hasTsRef) - - const description = - pageSpec.description || tsDocCommentToMdComment(getDescriptionFromDefintion(tsDefinition)) - - // Create page - const content = Page({ - slug: (docSpec.info.slugPrefix || '') + slug, - id: slug, - specFileName: inputFileName, - title: pageSpec.title || pageSpec.pageName, - description, - parameters: hasTsRef ? generateParameters(tsDefinition) : '', - spotlight: generateSpotlight(id, pageSpec['examples'] || [], allLanguages), - examples: generateExamples(id, pageSpec['examples'] || [], allLanguages), - notes: pageSpec.notes, - }) - - // Write to disk - const dest = outputDir + `/${slug}.mdx` - await writeToDisk(dest, content) - console.log('Saved: ', dest) - } catch (error) { - console.error(error) - } - }) -} - -function generateParameters(tsDefinition: any) { - let functionDeclaration = null - if (tsDefinition.kindString == 'Method') { - functionDeclaration = tsDefinition - } else if (tsDefinition.kindString == 'Constructor') { - functionDeclaration = tsDefinition - } else functionDeclaration = tsDefinition?.type?.declaration - if (!functionDeclaration) return '' - - const paramDefinitions: TsDoc.TypeDefinition[] = functionDeclaration.signatures[0].parameters // PMC: seems flaky.. why the [0]? - if (!paramDefinitions) return '' - - // const paramsComments: TsDoc.CommentTag = tsDefinition.comment?.tags?.filter(x => x.tag == 'param') - let parameters = paramDefinitions.map((x) => recurseThroughParams(x)).join(`\n`) - return methodListGroup(parameters) -} - -function getDescriptionFromDefintion(tsDefinition) { - if (!tsDefinition) return null - if (['Method', 'Constructor', 'Constructor signature'].includes(tsDefinition.kindString)) - return tsDefinition?.signatures[0].comment - else return tsDefinition?.comment || '' -} - -function recurseThroughParams(paramDefinition: TsDoc.TypeDefinition) { - let children = paramDefinition.type?.declaration?.children - const labelParams = { - name: paramDefinition.name, - isOptional: !!paramDefinition.flags.isOptional, - type: extractParamTypeAsString(paramDefinition), - description: paramDefinition.comment ? tsDocCommentToMdComment(paramDefinition.comment) : null, - } - let subContent = '' - - if (!!children) { - let properties = children - .sort((a, b) => a.name.localeCompare(b.name)) // first alphabetical - .sort((a, b) => (a.flags?.isOptional ? 1 : -1)) // required params first - .map((x) => recurseThroughParams(x)) - let heading = `
    Properties
    ` - subContent = methodListGroup([heading].concat(properties).join('\n')) - } - - return methodListItemLabel(labelParams, subContent) -} - -const methodListGroup = (items) => ` -
      - ${items} -
    -` - -const methodListItemLabel = ({ name, isOptional, type, description }, subContent) => ` -
  • -

    - - ${name} - - - ${isOptional ? 'optional' : 'required'} - - - ${type} - -

    -
    - -${description ? description : 'No description provided. '} - -
    - ${subContent} -
  • -` - -function generateExamples(id: string, specExamples: any, allLanguages: any) { - return specExamples.map((example) => { - let allTabs = example.hideCodeBlock ? '' : generateCodeBlocks(allLanguages, example) - return Example({ - name: example.name, - description: example.description, - tabs: allTabs, - note: example.note, - }) - }) -} - -/** - * A spotlight is an example which appears at the top of the page. - */ -function generateSpotlight(id: string, specExamples: any | any[], allLanguages: any) { - if (!Array.isArray(specExamples)) { - throw new Error(`Examples for each spec should be an array, received: \n${specExamples}`) - } - const spotlight = (specExamples && specExamples.find((x) => x.isSpotlight)) || null - const spotlightContent = !spotlight ? '' : generateCodeBlocks(allLanguages, spotlight) - return spotlightContent -} - -function generateTabs(allLanguages: any, example: any) { - return allLanguages - .map((library) => { - let content = example[library.id] || notImplemented - return Tab(library.id, content) - }) - .join('\n') -} - -function generateCodeBlocks(allLanguages: any, example: any) { - return allLanguages - .map((library) => { - let content = example[library.id] || notImplemented - return content - }) - .join('\n') -} - -const notImplemented = ` -\`\`\` -Not yet implemented -\`\`\` -` - -function extractParamTypeAsString(paramDefinition) { - if (paramDefinition.type?.name) { - return `${paramDefinition.type.name}` - } - if (paramDefinition.type?.type == 'union') { - return paramDefinition.type.types - .map((x) => - x.value - ? `${x.value}` - : x.name - ? `${x.name}` - : x.type - ? `${x.type}` - : '' - ) - .join(' | ') - } else { - return 'object' - } -} - -/** - * Iterates through the definition to find the correct definition. - * You can pass it a deeply nested node using dot notation. eg: 'LoggedInUser.data.email' - */ -function extractTsDocNode(nodeToFind: string, definition: any) { - const nodePath = nodeToFind.split('.') - let i = 0 - let previousNode = definition - let currentNode = definition - while (i < nodePath.length) { - previousNode = currentNode - currentNode = previousNode.children.find((x) => x.name == nodePath[i]) || null - if (currentNode == null) { - console.log(`Cant find ${nodePath[i]} in ${previousNode.children.map((x) => '\n' + x.name)}`) - break - } - i++ - } - return currentNode -} - -function generateSidebar(docSpec: any) { - let path = docSpec.info.docs.path || '' - let categories = docSpec.info.docs.sidebar.map((x) => { - const items = x.items.map((item) => { - let slug = slugify(item) - return `'${path}${slug}'` - }) - return SidebarCategory(x.name, items) - }) - return Sidebar(categories) -} - -function generateDocsIndexPage(docSpec: any, inputFileName: string) { - return Page({ - slug: slugify(docSpec.info.title), - id: 'index', - title: docSpec.info.title, - specFileName: inputFileName, - description: docSpec.info.description, - }) -} - -// Run everything -const argv = require('minimist')(process.argv.slice(2)) -main(argv['_'], argv) diff --git a/web/docs/about.mdx b/web/docs/about.mdx deleted file mode 100755 index 13ed94d8911..00000000000 --- a/web/docs/about.mdx +++ /dev/null @@ -1,155 +0,0 @@ ---- -id: about -title: Introduction -description: 'What is Supabase?' -slug: / -hide_table_of_contents: true ---- - -import ThemedImage from '@theme/ThemedImage' -import AngularLogo from '@site/static/img/libraries/angular-icon.svg' -import ExpoLogo from '@site/static/img/libraries/expo-icon.svg' -import DartLogo from '@site/static/img/libraries/dart-icon.svg' -import JavascriptLogo from '@site/static/img/libraries/javascript-icon.svg' -import NextjsDarkLogo from '@site/static/img/libraries/nextjs-dark-icon.svg' -import NextjsLightLogo from '@site/static/img/libraries/nextjs-light-icon.svg' -import ReactLogo from '@site/static/img/libraries/react-icon.svg' -import SolidJSLogo from '@site/static/img/libraries/solidjs-icon.svg' -import RedwoodJsLogo from '@site/static/img/libraries/redwoodjs-icon.svg' -import SvelteLogo from '@site/static/img/libraries/svelte-icon.svg' -import VuejsLogo from '@site/static/img/libraries/vuejs-icon.svg' - -import useBaseUrl from '@docusaurus/useBaseUrl' -import Link from '@docusaurus/Link' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -const frameworks = [ - { - name: 'Angular', - logo: AngularLogo, - href: '/docs/guides/with-angular', - }, - { - name: 'Expo', - logo: ExpoLogo, - href: 'https://github.com/supabase/supabase/tree/master/examples/todo-list/expo-todo-list', - }, - { name: 'Flutter', logo: DartLogo, href: '/docs/guides/with-flutter' }, - { - name: 'JavaScript', - logo: JavascriptLogo, - href: 'https://github.com/supabase/supabase/tree/master/examples/auth/javascript-auth', - }, - { - name: 'Next.js', - themed: true, - logo: { - dark: '/img/libraries/nextjs-dark-icon.svg', - light: '/img/libraries/nextjs-light-icon.svg', - }, - href: '/docs/guides/with-nextjs', - }, - { name: 'React', logo: ReactLogo, href: '/docs/guides/with-react' }, - { name: 'RedwoodJS', logo: RedwoodJsLogo, href: '/docs/guides/with-redwoodjs' }, - { name: 'SolidJS', logo: SolidJSLogo, href: '/docs/guides/with-solidjs' }, - { name: 'Svelte', logo: SvelteLogo, href: '/docs/guides/with-svelte' }, - { name: 'Vue', logo: VuejsLogo, href: '/docs/guides/with-vue-3' }, -] - -Supabase is an open source Firebase alternative providing all the backend features you need to build a product. -You can use it completely, or just the features you need. - -[Start a project](https://app.supabase.com) with the hosted platform or learn how to [host Supabase](/docs/guides/hosting/overview) yourself. - -## Learn about features - -
    -
    - {/* Database */} -
    - -
    -

    Database

    -

    A dedicated, scalable Postgres database.

    -
    - -
    - {/* API */} -
    - -
    -

    Auto-generated APIs

    -

    Instantly generate APIs for your database.

    -
    - -
    - {/* Functions */} -
    - -
    -

    Edge Functions

    -

    Server-side functions, distributed globally.

    -
    - -
    - {/* Auth */} -
    - -
    -

    Auth

    -

    User management with Row Level Security.

    -
    - -
    - {/* Storage */} -
    - -
    -

    File Storage

    -

    Store, organize, and serve large files.

    -
    - -
    - {/* Observability */} -
    - -
    -

    Observability

    -

    Monitor and debug your infrastucture.

    -
    - -
    - {/* */} -
    -
    - -## Start with a framework - -Supabase is just Postgres, which makes it compatible with a large number of tools and frameworks. - -
    -
    - {frameworks.map((x) => ( -
    - -
    - {x.logo && !x.themed ? ( - - ) : ( - - )} -

    {x.name}

    -
    - -
    - ))} -
    -
    diff --git a/web/docs/architecture.mdx b/web/docs/architecture.mdx deleted file mode 100755 index c65037a76f0..00000000000 --- a/web/docs/architecture.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: architecture -title: Architecture -description: 'Supabase design and architecture' -# hide_table_of_contents: true ---- - -Supabase is open source. Wherever possible, we use and support existing tools rather than developing from scratch. -We choose open source tools which are scalable and we make them simple to use. - -![Supabase Architecture](/img/supabase-architecture.png) - -Supabase is not a 1-to-1 mapping of Firebase. While we are building many of the features that Firebase offers, we are not going about it the same way. - -Our technological choices are quite different from Firebase. Everything we use is open source. Wherever possible, we use and support existing tools rather than developing from scratch. - -Most notably, we use Postgres rather than a NoSQL store. This choice was deliberate. We believe that no other database offers the scalability and functionality required to compete with Firebase. diff --git a/web/docs/company/aup.md b/web/docs/company/aup.md deleted file mode 100644 index 5e02cae3a8a..00000000000 --- a/web/docs/company/aup.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -id: aup -title: Acceptable Use Policy ---- - -`Last Modified: 15 April 2021` - -This Acceptable Use Policy (this “Policy”) describes prohibited uses of the web services offered by Supabase, Inc. and its affiliates (the “Services”) and the website located at https://supabase.com (the “Supabase Site”). The examples described in this Policy are not exhaustive. We may modify this Policy at any time by posting a revised version on the Supabase Site. By using the Services or accessing the Supabase Site, you agree to the latest version of this Policy. If you violate the Policy or authorize or help others to do so, we may suspend or terminate your use of the Services. - -## No Illegal, Harmful, or Offensive Use or Content - -You may not use, or encourage, promote, facilitate or instruct others to use, the Services or Supabase Site for any illegal, harmful, fraudulent, infringing or offensive use, or to transmit, store, display, distribute or otherwise make available content that is illegal, harmful, fraudulent, infringing or offensive. Prohibited activities or content include: - -- **Illegal, Harmful or Fraudulent Activities.** Any activities that are illegal, that violate the rights of others, or that may be harmful to others, our operations or reputation, including disseminating, promoting or facilitating child pornography, offering or disseminating fraudulent goods, services, schemes, or promotions, make-money-fast schemes, ponzi and pyramid schemes, phishing, or pharming. -- **Infringing Content.** Content that infringes or misappropriates the intellectual property or proprietary rights of others. -- **Offensive Content.** Content that is defamatory, obscene, abusive, invasive of privacy, or otherwise objectionable, including content that constitutes child pornography, relates to bestiality, or depicts non-consensual sex acts. -- **Harmful Content.** Content or other computer technology that may damage, interfere with, surreptitiously intercept, or expropriate any system, program, or data, including viruses, Trojan horses, worms, time bombs, or cancelbots. -- **Platform compliance.** Any activities that are deemed unacceptable by the platforms used by the Supabase Site and Services, including [AWS](https://aws.amazon.com/aup/). - -## No Security Violations - -You may not use the Services to violate the security or integrity of any network, computer or communications system, software application, or network or computing device (each, a “System”). Prohibited activities include: - -- **Unauthorized Access.** Accessing or using any System without permission, including attempting to probe, scan, or test the vulnerability of a System or to breach any security or authentication measures used by a System. -- **Interception.** Monitoring of data or traffic on a System without permission. -- **Falsification of Origin.** Forging TCP-IP packet headers, e-mail headers, or any part of a message describing its origin or route. The legitimate use of aliases and anonymous remailers is not prohibited by this provision. - -## No Network Abuse - -You may not make network connections to any users, hosts, or networks unless you have permission to communicate with them. Prohibited activities include: - -- **Monitoring or Crawling.** Monitoring or crawling of a System that impairs or disrupts the System being monitored or crawled. -- **Denial of Service (DoS).** Inundating a target with communications requests so the target either cannot respond to legitimate traffic or responds so slowly that it becomes ineffective. -- **Intentional Interference.** Interfering with the proper functioning of any System, including any deliberate attempt to overload a system by mail bombing, news bombing, broadcast attacks, or flooding techniques. -- **Operation of Certain Network Services.** Operating network services like open proxies, open mail relays, or open recursive domain name servers. -- **Avoiding System Restrictions.** Using manual or electronic means to avoid any use limitations placed on a System, such as access and storage restrictions. - -## No E-Mail or Other Message Abuse - -You will not distribute, publish, send, or facilitate the sending of unsolicited mass e-mail or other messages, promotions, advertising, or solicitations (like “spam”), including commercial advertising and informational announcements. You will not alter or obscure mail headers or assume a sender’s identity without the sender’s explicit permission. You will not collect replies to messages sent from another internet service provider if those messages violate this Policy or the acceptable use policy of that provider. - -## Our Monitoring and Enforcement - -We reserve the right, but do not assume the obligation, to investigate any violation of this Policy or misuse of the Services or Supabase Site. We may: - -- investigate violations of this Policy or misuse of the Services or Supabase Site; or -- remove, disable access to, or modify any content or resource that violates this Policy or any other agreement we have with you for use of the Services or the Supabase Site. - -We may report any activity that we suspect violates any law or regulation to appropriate law enforcement officials, regulators, or other appropriate third parties. Our reporting may include disclosing appropriate customer information. We also may cooperate with appropriate law enforcement agencies, regulators, or other appropriate third parties to help with the investigation and prosecution of illegal conduct by providing network and systems information related to alleged violations of this Policy. -Reporting of Violations of this Policy - -If you become aware of any violation of this Policy, you will immediately notify us and provide us with assistance, as requested, to stop or remedy the violation. To report any violation of this Policy, please contact us at support@supabase.io. diff --git a/web/docs/company/privacy.md b/web/docs/company/privacy.md deleted file mode 100644 index 2d5e6ab833b..00000000000 --- a/web/docs/company/privacy.md +++ /dev/null @@ -1,292 +0,0 @@ ---- -id: privacy -title: Privacy Policy ---- - -`Last modified: 27 March 2021` - -Thank you for your interest in Supabase, Inc., ("**_Supabase_**," "**_we_**", "**_our_**" or "**_us_**"). Supabase provides a suite of open source tools, stitched together to build a seamless developer experience. This Privacy Notice explains how information about you, that directly identifies you, or that makes you identifiable ("**_personal information_**") is collected, used and disclosed by Supabase in connection with our website at [supabase.com](https://supabase.com) (the "**_Site_**") and our services offered in connection with the Site (collectively with the Site, the "**_Service_**"). - -We may also provide you with additional privacy notices or disclosures where the scope of the inquiry, request, or personal information we require falls outside the scope of this Privacy Notice. In that case, the additional Privacy Notice or disclosures will govern how we may process the information you provide at that time. Please note that this Privacy Notice does not cover or apply to our processing of information about our employees or contractors. - -This Policy explains how we use your personal information when we act as a data controller. As far as you use our Service as a natural person, we are the controller of your personal information. We are responsible for, and control, the processing of your personal information. - -Wherever our customers use our Service to submit, manage, or otherwise use content relating to our customers’ end users ("**_Customer Data_**") during the provision of our Service, we have contractually committed ourselves to only process such information on behalf and under the instruction of the respective customer, who is the data controller. This Privacy Notice does not apply to such processing and we recommend you read the Privacy Notice of the respective customer, if their processing concerns your personal information. - -## Region-specific Disclosures - -- **California - Your California Privacy Rights:** If you are a California resident, California Civil Code Section 1798.83 permits you to request information regarding the disclosure of personal information to third parties for their direct marketing purposes during the immediately preceding calendar year. Note we do not share your personal information with third parties for their own marketing purposes. -- **Nevada:** Chapter 603A of the Nevada Revised Statutes permits a Nevada resident to opt out of future sales of certain covered information that a website operator has collected or will collect about the resident. Note we do not sell your personal information within the meaning of Chapter 603A. However, if you would still like to submit such a request, please contact us at support@supabase.io. -- **European Economic Area, United Kingdom or Switzerland:** If you are located in the European Economic Area ("**_EEA_**"), United Kingdom or Switzerland, or otherwise engage with Supabase’s European operations, please see the **Privacy Disclosures for the European Economic Area, United Kingdom and Switzerland** for additional European-specific privacy disclosures, including what constitutes your personal information, the lawful bases we rely on to process your personal information, how we use cookies when you access our Sites from the EEA, UK or Switzerland and your rights in respect of your personal information. - -**Note for International Visitors:** Personal information may be transferred to, stored and processed in a country other than the one in which it was collected. For example, the Sites are primarily hosted in and provided from the United States. Please note the country to which personal data is transferred may not provide the same level of protection for personal information as the country from which it was transferred. - -## 1. Information we collect and our use - -We collect personal information in connection with your visits to and use of the Service. This collection includes information that you provide in connection with the Service, information from third parties, and information that is collected automatically such as through the use of cookies and other technologies. - -### Information That You Provide - -We collect personal information from you. The categories of information we collect can include: - -- **_Registration information._** We collect personal and/or business information that you provide when you register for an account at the Site. This information may include your name, email address, GitHub username. We use this information to administer your account, provide you with the relevant services and information, communicate with you regarding your account, the Site and for customer support purposes. -- **_Information collected through the Use of the Service._** After registration, you may create, upload or transmit files, documents, videos, images, data or information as part of your use of the Service (collectively, "**_User Content_**"). User Content and any information contained in the User Content, including personal information you may have included, is stored and collected as part of the Service. You have full control of the information included in the User Content. -- **_Payment information._** If you make a purchase or payment on the Site, such as for a subscription, we collect transactional information provided in connection with your purchase or payment. Please note that we use third party payment processors, including Stripe, to process payments made to us. As such, we do not retain any personally identifiable financial information such as credit card numbers. Rather, all such information is provided directly by you to our third-party processor. The payment processor’s use of your personal information is governed by their privacy notice. To view Stripe’s privacy notice, please visit: . -- **_Communications._** If you communicate with us through any paper or electronic form, we may collect your name, email address, mailing address, phone number, or any other personal information you choose to provide to us. We use this information to investigate and respond to your inquiries, and to communicate with you, to enhance the services we offer to our users and to manage and grow our organization. If you register for our newsletters or updates, we may communicate with you by email. To unsubscribe from promotional messages, please follow the instructions within our messages and review the **Control Over Your Information** section below. If you become a contributor, we may also collect your GitHub name and feature you on our website. -- **_Inquiries and Feedback._** If you contact us, we will collect the information that you provide us, such as your contact information and the contents of your communication with us. - -You are free to choose which personal information you want to provide to us or whether you want to provide us with personal information at all. However, some information, such as your name, address, payment transaction information, and information on your requested Services may be necessary for the performance of our contractual obligations. - -### Information from Third Party Sources - -We may receive personal information about you from our business partners and service providers and combine this information with other data we collect from you. The third-parties may include website and service operators, payment processors, marketing partners, and shipping providers. The information may include contact information, demographic information, information about your communications and related activities, and information about your orders. We may use this information to administer and facilitate our services, your orders and our marketing activities. - -- **_Single Sign-On._** We use single sign-on ("**SSO**") such as GitHub to allow a user to authenticate their account using one set of login information. We will have access to certain information from those third parties in accordance with the authorization procedures determined by those third parties, including, for example, your name, username, email address, language preference, and profile picture. We use this information to operate, maintain, and provide to you the features and functionality of the Service. We may also send you service-related emails or messages (e.g., account verification, purchase confirmation, customer support, changes or updates to features of the Site, technical and security notices). -- **_Social Media._** When you interact with our Site through various social media, such as when you click on the social media icon on the Site, follow us on a social media site, or post a comment to one of our pages, we may receive information from the social network such as your profile information, profile picture, gender, user name, user ID associated with your social media account, age range, language, country, and any other information you permit the social network to share with third parties. The data we receive is dependent upon your privacy settings with the social network. We use this information to operate, maintain, and provide to you the features and functionality of the Service, as well as to communicate directly with you, such as to send you email messages about products and services that may be of interest to you. -- **_Employment Applications._** If you apply for employment, we collect your contact and demographic information, educational and work history, employment interests, information obtained during interviews and any other information you choose to provide. We use the information provided to evaluate your candidacy for employment, to communicate with you during the application process and to facilitate the onboarding process. -- **_Information from Other Sources._** We may obtain information from other sources, including through third-party information providers, our shareholders, customers, or through transactions such as mergers and acquisitions. We may combine this information with other information we collect from or about you. In these cases, our Privacy Notice governs the handling of the combined personal information. We use this information to operate, maintain, and provide to you the features and functionality of the Service, as well as to communicate directly with you, such as to send you email messages about products and services that may be of interest to you. - -### Other Uses of Personal Information - -In addition to the uses described above, we may collect and use personal information for the following purposes: - -- For our business activities, including to operate the Service and to provide you with the features and functionality of the Service; -- To communicate with you and respond to your requests, such as to respond to your questions, contact you about changes to the Service, and communicate about account related matters; -- For marketing and advertising purposes, such as to market to you or offer you with information and updates on our products or services we think that you may be interested in. While we may use your personal information in this manner, please note that we do not use User Content to serve you ads, and we will never share User Content with any third parties for marketing or advertising purposes, unless you have explicitly submitted it to us for that purpose; -- For analytics and research purposes; -- To enforce our **Terms of Service**, to resolve disputes, to carry out our obligations and enforce our rights, and to protect our business interests and the interests and rights of third parties; -- To comply with contractual and legal obligations and requirements; -- To fulfill any other purpose for which you provide personal information; and -- For any other lawful purpose, or other purpose that you consent to. - -## 2. How we share personal information - -We may share your personal information in the instances described below. For further information on your choices regarding your information, see **Control Over Your Information**. - -- We may share your personal information with third-party service providers or business partners who help us deliver or improve our Site or services, or who perform services on our behalf, which are subject to reasonable confidentiality terms, and may include processing payments, providing web hosting services, or providing analytics. -- Third parties as required by law or subpoena or if we reasonably believe that such action is necessary to (a) comply with the law and the reasonable requests of law enforcement; (b) to enforce our **Terms of Service** or other agreements or to protect the security or integrity of the Supabase services, including to prevent harm or financial loss, or in connection with preventing fraud or illegal activity; and/or (c) to exercise or protect the rights, property, or personal safety of Supabase, our Customers, visitors, or others. -- We may share with other companies and brands owned or controlled by Supabase, and other companies owned by or under common ownership as Supabase. These companies will use your personal information in the same way as we can under this Privacy Notice. -- We may transfer any information we collect in the event we sell or transfer all or a portion of our business or assets (including any shares in the company) or any portion or combination of our products, services, businesses and/or assets. Should such a transaction occur (whether a divestiture, merger, acquisition, bankruptcy, dissolution, reorganization, liquidation, or similar transaction or proceeding), we will use reasonable efforts to ensure that any transferred information is treated in a manner consistent with this Privacy Notice. -- We may disclose your information publicly or with another third party with your prior authorization. -- With others in an aggregated or otherwise anonymized form that does not reasonably identify you directly as an individual. - -## 3. Control over your information - -### Email Communications - -From time to time, we may send you emails regarding updates to our Service, products or services, notices about our organization, or information about products/services we offer (or promotional offers from third parties) that we think may be of interest to you. If you wish to unsubscribe from such emails, simply click the "unsubscribe link" provided at the bottom of the email communication. Note that you cannot unsubscribe from certain services-related email communications (e.g., account verification, confirmations of transactions, technical or legal notices). - -### Modifying Account Information - -If you have an online account with us, you have the ability to modify certain information in your account (e.g., your contact information) through the account options provided on the Site. If there is personal information in your User Content, you can use the features and functionality of the Service to edit or delete the personal information or User Content. Not all personal information is maintained in a format that you can access or change. If you would like to request access to, or correction or deletion of personal information, you may send your request to us at the email provided below. We will review your request and may require you to provide additional information to identify yourself, but we do not promise that we will be able to satisfy your request. - -## 4. How We Use Cookies and Other Tracking Technology to Collect Information - -We, and our third-party partners, automatically collect certain types of usage information when you visit our Site, read our emails, or otherwise engage with us.  We typically collect this information through a variety of tracking technologies, including cookies, web beacons, embedded scripts, location-identifying technologies, file information, and similar technology (collectively, "**tracking technologies**"). - -We, and our third-party partners, use tracking technologies to automatically collect usage and device information, such as: - -- Information about your device and its software, such as your IP address, browser type, Internet service provider, device type/model/manufacturer, operating system, date and time stamp, and a unique ID that allows us to uniquely identify your browser or your account (including, for example, a persistent device identifier), and other such information. -- When you access our sites from a mobile device, we may collect unique identification numbers associated with your device or our mobile application mobile carrier, device type, model and manufacturer, mobile device operating system brand and model, and depending on your mobile device settings, we may be able to approximate a device’s location by analyzing other information, like an IP address. -- Information about the way you access and use our services, for example, the site from which you came and the site to which you are going when you leave our services, the pages you visit, the links you click, whether you open emails or click the links contained in emails, whether you access the services from multiple devices, and other actions you take on the Sites. - -We use the data collected through tracking technologies to:  (a) remember information so that you will not have to re-enter it during your visit or the next time you visit the site; (b) provide custom content and information; (c) identify you across multiple devices; (d) provide and monitor the effectiveness of our services; (e) monitor aggregate metrics such as total number of visitors, traffic, usage, and demographic patterns on our Site; (f) diagnose or fix technology problems; and (g) to provide, plan for, and enhance our services. - -**Note we do not engage in online targeted advertising.** - -**Cookies and Other Tracking Technologies Opt-Out.** Depending on your browser or mobile device, you may be able to set your browser to delete or notify you of cookies and other tracking technology by actively managing the settings on your browser or mobile device. - -If you would prefer not to accept cookies, most browsers will allow you to: (i) change your browser settings to notify you when you receive a cookie, which lets you choose whether or not to accept it; (ii) disable existing cookies; or (iii) set your browser to automatically reject cookies. Please note that doing so may negatively impact your experience using the sites, as some features and services on our sites may not work properly. Depending on your mobile device and operating system, you may not be able to delete or block all cookies. You may also set your e-mail options to prevent the automatic downloading of images that may contain technologies that would allow us to know whether you have accessed our e-mail and performed certain functions with it. - -## 5. Data Retention and Security - -We will retain your personal information for the length of time needed to fulfill the purposes outlined in this Privacy Notice, unless a longer retention period is required or permitted by law. We store data on servers in the U.S. or any other country in which Supabase or its affiliates, subsidiaries, agents or contractors maintain facilities. If you are located in the European Union or other regions with laws governing data collection and use that may differ from U.S. law, please note that your personal information may be transferred to a country and jurisdiction that does not have the same data protection laws as your jurisdiction. When you register for use with Supabase you have the option of where you store your information and we will not transfer it without providing information to you in advance. - -Supabase cares about the security of your information and uses commercially reasonable physical, technical and organizational measures designed to preserve the integrity and security of all information we collect. However, no security system is impenetrable, and we cannot guarantee the security of our systems 100%. In the event that any information under our control is compromised as a result of a breach of security, we will take reasonable steps to investigate the situation and where appropriate, notify those individuals whose information may have been compromised and take other steps, in accordance with any applicable laws and regulations. - -## 6. Links to Third-Party Websites and Services - -For your convenience, our Site may provide links to third-party websites or services that we do not own or operate. We are not responsible for the practices employed by any websites or services linked to or from the services, including the information or content contained within them. Your browsing and interaction on any other website or service are subject to the applicable third party’s rules and policies, not ours. If you are using a third-party website or service, you do so at your own risk. We encourage you to review the privacy policies of any site or service before providing any personal information. - -## 7. Children’s Privacy - -Our services are not intended for children under the age of 13. We do not knowingly solicit or collect personal information from children under the age of 13. If we learn that any personal information has been collected inadvertently from a child under 13, we will delete the information as soon as possible. If you believe that we might have collected information from a child under 13, please contact us at privacy@supabase.io. - -## 8. Changes to Privacy Notice - -We reserve the right to change this Privacy Notice from time to time in our sole discretion. We will notify you about material changes in the way we treat personal data by sending a notice to the primary email address specified in your Supabase account and/or by placing a prominent notice on our Site. It is your responsibility to review this Privacy Notice periodically. When we do change the Privacy Notice, we will also revise the "last modified" date. - -## 9. Contact Us - -For additional inquiries about this Privacy Notice, please send us an email at privacy@supabase.io. - -This Privacy Notice was last modified on 27th March 2021 - -## Privacy disclosures for the European economic area, United Kingdom, and Switzerland. - -While we are primarily based in the United States, Supabase maintains operations in Europe and may direct our services to individuals located in the European Economic Area ("**_EEA_**"), United Kingdom and Switzerland, including through our Site [supabase.com](/) (collectively, our "**_European Services_**"). The following disclosures ("**_Privacy Disclosures_**") apply to our processing of personal data in connection with our European Services. - -Supabase, Inc. is the data controller responsible for the processing of personal data in connection with our European Services. This means that we determine and are responsible for how your personal information is used. - -**Personal Data:** When we use the term "personal data" in this section, we mean information relating to an identified or identifiable natural person. - -### 1. Personal data we collect from you when you use the Supabase European Services, and how we use it. - -We collect the categories of personal data that you voluntarily submit directly to us when you use the European Services, as set forth in our Privacy Notice under the section entitled **Information We Collect and Our Use**. The table at **Annex 1** sets out in detail the categories of personal data we collect about you and how we use that information when you use the European Services, as well as the legal basis which we rely on to process the personal information and recipients of that personal information. - -### 2. Information we collect about you automatically. - -We also automatically collect personal information indirectly about how you access and use the European Services, and information about the device you use to access the European Services. For example, we may collect: - -(a) information about the features you use and the pages you view on the European Services; - -(b) information about your device (such as your IP address, device identifier, device type, model and manufacturer); and - -(c) information about your usage patterns (such as how often you use the Supabase European Services and your language settings). - -We use this information to provide you the features and functionality of the European Services, to monitor and improve the European Services and to develop new services. - -The table at **Annex 2** sets out further information about the categories of personal information we collect about you automatically and how we use that information. The table also lists the legal basis which we rely on to process the personal information and recipients of that personal information. - -We may link or combine the personal information we collect about you and the information we collect automatically. - -We may anonymise and aggregate any of the personal information we collect (so that it does not directly identify you). We may use anonymised information for purposes that include testing our IT systems, research, data analysis, improving the Supabase European Services. We may also share such anonymised and aggregated information with others. - -### 3. How long will we store your personal information - -We will usually store the personal information we collect about you for no longer than necessary for the purposes set out in Annex 1 and Annex 2, in accordance with our legal obligations and legitimate business interests. - -The criteria used to determine the period for which personal information about you will be retained varies depending on the legal basis under which we process the personal information: - -1. **Legitimate Interests.** Where we are processing personal information based on our legitimate interests, we generally will retain such information for a reasonable period of time based on the particular interest, taking into account the fundamental interests and the rights and freedoms of data subjects. -2. **Consent.** Where we are processing personal information based on your consent, we generally will retain the information until you withdraw your consent, or otherwise for the period of time necessary to fulfill the underlying agreement with you or provide you with the applicable service for which we process that personal information. -3. **Contract.** Where we are processing personal information based on contract, we generally will retain the information for the duration of the contract plus some additional limited period of time that is necessary to comply with law or that represents the statute of limitations for legal claims that could arise from the contractual relationship. -4. **Legal Obligation.** Where we are processing personal information based on a legal obligation, we generally will retain the information for the period of time necessary to fulfill the legal obligation. -5. **Legal Claim.** We may need to apply a "legal hold" that retains information beyond our typical retention period where we face threat of legal claim.  In that case, we will retain the information until the hold is removed, which typically means the claim or threat of claim has been resolved. - -In all cases, in addition to the purposes and legal bases, we consider the amount, nature and sensitivity of the personal information, as well as the potential risk of harm from unauthorized use or disclosure of your personal information. - -### 4. Recipients of Personal Information - -In addition to the recipients listed in Annexes 1 and 2, we may also share your personal information with the following (as required in accordance with the uses set out in Annexes 1 and 2): - -1. **Service providers and advisors**: we may share your personal information with third party vendors and other service providers that perform services for us or on our behalf, which may include providing professional services, such as legal and accounting services, mailing, email or chat services, fraud prevention, web hosting, or providing analytic services. -2. **Affiliates**. Other companies owned by or under common ownership as Supabase, including our subsidiaries (i.e., any organization we own or control) and our ultimate holding company (i.e., any organization that owns or controls us) and any subsidiaries it owns. These companies will use your personal information in the same way as we can under these Privacy Disclosures. -3. **Purchasers and third parties in connection with a business transaction**: your personal information may be disclosed to third parties in connection with a transaction, such as a merger, sale of assets or shares, reorganization, financing, change of control or acquisition of all or a portion of our business. -4. **Law enforcement, regulators and other parties for legal reasons**: we may share your personal information with third parties as required by law or if we reasonably believe that such action is necessary to (i) comply with the law and the reasonable requests of law enforcement; (ii) detect and investigate illegal activities and breaches of agreements, including our Terms; and/or (iii) exercise or protect the rights, property, or personal safety of Supabase, its users or others. - -### 5. Marketing and Advertising - -From time to time we may contact you with information about our services, including sending you marketing messages and asking for your feedback on our services. Most marketing messages we send will be by email. For some marketing messages, we may use personal information we collect about you to help us determine the most relevant marketing information to share with you. - -We will only send you marketing messages if you have given us your consent to do so. You can withdraw your consent at a later date by clicking on the unsubscribe link at the bottom of our marketing emails or by updating your preferences via your account on the Site. - -### 6. Storing and transferring your personal information - -**Security**. We implement appropriate technical and organizational measures to protect your personal information against accidental or unlawful destruction, loss, change or damage. All personal information we collect will be stored by our cloud hosting provider on secure servers. We will never send you unsolicited emails or contact you by phone requesting credit or debit card information or national identification numbers. - -**International Transfers of your Personal Information**. The personal information we collect may be transferred to and stored in countries outside of the jurisdiction you are in where we and our third party service providers have operations. If you are located in the EEA, United Kingdom or Switzerland, your personal information may be processed outside of those regions, including in the United States. - -In the event of such a transfer, we ensure that: (i) the personal information is transferred to countries recognized as offering an equivalent level of protection; or (ii) the transfer is made pursuant to appropriate safeguards, such as standard data protection clauses adopted by the European Commission. - -If you wish to enquire further about these safeguards used, please contact us using the details set out at the end of these Privacy Disclosures. - -### 7. Profiling - -We may analyze personal data we have collected about you to create a profile of your interests and send product updates. We may also use personal data about you to detect and reduce fraud. - -### 8. Your rights in respect of your personal information - -In accordance with applicable privacy law, you have the following rights in respect of your personal information that we hold: - -1. **Right of access**. You have the right to obtain: - 1. confirmation of whether, and where, we are processing your personal information; - 2. information about the categories of personal information we are processing, the purposes for which we process your personal information and information as to how we determine applicable retention periods; - 3. information about the categories of recipients with whom we may share your personal information; and - 4. a copy of the personal information we hold about you. -2. **Right of portability**. You have the right, in certain circumstances, to receive a copy of the personal information you have provided to us in a structured, commonly used, machine-readable format that supports re-use, or to request the transfer of your personal data to another person. -3. **Right to rectification**. You have the right to obtain rectification of any inaccurate or incomplete personal information we hold about you without undue delay. -4. **Right to erasure**. You have the right, in some circumstances, to require us to erase your personal information without undue delay if the continued processing of that personal information is not justified. -5. **Right to restriction**. You have the right, in some circumstances, to require us to limit the purposes for which we process your personal information if the continued processing of the personal information in this way is not justified, such as where the accuracy of the personal information is contested by you. -6. **Right to withdraw consent**. There are certain circumstances where we require your consent to process your personal information. In these instances, and if you have provided consent, you have the right to withdraw your consent. If you withdraw your consent, this will not affect the lawfulness of our use of your personal information before your withdrawal. - -**You also have the right to object to any processing based on our legitimate interests where there are grounds relating to your particular situation. There may be compelling reasons for continuing to process your personal information, and we will assess and inform you if that is the case. You can object to marketing activities for any reason.** - -You also have the right to lodge a complaint to your local data protection authority. If you are based in the European Union, information about how to contact your local data protection authority is available [here](http://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm). If you are based in the UK or Switzerland, your local data protection authorities are the UK Information Commissioner's Office () and the Swiss Federal Data Protection and Information Commissioner (). - -If you wish to exercise one of these rights, please contact us using the contact details at the end of these Privacy Disclosures. - -Due to the confidential nature of data processing we may ask you to provide proof of identity when exercising the above rights. This can be done by providing a scanned copy of a valid identity document or a signed photocopy of a valid identity document. - -### 9. Cookies and similar technologies used on our European Services - -Our European Services uses cookies and similar technologies such as pixels and Local Storage Objects (LSOs) like HTML5 (together "**_cookies_**") to distinguish you from other users of our European Services. This helps us to provide you with a good experience when you browse our European Services and also allows us to monitor and analyse how you use and interact with our European Services so that we can continue to improve our European Services. - -Cookies are pieces of code that allow for personalization of our European Services experience by saving your information such as user ID and other preferences. A cookie is a small data file that we transfer to your computer's hard disk for record-keeping purposes. - -We use the following types of cookies: - -1. **Strictly necessary cookies**. These are cookies that are required for the operation of our European Services. They include, for example, cookies that enable you to log into secure areas of our European Services. - -Please see **Annex 3** for more information about the cookies we use on the European Services. - -Most browsers also allow you to change your cookie settings to block certain cookies. Depending on your mobile device and operating system, you may not be able to delete or block all cookies. Please note that if you choose to refuse all cookies you may not be able to use the full functionality of our European Services. These settings will typically be found in the "options" or "preferences" menu of your browser. In order to understand these settings, the following links may be helpful, otherwise you should use the "Help" option in your browser for more details. - -- [Cookie settings in Internet Explorer](https://support.microsoft.com/en-gb/help/278835/how-to-delete-cookie-files-in-internet-explorer) -- [Cookie settings in Firefox](http://support.mozilla.org/en-US/kb/cookies) -- [Cookie settings in Chrome](https://support.google.com/chrome/answer/95647?hl=en) -- [Cookies settings in Safari web](https://support.apple.com/en-gb/guide/safari/manage-cookies-and-website-data-sfri11471/mac) and [iOS](https://support.apple.com/en-gb/HT201265). - -If you would like to find out more about cookies and other similar technologies, please visit [allaboutcookies.org](http://www.allaboutcookies.org). - -Please note that deleting or blocking cookies may not be effective for all types of tracking technologies, such as Local Storage Objects (LSOs) like HTML5. - -### 10. Tracking technologies used in our emails - -Our emails may contain tracking pixels that identify if and when you have opened an email that we have sent you, how many times you have read it and whether you have clicked on any links in that email. This helps us measure the effectiveness of our marketing email campaigns, make the emails we send to you more relevant to your interests and to understand if you have opened and read any important administrative emails we might send you. - -Most popular email clients will allow you to block these pixels by disabling certain external images in emails. You can do this through the settings on your email client – these generally give you the option of choosing whether emails will display "remote images", "remote content" or "images" by default. - -Some browsers also give you the option of downloading and installing extensions that block pixels and other tracking technologies. - -## Annex 1 – Personal information you provide to us - -| **Category of Personal Information** | **How we may use the Personal Information** | **Legal Bases for Processing** | **Recipients of Personal Information** | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Contact information**, such as first name, last name and email address. | We may use this information to set up and authenticate your account on the Service. | The processing is necessary for the performance of a contract with you and to take steps prior to entering into a contract with you, namely our Terms of Service. |

    We may share this information with the following service providers through the provision of the Service: Segment, Auth0, Stripe, Intercom, Hubspot, Mixpanel, Notion, Slack, Amazon Web Services, and BigQuery (Google Cloud).

    | -| | We may use this information to communicate with you, including sending service-related communications. | The processing is necessary for the performance of a contract with you, namely our Terms of Service. | | -| | We may use this information to deal with enquiries and complaints made by or about you relating to the Service. | The processing is necessary for our legitimate interests, namely administering the Service, and for communicating with you effectively to respond to your queries or complaints. | | -| | We may use this information in connection with providing you with marketing communications in accordance with your preferences. | We will only use your personal information in this way to the extent you have given us consent to do so. | | -| **Your registration / account information** such as your full name, email, and password. |

    We may use this information to create your account on the Service.

    |

    The processing is necessary for the performance of a contract with you.

    |

    We may share this information with the following service providers through the provision of the Service: Segment, Auth0, Stripe, Amazon Web Services.

    | -| |

    We use this information to deal with enquiries and complaints made by or about you relating to the Service.

    | The processing is necessary for our legitimate interests, namely for communicating with our members effectively to respond to any queries or complaints. | | -| **Payment transaction information.** When you make a purchase, we may collect information such as your billing address and other information such as date and time of your transaction. |

    We may use this information to process your orders through the Service.

    | The processing is necessary for the performance of a contract. |

    We may share this information with the following service providers through the provision of the Service: Stripe, and Amazon Web Services.

    | -| | We may use this information to verify your identity in connection with the detection and prevention of fraud or financial crime. | The processing is necessary for our and third partiers' legitimate interests, namely the detection and prevention of fraud and financial crime. | | -| **Approximate Location information.** When you visit our Service, we may collect information about your location. This information may be derived from WiFi positioning or your IP address. | We may use information to present the Service to you on your device. | The processing is necessary for performance of a contract with you. |

    We may share this information with the following service providers through the provision of the Service: Sentry, BigQuery (Google Cloud), and Amazon Web Services.

    | -| | We may use this information to localise features of the Service. | The processing is necessary for our legitimate interest, namely localising features of the Service and tailoring the Service so that it is more relevant to our users. | | -| | We may use this information to determine content that may be of interest to you. | The processing is necessary for our legitimate interests, namely tailoring the Service so that it is more relevant to you. | | -| **Chat, comments and opinions.** When you contact us directly, e.g. by email or phone we will record your comments and opinions. | We may use this information to address your questions, issues and concerns. | The processing is necessary for our legitimate interests, namely communicating with you and responding to queries, complaints and concerns. |

    We may share this information with the following service providers through the provision of the Service: Intercom, Hubspot, Google Gsuite, and Slack.

    | -| | We may use this information to improve the Service. | The processing is necessary for our legitimate interests (to develop and improve our service). | | -| **Information received from third parties, such as social networks.** If you interact with us through a social network, we may receive information from the social network such as your name, profile information, and any other information you permit the social network to share with third parties. We use single sign-on ("**_SSO_**") such as GitHub to allow a user to authenticate their account using one set of login information. The data we receive is dependent on your privacy settings with the social network. | We may use this information to reshare content created through the use of the Service | The processing is necessary for our legitimate interests (to develop our service and inform our marketing strategy) | We may share this information with the following service providers through the provision of the Service: Auth0 and Slack. | -| |

    We may use this information to authenticate you and allow you to access the Service.

    | The processing is necessary for the performance of a contract with you. | | -| **Your preferences**, such as preferences set for notifications, marketing communications, how the Service is displayed and the active functionalities on the Service. |

    We use this information to provide notifications, send news, alerts and marketing communications and provide the Service in accordance with your choices.

    |

    The processing is necessary for our legitimate interest, namely ensuring the user receives the correct marketing and other communications, and that this is displayed in accordance with the user's preferences.

    | We may share this information with the following service providers through the provision of the Service: Segment, Intercom and Hubspot. | -| |

    We use this information to ensure that we comply with our legal obligation to send only those marketing communications to which you have consented.

    | The processing is necessary for compliance with a legal obligation to which we are subject. | | - -## Annex 2 – Personal information collected automatically - -| **Category of personal information** | **How we may use it** | **Legal basis for the processing** | **Recipients of Personal Data** | -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Approximate location information.** Other than information you choose to provide to us, we do not collect information about your precise location. Your device’s IP address may however help us determine an approximate location. | We may use information you provide to us about your location to monitor and detect fraud or suspicious activity in relation to your Supabase account. | The processing is necessary for our legitimate interests, namely to protect our business and your account from fraud and other illegal activities. |

    **Approximate location information:** We may share this information with the following service providers through the provision of the Service: Sentry, BigQuery (Google Cloud), and Amazon Web Services.

    **Information about how you access and use the Service.** We may share this information with the following service providers through the provision of the Service: Segment, Mixpanel, Intercom, Hubspot, BigQuery (Google Cloud), and Amazon Web Services.

    **Log files and information about your device.** We may share this information with the following service providers through the provision of the Service: Segment, Mixpanel, Intercom, Hubspot, Sentry, BigQuery (Google Cloud), and Amazon Web Services.

    | -| | We may use this information to tailor how the Service is displayed to you (such as the language in which it is provided to you). | The processing is necessary for our legitimate interest, namely tailoring our service so that it is more relevant to our users. | | -| **Information about how you access and use the Service.** For example, how frequently you access the Service, the time you access the Service and how long you use it for, the approximate location that you access the Service from, the site from which you came and the site to which you are going when you leave our website, the website pages you visit, the links you click, whether you open emails or click the links contained in emails, whether you access the Service from multiple devices, and other actions you take on the Service. |

    We may use information about how you use and connect to the Service to present the Service to you on your device.

    | The processing is necessary for our legitimate interests, namely to tailor the Service to the user. | | -| | We may use this information to determine products and services that may be of interest to you for marketing purposes. | The processing is necessary for our legitimate interests, namely to inform our direct marketing. | | -| |

    We may use this information to monitor and improve the Service and business, resolve issues and to inform the development of new products and services.

    | The processing is necessary for our legitimate interests, namely to monitor and resolve issues with the Service and to improve the Service generally. | | -| **Log files and information about your device.** We also collect information about the tablet, smartphone or other electronic device you use to connect to the Service. This information can include details about the, operating systems, browsers and applications connected to the Service through the device and your IP address. |

    We may use information about how you use and connect to the Service to present the Service to you on your device.

    | The processing is necessary for our legitimate interests, namely to tailor the Service to the user. | | -| |

    We may use this information to monitor and improve the Service and business, resolve issues and to inform the development of new products and services.

    | The processing is necessary for our legitimate interests, namely to monitor and resolve issues with the Service and to improve the Service generally. | | - -## Annex 3 - Cookies - -| **Cookie Name** | **Type of cookie** | **How long does the cookie stay on my device?** | **Purpose of the cookie** | -| :----------------------------- | :----------------- | :---------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -|

    a0:session

    | Strictly necessary | 1 Day | Authentication Purposes. | -|

    a0:state

    | Strictly necessary | 2 Hours | Authentication Purposes. | -|

    youtube-nocookie

    | Strictly necessary | Persistent |

    Privacy-enhanced cookie, essential for embedded videos. [Link.](https://support.google.com/youtube/answer/171780)

    Privacy Enhanced Mode allows you to embed YouTube videos without using cookies that track viewing behavior. This means no activity is collected to personalize the viewing experience.

    | diff --git a/web/docs/company/sla.md b/web/docs/company/sla.md deleted file mode 100644 index 366be52b0f9..00000000000 --- a/web/docs/company/sla.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -id: sla -title: Service Level Agreement ---- - -The following Service Level Agreement, which is incorporated into and forms part of the Subscription Agreement between Supabase, Inc. ("Supabase") and Customer (the "Agreement"), will apply to the Services for Enterprise Customers specified in an Order Form during the applicable Subscription Term: - -## Platform -### 1. Uptime Commitment - -Supabase will provide Actual Availability for at least ninety-nine and nine tenths percent (99.9%) of the total time in each calendar month during the Subscription Term, as measured by Supabase (the **"Uptime Commitment"**). - - -### 2. Service Credits - -If the Uptime Commitment is not met during any particular calendar month during the Subscription Term, then Customer will be eligible for a service credit ("Service Credit"), provided that Customer reports to Supabase such failure to meet the Uptime Commitment and requests such Service Credit in accordance with this Exhibit. The amount of any Service Credit due hereunder shall be calculated as follows: -X * Y, where X = the total fees due from Customer to Supabase for the affected Services for the relevant calendar month (regardless of when billed or payable), and Y = the Credit Percentage corresponding with the Actual Availability provided (as a percentage of total time) for the relevant calendar month, as set forth in the table below. - -| Actual Availability | Credit Percentage | -|----------------------------------------------------|-------------------| -| Less than 99.9% but greater than or equal to 99.0% | 10% | -| Less than 99.0% but greater than or equal to 98.0% | 15% | -| Less than 98.0% but greater than or equal to 96.0% | 20% | -| Less than 96.0% | 30% | - -### 3. Credit Requests and Payment - -To request a Service Credit, Customer must send an email to Supabase at support@supabase.io within thirty (30) days of the end of the month in which the Uptime Commitment was not met. Customer must include either its account ID or registered email address, and the previously reported dates and times that there was no Service Availability. If Supabase confirms that Customer is eligible for a Service Credit, Supabase will issue a credit to Customer’s account within thirty (30) days. Service Credits are not refunds, cannot be exchanged into a cash amount, and may only be used against future billing charges. Except as set forth in Section 4 below, the Service Credits shall be Customer’s sole and exclusive remedy, and Supabase’s sole and exclusive liability, for any failure by Supabase to meet the Uptime Commitment. - -### 4. Definitions - -All capitalized words used but not defined in this Service Level Agreement have the meaning set forth in the Agreement. - -#### 4.1 Scheduled Availability - -"Scheduled Availability" means the time, in minutes, that the applicable Services are generally accessible and available to Customer’s Permitted Users. - -#### 4.2 Unscheduled Downtime - -"Unscheduled Downtime" means the time, in minutes, that the applicable Services are not generally accessible and available to Customer’s Permitted Users, excluding inaccessibility or unavailability due to Customer’s or Permitted Users’ acts or omissions, force majeure events, scheduled maintenance disclosed with at least 24 hours’ notice by email, hacking or virus attacks, or reasonable emergency maintenance. - -#### 4.3 Actual Availability - -"Actual Availability" means Scheduled Availability less Unscheduled Downtime. - -## Support - -Supabase Support Service Level Agreements. - -### 1. Urgent - -**Critical Issue** - -Defect resulting in full or partial system outage or a condition that makes Supabase unusable -or unavailable in production for all of Customer’s Users. - -### 2. High - -**Significant Business Disruption** - -Issue resulting in a situation meaning major functionality is impacted and -significant performance degradation is experienced. Issue impacts significant proportion of user base and / or major -Supabase functionality. - -### 3. Normal - -**Minor Feature or Functional Issue / General Question** - -Issue results in a component of Supabase not -performing as expected or documented. An inquiry by a Customer representative regarding a general technical issue -or general question. - -### 4. Low - -**Minor Issue / Feature Request** - -An Information request about Supabase or feature request. - -## Target response times - -| Severity Level | Standard | Priority | Priority Plus | -|----------------|--------------------------------------------|----------------------------------|-----------------------------------| -| 1. Urgent | 1 business hour
    24/7 × 365 | 1 business hour
    24/7 × 365 | 1 business hour
    24/7 × 365 | -| 2. High | 4 business hours
    Monday - Friday | 2 business hours
    Monday - Friday | 2 business hours
    24/7 × 365 | -| 3. Normal | 1 business day
    Monday - Friday | 1 business day
    Monday - Friday | 12 business hours
    Monday - Friday | -| 4. Low | 2 business days
    Monday - Friday | 2 business days
    Monday - Friday | 1 business day
    Monday - Friday | - - -Business hours are from 6am to 6pm (local time), except where otherwise stated. diff --git a/web/docs/company/terms.md b/web/docs/company/terms.md deleted file mode 100644 index 60fd3ce9eb4..00000000000 --- a/web/docs/company/terms.md +++ /dev/null @@ -1,235 +0,0 @@ ---- -id: terms -title: Terms of Service ---- - -`Last Modified: 20 November 2020` - -These Customer Terms and Conditions (this "**Agreement**"), effective as of the date on which you click a button or check a box (or something similar) acknowledging your acceptance of this Agreement (the "**Effective Date**"), is by and between Supabase, Inc., a Delaware corporation with offices located at 970 Toa Payoh North #07-04, Singapore 318992 ("**Supabase**") and the entity on whose behalf the individual accepting this Agreement accepts this Agreement ("**Customer**"). The individual accepting this Agreement hereby represents and warrants that it is duly authorized by the entity on whose behalf it accepts this Agreement to so accept this Agreement. Supabase and Customer may be referred to herein collectively as the "**Parties**" or individually as a "**Party**." The Parties agree as follows: - -## 1. Definitions. - -1. "**Aggregated Data**" means data and information related to or derived from Customer Data or Customer's use of the Services that is used by Supabase in an aggregate and anonymized manner, including to compile statistical and performance information related to the Services. -2. "**Authorized User**" means Customer's employees, consultants, contractors, and agents (i) who are authorized by Customer to access and use the Services under the rights granted to Customer pursuant to this Agreement; and (ii) for whom access to the Services has been purchased hereunder. -3. "**Customer Data**" means information, data, and other content, in any form or medium, that is submitted, posted, or otherwise transmitted by or on behalf of Customer or an Authorized User through the Services; provided that, for purposes of clarity, Customer Data does not include Aggregated Data. -4. "**Documentation**" means Supabase's end user documentation relating to the Services available at [supabase.io](https://supabase.com). -5. "**Harmful Code**" means any software, hardware, or other technology, device, or means, including any virus, worm, malware, or other malicious computer code, the purpose or effect of which is to permit unauthorized access to, or to destroy, disrupt, disable, distort, or otherwise harm or impede in any manner any (i) computer, software, firmware, hardware, system, or network; or (ii) any application or function of any of the foregoing or the security, integrity, confidentiality, or use of any data processed thereby. -6. "**Order**" means: (i) the purchase order, order form, or other ordering document entered into by the Parties that incorporates this Agreement by reference; or (ii) if Customer registered for the Services through Supabase's online ordering process, the results of such online ordering process. -7. "**Personal Information**" means any information that, individually or in combination, does or can identify a specific individual or by or from which a specific individual may be identified, contacted, or located, including without limitation all data considered "personal data", "personally identifiable information", or something similar under applicable laws, rules, or regulations relating to data privacy. -8. "**Supabase IP**" means the Services, the Documentation, and any and all intellectual property provided to Customer or any Authorized User in connection with the foregoing. For the avoidance of doubt, Supabase IP includes Aggregated Data and any information, data, or other content derived from Supabase's provision of the Services but does not include Customer Data. -9. "**Services**" means Supabase's proprietary hosted software platform, as made available by Supabase to Authorized Users from time to time. -10. "**Subscription Period**" means the time period identified on the Order during which Customer's Authorized Users may access and use the Services. -11. "**Third-Party Products**" means any third-party products provided with, integrated with, or incorporated into the Services. -12. "**Usage Limitations**" means the usage limitations set forth in this Agreement and the Order, including without limitation any limitations on the number of Authorized Users (if any), and the applicable product, pricing, and support tiers agreed-upon by the Parties. - -## 2. Access and Use. - -### 1. Provision of Access. - -Subject to and conditioned on Customer's compliance with the terms and conditions of this Agreement, including without limitation the Usage Limitations, Supabase will make available to Customer during the Subscription Period, on a non-exclusive, non-transferable (except in compliance with Section 13.8), and non-sublicensable basis, access to and use of the Services, solely for use by Authorized Users. Such use is limited to Customer's internal business purposes and the features and functionalities specified in the Order. Supabase shall provide to Customer the necessary access credentials to allow Customer to access the Services. - -### 2. Documentation License. - -Subject to and conditioned on Customer's compliance with the terms and conditions of this Agreement, Supabase hereby grants to Customer a non-exclusive, non-transferable (except in compliance with Section 13.8), and non-sublicensable license to use the Documentation during the Subscription Period solely for Customer's internal business purposes in connection with its use of the Services. - -### 3. Use Restrictions. - -Customer shall not use the Services for any purposes beyond the scope of the access granted in this Agreement. Customer shall not at any time, directly or indirectly, and shall not permit any Authorized Users to: (i) copy, modify, or create derivative works of any Supabase IP, whether in whole or in part; (ii) rent, lease, lend, sell, license, sublicense, assign, distribute, publish, transfer, or otherwise make available the Services or Documentation to any third party; (iii) reverse engineer, disassemble, decompile, decode, adapt, or otherwise attempt to derive or gain access to any software component of the Services, in whole or in part; (iv) remove any proprietary notices from any Supabase IP; (v) use any Supabase IP in any manner or for any purpose that infringes, misappropriates, or otherwise violates any intellectual property right or other right of any person, or that violates any applicable law; (vi) access or use any Supabase IP for purposes of competitive analysis of Supabase or the Services, the development, provision, or use of a competing software service or product, or any other purpose that is to Supabase's detriment or commercial disadvantage; (vii) bypass or breach any security device or protection used by the Services or access or use the Services other than by an Authorized User through the use of valid access credentials; or (vii) input, upload, transmit, or otherwise provide to or through the Services any information or materials that are unlawful or injurious, or that contain, transmit, or activate any Harmful Code. - -### 4. Reservation of Rights. - -Supabase reserves all rights not expressly granted to Customer in this Agreement. Except for the limited rights and licenses expressly granted under this Agreement, nothing in this Agreement grants, by implication, waiver, estoppel, or otherwise, to Customer or any third party any intellectual property rights or other right, title, or interest in or to the Supabase IP. - -### 5. Suspension. - -Notwithstanding anything to the contrary in this Agreement, Supabase may temporarily suspend Customer's and any Authorized User's access to any portion or all of the Services if: (i) Supabase reasonably determines that (A) there is a threat or attack on any of the Supabase IP; (B) Customer's or any Authorized User's use of the Supabase IP disrupts or poses a security risk to the Supabase IP or to any other customer or vendor of Supabase; (C) Customer, or any Authorized User, is using the Supabase IP for fraudulent or illegal activities; (D) subject to applicable law, Customer has ceased to continue its business in the ordinary course, made an assignment for the benefit of creditors or similar disposition of its assets, or become the subject of any bankruptcy, reorganization, liquidation, dissolution, or similar proceeding; or (E) Supabase's provision of the Services to Customer or any Authorized User is prohibited by applicable law; (ii) any vendor of Supabase has suspended or terminated Supabase's access to or use of any Third-Party Products required to enable Customer to access the Services; or (iii) in accordance with Section 5.1 (any such suspension described in subclause (i), (ii), or (iii), a "**Service Suspension**"). Supabase shall use commercially reasonable efforts to provide written notice of any Service Suspension to Customer and to provide updates regarding resumption of access to the Services following any Service Suspension. Supabase shall use commercially reasonable efforts to resume providing access to the Services as soon as reasonably possible after the event giving rise to the Service Suspension is cured. Supabase will have no liability for any damage, liabilities, losses (including any loss of data or profits), or any other consequences that Customer or any Authorized User may incur as a result of a Service Suspension. - -### 6. Aggregated Data. - -Notwithstanding anything to the contrary in this Agreement, Supabase may monitor Customer's use of the Services and collect and compile Aggregated Data. As between Supabase and Customer, all right, title, and interest in Aggregated Data, and all intellectual property rights therein, belong to and are retained solely by Supabase. Customer acknowledges that Supabase may compile Aggregated Data based on Customer Data input into the Services. Customer agrees that Supabase may (i) make Aggregated Data available to third parties including its other customers in compliance with applicable law, and (ii) use Aggregated Data to the extent and in the manner permitted under applicable law. - -## 3. Customer Responsibilities. - -### 1. General. - -Customer is responsible and liable for all uses of the Services and Documentation resulting from access provided by Customer, directly or indirectly, whether such access or use is permitted by or in violation of this Agreement. Without limiting the generality of the foregoing, Customer is responsible for all acts and omissions of Authorized Users, and any act or omission by an Authorized User that would constitute a breach of this Agreement if taken by Customer will be deemed a breach of this Agreement by Customer. Customer shall use reasonable efforts to make all Authorized Users aware of this Agreement's provisions as applicable to such Authorized User's use of the Services and shall cause Authorized Users to comply with such provisions. - -### 2. Third-Party Products. - -Supabase may from time to time make Third-Party Products available to Customer or Supabase may allow for certain Third-Party Products to be integrated with the Services to allow for the transmission of Customer Data from such Third-Party Products into the Services. For purposes of this Agreement, such Third-Party Products are subject to their own terms and conditions. If Customer does not agree to abide by the applicable terms for any such Third-Party Products, then Customer should not install or use such Third-Party Products. By authorizing Supabase to transmit Customer Data from Third-Party Products into the Services, Customer represents and warrants to Supabase that it has all right, power, and authority to provide such authorization. - -### 3. Customer Control and Responsibility. - -Customer has and will retain sole responsibility for: (i) all Customer Data, including its content and use; (ii) all information, instructions, and materials provided by or on behalf of Customer or any Authorized User in connection with the Services; (iii) Customer's information technology infrastructure, including computers, software, databases, electronic systems (including database management systems), and networks, whether operated directly by Customer or through the use of third-party services ("**Customer Systems**"); (iv) the security and use of Customer's and its Authorized Users' access credentials; and (v) all access to and use of the Services directly or indirectly by or through the Customer Systems or its or its Authorized Users' access credentials, with or without Customer's knowledge or consent, including all results obtained from, and all conclusions, decisions, and actions based on, such access or use. - -## 4. Support. - -During the Subscription Period, Supabase will use commercially reasonable efforts to provide Customer with basic customer support via Supabase's standard support channels during Supabase's normal business hours. - -## 5. Fees and Taxes. - -### 1. Fees. - -Where paid for services are agreed between Supabase and Customer per the Order, Customer shall pay Supabase the fees ("**Fees**") identified in the Order without offset or deduction at the cadence identified in the Order (e.g., monthly or annually). Fees paid by Customer are non-refundable. If Customer fails to make any payment when due, and Customer has not notified Supabase in writing within ten (10) days of the payment becoming due and payable that the payment is subject to a good faith dispute, without limiting Supabase's other rights and remedies: (i) Supabase may charge interest on the undisputed past due amount at the rate of 1.5% per month, calculated daily and compounded monthly or, if lower, the highest rate permitted under applicable law; (ii) Customer shall reimburse Supabase for all reasonable costs incurred by Supabase in collecting any late payments or interest, including attorneys' fees, court costs, and collection agency fees; and (iii) if such failure continues for ten (10) days or more, Supabase may suspend Customer's and its Authorized Users' access to any portion or all of the Services until such amounts are paid in full. - -### 2. Taxes. - -All Fees and other amounts payable by Customer under this Agreement are exclusive of taxes and similar assessments. Customer is responsible for all sales, use, and excise taxes, and any other similar taxes, duties, and charges of any kind imposed by any federal, state, or local governmental or regulatory authority on any amounts payable by Customer hereunder, other than any taxes imposed on Supabase's income. To the extent that Supabase is required by law to pay any such taxes, duties, or other charges to any governmental or regulatory authority, Supabase may invoice Customer for such taxes, duties, or other charges and Customer will pay such invoiced amounts in accordance with this Agreement. - -## 6. Confidential Information. - -### 1. Definition. - -From time to time during the Subscription Period, either Party may disclose or make available to the other Party information about its business affairs, products, confidential intellectual property, trade secrets, third-party confidential information, and other sensitive or proprietary information, whether orally or in written, electronic, or other form or media that: (i) is marked, designated or otherwise identified as "confidential" or something similar at the time of disclosure or within a reasonable period of time thereafter; or (ii) would be considered confidential by a reasonable person given the nature of the information or the circumstances of its disclosure (collectively, "**Confidential Information**"). Except for Personal Information, Confidential Information does not include information that, at the time of disclosure is: (a) in the public domain; (b) known to the receiving Party at the time of disclosure; (c) rightfully obtained by the receiving Party on a non-confidential basis from a third party; or (d) independently developed by the receiving Party without use of, reference to, or reliance upon the disclosing Party's Confidential Information. - -### 2. Duty. - -The receiving Party shall not disclose the disclosing Party's Confidential Information to any person or entity, except to the receiving Party's employees, contractors, and agents who have a need to know the Confidential Information for the receiving Party to exercise its rights or perform its obligations hereunder ("**Representatives**"). The receiving Party will be responsible for all the acts and omissions of its Representatives as they relate to Confidential Information hereunder. Notwithstanding the foregoing, each Party may disclose Confidential Information to the limited extent required (i) in order to comply with the order of a court or other governmental body, or as otherwise necessary to comply with applicable law, provided that the Party making the disclosure pursuant to the order shall first have given written notice to the other Party and made a reasonable effort to obtain a protective order; or (ii) to establish a Party's rights under this Agreement, including to make required court filings. Further, notwithstanding the foregoing, each Party may disclose the terms and existence of this Agreement to its actual or potential investors, debtholders, acquirers, or merger partners under customary confidentiality terms. - -### 3. Return of Materials; Effects of Termination/Expiration. - -On the expiration or termination of the Agreement, the receiving Party shall promptly return to the disclosing Party all copies, whether in written, electronic, or other form or media, of the disclosing Party's Confidential Information, or destroy all such copies and certify in writing to the disclosing Party that such Confidential Information has been destroyed. Each Party's obligations of non-use and non-disclosure with regard to Confidential Information are effective as of the Effective Date and will expire three (3) years from the date of termination or expiration of this Agreement; provided, however, with respect to any Confidential Information that constitutes a trade secret (as determined under applicable law), such obligations of non-disclosure will survive the termination or expiration of this Agreement for as long as such Confidential Information remains subject to trade secret protection under applicable law. - -## 7. Personal Information. - -Customer will ensure that its Customer Data, and its use of such Customer Data, complies with this Agreement and any applicable law. Customer is responsible for properly configuring and using the Services and taking its own steps to maintain appropriate security, protection, and backup of Customer Data. Customer may not store or process protected health information (as defined in HIPAA) using the Services unless Customer signs a Business Associate Agreement with Supabase. Customer may not store any payment cardholder information using the Services without Supabase's prior written approval. - -## 8. Intellectual Property Ownership; Feedback. - -### 1. Supabase IP. - -Customer acknowledges that, as between Customer and Supabase, Supabase owns all right, title, and interest, including all intellectual property rights, in and to the Supabase IP and, with respect to Third-Party Products, the applicable third-party providers own all right, title, and interest, including all intellectual property rights, in and to the Third-Party Products. - -### 2. Customer Data. - -Supabase acknowledges that, as between Supabase and Customer, Customer owns all right, title, and interest, including all intellectual property rights, in and to the Customer Data. Customer hereby grants to Supabase a non-exclusive, royalty-free, worldwide license to reproduce, distribute, and otherwise use and display the Customer Data and perform all acts with respect to the Customer Data as may be necessary for Supabase to provide the Services to Customer, and a non-exclusive, perpetual, irrevocable, royalty-free, worldwide license to reproduce, distribute, modify, and otherwise use and display Customer Data incorporated within the Aggregated Data. Customer may export the Customer Data at any time through the features and functionalities made available via the Services. - -### 3. Feedback. - -If Customer or any of its employees or contractors sends or transmits any communications or materials to Supabase by mail, email, telephone, or otherwise, suggesting or recommending changes to the Supabase IP, including without limitation, new features or functionality relating thereto, or any comments, questions, suggestions, or the like ("**Feedback**"), Supabase is free to use such Feedback irrespective of any other obligation or limitation between the Parties governing such Feedback so long as Supabase does not identify Customer as the source of the Feedback without Customer's prior approval. - -## 9. Warranty Disclaimer. - -The Supabase IP is provided "as is" and Supabase -hereby disclaims all warranties, whether express, implied, statutory, or -otherwise. Supabase specifically disclaims all implied warranties of -merchantability, fitness for a particular purpose, title, and non-infringement, -and all warranties arising from course of dealing, usage, or trade practice. Supabase -makes no warranty of any kind that the Supabase IP, or any products or results -of the use thereof, will meet Customer’s or any other person’s requirements, -operate without interruption, achieve any intended result, be compatible or -work with any software, system or other services, or be secure, accurate, -complete, free of harmful code, or error free. - -## 10. Indemnification. - -### 1. Supabase Indemnification. - -1. Supabase shall indemnify, defend, and hold harmless Customer from and against any and all losses, damages, liabilities, costs (including reasonable attorneys' fees) ("**Losses**") incurred by Customer resulting from any third-party claim, suit, action, or proceeding ("**Third-Party Claim**") that the Services, or any use of the Services in accordance with this Agreement, infringes or misappropriates such third party's US copyrights or trade secrets; provided that Customer promptly notifies Supabase in writing of the claim, cooperates with Supabase, and allows Supabase sole authority to control the defense and settlement of such claim. -2. If such a claim is made or appears possible, Customer agrees to permit Supabase, at Supabase's sole discretion: to (i) modify or replace the Services, or component or part thereof, to make it non-infringing; or (ii) obtain the right for Customer to continue use. If Supabase determines that neither alternative is reasonably commercially available, Supabase may terminate this Agreement, in its entirety or with respect to the affected component or part, effective immediately on written notice to Customer. -3. This Section 10.1 will not apply to the extent that the alleged infringement arises from: (i) use of the Services in combination with data, software, hardware, equipment, or technology not provided by Supabase or authorized by Supabase in writing; (ii) modifications to the Services not made by Supabase; (iii) Customer Data; or (iv) Third-Party Products. - -### 2. Customer Indemnification. - -Customer shall indemnify, hold harmless, and, at Supabase's option, defend Supabase from and against any Losses resulting from any Third-Party Claim that the Customer Data, or any use of the Customer Data in accordance with this Agreement, infringes or misappropriates such third party's US intellectual property or other rights and any Third-Party Claims based on Customer's or any Authorized User's (i) negligence or willful misconduct; (ii) use of the Services in a manner not authorized by this Agreement; or (iii) use of the Services in combination with data, software, hardware, equipment or technology not provided by Supabase or authorized by Supabase in writing; in each case provided that Customer may not settle any Third-Party Claim against Supabase unless Supabase consents to such settlement, and further provided that Supabase will have the right, at its option, to defend itself against any such Third-Party Claim or to participate in the defense thereof by counsel of its own choice. - -### 3. Sole Remedy. - -This section 10.3 sets forth Customer's sole remedies and Supabase's sole liability and obligation for any actual, threatened, or alleged claims that the services infringe, misappropriate, or otherwise violate any intellectual property rights of any third party. - -## 11. Limitations of Liability. - -Except for: (i) a party’s breach of its confidentiality obligations; -(ii) a party’s indemnity obligations; or (iii) a party’s gross negligence, -fraud, or willful misconduct ("**Excluded Liabilities**"), (a) in no -event will either party be liable under or in connection with this agreement -under any legal or equitable theory, including breach of contract, tort -(including negligence), strict liability, and otherwise, for any: (1) -consequential, incidental, indirect, exemplary, special, enhanced, or punitive -damages; (2) increased costs, diminution in value or lost business, production, -revenues, or profits; (3) loss of goodwill or reputation; (4) use, inability to -use, loss, interruption, delay or recovery of any data, or breach of data or -system security; or (5) cost of replacement goods or services, in each case -regardless of whether such party was advised of the possibility of such losses -or damages or such losses or damages were otherwise foreseeable; and (b) in no -event will either party’s aggregate liability arising out of or related to this -agreement under any legal or equitable theory, including breach of contract, -tort (including negligence), strict liability, and otherwise exceed the total -amounts paid and/or payable to Supabase under this agreement in the twelve (12) -months immediately preceding the claim; provided that, notwithstanding the -foregoing, Supabase's aggregate liability arising out of or relating to any -excluded liabilities will not exceed three times (3x) the total amounts paid -and/or payable to Supabase by Customer under this agreement in the twelve (12) -months immediately preceding the claim. - -## 12. Subscription Period and Termination. - -### 1. Subscription Period. - -The initial term of this Agreement begins on the Effective Date and, unless terminated earlier pursuant to Section 12.2, will continue in effect for the period identified in the Order (the "**Initial Subscription Period**"). This Agreement will automatically renew for additional successive terms equal to the length of the Initial Subscription Period unless earlier terminated pursuant to this Agreement's express provisions or either Party gives the other Party written notice of non-renewal at least thirty (30) days prior to the expiration of the then-current term (each a "**Renewal Subscription Period**" and together with the Initial Subscription Period, the "**Subscription Period**").] - -#### 2. Termination. - -In addition to any other express termination right set forth in this Agreement: - -1. Supabase may terminate this Agreement, effective on written notice to Customer, if Customer: (i) fails to pay any amount when due hereunder, and such failure continues more than ten (10) calendar days after Supabase's delivery of written notice thereof; or (ii) breaches any of its obligations under Section 2.3 or Section 6; -2. either Party may terminate this Agreement, effective on written notice to the other Party, if the other Party materially breaches this Agreement, and such breach: (i) is incapable of cure; or (ii) being capable of cure, remains uncured thirty (30) calendar days after the non-breaching Party provides the breaching Party with written notice of such breach; or -3. either Party may terminate this Agreement, effective immediately upon written notice to the other Party, if the other Party: (i) becomes insolvent or is generally unable to pay, or fails to pay, its debts as they become due; (ii) files or has filed against it, a petition for voluntary or involuntary bankruptcy or otherwise becomes subject, voluntarily or involuntarily, to any proceeding under any domestic or foreign bankruptcy or insolvency law; (iii) makes or seeks to make a general assignment for the benefit of its creditors; or (iv) applies for or has appointed a receiver, trustee, custodian, or similar agent appointed by order of any court of competent jurisdiction to take charge of or sell any material portion of its property or business. - -### 3. Effect of Expiration or Termination. - -Upon expiration or earlier termination of this Agreement, Customer shall immediately discontinue use of the Supabase IP and, without limiting Customer's obligations under Section 6, Customer shall delete, destroy, or return all copies of the Supabase IP and certify in writing to the Supabase that the Supabase IP has been deleted or destroyed. No expiration or termination will affect Customer's obligation to pay all Fees that may have become due before such expiration or termination or entitle Customer to any refund. - -### 4. Survival. - -This Section 12.4 and Sections 1, 5, 6, 8, 9, 10, 11, and 13 survive any termination or expiration of this Agreement. No other provisions of this Agreement survive the expiration or earlier termination of this Agreement. - -## 13. Miscellaneous. - -### 1. Entire Agreement. - -This Agreement, together with any other documents incorporated herein by reference, constitutes the sole and entire agreement of the Parties with respect to the subject matter of this Agreement and supersedes all prior and contemporaneous understandings, agreements, and representations and warranties, both written and oral, with respect to such subject matter. In the event of any inconsistency between the statements made in the body of this Agreement, the related Exhibits, and any other documents incorporated herein by reference, the following order of precedence governs: (i) first, this Agreement; and (ii) second, any other documents incorporated herein by reference. - -### 2. Notices. - -All notices, requests, consents, claims, demands, waivers, and other communications hereunder (each, a "**Notice**") must be in writing and addressed to the Parties at the addresses set forth on the first page of this Agreement or as identified on the Order Form (or to such other address that may be designated by the Party giving Notice from time to time in accordance with this Section). All Notices must be delivered by personal delivery, nationally recognized signed for on delivery courier (with all fees pre-paid), or email (with confirmation of transmission). All email Notices to Supabase must be sent to [legal@supabase.io](mailto:legal@supabase.io). Except as otherwise provided in this Agreement, a Notice is effective only: (i) upon receipt by the receiving Party; and (ii) if the Party giving the Notice has complied with the requirements of this Section. - -### 3. Force Majeure. - -In no event shall either Party be liable to the other Party, or be deemed to have breached this Agreement, for any failure or delay in performing its obligations under this Agreement (except for any obligations to make payments), if and to the extent such failure or delay is caused by any circumstances beyond such Party's reasonable control, including but not limited to acts of God, flood, fire, earthquake, explosion, war, terrorism, invasion, riot or other civil unrest, strikes, labor stoppages or slowdowns or other industrial disturbances, or passage of law or any action taken by a governmental or public authority, including imposing an embargo. - -### 4. Amendment and Modification. - -Supabase may change this Agreement (except for any Orders) from time to time at its discretion. The date on which the Agreement was last modified will be updated at the top of this Agreement. Supabase will provide Customer with reasonable notice prior to any amendments or modifications taking effect, either by emailing the email address associated with Customer's account on the Services or by another method reasonably designed to provide notice to Customer. If Customer accesses or uses the Services after the effective date of the revised Agreement, such access and use will constitute Customer's acceptance of the revised Agreement beginning at the next Renewal Subscription Period or, if Customer enters into a new Order with Supabase, as of the date of execution of such Order. - -### 5. Waiver. - -No failure or delay by either Party in exercising any right or remedy available to it in connection with this Agreement will constitute a waiver of such right or remedy. No waiver under this Agreement will be effective unless made in writing and signed by an authorized representative of the Party granting the waiver. - -### 6. Severability. - -If any provision of this Agreement is invalid, illegal, or unenforceable in any jurisdiction, such invalidity, illegality, or unenforceability will not affect any other term or provision of this Agreement or invalidate or render unenforceable such term or provision in any other jurisdiction. Upon such determination that any term or other provision is invalid, illegal, or unenforceable, the Parties shall negotiate in good faith to modify this Agreement so as to effect their original intent as closely as possible in a mutually acceptable manner in order that the transactions contemplated hereby be consummated as originally contemplated to the greatest extent possible. - -### 7. Governing Law; Submission to Jurisdiction. - -This Agreement is governed by and construed in accordance with the internal laws of the State of California without giving effect to any choice or conflict of law provision or rule that would require or permit the application of the laws of any jurisdiction other than those of the State of California. Any legal suit, action, or proceeding arising out of or related to this Agreement or the licenses granted hereunder must be instituted in the federal courts of the United States or the courts of the State of California in each case located in San Francisco County, California and each Party irrevocably submits to the exclusive jurisdiction of such courts in any such suit, action, or proceeding. - -### 8. Assignment. - -Customer may not assign any of its rights or delegate any of its obligations hereunder, in each case whether voluntarily, involuntarily, by operation of law or otherwise, without the prior written consent of Supabase. Any purported assignment or delegation in violation of this Section will be null and void. No assignment or delegation will relieve the assigning or delegating Party of any of its obligations hereunder. This Agreement is binding upon and inures to the benefit of the Parties and their respective permitted successors and assigns. - -### 9. Export Regulation. - -The Services utilize software and technology that may be subject to US export control laws, including the US Export Administration Act and its associated regulations. Customer shall not, directly or indirectly, export, re-export, or release the Services or the underlying software or technology to, or make the Services or the underlying software or technology accessible from, any jurisdiction or country to which export, re-export, or release is prohibited by law, rule, or regulation. Customer shall comply with all applicable federal laws, regulations, and rules, and complete all required undertakings (including obtaining any necessary export license or other governmental approval), prior to exporting, re-exporting, releasing, or otherwise making the Services or the underlying software or technology available outside the US. - -### 10. US Government Rights. - -Each of the Documentation and the software components that constitute the Services is a "commercial item" as that term is defined at 48 C.F.R. § 2.101, consisting of "commercial computer software" and "commercial computer software documentation" as such terms are used in 48 C.F.R. § 12.212. Accordingly, if Customer is an agency of the US Government or any contractor therefor, Customer only receives those rights with respect to the Services and Documentation as are granted to all other end users, in accordance with (a) 48 C.F.R. § 227.7201 through 48 C.F.R. § 227.7204, with respect to the Department of Defense and their contractors, or (b) 48 C.F.R. § 12.212, with respect to all other US Government users and their contractors. - -### 11. Equitable Relief. - -Each Party acknowledges and agrees that a breach or threatened breach by such Party of any of its obligations under Section 6 or, in the case of Customer, Section 2.3, would cause the other Party irreparable harm for which monetary damages would not be an adequate remedy and agrees that, in the event of such breach or threatened breach, the other Party will be entitled to equitable relief, including a restraining order, an injunction, specific performance and any other relief that may be available from any court, without any requirement to post a bond or other security, or to prove actual damages or that monetary damages are not an adequate remedy. Such remedies are not exclusive and are in addition to all other remedies that may be available at law, in equity or otherwise. - -### 12. Publicity. - -Supabase may identify Customer as a user of the Services and may use Customer's name, logo, and other trademarks in Supabase's customer list, press releases, blog posts, advertisements, and website (and all use thereof and goodwill arising therefrom shall inure to the sole and exclusive benefit of Customer). Otherwise, neither Party may use the name, logo, or other trademarks of the other Party for any purpose without the other Party's prior written approval. diff --git a/web/docs/faq.md b/web/docs/faq.md deleted file mode 100755 index 62bbe79a9c6..00000000000 --- a/web/docs/faq.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -id: faq -title: FAQs -description: 'Most frequently asked questions regarding Supabase' ---- - -### Where do I find support? - -Choose the support channel relevant for your situation here: [supabase.com/support](https://supabase.com/support) - -### How much does it cost? - -Self-hosting Supabase is free. If you wish to use our cloud-platform, we provide [simple, predictable pricing](https://supabase.com/pricing). - -### How do I host Supabase? - -You can use the docker-compose script [here](https://github.com/supabase/supabase/tree/master/docker), and find detailed instructions [here](/docs/guides/hosting/overview). - -Supabase is an amalgamation of open source tools. Some of these tools are made by Supabase (like our [Realtime Server](https://github.com/supabase/realtime)), some we support directly (like [PostgREST](http://postgrest.org/en/v7.0.0/)), and some are third-party tools (like [KonSupabase is an amalgamation open sourceg](https://github.com/Kong/kong)). - -All of the tools we use in Supabase are MIT, Apache 2.0, or PostgreSQL licensed. This is one of the requirements to be considered for the Supabase stack. - -### How can you be a Firebase alternative if you're built with a relational database? - -We started Supabase because we love the functionality of Firebase, but we personally experienced the scaling issues that many others experienced. We chose Postgres because it's well-trusted, with phenomenal scalability. - -Our goal is to make Postgres as easy to use as Firebase, so that you no longer have to choose between usability and scalability. -We're sure that once you start using Postgres, you'll love it more than any other database. - -### Do you support `[some other database]`? - -We only support PostgreSQL. It's unlikely we'll ever move away from Postgres; however, you can [vote on a new database](https://github.com/supabase/supabase/discussions/6) if you want us to start development. - -### Do you have a library for `[some other language]`? - -We officially support [JavaScript](/docs/reference/javascript/installing) and [Dart](/docs/reference/dart/installing). - -You can find community-supported libraries in our [GitHub Community](https://github.com/supabase-community), and you can also help us to identify the most popular languages by [voting for a new client library](https://github.com/supabase/supabase/discussions/5). - diff --git a/web/docs/going-into-prod.mdx b/web/docs/going-into-prod.mdx deleted file mode 100644 index 1abefc05cdb..00000000000 --- a/web/docs/going-into-prod.mdx +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: going-into-prod -title: 'Production Readiness' -description: 'Things to do before making your app publicly available' ---- - -After developing your project and deciding it's time to Go Live With Real Users, you should run through this checklist to ensure that your project is: - -- secure -- won't falter under the expected load -- remains available whilst in production - -## Security - -- Ensure RLS is enabled - - Tables that do not have RLS enabled with reasonable policies allow any client to access and modify their data. This is unlikely to be what you want in the majority of cases. - - [Learn more about RLS](/docs/guides/auth/row-level-security). -- Enable replication on tables containing sensitive data by enabling Row Level Security (RLS) and setting row security policies: - - Go to the Authentication > Policies page in the Supabase Dashboard to enable RLS and create security policies. - - Go to the Database > Replication page in the Supabase Dashboard to manage replication tables. -- Enable 2FA on GitHub. Since your GitHub account gives you administrative rights to your Supabase project, you should protect it with a strong password and 2FA using a U2F key or a TOTP app. -- Ensure email confirmations are enabled in the `Auth > Settings` page. -- Use a custom SMTP server for auth emails so that your users can see that the mails are coming from a trusted domain (preferably the same domain that your app is hosted on). Grab SMTP credentials from any major email provider such as SendGrid, AWS SES, etc. -- Think hard about how _you_ would abuse your service as an attacker, and mitigate. -- Review these [common cybersecurity threats](https://auth0.com/docs/security/prevent-threats). - -## Performance - -- Ensure that you have suitable indices to cater to your common query patterns - - [Learn more about indexes in Postgres](https://www.enterprisedb.com/postgres-tutorials/overview-postgresql-indexes). - - `pg_stat_statements` can help you [identify hot or slow queries](https://www.virtual-dba.com/blog/postgresql-performance-identifying-hot-and-slow-queries/). -- Perform load testing (preferably on a staging env) - - Tools like [k6](https://k6.io/) can simulate traffic from many different users. -- Upgrade your database if you require more resources. If you need anything beyond what is listed, contact enterprise@supabase.io. -- If you are expecting a surge in traffic (for a big launch), let the team know by sending your Project Ref to us (support@supabase.io) with more details about your launch. We'll keep an eye on your project. - -## Availability - -- Use your own SMTP credentials so that you have full control over the deliverability of your transactional auth emails (see Auth > Settings) - - you can grab SMTP credentials from any major email provider such as SendGrid, AWS SES, etc. - - The default rate limit for auth emails provided by Supabase is 30 new users per hour, if doing a major public announcement you will likely require more than this. -- If your application is on the free tier and is **not** expected to be queried at least once every 7 days, then it may be paused by Supabase to save on server resources. - - You can restore paused projects from the Supabase dashboard. - - Upgrade to Pro to guarantee that your project will not be paused for inactivity. -- Database backups are not available for download on the free tier. - - You can set up your own backup systems using tools like [pg_dump](https://www.postgresqltutorial.com/postgresql-backup-database/) or [wal-g](https://github.com/wal-g/wal-g). - - Nightly backups for Pro tier projects are available on the Supabase dashboard for up to 7 days. -- Upgrading to the Supabase Pro Tier will give you access to email support on support@supabase.io - -## Platform status - -If Supabase experiences outages, we keep you as informed as possible, as early as possible. We provide the following feedback channels: - -- Status page: [status.supabase.com](https://status.supabase.com/) -- RSS Feed: [status.supabase.com/history.rss](https://status.supabase.com/history.rss) -- Atom Feed: [status.supabase.com/history.atom](https://status.supabase.com/history.atom) -- Slack Alerts: You can receive updates via the RSS feed, using Slack's [built-in RSS functionality](https://slack.com/help/articles/218688467-Add-RSS-feeds-to-Slack)
    `/feed subscribe https://status.supabase.com/history.atom` - -Make sure to review our [SLA](/docs/company/sla) for details on our commitment to Platform Stability. - -## Next steps - -This checklist is always growing so be sure to check back frequently, and also feel free to suggest additions and amendments by making a PR on [GitHub](https://github.com/supabase/supabase). diff --git a/web/docs/gotrue/server/about.md b/web/docs/gotrue/server/about.md deleted file mode 100644 index 1937e117f52..00000000000 --- a/web/docs/gotrue/server/about.md +++ /dev/null @@ -1,705 +0,0 @@ ---- -id: about -title: GoTrue Auth Server -description: An SWT based API for managing users and issuing SWT tokens ---- - -GoTrue is a small open-source API written in golang, that can act as a self-standing -API service for handling user registration and authentication for JAM projects. - -It's based on OAuth2 and JWT and will handle user signup, authentication and custom -user data. - -## Configuration - -You may configure GoTrue using either a configuration file named `.env`, -environment variables, or a combination of both. Environment variables are prefixed with `GOTRUE_`, and will always have precedence over values provided via file. - -### Top-Level - -``` -GOTRUE_SITE_URL=https://example.netlify.com/ -``` - -`SITE_URL` - `string` **required** - -The base URL your site is located at. Currently used in combination with other settings to construct URLs used in emails. - -`OPERATOR_TOKEN` - `string` _Multi-instance mode only_ - -The shared secret with an operator (usually Netlify) for this microservice. Used to verify requests have been proxied through the operator and -the payload values can be trusted. - -`DISABLE_SIGNUP` - `bool` - -When signup is disabled the only way to create new users is through invites. Defaults to `false`, all signups enabled. - -`GOTRUE_RATE_LIMIT_HEADER` - `string` - -Header on which to rate limit the `/token` endpoint. - -### API - -``` -GOTRUE_API_HOST=localhost -PORT=9999 -``` - -`API_HOST` - `string` - -Hostname to listen on. - -`PORT` (no prefix) / `API_PORT` - `number` - -Port number to listen on. Defaults to `8081`. - -`API_ENDPOINT` - `string` _Multi-instance mode only_ - -Controls what endpoint Netlify can access this API on. - -`REQUEST_ID_HEADER` - `string` - -If you wish to inherit a request ID from the incoming request, specify the name in this value. - -### Database - -``` -GOTRUE_DB_DRIVER=mysql -DATABASE_URL=root@localhost/gotrue -``` - -`DB_DRIVER` - `string` **required** - -Chooses what dialect of database you want. Must be `mysql`. - -`DATABASE_URL` (no prefix) / `DB_DATABASE_URL` - `string` **required** - -Connection string for the database. - -`DB_NAMESPACE` - `string` - -Adds a prefix to all table names. - -**Migrations Note** - -Migrations are not applied automatically, so you will need to run them after -you've built gotrue. - -- If built locally: `./gotrue migrate` -- Using Docker: `docker run --rm gotrue gotrue migrate` - -### Logging - -``` -LOG_LEVEL=debug # available without GOTRUE prefix (exception) -GOTRUE_LOG_FILE=/var/log/go/gotrue.log -``` - -`LOG_LEVEL` - `string` - -Controls what log levels are output. Choose from `panic`, `fatal`, `error`, `warn`, `info`, or `debug`. Defaults to `info`. - -`LOG_FILE` - `string` - -If you wish logs to be written to a file, set `log_file` to a valid file path. - -### JSON Web Tokens (JWT) - -``` -GOTRUE_JWT_SECRET=supersecretvalue -GOTRUE_JWT_EXP=3600 -GOTRUE_JWT_AUD=netlify -``` - -`JWT_SECRET` - `string` **required** - -The secret used to sign JWT tokens with. - -`JWT_EXP` - `number` - -How long tokens are valid for, in seconds. Defaults to 3600 (1 hour). - -`JWT_AUD` - `string` - -The default JWT audience. Use audiences to group users. - -`JWT_ADMIN_GROUP_NAME` - `string` - -The name of the admin group (if enabled). Defaults to `admin`. - -`JWT_DEFAULT_GROUP_NAME` - `string` - -The default group to assign all new users to. - -### External Authentication Providers - -We support `bitbucket`, `github`, `gitlab`, and `google` for external authentication. -Use the names as the keys underneath `external` to configure each separately. - -``` -GOTRUE_EXTERNAL_GITHUB_CLIENT_ID=myappclientid -GOTRUE_EXTERNAL_GITHUB_SECRET=clientsecretvaluessssh -``` - -No external providers are required, but you must provide the required values if you choose to enable any. - -`EXTERNAL_X_ENABLED` - `bool` - -Whether this external provider is enabled or not - -`EXTERNAL_X_CLIENT_ID` - `string` **required** - -The OAuth2 Client ID registered with the external provider. - -`EXTERNAL_X_SECRET` - `string` **required** - -The OAuth2 Client Secret provided by the external provider when you registered. - -`EXTERNAL_X_REDIRECT_URI` - `string` **required for gitlab** - -The URI a OAuth2 provider will redirect to with the `code` and `state` values. - -`EXTERNAL_X_URL` - `string` - -The base URL used for constructing the URLs to request authorization and access tokens. Used by `gitlab` only. Defaults to `https://gitlab.com`. - -### E-Mail - -Sending email is not required, but highly recommended for password recovery. -If enabled, you must provide the required values below. - -``` -GOTRUE_SMTP_HOST=smtp.mandrillapp.com -GOTRUE_SMTP_PORT=587 -GOTRUE_SMTP_USER=smtp-delivery@example.com -GOTRUE_SMTP_PASS=correcthorsebatterystaple -GOTRUE_SMTP_ADMIN_EMAIL=support@example.com -GOTRUE_MAILER_SUBJECTS_CONFIRMATION="Please confirm" -``` - -`SMTP_ADMIN_EMAIL` - `string` **required** - -The `From` email address for all emails sent. - -`SMTP_HOST` - `string` **required** - -The mail server hostname to send emails through. - -`SMTP_PORT` - `number` **required** - -The port number to connect to the mail server on. - -`SMTP_USER` - `string` - -If the mail server requires authentication, the username to use. - -`SMTP_PASS` - `string` - -If the mail server requires authentication, the password to use. - -`SMTP_MAX_FREQUENCY` - `number` - -Controls the minimum amount of time that must pass before sending another signup confirmation or password reset email. The value is the number of seconds. Defaults to 900 (15 minutes). - -`MAILER_AUTOCONFIRM` - `bool` - -If you do not require email confirmation, you may set this to `true`. Defaults to `false`. - -`MAILER_SECURE_EMAIL_CHANGE_ENABLED` - `bool` - -If `true`, send an email to both the user's current and new email with a confirmation link, otherwise send an email with confirmation link only to new email. Defaults to `true`. - -`MAILER_URLPATHS_INVITE` - `string` - -URL path to use in the user invite email. Defaults to `/`. - -`MAILER_URLPATHS_CONFIRMATION` - `string` - -URL path to use in the signup confirmation email. Defaults to `/`. - -`MAILER_URLPATHS_RECOVERY` - `string` - -URL path to use in the password reset email. Defaults to `/`. - -`MAILER_URLPATHS_EMAIL_CHANGE` - `string` - -URL path to use in the email change confirmation email. Defaults to `/`. - -`MAILER_SUBJECTS_INVITE` - `string` - -Email subject to use for user invite. Defaults to `You have been invited`. - -`MAILER_SUBJECTS_CONFIRMATION` - `string` - -Email subject to use for signup confirmation. Defaults to `Confirm Your Signup`. - -`MAILER_SUBJECTS_RECOVERY` - `string` - -Email subject to use for password reset. Defaults to `Reset Your Password`. - -`MAILER_SUBJECTS_MAGIC_LINK` - `string` - -Email subject to use for magic link email. Defaults to `Your Magic Link`. - -`MAILER_SUBJECTS_EMAIL_CHANGE` - `string` - -Email subject to use for email change confirmation. Defaults to `Confirm Email Change`. - -`MAILER_TEMPLATES_INVITE` - `string` - -URL path to an email template to use when inviting a user. -`SiteURL`, `Email`, and `ConfirmationURL` variables are available. - -Default Content (if template is unavailable): - -```html -

    You have been invited

    - -

    - You have been invited to create a user on {{ .SiteURL }}. Follow this link to accept the invite: -

    -

    Accept the invite

    -``` - -`MAILER_TEMPLATES_CONFIRMATION` - `string` - -URL path to an email template to use when confirming a signup. -`SiteURL`, `Email`, and `ConfirmationURL` variables are available. - -Default Content (if template is unavailable): - -```html -

    Confirm your signup

    - -

    Follow this link to confirm your user:

    -

    Confirm your mail

    -``` - -`MAILER_TEMPLATES_RECOVERY` - `string` - -URL path to an email template to use when resetting a password. -`SiteURL`, `Email`, and `ConfirmationURL` variables are available. - -Default Content (if template is unavailable): - -```html -

    Reset Password

    - -

    Follow this link to reset the password for your user:

    -

    Reset Password

    -``` - -`MAILER_TEMPLATES_MAGIC_LINK` - `string` - -URL path to an email template to use when sending magic link. -`SiteURL`, `Email`, and `ConfirmationURL` variables are available. - -Default Content (if template is unavailable): - -```html -

    Magic Link

    - -

    Follow this link to login:

    -

    Log In

    -``` - -`MAILER_TEMPLATES_EMAIL_CHANGE` - `string` - -URL path to an email template to use when confirming the change of an email address. -`SiteURL`, `Email`, `NewEmail`, and `ConfirmationURL` variables are available. - -Default Content (if template is unavailable): - -```html -

    Confirm Change of Email

    - -

    Follow this link to confirm the update of your email from {{ .Email }} to {{ .NewEmail }}:

    -

    Change Email

    -``` - -## Endpoints - -GoTrue exposes the following endpoints: - -### **GET /settings** - -Returns the publicly available settings for this gotrue instance. - -```json -{ - "external": { - "bitbucket": true, - "github": true, - "gitlab": true, - "google": true - }, - "disable_signup": false, - "autoconfirm": false -} -``` - -### **POST /signup** - -Register a new user with an email and password. - -```json -{ - "email": "email@example.com", - "password": "secret" -} -``` - -Returns: - -```json -{ - "id": "11111111-2222-3333-4444-5555555555555", - "email": "email@example.com", - "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00", - "created_at": "2016-05-15T19:53:12.368652374-07:00", - "updated_at": "2016-05-15T19:53:12.368652374-07:00" -} -``` - -### **POST /invite** - -Invites a new user with an email. -This endpoint requires the `service_role` or `supabase_admin` JWT set as an Auth Bearer header: - -e.g. - -```json -headers: { - "Authorization" : "Bearer eyJhbGciOiJI...M3A90LCkxxtX9oNP9KZO" -} -``` - -```json -{ - "email": "email@example.com" -} -``` - -Returns: - -```json -{ - "id": "11111111-2222-3333-4444-5555555555555", - "email": "email@example.com", - "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00", - "created_at": "2016-05-15T19:53:12.368652374-07:00", - "updated_at": "2016-05-15T19:53:12.368652374-07:00", - "invited_at": "2016-05-15T19:53:12.368652374-07:00" -} -``` - -### **POST /verify** - -Verify a registration or a password recovery. Type can be `signup` or `recovery` or `invite` -and the `token` is a token returned from either `/signup` or `/recover`. - -```json -{ - "type": "signup", - "token": "confirmation-code-delivered-in-email" -} -``` - -`password` is required for signup verification if no existing password exists. - -Returns: - -```json -{ - "access_token": "jwt-token-representing-the-user", - "token_type": "bearer", - "expires_in": 3600, - "refresh_token": "a-refresh-token", - "type": "signup | recovery | invite" -} -``` - -### **GET /verify** - -Verify a registration or a password recovery. Type can be `signup` or `recovery` or `magiclink` or `invite` -and the `token` is a token returned from either `/signup` or `/recover` or `/magiclink`. - -query params: - -```json -{ - "type": "signup", - "token": "confirmation-code-delivered-in-email" -} -``` - -User will be logged in and redirected to: - -```json -SITE_URL/#access_token=jwt-token-representing-the-user&token_type=bearer&expires_in=3600&refresh_token=a-refresh-token&type=invite -``` - -Your app should detect the query params in the fragment and use them to set the session (supabase-js does this automatically) - -You can use the `type` param to redirect the user to a password set form in the case of `invite` or `recovery`, -or show an account confirmed/welcome message in the case of `signup`, or direct them to some additional onboarding flow - -### **POST /magiclink** - -Magic Link. Will deliver a link (e.g. `/verify?type=magiclink&token=fgtyuf68ddqdaDd`) to the user based on -email address which they can use to redeem an access_token. - -By default Magic Links can only be sent once every 60 seconds - -```json -{ - "email": "email@example.com" -} -``` - -Returns: - -```json -{} -``` - -when clicked the magic link will redirect the user to `#access_token=x&refresh_token=y&expires_in=z&token_type=bearer&type=magiclink` (see `/verify` above) - -### **POST /recover** - -Password recovery. Will deliver a password recovery mail to the user based on -email address. - -By default recovery links can only be sent once every 60 seconds - -```json -{ - "email": "email@example.com" -} -``` - -Returns: - -```json -{} -``` - -### **POST /token** - -This is an OAuth2 endpoint that currently implements -the password and refresh_token grant types - -query params: - -``` -?grant_type=password -``` - -body: - -```json -{ - "email": "name@domain.com", - "password": "somepassword" -} -``` - -or - -query params: - -``` -grant_type=refresh_token -``` - -body: - -```json -{ - "refresh_token": "a-refresh-token" -} -``` - -Once you have an access token, you can access the methods requiring authentication -by settings the `Authorization: Bearer YOUR_ACCESS_TOKEN_HERE` header. - -Returns: - -```json -{ - "access_token": "jwt-token-representing-the-user", - "token_type": "bearer", - "expires_in": 3600, - "refresh_token": "a-refresh-token" -} -``` - -### **GET /user** - -Get the JSON object for the logged in user (requires authentication) - -Returns: - -```json -{ - "id": "11111111-2222-3333-4444-5555555555555", - "email": "email@example.com", - "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00", - "created_at": "2016-05-15T19:53:12.368652374-07:00", - "updated_at": "2016-05-15T19:53:12.368652374-07:00" -} -``` - -### **PUT /user** - -Update a user (Requires authentication). Apart from changing email/password, this -method can be used to set custom user data. - -```json -{ - "email": "new-email@example.com", - "password": "new-password", - "data": { - "key": "value", - "number": 10, - "admin": false - } -} -``` - -Returns: - -```json -{ - "id": "11111111-2222-3333-4444-5555555555555", - "email": "email@example.com", - "confirmation_sent_at": "2016-05-15T20:49:40.882805774-07:00", - "created_at": "2016-05-15T19:53:12.368652374-07:00", - "updated_at": "2016-05-15T19:53:12.368652374-07:00" -} -``` - -### **POST /admin/users** - -Creates a new user. Requires your `service_role` API key and thus should only be -used in secure server-side environments. - -```json -{ - "email": "new-email@example.com", - "password": "new-password", - "data": { - "key": "value", - "number": 10, - "admin": false - } -} -``` - -Returns: - -```json -{ - "id": "11111111-2222-3333-4444-5555555555555", - "aud": "authenticated", - "role": "authenticated", - "email": "email@example.com", - "app_metadata": { - "provider": "email" - }, - "user_metadata": null, - "created_at": "2016-05-15T19:53:12.368652374-07:00", - "updated_at": "2016-05-15T19:53:12.368652374-07:00" -} -``` - -### **GET /admin/users/{user_id}** - -Gets a user. Requires your `service_role` API key and thus should only be used -in secure server-side environments. - -Returns: - -```json -{ - "id": "11111111-2222-3333-4444-5555555555555", - "aud": "authenticated", - "role": "authenticated", - "email": "email@example.com", - "app_metadata": { - "provider": "email" - }, - "user_metadata": {}, - "created_at": "2016-05-15T19:53:12.368652374-07:00", - "updated_at": "2016-05-15T19:53:12.368652374-07:00" -} -``` - - -### **PUT /admin/users/{user_id}** - -Updates a user. Requires your `service_role` API key and thus should only be -used in secure server-side environments. - -```json -{ - "email": "email@example.com", - "password": "updated-password", - "data": { - "key": "updated-value", - "number": 10, - "admin": false - } -} -``` - -Returns: - -```json -{ - "id": "11111111-2222-3333-4444-5555555555555", - "aud": "authenticated", - "role": "authenticated", - "email": "email@example.com", - "app_metadata": { - "provider": "email" - }, - "user_metadata": {}, - "created_at": "2016-05-15T19:53:12.368652374-07:00", - "updated_at": "2016-05-15T19:53:12.368652374-07:00" -} -``` - -### **DELETE /admin/users/{user_id}** - -Deletes a user. Requires your `service_role` API key and thus should only be -used in secure server-side environments. - -### **POST /logout** - -Logout a user (Requires authentication). - -This will revoke all refresh tokens for the user. Remember that the JWT tokens -will still be valid for stateless auth until they expires. - -### **GET /authorize** - -Get access_token from external oauth provider - -query params: - -``` -provider=google | bitbucket | github | gitlab -``` - -Redirects to provider and then to `/callback` - -### **GET /callback** - -External provider should redirect to here - -Redirects to `#access_token=&refresh_token=&expires_in=3600&provider=` - -## Pre-built - -- [Docker](https://hub.docker.com/repository/docker/supabase/gotrue) diff --git a/web/docs/guides/api.mdx b/web/docs/guides/api.mdx deleted file mode 100644 index 3d9c80e88f1..00000000000 --- a/web/docs/guides/api.mdx +++ /dev/null @@ -1,402 +0,0 @@ ---- -id: api -title: APIs -description: Auto-generating and Realtime APIs. -sidebar_label: Overview ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Overview - -Supabase generates three types of API directly from your database schema. - -- REST - interact with your database through a restful interface. -- Realtime - listen to database changes. -- GraphQL - [in beta](https://supabase.com/blog/2021/12/03/pg-graphql). - -The APIs are: - -- **Instant and auto-generated.**
    As you update your database the changes are immediately accessible through your API. -- **Self documenting.**
    Supabase generates documentation in the Dashboard which updates as you make database changes. -- **Secure.**
    The API is configured to work with PostgreSQL's Row Level Security, provisioned behind an API gateway with key-auth enabled. -- **Fast.**
    Our benchmarks for basic reads are more than 300% faster than Firebase. The API is a very thin layer on top of Postgres, which does most of the heavy lifting. -- **Scalable.**
    The API can serve thousands of simultaneous requests, and works well for Serverless workloads. - - -### REST API {#rest-api-overview} - -Supabase provides a RESTful API using [PostgREST](https://postgrest.org/). This is a very thin API layer on top of Postgres. -It provides everything you need from a CRUD API: - -- Basic CRUD operations -- Deeply nested joins, allowing you to fetch data from multiple tables in a single fetch -- Works with Postgres Views -- Works with Postgres Functions -- Works with the Postgres security model - including Row Level Security, Roles, and Grants. - - - -### GraphQL API {#graphql-api-overview} - -:::note - -GraphQL is in Beta, and may have breaking changes. It is only available on self-hosted setups and Supabase projects created after 28th March 2022. - -::: - -GraphQL in Supabase works through [pg_graphql](https://supabase.com/blog/2021/12/03/pg-graphql), an open source PostgreSQL extension for GraphQL. - -### Realtime API {#realtime-api-overview} - -Supabase provides a Realtime API using [Realtime](https://github.com/supabase/realtime). You can use this to listen to database changes over websockets. -Realtime leverages PostgreSQL's built-in logical replication. You can manage your Realtime API simply by managing Postgres publications. - -## Getting started - -All APIs are auto-created from Database tables. After you have added tables or functions to your database, you can use the APIs provided. - -### Creating API Routes - -API routes are automatically created when you create Postgres Tables, Views, or Functions. - -Let's create our first -API route by creating a table called `todos` to store tasks. -This creates a corresponding route `todos` which can accept `GET`, `POST`, `PATCH`, & `DELETE` requests. - - - - - -1. Go to the [Table editor](https://app.supabase.com/project/_/editor) page in the Dashboard. -1. Click **New Table** and create a table with the name `todos`. -1. Click **Save**. -1. Click **New Column** and create a column with the name `task` and type `text`. -1. Click **Save**. - - - - - - -```sql --- Create a table called "todos" with a column to store tasks. - -create table todos ( - id bigint generated by default as identity primary key, - task text check (char_length(task) > 3) -); -``` - - - - -### API URL and Keys - -Every Supabase project has a unique API URL. Your API is secured behind an API gateway which requires an API Key for every request. - -1. Go to the [Settings](https://app.supabase.com/project/_/settings/general) page in the Dashboard. -2. Click **API** in the sidebar. -3. Find your API `URL`, `anon`, and `service_role` keys on this page. - - - -The REST API and the GraphQL API are both accessible through this URL: - -- REST: `https://.supabase.co/rest/v1` -- GraphQL: `https://.supabase.co/graphql/v1` - -Both of these routes require the `anon` key to be passed through an `apikey` header. - -#### API Keys - -You are provided with two keys: - -- an `anon` key, which is safe to be used in a browser context. -- a `service_role` key, which should only be used on a server. This key can bypass Row Level Security. NEVER use this key in a browser. - - -### Accessing the docs in the Dashboard - -#### REST API {#rest-api-dashboard-docs} - -Supabase generates documentation in the [Dashboard](https://app.supabase.com) which updates as you make database changes. -Let's view the documentation for a `countries` table which we created in our database. - -1. Go to the [API](https://app.supabase.com/project/_/api) page in the Dashboard. -2. Find the `countries` table under **Tables and Views** in the sidebar. -3. Switch between the JavaScript and the cURL docs using the tabs. - - - -#### GraphQL - -The GraphQL Endpoint that we provide (`https://.supabase.co/graphql/v1`) is compatible with any GraphiQL implementation that can pass an `apikey` header. -Some suggested applications: - -- [paw.cloud](https://paw.cloud) -- [insomnia.rest](https://insomnia.rest) -- [postman.com/graphql](https://www.postman.com/graphql/) -- Self-hosted GraphiQL: GraphiQL can be served through a simple HTML file. See [this discussion](https://github.com/supabase/supabase/discussions/6144) for more details. - -## Using the API - - -### REST API - -You can interact with your API directly via HTTP requests, or you can use the client libraries which we provide. - -Let's see how to make a request to the `todos` table which we created in the first step, -using the API URL (`SUPABASE_URL`) and Key (`SUPABASE_ANON_KEY`) we provided: - - - - - - -```javascript -// Initialize the JS client -import { createClient } from '@supabase/supabase-js' -const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY) - -// Make a request -const { data: todos, error } = await supabase - .from('todos') - .select('*') -``` - - - - -```bash -# Append /rest/v1/ to your URL, and then use the table name as the route -curl '/rest/v1/todos' \ --H "apikey: " \ --H "Authorization: Bearer " -``` - - - - -JS Reference: [select()](/docs/reference/javascript/select), -[insert()](/docs/reference/javascript/insert), -[update()](/docs/reference/javascript/update), -[upsert()](/docs/reference/javascript/upsert), -[delete()](/docs/reference/javascript/delete), -[rpc()](/docs/reference/javascript/rpc) (call Postgres functions). - - -### GraphQL API - -:::note - -To rebuild your GraphQL schema from the SQL schema, call `select graphql.rebuild_schema();`. -Be sure to rebuild the GraphQL schema after altering the SQL schema. - -::: - -You can use any GraphQL client with the Supabase GraphQL API. For our GraphQL example we will use [urql](https://formidable.com/open-source/urql/docs/). - - - - - -```javascript -import { createClient, useQuery } from 'urql' - -// Prepare API key and Authorization header -const headers = { - apikey: , - authorization: `Bearer: ${ -} - -// Create GraphQL client -// See: https://formidable.com/open-source/urql/docs/basics/react-preact/#setting-up-the-client -const client = createClient({ - url: '/graphql/v1', - fetchOptions: function createFetchOptions() { - return { headers } - }, -}) - -// Prepare our GraphQL query -const TodosQuery = ` - query { - todosCollection { - edges { - node { - id - title - } - } - } - } -` - -// Query for the data (React) -const [result, reexecuteQuery] = useQuery({ - query: TodosQuery, -}) - -// Read the result -const { data, fetching, error } = result -``` - - - - -```bash -# Append /graphql/v1/ to your URL, and then use the table name as the route -curl --request POST '/graphql/v1' \ --H 'apikey: ' \ --H 'Authorization: Bearer ' \ --d '{ "query":"{ todos(first: 3) { edges { node { id } } } }" }' -``` - - - - - -### Realtime API - -By default Realtime is disabled on your database. Let's turn on Realtime for the `todos` table. - - - - - -1. Go to the [Database](https://app.supabase.com/project/_/database/tables) page in the Dashboard. -2. Click on **Replication** in the sidebar. -3. Control which database events are sent by toggling **Insert**, **Update**, and **Delete**. -4. Control which tables broadcast changes by selecting **Source** and toggling each table. - - - - - - -```sql -alter publication supabase_realtime add table todos; -``` - - - - -From the client, we can listen to any new data that is inserted into the `todos` table: - -```javascript -// Initialize the JS client -import { createClient } from '@supabase/supabase-js' -const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY) - -// Create a function to handle inserts -const handleInserts = (payload) => { - console.log('Change received!', payload) -} - -// Listen to inserts -const { data: todos, error } = await supabase - .from('todos') - .on('INSERT', handleInserts) - .subscribe() -``` - -Use [subscribe()](/docs/reference/javascript/subscribe) to listen to database changes. -The Realtime API works through PostgreSQL's replication functionality. Postgres sends database changes to a [publication](/docs/guides/database/replication#publications) -called `supabase_realtime`, and by managing this publication you can control which data is broadcast. - -## API Security - - -### Securing your Routes - - -Your API is designed to work with Postgres Row Level Security (RLS). If you use Supabase [Auth](/docs/guides/auth), you can restrict data based on the logged-in user. -To control access to your data, you can use [Policies](/docs/guides/auth#policies). -When you create a table in Postgres, Row Level Security is disabled by default. To enable RLS: - - - - - -1. Go to the [Authentication](https://app.supabase.com/project/_/auth/users) page in the Dashboard. -2. Click on **Policies** in the sidebar. -3. Select **Enable RLS** to enable Row Level Security. - - - - -```sql -alter table todos enable row level security; -``` - - - - -### The `service_role` key - -Never expose the `service_role` key in a browser or anywhere where a user can see it. This Key can is designed to bypass Row Level Security - so it should only be used on a private server. - -We have [partnered with GitHub](https://supabase.com/blog/2022/03/28/community-day#supabase-is-now-a-github-secret-scanning-partner) to scan for Supabase `service_role` keys pushed to public repositories. -If they detect any keys with service_role privileges being pushed to GitHub, they will forward the API key to us, so that we can automatically revoke the detected secrets and notify you, protecting your data against malicious actors. - -### Safeguards towards accidental deletes and updates - -For all projects, by default, the Postgres extension [safeupdate](https://github.com/eradman/pg-safeupdate) is enabled for all queries coming from the API. -This ensures that any `delete()` or `update()` would fail if there are no accompanying filters provided. -To confirm that safeupdate is enabled for queries going through the API of your project, the following query could be run: -```sql -select usename,useconfig from pg_shadow where usename = 'authenticator' ; -``` - -The expected value for `useconfig` should be: -``` -["session_preload_libraries=supautils, safeupdate"] -``` diff --git a/web/docs/guides/api/generating-types.mdx b/web/docs/guides/api/generating-types.mdx deleted file mode 100644 index db7882f66d0..00000000000 --- a/web/docs/guides/api/generating-types.mdx +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: generating-types -title: "Generating Types" -description: How to generate types for your API and Supabase libraries. ---- - -Supabase APIs are generated from your database, which means that we can use database introspection to generate type-safe API definitions. - -### Generating types from OpenAPI specification - -Supabase generates an OpenAPI specification file for your database which can be used to generate your data types for usage with TypeScript. - -The OpenAPI specification for your Supabase project can be accessed as follows: - -```txt -https://your-project.supabase.co/rest/v1/?apikey=your-anon-key -``` - -Using the open source [openapi-typescript](https://github.com/drwpow/openapi-typescript#%EF%B8%8F-reading-specs-from-remote-resource) tool you can generate your types and store them locally: - -```bash -npx openapi-typescript https://your-project.supabase.co/rest/v1/?apikey=your-anon-key --output types/supabase.ts -``` - -Important notes: - -- Since the generator uses JSON API, there is no way to determine if a column is an Array. It will generate array types as `string`, even though Supabase handles this automatically and returns arrays. - You can fix this manually in the files by changing the type, e.g. `names: string` -> `names: string[]` -- The types won't automatically stay in sync with your database, so make sure to regenerate your types after your make changes to your database. - -After you have generated your types, you can use them in your TypeScript projects: - -```ts -import { NextApiRequest, NextApiResponse } from "next" -import { createClient } from "@supabase/supabase-js" -import { definitions } from "../../types/supabase" - -const supabase = createClient( - process.env.NEXT_PUBLIC_SUPABASE_URL, - process.env.SUPABASE_SECRET_KEY -) - -export default async (req: NextApiRequest, res: NextApiResponse) => { - const allOnlineUsers = await supabase - .from("users") - .select("*") - .eq("status", "ONLINE") - res.status(200).json(allOnlineUsers) -}; -``` - -For more advance type-support, check out [`postgrest-js-tools`](https://github.com/mzalevski/postgrest-js-tools). - -## Update types automatically with GitHub Actions - -One way to keep your type definitions in sync with your database is to set up a GitHub action that runs on a schedule. - -The following script can be run in your terminal to produce the file `types/database/index.ts`. -``` -npx openapi-typescript https://your-project.supabase.co/rest/v1/?apikey=your-anon-key --output types/database/index.ts -``` - -You can add this script to your `package.json` and run it using `npm run update-types`: - -``` -"update-types": "npx openapi-typescript \"${SUPABASE_URL}/rest/v1/?apikey=${SUPABASE_ANON_KEY}\" --version=2 --output types/database/index.ts" -``` - -You can use GitHub actions to generate this file automatically. This script will commit the change to your repo every night. -Create a file `.github/workflows/update-types.yml` and add the following snippet into this file to define the action along with the environment variables. - -```yml -name: Update database types - -on: - schedule: - # sets the action to run daily. You can modify this to run the action more or less frequently - - cron: '0 0 * * *' - -jobs: - update: - runs-on: ubuntu-latest - env: - SUPABASE_URL: ${{secrets.SUPABASE_URL}} - SUPABASE_ANON_KEY: ${{secrets.SUPABASE_ANON_KEY}} - steps: - - uses: actions/checkout@v2 - with: - persist-credentials: false - fetch-depth: 0 - - uses: actions/setup-node@v2.1.5 - with: - node-version: 14 - - run: npm run update-types - - name: check for file changes - id: git_status - run: | - echo "::set-output name=status::$(git status -s)" - - name: Commit files - if: ${{contains(steps.git_status.outputs.status, ' ')}} - run: | - git add types/database/index.ts - git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" - git config --local user.name "github-actions[bot]" - git commit -m "Update database types" -a - - name: Push changes - if: ${{contains(steps.git_status.outputs.status, ' ')}} - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: ${{ github.ref }} -``` - -Alternatively, you can use a community-supported GitHub action: [generate-supabase-db-types-github-action](https://github.com/lyqht/generate-supabase-db-types-github-action). - -## Resources - -- [Generating Supabase types with GitHub Actions](https://blog.esteetey.dev/how-to-create-and-test-a-github-action-that-generates-types-from-supabase-database) \ No newline at end of file diff --git a/web/docs/guides/auth.mdx b/web/docs/guides/auth.mdx deleted file mode 100644 index 6efba7332ff..00000000000 --- a/web/docs/guides/auth.mdx +++ /dev/null @@ -1,167 +0,0 @@ ---- -id: auth -title: Auth -description: Use Supabase to Authenticate and Authorize your users. -sidebar_label: Overview ---- - -import Link from '@docusaurus/Link' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import providers from '@site/src/data/authProviders' - - - -## Overview - -There are two parts to every Auth system: - -- **Authentication:** should this person be allowed in? If yes, who are they? -- **Authorization:** once they are in, what are they allowed to do? - -Supabase Auth is designed to work either as a standalone product, or deeply integrated with the other Supabase products. -Postgres is at the heart of everything we do, and the Auth system follows this principle. We leverage Postgres' built-in Auth functionality wherever possible. - -## Authentication - -You can authenticate your users in several ways: - -- Email & password. -- Magic links (one-click logins). -- Social providers. -- Phone logins. - -### Providers - -We provide a suite of Providers and login methods. - -
    -
    - {providers.map((x) => ( -
    - -
    -
    - {x.logo && {x.name}} -

    {x.name}

    -

    - {x.official ? - Official - : - - Unofficial - - } -

    -
    -
    -
    - Platform: - {x.platform.toString()} -
    -
    - Self-Hosted: - {x.selfHosted.toString()} -
    -
    -
    - -
    - ))} -
    -
    - - -### Simple interface - -You can enable third-providers with the click of a button by navigating to Authentication > Settings > External OAuth Providers and inputting your `Client ID` and `Secret` for each. - -![OAuth Logins.](/img/supabase-oauth-logins.png) - - -## Authorization - - -When you need granular authorization rules, nothing beats PostgreSQL's Row Level Security (RLS). - -Policies are PostgreSQL's rule engine. They are incredibly powerful and flexible, allowing you to write complex SQL rules which fit your unique business needs. - -Get started with our [Row Level Security Guides](/docs/guides/auth/row-level-security). - - -### Row Level Security - -Authentication only gets you so far. When you need granular authorization rules, nothing beats PostgreSQL's [Row Level Security (RLS)](https://www.postgresql.org/docs/current/ddl-rowsecurity.html). Supabase makes it simple to turn RLS on and off. - - - -### Policies - -[Policies](https://www.postgresql.org/docs/current/sql-createpolicy.html) are PostgreSQL's rule engine. They are incredibly powerful and flexible, allowing you to write complex SQL rules which fit your unique business needs. - - - -With policies, your database becomes the rules engine. Instead of repetitively filtering your queries, like this ... - -```js -const loggedInUserId = 'd0714948' -let { data, error } = await supabase - .from('users') - .select('user_id, name') - .eq('user_id', loggedInUserId) - -// console.log(data) -// => { id: 'd0714948', name: 'Jane' } -``` - -... you can simply define a rule on your database table, `auth.uid() = user_id`, and your request will return the rows which pass the rule, even when you remove the filter from your middleware: - -```js -let { data, error } = await supabase.from('users').select('user_id, name') - -// console.log(data) -// Still => { id: 'd0714948', name: 'Jane' } -``` - - -### How It Works - -1. A user signs up. Supabase creates a new user in the `auth.users` table. -2. Supabase returns a new JWT, which contains the user's `UUID`. -3. Every request to your database also sends the JWT. -4. Postgres inspects the JWT to determine the user making the request. -5. The user's UID can be used in policies to restrict access to rows. - -Supabase provides a special function in Postgres, `auth.uid()`, which extracts the user's UID from the JWT. This is especially useful when creating policies. - - - -## User Management - -Supabase makes it simple to manage your users. - - - -When users sign up, Supabase assigns them a unique ID. You can reference this ID anywhere in your database. For example, you might create a `profiles` table referencing `id` in the `auth.users` table using a `user_id` field. - -Supabase provides the routes to [sign up](/docs/reference/javascript/auth-signup), [log in](/docs/reference/javascript/auth-signin), -[log out](/docs/reference/javascript/auth-signout), and manage users in your apps and websites. - - -## Next Steps - -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/auth/auth-apple.mdx b/web/docs/guides/auth/auth-apple.mdx deleted file mode 100644 index fc3f776eca1..00000000000 --- a/web/docs/guides/auth/auth-apple.mdx +++ /dev/null @@ -1,214 +0,0 @@ ---- -id: auth-apple -title: 'Login with Apple' -description: Add Apple OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Apple Auth for your project, you need to set up an Apple OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Apple OAuth consists of six broad steps: - -- Obtaining an `App Id` with “Sign In with Apple” capabilities. -- Obtaining a `Services Id` - this will serve as the `client_id`. -- Obtaining a `secret key` that will be used to get our `client_secret`. -- Generating the `client_secret` using the `secret key`. -- Add your `client id` and `client secret` keys to your [Supabase Project](https://app.supabase.com). -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js). - -## Steps - -### Access your Apple Developer account - -- Go to [developer.apple.com](https://developer.apple.com). -- Click on `Account` at the top right to log in. - -![Apple Developer Portal.](/img/guides/auth-apple/apple-developer-portal.png) - -### Obtain an App ID - -- Go to `Certificates, Identifiers & Profiles`. -- Click on `Identifiers` at the left. -- Click on the `+` sign in the upper left next to `Identifiers`. -- Select `App IDs` and click `Continue`. -- Select type `App` and click `Continue`. -- Fill out your app information: - - App description. - - Bundle ID (Apple recommends reverse-domain name style, so if your domain is acme.com and your app is called roadrunner, use: "com.acme.roadrunner"). - - Scroll down and check `Sign In With Apple`. - - Click `Continue` at the top right. - - Click `Register` at the top right. - -### Obtain a Services ID - -This will serve as the `client_id` when you make API calls to authenticate the user. - -- Go to `Certificates, Identifiers & Profiles`. -- Click on `Identifiers` at the left. -- Click on the `+` sign in the upper left next to `Identifiers`. -- Select `Services IDs` and click `Continue`. -- Fill out your information: - - App description. - - Bundle ID (you can't use the same Bundle ID from the previous step, but you can just add something to the beginning, such as "app." to make it app.com.acme.roadrunner"). - - SAVE THIS ID -- this ID will become your `client_id` later. - - Click `Continue` at the top right. - - Click `Register` at the top right. - -### Find your callback URL - -The next step requires a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Configure your Services ID - -- Under `Identifiers`, click on your newly-created Services ID. -- Check the box next to `Sign In With Apple` to enable it. -- Click `Configure` to the right. -- Make sure your newly created Bundle ID is selected under `Primary App ID` -- Add your domain to the `Domains and Subdomains` box (do not add `https://`, just add the domain). -- In the `Return URLs` box, type the callback URL of your app which you found in the previous step and click `Next` at the bottom right. -- Click `Done` at the bottom. -- Click `Continue` at the top right. -- Click `Save` at the top right. - -### Download your secret key - -Now you'll need to download a `secret key` file from Apple that will be used to generate your `client_secret`. - -- Go to `Certificates, Identifiers & Profiles`. -- Click on `Keys` at the left. -- Click on the `+` sign in the upper left next to `Keys`. -- Enter a `Key Name`. -- Check `Sign In with Apple`. -- Click `Configure` to the right. -- Select your newly-created Services ID from the dropdown selector. -- Click `Save` at the top right. -- Click `Continue` at the top right. -- Click `Register` at the top right. -- Click `Download` at the top right. -- Save the downloaded file -- this contains your "secret key" that will be used to generate your `client_secret`. -- Click `Done` at the top right. - -### Generate a `client_secret` - -The `secret key` you downloaded is used to create the `client_secret` string you'll need to authenticate your users. - -According to the [Apple Docs](https://developer.apple.com/documentation/signinwithapplerestapi/generate_and_validate_tokens) it needs to be a JWT -token encrypted using the Elliptic Curve Digital Signature Algorithm (ECDSA) with the P-256 curve and the SHA-256 hash algorithm. - -At this time, the easiest way to generate this JWT token is with [Ruby](https://www.ruby-lang.org/en/). -If you don't have Ruby installed, you can [Download Ruby Here](https://www.ruby-lang.org/en/downloads). - -- Install Ruby (or check to make sure it's installed on your system). -- Install [ruby-jwt](https://github.com/jwt/ruby-jwt). -- From the command line, run: `sudo gem install jwt`. - -Create the script below using a text editor: `secret_gen.rb` - -```ruby -require "jwt" - -key_file = "Path to the private key" -team_id = "Your Team ID" -client_id = "The Service ID of the service you created" -key_id = "The Key ID of the private key" - -validity_period = 180 # In days. Max 180 (6 months) according to Apple docs. - -private_key = OpenSSL::PKey::EC.new IO.read key_file - -token = JWT.encode( - { - iss: team_id, - iat: Time.now.to_i, - exp: Time.now.to_i + 86400 * validity_period, - aud: "https://appleid.apple.com", - sub: client_id - }, - private_key, - "ES256", - header_fields= - { - kid: key_id - } -) -puts token -``` - -1. Edit the `secret_gen.rb` file: - -- `key_file` = "Path to the private key you downloaded from Apple". It should look like this: `AuthKey_XXXXXXXXXX.p8`. -- `team_id` = "Your Team ID". This is found at the top right of the Apple Developer site (next to your name). -- `client_id` = "The Service ID of the service you created". This is the `Services ID` you created in the above step `Obtain a Services ID`. If you've lost this ID, you can find it in the Apple Developer Site: - - Go to `Certificates, Identifiers & Profiles`. - - Click `Identifiers` at the left. - - At the top right drop-down, select `Services IDs`. - - Find your Identifier in the list (i.e. app.com.acme.roadrunner). -- `key_id` = "The Key ID of the private key". This can be found in the name of your downloaded secret file (For a file named `AuthKey_XXXXXXXXXX.p8` your key_id is `XXXXXXXXXX`). If you've lost this ID, you can find it in the Apple Developer Site: - - Go to `Certificates, Identifiers & Profiles`. - - Click `Keys` at the left. - - Click on your newly-created key in the list. - - Look under `Key ID` to find your key_id. - -2. From the command line, run: `ruby secret_gen.rb > client_secret.txt`. -3. Your `client_secret` is now stored in this `client_secret.txt` file. - -### Add your OAuth credentials to Supabase - -- Go to your [Supabase Dashboard](https://app.supabase.com). -- In the left sidebar, click the `Authentication` icon (near the top). -- Click `Settings` from the list to go to the `Authentication Settings` page. -- Enter the final (hosted) URL of your app under `Site URL` (this is important). -- Under `External OAuth Providers` turn `Apple Enabled` to ON. -- Enter your `client_id` and `client_secret` saved in the previous steps. -- Click `Save`. - -### Add login code to your client app - -The JavaScript client code is documented in the [Supabase OAuth Reference](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'apple', -}) -``` - -Add a function which you can call from a button, link, or UI element. - -```js -async function signInWithApple() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'apple', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Apple Developer Account](https://developer.apple.com). -- [Ruby](https://www.ruby-lang.org/en/) Docs. -- [ruby-jwt](https://github.com/jwt/ruby-jwt) library. -- Thanks to [Janak Amarasena](https://medium.com/@janakda) who did all the heavy lifting in [How to configure Sign In with Apple](https://medium.com/identity-beyond-borders/how-to-configure-sign-in-with-apple-77c61e336003). diff --git a/web/docs/guides/auth/auth-azure.mdx b/web/docs/guides/auth/auth-azure.mdx deleted file mode 100644 index 9b8b0e0ccf1..00000000000 --- a/web/docs/guides/auth/auth-azure.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: auth-azure -title: 'Login with Azure' -description: Add Azure OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Azure Auth for your project, you need to set up an Azure OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Azure OAuth consists of four broad steps: - -- Create an application under Azure Active Directory. -- Obtain a `Application (client) ID` with “Sign In with Azure” capabilities. This will be used as the `client id`. -- Create a `Secret ID` with “Sign In with Azure” capabilities. The value of the secret will be used as the `client secret`. -- Whitelist the callback url of your application. - -## Steps - -### Access your Azure Developer account - -- Go to [portal.azure.com](https://portal.azure.com/#home). -- Login and select "Azure Active Directory" under the list of Azure Services. - -### Register an application - -- Under Azure Active Directory, select "App registrations" in the side panel. -- Select "New registration". -- Choose a name and select your preferred option for the supported account types. -- Specify the "Redirect URI". -- The redirect / callback URI should look like this: `https://.supabase.co/auth/v1/callback` -- Click "Register" at the bottom of the form. - -![Register an application.](/img/guides/auth-azure/azure-register-app.png) - -### Obtain a Client ID - -This will serve as the `client_id` when you make API calls to authenticate the user. - -- Once your app has been registered, the client id can be found under the [list of app registrations](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps) under the column titled "Application (client) ID". - -![Obtain the client id](/img/guides/auth-azure/azure-client-id.png) - -### Obtain a Secret ID - -This will serve as the `client_secret` when you make API calls to authenticate the user. - -- Click on the name of the app registered above. -- Under "Essentials", click on "Client credentials". -- Navigate to the "Client secrets" tab and select "New client secret". -- Enter a description and choose your preferred expiry for the secret. -- Once the secret is generated, save the `value` (not the secret ID). - -![Obtain the client secret](/img/guides/auth-azure/azure-client-secret.png) - -## Obtain the Tenant URL - -This will allow your users to use your custom Azure login page when logging in. - -- Select the Directory (Tenant) ID value. -- The Azure Tenant URL should look like this: `https://login.microsoftonline.com/` - -![Obtain the tenant url](/img/guides/auth-azure/azure-tenant-url.png) - -### Add login code to your client app - -The JavaScript client code is documented in the [Supabase OAuth Reference](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'azure', -}) -``` - -Add a function which you can call from a button, link, or UI element. - -```js -async function signInWithAzure() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'azure', - }, { - scopes: 'email', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Azure Developer Account](https://portal.azure.com). -- [GitHub Discussion](https://github.com/supabase/gotrue/pull/54#issuecomment-757043573). diff --git a/web/docs/guides/auth/auth-bitbucket.mdx b/web/docs/guides/auth/auth-bitbucket.mdx deleted file mode 100644 index 774cd32c91d..00000000000 --- a/web/docs/guides/auth/auth-bitbucket.mdx +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: auth-bitbucket -title: 'Login with Bitbucket' -description: Add Bitbucket OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Bitbucket Auth for your project, you need to set up a BitBucket OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Setting up Bitbucket logins for your application consists of 3 parts: - -- Create and configure a Bitbucket OAuth Consumer on [Bitbucket](https://bitbucket.org) -- Add your Bitbucket OAuth Consumer keys to your [Supabase Project](https://app.supabase.com) -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) - -## Steps - -### Access your Bitbucket account - -- Go to [bitbucket.org](https://bitbucket.org/). -- Click on `Login` at the top right to log in. - -![Bitbucket Developer Portal.](/img/guides/auth-bitbucket/bitbucket-portal.png) - -### Find your callback URL - -The next step requires a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Create a Bitbucket OAuth app - -- Click on your profile icon at the bottom left -- Click on `All Workspaces` -- Select a workspace and click on it to select it -- Click on `Settings` on the left -- Click on `OAuth consumers` on the left under `Apps and Features` (near the bottom) -- Click `Add Consumer` at the top -- Enter the name of your app under `Name` -- In `Callback URL`, type the callback URL of your app -- Check the permissions you need (Email, Read should be enough) -- Click `Save` at the bottom -- Click on your app name (the name of your new OAuth Consumer) -- Copy your `Key` (`client_key`) and `Secret` (`client_secret`) codes - -### Add your Bitbucket credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com) -- In the left sidebar, click the `Authentication` icon (near the top) -- Click `Settings` from the list to go to the `Authentication Settings` page -- Enter the final (hosted) URL of your app under `Site URL` (this is important) -- Under `External OAuth Providers` turn `Bitbucket Enabled` to ON -- Enter your `client_id` and `client_secret` saved in the previous step -- Click `Save` - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'bitbucket', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithBitbucket() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'bitbucket', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Bitbucket Account](https://bitbucket.org) diff --git a/web/docs/guides/auth/auth-discord.mdx b/web/docs/guides/auth/auth-discord.mdx deleted file mode 100644 index 05ea31a6eea..00000000000 --- a/web/docs/guides/auth/auth-discord.mdx +++ /dev/null @@ -1,108 +0,0 @@ ---- -id: auth-discord -title: 'Login with Discord' -description: Add Discord OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Discord Auth for your project, you need to set up a Discord Application and add the Application OAuth credentials to your Supabase Dashboard. - -## Overview - -Setting up Discord logins for your application consists of 3 parts: - -- Create and configure a Discord Application [Discord Developer Portal](https://discord.com/developers) -- Add your Discord OAuth Consumer keys to your [Supabase Project](https://app.supabase.com) -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) - -## Steps - -### Access your Discord account - -- Go to [discord.com](https://discord.com/). -- Click on `Login` at the top right to log in. - -![Discord Portal.](/img/guides/auth-discord/discord-portal.png) - -- Once logged in, go to [discord.com/developers](https://discord.com/developers). - -![Discord Portal.](/img/guides/auth-discord/discord-developer-portal.png) - -### Find your callback URL - -In the next step you require a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Create a Discord Application - -- Click on `New Application` at the top right. -- Enter the name of your application and click `Create`. -- Click on `OAuth2` under `Settings` in the left side panel. -- Click `Add Redirect` under `Redirects`. -- Type or paste your `callback URL` into the `Redirects` box. -- Click `Save Changes` at the bottom. -- Copy your `Client ID` and `Client Secret` under `Client information`. - -### Add your Discord credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com) -- In the left sidebar, click the `Authentication` icon (near the top) -- Click `Settings` from the list to go to the `Authentication Settings` page -- Enter the final (hosted) URL of your app under `Site URL` (this is important) -- Under `External OAuth Providers` turn `Discord Enabled` to ON -- Enter your `client_id` and `client_secret` saved in the previous step -- Click `Save` - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'discord', -}) -``` - -:::note - -If you call `signIn()` when already logged in, Discord will prompt the user again for authorization. - -::: - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithDiscord() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'discord', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Discord Account](https://discord.com) -- [Discord Developer Portal](https://discord.com/developers) diff --git a/web/docs/guides/auth/auth-email.mdx b/web/docs/guides/auth/auth-email.mdx deleted file mode 100644 index 8edcca138e2..00000000000 --- a/web/docs/guides/auth/auth-email.mdx +++ /dev/null @@ -1,143 +0,0 @@ ---- -id: auth-email -title: 'Login With Email' -description: Use Supabase to Authenticate and Authorize your users using email. ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -## Overview - -Setting up Email logins for your Supabase application. - -- Add Email authenticator to your [Supabase Project](https://app.supabase.com) -- Add the login code to your application - [JavaScript](https://github.com/supabase/supabase-js) | [Dart](https://github.com/supabase/supabase-dart) - -## Configure email settings - -- Go to your [Supabase Project Dashboard](https://app.supabase.com) -- In the left sidebar, click the `Authentication` icon (near the top) -- Click `Settings` from the list to go to the `Authentication Settings` page -- Enter the final (hosted) URL of your app under `Site URL` -- Under `Email Auth` turn `Enable Email Signup` to ON -- Click `Save` - -:::note Self hosting - -For self-hosting, you can update your project configuration using the files and environment variables provided. -See the [self-hosting docs](/docs/guides/hosting/overview#configuration) for details. - -::: - -### Add login code to your client app - -Add logins using our client libraries: - -- [JavaScript](/docs/reference/javascript/auth-signin#sign-in-with-email) -- [Dart](/docs/reference/dart/auth-signin#sign-in-with-email) - - - - - -```js -const { user, error } = await supabase.auth.signIn({ - email: 'example@email.com', - password: 'example-password', -}) -``` - - - - - -```dart -final res = await supabase.auth.signIn( - email: 'example@email.com', - password: 'example-password' -); - -final user = res.data?.user; -final error = res.error; -``` - - - - - -Add this function which you can call from a button, link, or UI element. - - - - - -```js -async function signInWithEmail() { - const { user, error } = await supabase.auth.signIn({ - email: 'example@email.com', - password: 'example-password', - }) -} -``` - - - - - -```dart -Future signInWithEmail() async { - await supabase.auth.signIn( - email: 'example@email.com', - password: 'example-password' - ); -} -``` - - - - - -To log out: - - - - - -```js -async function signOut() { - const { error } = await supabase.auth.signOut() -} -``` - - - - - -```dart -Future signOut() async { - await supabase.auth.signOut(); -} -``` - - - - - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Supabase Dart Client](https://github.com/supabase/supabase-dart) diff --git a/web/docs/guides/auth/auth-facebook.mdx b/web/docs/guides/auth/auth-facebook.mdx deleted file mode 100644 index d3fcccb5c06..00000000000 --- a/web/docs/guides/auth/auth-facebook.mdx +++ /dev/null @@ -1,119 +0,0 @@ ---- -id: auth-facebook -title: 'Login with Facebook' -description: Add Facebook OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Facebook Auth for your project, you need to set up a Facebook OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Setting up Facebook logins for your application consists of 3 parts: - -- Create and configure a Facebook Application on the [Facebook Developers Site](https://developers.facebook.com) -- Add your Facebook keys to your [Supabase Project](https://app.supabase.com) -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) - -## Steps - -### Access your Facebook Developer account - -- Go to [developers.facebook.com](https://developers.facebook.com). -- Click on `Log In` at the top right to log in. - -![Facebook Developer Portal.](/img/guides/auth-facebook/facebook-portal.png) - -### Create a Facebook App - -- Click on `My Apps` at the top right. -- Click `Create App` near the top right. -- Select your app type and click `Continue`. -- Fill in your app information, then click `Create App`. -- This should bring you to the screen: `Add Products to Your App`. (Alternatively you can click on `Add Product` in the left sidebar to get to this screen.) - -### Find your callback URI - -The next step requires a callback URI, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Set up FaceBook Login for your Facebook App - -From the `Add Products to your App` screen: - -- Click `Setup` under `Facebook Login` -- Skip the Quickstart screen, instead, in the left sidebar, click `Settings` under `Facebook Login` -- Enter your callback URI under `Valid OAuth Redirect URIs` on the `Facebook Login Settings` page -- Enter this in the `Valid OAuth Redirect URIs` box -- Click `Save Changes` at the bottom right - -Be aware that you have to set the right access levels on your Facebook App to enable 3rd party applications to read the email address. -From the `App Review -> Permissions and Features` screen: - -- Click the button `Request Advanced Access` on the right side of `public_profile` and `email` - -You can read more about access levels [here](https://developers.facebook.com/docs/graph-api/overview/access-levels/) - -### Copy your Facebook App ID and Secret - -- Click `Settings / Basic` in the left sidebar -- Copy your App ID from the top of the `Basic Settings` page -- Under `App Secret` click `Show` then copy your secret -- Make sure all required fields are completed on this screen. - -### Enter your Facebook App ID and Secret into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com) -- In the left sidebar, click the `Authentication` icon (near the top) -- Click `Settings` from the list to go to the `Authentication Settings` page -- Enter the final (hosted) URL of your app under `Site URL` (this is important) -- Under `External OAuth Providers` turn `Facebook Enabled` to ON -- Enter your `Facebook client ID` and `Facebook secret` saved in the previous step -- Click `Save` - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'facebook', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithFacebook() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'facebook', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Facebook Developers Dashboard](https://developers.facebook.com/) diff --git a/web/docs/guides/auth/auth-github.mdx b/web/docs/guides/auth/auth-github.mdx deleted file mode 100644 index c2d43ba9108..00000000000 --- a/web/docs/guides/auth/auth-github.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -id: auth-github -title: 'Login with GitHub' -description: Add GitHub OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable GitHub Auth for your project, you need to set up a GitHub OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Setting up GitHub logins for your application consists of 3 parts: - -- Create and configure a GitHub OAuth App on [GitHub](https://github.com) -- Add your GitHub OAuth keys to your [Supabase Project](https://app.supabase.com) -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) - -## Steps - -### Access your GitHub account - -- Go to [github.com](https://github.com). -- Click on `Sign In` at the top right to log in. - -![GitHub Developer Portal.](/img/guides/auth-github/github-portal.png) - -### Create a GitHub Oauth App - -Go to the [GitHub Developer Settings](https://github.com/settings/developers) page: - -- Click on your profile photo at the top right -- Click Settings near the bottom of the menu -- In the left sidebar, click `Developer settings` (near the bottom) -- In the left sidebar, click `OAuth Apps` - -### Find your callback URL - -The next step requires a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Register a new OAuth application - -- Click `Register a new application`. If you've created an app before, click `New OAuth App` here. -- In `Application name`, type the name of your app. -- In `Homepage URL`, type the full URL to your app's website. -- In `Authorization callback URL`, type the callback URL of your app. -- Enter the URL in the `Valid OAuth Redirect URIs` box. -- Click `Save Changes` at the bottom right. -- Click `Register Application`. - -Copy your new OAuth credentials - -- Copy and save your `Client ID`. -- Click `Generate a new client secret`. -- Copy and save your `Client secret`. - -### Enter your GitHub credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com) -- In the left sidebar, click the `Authentication` icon (near the top) -- Click `Settings` from the list to go to the `Authentication Settings` page -- Enter the final (hosted) URL of your app under `Site URL` (this is important) -- Under `External OAuth Providers` turn `GitHub Enabled` to ON -- Enter your `GitHub Client ID` and `GitHub Client Secret` saved in the previous step -- Click `Save` - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'github', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithGithub() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'github', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [GitHub Developer Settings](https://github.com/settings/developers) diff --git a/web/docs/guides/auth/auth-gitlab.mdx b/web/docs/guides/auth/auth-gitlab.mdx deleted file mode 100644 index 5bcd2971232..00000000000 --- a/web/docs/guides/auth/auth-gitlab.mdx +++ /dev/null @@ -1,99 +0,0 @@ ---- -id: auth-gitlab -title: 'Login with GitLab' -description: Add GitLab OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable GitLab Auth for your project, you need to set up a GitLab OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Setting up GitLab logins for your application consists of 3 parts: - -- Create and configure a GitLab Application on [GitLab](https://gitlab.com) -- Add your GitLab Application keys to your [Supabase Project](https://app.supabase.com) -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) - -## Steps - -### Access your GitLab account - -- Go to [gitlab.com](https://gitlab.com). -- Click on `Login` at the top right to log in. - -![GitLab Developer Portal.](/img/guides/auth-gitlab/gitlab-portal.png) - -### Find your callback URL - -The next step requires a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Create your GitLab Application - -- Click on your `profile logo` (avatar) in the top-right corner. -- Select `Edit profile`. -- In the left sidebar, select Applications. -- Enter the name of the application. -- In the `Redirect URI` box, type the callback URL of your app. -- Check the box next to `Confidential` (make sure it is checked). -- Check the scope named `read_user` (this is the only required scope). -- Click `Save Application` at the bottom. -- Copy and save your `Application ID` (`client_id`) and `Secret` (`client_secret`) which you'll need later. - -### Add your GitLab credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- In the left sidebar, click the `Authentication` icon (near the top). -- Click `Settings` from the list to go to the `Authentication Settings` page. -- Enter the final (hosted) URL of your app under `Site URL` (this is important). -- Under `External OAuth Providers` turn `GitLab Enabled` to ON. -- Enter your `client_id` and `client_secret` saved in the previous step. -- Click `Save`. - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'gitlab', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithGitLab() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'gitlab', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [GitLab Account](https://gitlab.com) diff --git a/web/docs/guides/auth/auth-google.mdx b/web/docs/guides/auth/auth-google.mdx deleted file mode 100644 index aeb92d43f12..00000000000 --- a/web/docs/guides/auth/auth-google.mdx +++ /dev/null @@ -1,127 +0,0 @@ ---- -id: auth-google -title: 'Login with Google' -description: Add Google OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Google Auth for your project, you need to set up a Google OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Setting up Google logins for your application consists of 3 parts: - -- Create and configure a Google Project on the [Google Cloud Platform Console](https://console.cloud.google.com/home/dashboard) -- Add your Google OAuth keys to your [Supabase Project](https://app.supabase.com) -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) - -## Steps - -### Access your Google Cloud Platform account - -- Go to [cloud.google.com](https://cloud.google.com). -- Click on `Sign in` at the top right to log in. - -![Google Developer Portal.](/img/guides/auth-google/google-portal.png) - -### Create a Google Cloud Platform Project - -- Click on `Select a Project` at the top left. - - (Or, if a project is currently selected, click on the current project name at the top left.) -- Click `New Project` at the top right. -- Fill in your app information, then click `Create`. - - (This can take a few minutes.) -- This should bring you to the dashboard for your new project. - -### Create the OAuth Keys for your project - -From your project's dashboard screen: - -- In the search bar at the top labeled `Search products and resources` type `OAuth`. -- Click on `OAuth consent screen` from the list of results. -- On the `OAuth consent screen` page select `External`. -- Click `Create`. - -### Edit your app information - -- On the `Edit app registration` page fill out your app information. -- Click `Save and continue` at the bottom. - -### Find your callback URL - -The next step requires a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Create your credentials - -- Click `Credentials` at the left to go to the `Credentials` page -- Click `Create Credentials` near the top then select `OAuth client ID` -- On the `Create OAuth client ID` page, select your application type. If you're not sure, choose `Web application`. -- Fill in your app name. -- At the bottom, under `Authorized redirect URIs` click `Add URI`. -- Enter your callback URI under `Authorized redirect URIs` at the bottom. -- Enter your callback URI in the `Valid OAuth Redirect URIs` box. -- Click `Save Changes` at the bottom right. -- Click `Create`. - -Copy your new OAuth credentials - -- A box will appear called `OAuth client created`. -- Copy and save the values under `Your Client ID` and `Your Client Secret`. - -### Enter your Google credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com) -- In the left sidebar, click the `Authentication` icon (near the top) -- Click `Settings` from the list to go to the `Authentication Settings` page -- Enter the final (hosted) URL of your app under `Site URL` (this is important) -- Under `External OAuth Providers` turn `Google Enabled` to ON -- Enter your `Google Client ID` and `Google Client Secret` saved in the previous step -- Click `Save` - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'google', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithGoogle() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'google', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Google Cloud Platform Console](https://console.cloud.google.com/home/dashboard) diff --git a/web/docs/guides/auth/auth-keycloak.mdx b/web/docs/guides/auth/auth-keycloak.mdx deleted file mode 100644 index 03834670c77..00000000000 --- a/web/docs/guides/auth/auth-keycloak.mdx +++ /dev/null @@ -1,95 +0,0 @@ ---- -id: auth-keycloak -title: 'Login with Keycloak' -description: Add Keycloak OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Keycloak Auth for your project, you need to set up an Keycloak OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -To get started with Keycloak, you can run it in a docker container with: `docker run -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -p 8080:8080 jboss/keycloak:latest` - -This guide will be assuming that you are running keycloak in a docker container as described in the command above. - -Keycloak OAuth consists of five broad steps: - -- Create a new client in your specified keycloak realm. -- Obtain the `issuer` from the "OpenID Endpoint Configuration". This will be used as the `Keycloak URL`. -- Ensure that the new client has the "Client Protocol" set to "openid-connect" and the "Access Type" is set to "confidential". -- The `Client ID` of the client created will be used as the `client id`. -- Obtain the `Secret` from the credentials tab which will be used as the `client secret`. -- Whitelist the callback url of your application. - -## Steps - -### Access your Keycloak Admin console - -- Login by visiting [`http://localhost:8080`](http://localhost:8080) and clicking on "Administration Console". - -### Create a Keycloak Realm - -- Once you've logged in to the Keycloak console, you can add a realm from the side panel. The default realm should be named "Master". -- After you've added a new realm, you can retrieve the `issuer` from the "OpenID Endpoint Configuration" endpoint. The `issuer` will be used as the `Keycloak URL`. -- You can find this endpoint from the realm settings under the "General Tab" or visit [`http://localhost:8080/realms/my_realm_name/.well-known/openid-configuration`](http://localhost:8080/realms/my_realm_name/.well-known/openid-configuration) - -![Add a Keycloak Realm.](/img/guides/auth-keycloak/keycloak-create-realm.png) - -### Create a Keycloak Client - -The "Client ID" of the created client will serve as the `client_id` when you make API calls to authenticate the user. - -![Add a Keycloak client](/img/guides/auth-keycloak/keycloak-add-client.png) - -### Client Settings - -After you've created the client successfully, ensure that you set the following settings: -1. The "Client Protocol" should be set to "openid-connect". -2. The "Access Type" should be set to "confidential". -3. The "Valid Redirect URIs" should be set to: `https://.supabase.co/auth/v1/callback`. - -![Obtain the client id, set the client protocol and access type](/img/guides/auth-keycloak/keycloak-client-id.png) -![Set redirect uri](/img/guides/auth-keycloak/keycloak-redirect-uri.png) - -### Obtain the Client Secret - -This will serve as the `client_secret` when you make API calls to authenticate the user. -Under the "Credentials" tab, the `Secret` value will be used as the `client secret`. - -![Obtain the client secret](/img/guides/auth-keycloak/keycloak-client-secret.png) - -### Add login code to your client app - -The JavaScript client code is documented in the [Supabase OAuth Reference](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'keycloak', -}) -``` - -Add a function which you can call from a button, link, or UI element. - -```js -async function signInWithKeycloak() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'keycloak', - } -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- You can find the keycloak openid endpoint configuration under the realm settings. -![Keycloak OpenID Endpoint Configuration](/img/guides/auth-keycloak/keycloak-openid-endpoint-config.png) diff --git a/web/docs/guides/auth/auth-linkedin.mdx b/web/docs/guides/auth/auth-linkedin.mdx deleted file mode 100644 index b7031776217..00000000000 --- a/web/docs/guides/auth/auth-linkedin.mdx +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: auth-linkedin -title: 'Login with LinkedIn' -description: Add LinkedIn OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable LinkedIn Auth for your project, you need to set up a LinkedIn OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Setting up LinkedIn logins for your application consists of 3 parts: - -- Create and configure a LinkedIn Project and App on the [LinkedIn Developer Dashboard](https://www.linkedin.com/developers/apps). -- Add your LinkedIn `API Key` and `API Secret Key` to your [Supabase Project](https://app.supabase.com). -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js). - -## Steps - -### Access your LinkedIn Developer account - -- Go to [LinkedIn Developer Dashboard](https://www.linkedin.com/developers/apps). -- Log in (if necessary.) - -![LinkedIn Developer Portal](/img/guides/auth-linkedin/linkedin_developers_page.png) - -### Find your callback URL - -The next step requires a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Create a LinkedIn OAuth app - -- Go to [LinkedIn Developer Dashboard](https://www.linkedin.com/developers/apps). -- Click on `Create App` at the top right -- Enter your `LinkedIn Page` and `App Logo` -- Save your app -- Click `Auth` from the top menu -- Add your `Redirect URL` to the `Authorized Redirect URLs for your app` section -- Copy and save your newly-generated `Client ID` -- Copy and save your newly-generated `Client Secret` - -### Enter your LinkedIn credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- In the left sidebar, click the `Authentication` icon (near the top). -- Click `Settings` from the list to go to the `Authentication Settings` page. -- Enter the final (hosted) URL of your app under `Site URL` (this is important). -- Under `External OAuth Providers` turn `LinkedIn Enabled` to ON. -- Enter your `API Key` (`client_id`) and `API Secret Key` (`client_secret`) saved in the previous step. -- Click `Save`. - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'LinkedIn', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithLinkedIn() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'LinkedIn', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [LinkedIn Developer Dashboard](https://api.LinkedIn.com/apps) diff --git a/web/docs/guides/auth/auth-magic-link.mdx b/web/docs/guides/auth/auth-magic-link.mdx deleted file mode 100644 index 5d320a55abe..00000000000 --- a/web/docs/guides/auth/auth-magic-link.mdx +++ /dev/null @@ -1,129 +0,0 @@ ---- -id: auth-magic-link -title: 'Login With Magic Link' -description: Use Supabase to Authenticate and Authorize your users using Magic Link. ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -By default, if no password is provided, the user will be sent a "magic link" to their email address, which they can click to open your application with a valid session. By default, a given user can only request a Magic Link once every 60 seconds. - -## Overview - -Setting up Magic Link logins for your Supabase application. - -- Add Magic Link authenticator to your [Supabase Project](https://app.supabase.com) -- Add the login code to your application - [JavaScript](https://github.com/supabase/supabase-js) | [Dart](https://github.com/supabase/supabase-dart) - -## Add Magic Link into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com) -- In the left sidebar, click the `Authentication` icon (near the top) -- Click `Settings` from the list to go to the `Authentication Settings` page -- Enter the final (hosted) URL of your app under `Site URL` (this is important) -- Under `Email Auth` turn `Enable Email Signup` to ON -- Click `Save` - -### Add login code to your client app - -Add logins using our client libraries: - -- [JavaScript](/docs/reference/javascript/auth-signin#sign-in-with-magic-link) -- [Dart](/docs/reference/dart/auth-signin#sign-in-with-magic-link) - - - - - -```js -const { user, error } = await supabase.auth.signIn({ - email: 'example@email.com', -}) -``` - - - - - -```dart -final res = await supabase.auth.signIn(email: 'example@email.com'); - -final error = res.error; -``` - - - - - -Add this function which you can call from a button, link, or UI element. - - - - - -```js -async function signInWithEmail() { - const { user, error } = await supabase.auth.signIn({ - email: 'example@email.com', - }) -} -``` - - - - - -```dart -Future signInWithEmail() async { - await supabase.auth.signIn(email: 'example@email.com'); -} -``` - - - - - -To log out: - - - - - -```js -async function signOut() { - const { error } = await supabase.auth.signOut() -} -``` - - - - - -```dart -Future signOut() async { - await supabase.auth.signOut(); -} -``` - - - - - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Supabase Dart Client](https://github.com/supabase/supabase-dart) diff --git a/web/docs/guides/auth/auth-messagebird.mdx b/web/docs/guides/auth/auth-messagebird.mdx deleted file mode 100644 index dd806ecb6b7..00000000000 --- a/web/docs/guides/auth/auth-messagebird.mdx +++ /dev/null @@ -1,282 +0,0 @@ ---- -id: auth-messagebird -title: Phone Auth with MessageBird -description: How to set up and use Mobile OTP with MessageBird and Supabase. ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -## Overview - -In this guide we'll show you how to authenticate your users with SMS based OTP (One-Time Password) tokens. - -There are two reasons to use Supabase SMS OTP tokens: - -- You want users to log in with mobile + password, and the mobile should be verified via SMS -- You want users to log in with mobile ONLY (i.e. passwordless login) - -We'll cover: - -- [Finding your MessageBird credentials](#finding-your-messagebird-credentials) -- [Using OTP with password based logins](#using-otp-with-password-based-logins) -- [Using OTP as a passwordless sign-in mechanism](#using-otp-as-a-passwordless-sign-in-mechanism) - -What you'll need: - -- A MessageBird account (sign up here: https://dashboard.messagebird.com/en/sign-up) -- A Supabase project (create one here: https://app.supabase.com) -- A mobile phone capable of receiving SMS - -## Steps - -### Finding your MessageBird credentials - -Start by logging into your MessageBird account and verify the mobile number you'll be using to test with: https://dashboard.messagebird.com/en/getting-started/sms - -This is the number that will be receiving the SMS OTPs. - -![Verify your own phone number](/img/guides/auth-messagebird/1.png) - -![Get your API Keys](/img/guides/auth-messagebird/2.png) - -Navigate to the [dashboard settings](https://dashboard.messagebird.com/en/settings/sms) to set the default originator. The messagebird originator is the name or number from which the message is sent. -For more information, you can refer to the messagebird article on choosing an originator [here](https://support.messagebird.com/hc/en-us/articles/115002628665-Choosing-an-originator) - -![Set the default originator](/img/guides/auth-messagebird/3.png) - -You will need the following values to get started: - -- Live API Key / Test API Key -- MessageBird originator - -Now go to the Auth > Settings page in the Supabase dashboard (https://app.supabase.com/project/YOUR-PROJECT-REF/auth/settings). - -You should see an option to enable Phone Signup. - -![Enable Phone Sign-Up](/img/guides/auth-twilio/7.png) - -Toggle it on, and copy the 2 values over from the messagebird dashboard. Click save. - -Note: If you use the Test API Key, the OTP will not be delivered to the mobile number specified but messagebird will log the response in the dashboard. -If the Live API Key is used instead, the OTP will be delivered and there will be a deduction in your free credits. - - -Plugin MessageBird credentials - -Now the backend should be setup, we can proceed to add our client-side code! - -#### SMS custom template - -The SMS message sent to a phone containing an OTP code can be customized. This is useful if you need to mention a brand name or display a website address. - -Go to Auth > Templates page in the Supabase dashboard (https://app.supabase.com/project/YOUR-PROJECT-REF/auth/templates). - -Use the variable `.Code` in the template to display the code. - -### Using OTP with password based logins - -In this use scenario we'll be using the user's mobile phone number as an alternative to an email address when signing up along with a password. You may want to think hard about the permanency of this however. It is not uncommon for mobile phone numbers to be recycled by phone networks when users cancel their phone contracts or move countries, therefore granting access to the user's account to whoever takes over the phone number in the future. Soon we'll add multi-factor auth, which will mitigate this risk, but for now you may want to give some thought to allowing your users to recover their account by some other means in an emergency. - -Using supabase-js on the client you'll want to use the same `signUp` method that you'd use for email based sign ups, but with the `phone` param instead of the `email param`: - - - - -```js -let { user, error } = await supabase.auth.signUp({ - phone: '+13334445555', - password: 'some-password', -}) -``` - - - - -```bash -curl -X POST 'https://cvwawazfelidkloqmbma.supabase.co/auth/v1/signup' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "phone": "+13334445555", - "password": "some-password" -}' -``` - - - - -The user will now receive an SMS with a 6-digit pin that you will need to receive from them within 60-seconds before they can login to their account. - -You should present a form to the user so they can input the 6 digit pin, then send it along with the phone number to `verifyOTP`: - - - - -```js -let { session, error } = await supabase.auth.verifyOTP({ - phone: '+13334445555', - token: '123456', -}) -``` - - - - -```bash -curl -X POST 'https://cvwawazfelidkloqmbma.supabase.co/auth/v1/verify' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "type": "sms", - "phone": "+13334445555", - "token": "123456" -}' -``` - - - - -If successful the user will now be logged in and you should receive a valid session like: - -```json -{ - "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjI3MjkxNTc3LCJzdWIiOiJmYTA2NTQ1Zi1kYmI1LTQxY2EtYjk1NC1kOGUyOTg4YzcxOTEiLCJlbWFpbCI6IiIsInBob25lIjoiNjU4NzUyMjAyOSIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6InBob25lIn0sInVzZXJfbWV0YWRhdGEiOnt9LCJyb2xlIjoiYXV0aGVudGljYXRlZCJ9.1BqRi0NbS_yr1f6hnr4q3s1ylMR3c1vkiJ4e_N55dhM", - "token_type": "bearer", - "expires_in": 3600, - "refresh_token": "LSp8LglPPvf0DxGMSj-vaQ" -} -``` - -The access token can be sent in the Authorization header as a Bearer token for any CRUD operations on supabase-js. See our guide on [Row Level Security](/docs/guides/auth#row-level-security) for more info on restricting access on a user basis. - -Also now that the mobile has been verified, the user can use the number and password to sign in without needing to verify their number each time: - - - - -```js -let { user, error } = await supabase.auth.signIn({ - phone: '+13334445555', - password: 'some-password', -}) -``` - - - - -```bash -curl -X POST 'https://cvwawazfelidkloqmbma.supabase.co/auth/v1/token?grant_type=password' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "phone": "+13334445555", - "password": "some-password" -}' -``` - - - - -### Using OTP as a passwordless sign-in mechanism - -In this scenario you are granting your user's the ability to login to their account without needing to set a password on their account, all they have to do to log in is verify their mobile each time using the OTP. - -In javascript we can use the `signIn` method with a single parameter: `phone` - - - - -```js -let { user, error } = await supabase.auth.signIn({ - phone: '+13334445555', -}) -``` - - - - -```bash -curl -X POST 'https://cvwawazfelidkloqmbma.supabase.co/auth/v1/otp' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "phone": "+13334445555" -}' -``` - - - - -The second step is the same as the previous section, you need to collect the 6-digit pin from the user and pass it along with their phone number to the verify method: - - - - -```js -let { session, error } = await supabase.auth.verifyOTP({ - phone: '+13334445555', - token: '123456', -}) -``` - - - - -```bash -curl -X POST 'https://cvwawazfelidkloqmbma.supabase.co/auth/v1/verify' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "type": "sms", - "phone": "+13334445555", - "token": "123456" -}' -``` - - - - -and the response should also be the same as above: - -```json -{ - "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjI3MjkxNTc3LCJzdWIiOiJmYTA2NTQ1Zi1kYmI1LTQxY2EtYjk1NC1kOGUyOTg4YzcxOTEiLCJlbWFpbCI6IiIsInBob25lIjoiNjU4NzUyMjAyOSIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6InBob25lIn0sInVzZXJfbWV0YWRhdGEiOnt9LCJyb2xlIjoiYXV0aGVudGljYXRlZCJ9.1BqRi0NbS_yr1f6hnr4q3s1ylMR3c1vkiJ4e_N55dhM", - "token_type": "bearer", - "expires_in": 3600, - "refresh_token": "LSp8LglPPvf0DxGMSj-vaQ" -} -``` - -The user does not have a password therefore will need to sign in via this method each time they want to access your service. - -## Resources - -- [MessageBird Signup](https://dashboard.messagebird.com/en/sign-up) -- [Supabase Dashboard](https://app.supabase.com) -- [Supabase Row Level Security](/docs/guides/auth#row-level-security) diff --git a/web/docs/guides/auth/auth-notion.mdx b/web/docs/guides/auth/auth-notion.mdx deleted file mode 100644 index 44a6464c03d..00000000000 --- a/web/docs/guides/auth/auth-notion.mdx +++ /dev/null @@ -1,101 +0,0 @@ ---- -id: auth-notion -title: 'Login with Notion' -description: Add Notion OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Notion Auth for your project, you need to set up a Notion Application and add the Application OAuth credentials to your Supabase Dashboard. - -## Overview - -Setting up Notion logins for your application consists of 3 parts: - -- Create and configure a Notion Application [Notion Developer Portal](https://www.notion.so/my-integrations) -- Retrieve your OAuth client ID and OAuth client secret and add them to your [Supabase Project](https://app.supabase.com) -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) - -## Steps - -### Create your notion integration - -- Go to [developers.notion.com](https://developers.notion.com/). -- Click "View my integrations" and login. - -![notion.so](/img/guides/auth-notion/notion.png) - -- Once logged in, go to [notion.so/my-integrations](https://notion.so/my-integrations) and create a new integration. -- When creating your integration, ensure that you select "Public integration" under "Integration type" and "Read user information including email addresses" under "Capabilities". -- You will need to add a redirect uri, see [Add the redirect uri](#add-the-redirect-uri) -- Once you've filled in the necessary fields, click "Submit" to finish creating the integration. - -![notion.so](/img/guides/auth-notion/notion-developer.png) - -### Add the redirect uri -- After selecting "Public integration", you should see an option to add "Redirect URIs". - -![notion.so](/img/guides/auth-notion/notion-redirect-uri.png) - -You can retrieve the redirect uri with the following steps: - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - -Your redirect uri should look like the following: `https://.supabase.co/auth/v1/callback` - - - -### Add your Notion credentials into your Supabase Project - -- Once you've created your notion integration, you should be able to retrieve the "OAuth client ID" and "OAuth client secret" from the "OAuth Domain and URIs" tab. - -![notion.so](/img/guides/auth-notion/notion-creds.png) - -- Go to your [Supabase Project Dashboard](https://app.supabase.com) -- In the left sidebar, click the `Authentication` icon (near the top) -- Click `Settings` from the list to go to the `Authentication Settings` page -- Under `External OAuth Providers` turn `Notion Enabled` to ON -- Enter the "OAuth client ID" and "OAuth client secret" obtained in the `client id` and `client secret` fields. -- Click `Save` - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'notion', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithNotion() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'notion', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Notion Account](https://notion.so) -- [Notion Developer Portal](https://www.notion.so/my-integrations) diff --git a/web/docs/guides/auth/auth-slack.mdx b/web/docs/guides/auth/auth-slack.mdx deleted file mode 100644 index fd60e76a8b1..00000000000 --- a/web/docs/guides/auth/auth-slack.mdx +++ /dev/null @@ -1,111 +0,0 @@ ---- -id: auth-slack -title: 'Login with Slack' -description: Add Slack OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Slack Auth for your project, you need to set up a Slack OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Setting up Slack logins for your application consists of 3 parts: - -- Create and configure a Slack Project and App on the [Slack Developer Dashboard](https://api.slack.com/apps). -- Add your Slack `API Key` and `API Secret Key` to your [Supabase Project](https://app.supabase.com). -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js). - -## Steps - -### Access your Slack Developer account - -- Go to [api.slack.com](https://api.slack.com/apps). -- Click on `Your Apps` at the top right to log in. - -![Slack Developer Portal.](/img/guides/auth-slack/slack-portal.png) - -### Find your callback URL - -The next step requires a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Create a Slack OAuth app - -- Go to [api.slack.com](https://api.slack.com/apps). -- Click on `Create an App` - -Under `Create an app...`: - -- Click `From scratch` -- Type the name of your app -- Select your `Slack Workspace` -- Click `Create App` - -Under `App Credentials`: - -- Copy and save your newly-generated `Client ID` -- Copy and save your newly-generated `Client Secret` -- Click `Permissions` - -Under `Redirect URLs`: - -- Click `Add New Redirect URL` -- Paste your `Callback URL` then click `Add` -- Click `Save URLs` - -### Enter your Slack credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- In the left sidebar, click the `Authentication` icon (near the top). -- Click `Settings` from the list to go to the `Authentication Settings` page. -- Enter the final (hosted) URL of your app under `Site URL` (this is important). -- Under `External OAuth Providers` turn `Slack Enabled` to ON. -- Enter your `Client ID` (`client_id`) and `Client Secret` (`client_secret`) saved in the previous step. -- Click `Save`. - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'slack', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithSlack() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'slack', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Slack Developer Dashboard](https://api.slack.com/apps) diff --git a/web/docs/guides/auth/auth-spotify.mdx b/web/docs/guides/auth/auth-spotify.mdx deleted file mode 100644 index 760eaf85d04..00000000000 --- a/web/docs/guides/auth/auth-spotify.mdx +++ /dev/null @@ -1,106 +0,0 @@ ---- -id: auth-spotify -title: 'Login with Spotify' -description: Add Spotify OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Spotify Auth for your project, you need to set up a Spotify OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Setting up Spotify logins for your application consists of 3 parts: - -- Create and configure a Spotify Project and App on the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/). -- Add your Spotify `API Key` and `API Secret Key` to your [Supabase Project](https://app.supabase.com). -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js). - -## Steps - -### Access your Spotify Developer account - -- Log into [Spotify](https://spotify.com) -- Access the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard) - -![Spotify Developer Portal.](/img/guides/auth-spotify/spotify-portal.png) - -### Find your callback URL - -The next step requires a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Create a Spotify OAuth app - -- Log into [Spotify](https://spotify.com). -- Go to the [Spotify Developer Dashboard](https://developer.spotify.com/dashboard) -- Click `Create an App` -- Type your `App name` -- Type your `App description` -- Check the box to agree with the `Developer TOS and Branding Guidelines` -- Click `Create` -- Save your `Client ID` -- Save your `Client Secret` -- Click `Edit Settings` - -Under `Redirect URIs`: - -- Paste your Supabase Callback URL in the box -- Click `Add` -- Click `Save` at the bottom - -### Enter your Spotify credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- In the left sidebar, click the `Authentication` icon (near the top). -- Click `Settings` from the list to go to the `Authentication Settings` page. -- Enter the final (hosted) URL of your app under `Site URL` (this is important). -- Under `External OAuth Providers` turn `Spotify Enabled` to ON. -- Enter your `Client ID` (`client_id`) and `Client Secret` (`client_secret`) saved in the previous step. -- Click `Save`. - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'spotify', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithSpotify() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'spotify', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Spotify Developer Dashboard](https://developer.spotify.com/dashboard/) diff --git a/web/docs/guides/auth/auth-twilio.mdx b/web/docs/guides/auth/auth-twilio.mdx deleted file mode 100644 index ba9ac6fec27..00000000000 --- a/web/docs/guides/auth/auth-twilio.mdx +++ /dev/null @@ -1,301 +0,0 @@ ---- -id: auth-twilio -title: Phone Auth with Twilio -description: How to set up and use Mobile OTP with Twilio and Supabase. ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -## Overview - -In this guide we'll show you how to authenticate your users with SMS based One-Time Password (OTP) tokens. - -There are two reasons to use Supabase SMS OTP tokens: - -- You want users to log in with mobile number + password, and the mobile number should be verified via SMS -- You want users to log in with mobile number ONLY (i.e. passwordless login) - -We'll cover: - -- [Finding your Twilio credentials](#finding-your-twilio-credentials) -- [Using OTP with password based logins](#using-otp-with-password-based-logins) -- [Using OTP as a passwordless sign-in mechanism](#using-otp-as-a-passwordless-sign-in-mechanism) - -What you'll need: - -- A Twilio account (sign up here: https://www.twilio.com/try-twilio) -- A Supabase project (create one here: https://app.supabase.com) -- A mobile phone capable of receiving SMS - -## Video - - - -## Steps - -### Finding your Twilio credentials - -Start by logging into your Twilio account and starting a new project: https://www.twilio.com/console/projects/create - -Give your project a name and verify the mobile number you'll be using to test with. This is the number that will be receiving the SMS OTPs. - -![Name your twilio project](/img/guides/auth-twilio/1.png) -![verify your own phone number](/img/guides/auth-twilio/2.png) - -Select 'SMS', 'Identity & Verification', and 'With code' as options on the welcome form. - -![Form Fields](/img/guides/auth-twilio/3.png) - -When you're back on the [Twilio console screen](https://www.twilio.com/console), you need to scroll down and click 'Get a trial phone number' - this is the number that you'll be sending SMSs from. - -![Get a trial phone number](/img/guides/auth-twilio/4.png) - -![Successful phone number](/img/guides/auth-twilio/5.png) - -You should now be able to see all three values you'll need to get started: - -- Account SID -- Auth Token -- Sender Phone Number - -![All the credentials you'll need](/img/guides/auth-twilio/6.png) - -Now go to the Auth > Settings page in the Supabase dashboard (https://app.supabase.com/project/YOUR-PROJECT-REF/auth/settings). - -You should see an option to enable Phone Signup: - -![Enable Phone Sign-Up](/img/guides/auth-twilio/7.png) - -Toggle it on, and copy the 3 values over from the twilio dashboard. Click save. - -Note: for "Twilio Message Service SID" you can use the Sender Phone Number generated above. - -![Plug in Twilio credentials](/img/guides/auth-twilio/8.png) - -Now the backend should be setup, we can proceed to add our client-side code! - -#### SMS custom template - -The SMS message sent to a phone containing an OTP code can be customized. This is useful if you need to mention a brand name or display a website address. - -Go to Auth > Templates page in the Supabase dashboard (https://app.supabase.com/project/YOUR-PROJECT-REF/auth/templates). - -Use the variable `.Code` in the template to display the OTP code. Here's an example in the SMS template. - -![example in the SMS template](/img/guides/auth-twilio/9.png) - -### Using OTP with password based logins - -In this scenario we'll be using the user's mobile phone number and a corresponding password as an alternative to signing up with an email address. Note: please thoroughly consider potential security implications when signing up with a combination of phone number and password. Phone numbers are sometimes recycled by phone networks when users cancel their phone contracts or move countries, thereby granting access to the user's account to the subsequent owner of the phone number. In the near future Supabase will support multifactor authentication, which will mitigate this risk, but for now you may want to consider allowing your users to recover their account by some other means in an emergency. - -Using supabase-js on the client you'll want to use the same `signUp` method that you'd use for email based sign ups, but with the `phone` param instead of the `email param`: - - - - -```js -let { user, error } = await supabase.auth.signUp({ - phone: '+13334445555', - password: 'some-password', -}) -``` - - - - -```bash -curl -X POST 'https://cvwawazfelidkloqmbma.supabase.co/auth/v1/signup' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "phone": "+13334445555", - "password": "some-password" -}' -``` - - - - -The user will now receive an SMS with a 6-digit pin that you will need to receive from them within 60-seconds before they can login to their account. - -You should present a form to the user so they can input the 6 digit pin, then send it along with the phone number to `verifyOTP`: - - - - -```js -let { session, error } = await supabase.auth.verifyOTP({ - phone: '+13334445555', - token: '123456', -}) -``` - - - - -```bash -curl -X POST 'https://cvwawazfelidkloqmbma.supabase.co/auth/v1/verify' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "type": "sms", - "phone": "+13334445555", - "token": "123456" -}' -``` - - - - -If successful the user will now be logged in and you should receive a valid session like: - -```json -{ - "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjI3MjkxNTc3LCJzdWIiOiJmYTA2NTQ1Zi1kYmI1LTQxY2EtYjk1NC1kOGUyOTg4YzcxOTEiLCJlbWFpbCI6IiIsInBob25lIjoiNjU4NzUyMjAyOSIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6InBob25lIn0sInVzZXJfbWV0YWRhdGEiOnt9LCJyb2xlIjoiYXV0aGVudGljYXRlZCJ9.1BqRi0NbS_yr1f6hnr4q3s1ylMR3c1vkiJ4e_N55dhM", - "token_type": "bearer", - "expires_in": 3600, - "refresh_token": "LSp8LglPPvf0DxGMSj-vaQ" -} -``` - -The access token can be sent in the Authorization header as a Bearer token for any CRUD operations on supabase-js. See our guide on [Row Level Security](/docs/guides/auth#row-level-security) for more info on restricting access on a user basis. - -Also now that the mobile has been verified, the user can use the number and password to sign in without needing to verify their number each time: - - - - -```js -let { user, error } = await supabase.auth.signIn({ - phone: '+13334445555', - password: 'some-password', -}) -``` - - - - -```bash -curl -X POST 'https://cvwawazfelidkloqmbma.supabase.co/auth/v1/token?grant_type=password' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "phone": "+13334445555", - "password": "some-password" -}' -``` - - - - -### Using OTP as a passwordless sign-in mechanism - -In this scenario you are granting your user's the ability to login to their account without needing to set a password on their account, all they have to do to log in is verify their mobile each time using the OTP. - -In javascript we can use the `signIn` method with a single parameter: `phone` - - - - -```js -let { user, error } = await supabase.auth.signIn({ - phone: '+13334445555', -}) -``` - - - - -```bash -curl -X POST 'https://cvwawazfelidkloqmbma.supabase.co/auth/v1/otp' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "phone": "+13334445555" -}' -``` - - - - -The second step is the same as the previous section, you need to collect the 6-digit pin from the user and pass it along with their phone number to the verify method: - - - - -```js -let { session, error } = await supabase.auth.verifyOTP({ - phone: '+13334445555', - token: '123456', -}) -``` - - - - -```bash -curl -X POST 'https://cvwawazfelidkloqmbma.supabase.co/auth/v1/verify' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "type": "sms", - "phone": "+13334445555", - "token": "123456" -}' -``` - - - - -and the response should also be the same as above: - -```json -{ - "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjI3MjkxNTc3LCJzdWIiOiJmYTA2NTQ1Zi1kYmI1LTQxY2EtYjk1NC1kOGUyOTg4YzcxOTEiLCJlbWFpbCI6IiIsInBob25lIjoiNjU4NzUyMjAyOSIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6InBob25lIn0sInVzZXJfbWV0YWRhdGEiOnt9LCJyb2xlIjoiYXV0aGVudGljYXRlZCJ9.1BqRi0NbS_yr1f6hnr4q3s1ylMR3c1vkiJ4e_N55dhM", - "token_type": "bearer", - "expires_in": 3600, - "refresh_token": "LSp8LglPPvf0DxGMSj-vaQ" -} -``` - -The user does not have a password therefore will need to sign in via this method each time they want to access your service. - -## Resources - -- [Twilio Signup](https://www.twilio.com/try-twilio) -- [Supabase Dashboard](https://app.supabase.com) -- [Supabase Row Level Security](/docs/guides/auth#row-level-security) diff --git a/web/docs/guides/auth/auth-twitch.mdx b/web/docs/guides/auth/auth-twitch.mdx deleted file mode 100644 index 4c5b5519598..00000000000 --- a/web/docs/guides/auth/auth-twitch.mdx +++ /dev/null @@ -1,118 +0,0 @@ ---- -id: auth-twitch -title: 'Login with Twitch' -description: Add Twitch OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Twitch Auth for your project, you need to set up a Twitch Application and add the Application OAuth credentials to your Supabase Dashboard. - -## Overview - -Setting up Twitch logins for your application consists of 3 parts: - -- Create and configure a Twitch Application [Twitch Developer Console](https://dev.twitch.tv/console) -- Add your Twitch OAuth Consumer keys to your [Supabase Project](https://app.supabase.com) -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) - -## Steps - -### Access your Twitch Developer account - -- Go to [dev.twitch.tv](https://dev.twitch.tv). -- Click on `Log in with Twitch` at the top right to log in. -- If you have not already enabled 2-Factor Authentication for your Twitch Account, you will need to do that at [Twitch Security Settings](https://www.twitch.tv/settings/security) before you can continue. - -![Twitch Developer Page](/img/guides/auth-twitch/twitch-developer-page.png) - -- Once logged in, go to the [Twitch Developer Console](https://dev.twitch.tv/console). - -![Twitch Developer Console](/img/guides/auth-twitch/twitch-console.png) - -### Find your callback URL - -In the next step you require a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Create a Twitch Application - -![Twitch Developer Console](/img/guides/auth-twitch/twitch-console.png) - -- Click on `+ Register Your Application` at the top right. - -![Register Application](/img/guides/auth-twitch/twitch-register-your-application.png) - -- Enter the name of your application. -- Type or paste your `OAuth Redirect URL` (the callback URL from the previous step.) -- Select a category for your app. -- Check the Captcha box and click `Create`. - -### Retrieve your Twitch OAuth Client ID and Client Secret - -- Click `Manage` at the right of your application entry in the list. - -![Twitch Applications List](/img/guides/auth-twitch/twitch-applications-list.png) - -- Copy your Client ID. -- Click `New Secret` to create a new Client Secret. -- Copy your Client Secret. - -![Get Client ID and Secret](/img/guides/auth-twitch/twitch-get-keys.png) - -### Add your Twitch credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com) -- In the left sidebar, click the `Authentication` icon (near the top) -- Click `Settings` from the list to go to the `Authentication Settings` page -- Enter the final (hosted) URL of your app under `Site URL` (this is important) -- Under `External OAuth Providers` turn `Twitch Enabled` to ON -- Enter your `client_id` and `client_secret` saved in the previous step -- Click `Save` - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'twitch', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithTwitch() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'twitch', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Twitch Account](https://twitch.tv) -- [Twitch Developer Console](https://dev.twitch.tv/console) diff --git a/web/docs/guides/auth/auth-twitter.mdx b/web/docs/guides/auth/auth-twitter.mdx deleted file mode 100644 index 537137ea5ab..00000000000 --- a/web/docs/guides/auth/auth-twitter.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -id: auth-twitter -title: 'Login with Twitter' -description: Add Twitter OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Twitter Auth for your project, you need to set up a Twitter OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Setting up Twitter logins for your application consists of 3 parts: - -- Create and configure a Twitter Project and App on the [Twitter Developer Dashboard](https://developer.twitter.com/en/portal/dashboard). -- Add your Twitter `API Key` and `API Secret Key` to your [Supabase Project](https://app.supabase.com). -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js). - -## Steps - -### Access your Twitter Developer account - -- Go to [developer.twitter.com](https://developer.twitter.com). -- Click on `Sign in` at the top right to log in. - -![Twitter Developer Portal.](/img/guides/auth-twitter/twitter-portal.png) - -### Find your callback URL - -The next step requires a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Create a Twitter OAuth app - -- Click `+ Create Project`. - - Enter your project name, click `Next`. - - Select your use case, click `Next`. - - Enter a description for your project, click `Next`. - - Enter a name for your app, click `Complete`. - - Copy and save your `API Key` (this is your `client_id`). - - Copy and save your `API Secret Key` (this is your `client_secret`). -- At the bottom, under `Next, setup your App` click the link `enable 3rd party authentication`. -- Under `App Settings`, click on the gear icon next to your app name to go to `App Settings`. -- At the bottom, next to `Authentication settings`, click `Edit`. -- Turn `Enable 3-legged OAuth` ON. -- Turn `Request email address from users` ON. -- Enter your `Callback URL`. -- Enter your `Website URL`. -- Enter your `Terms of service URL`. -- Enter your `Privacy policy URL`. -- Click `Save`. - -### Enter your Twitter credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- In the left sidebar, click the `Authentication` icon (near the top). -- Click `Settings` from the list to go to the `Authentication Settings` page. -- Enter the final (hosted) URL of your app under `Site URL` (this is important). -- Under `External OAuth Providers` turn `Twitter Enabled` to ON. -- Enter your `API Key` (`client_id`) and `API Secret Key` (`client_secret`) saved in the previous step. -- Click `Save`. - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'twitter', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithTwitter() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'twitter', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Twitter Developer Dashboard](https://developer.twitter.com/en/portal/dashboard) diff --git a/web/docs/guides/auth/auth-vonage.mdx b/web/docs/guides/auth/auth-vonage.mdx deleted file mode 100644 index 109101c6cb5..00000000000 --- a/web/docs/guides/auth/auth-vonage.mdx +++ /dev/null @@ -1,274 +0,0 @@ ---- -id: auth-vonage -title: Phone Auth with Vonage -description: How to set up and use Mobile OTP with Vonage and Supabase. ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -## Overview - -In this guide we'll show you how to authenticate your users with SMS based OTP (One-Time Password) tokens. - -There are two reasons to use Supabase SMS OTP tokens: - -- You want users to log in with mobile + password, and the mobile should be verified via SMS -- You want users to log in with mobile ONLY (i.e. passwordless login) - -We'll cover: - -- [Getting your Vonage API Key](#finding-your-vonage-api-key) -- [Using OTP with password based logins](#using-otp-with-password-based-logins) -- [Using OTP as a passwordless sign-in mechanism](#using-otp-as-a-passwordless-sign-in-mechanism) - -What you'll need: - -- A Vonage account (sign up here: https://dashboard.nexmo.com/sign-up) -- A Supabase project (create one here: https://app.supabase.com) -- A mobile phone capable of receiving SMS - -## Steps - -### Getting your Vonage credentials - -Start by logging into your Vonage Dashboard at https://dashboard.nexmo.com/ - -You will see you API Key and API Secret here, which is actually all you need to get started. - -In most countries, a phone number is actually optional and you can also use any Alphanumeric Sender ID of up to 11 characters length (8 for India) as a Sender ID (from). This means you do not need a number to test with in most cases. - -To find out more about supported countries for Alphanumeric Sender ID, check this overview: https://help.nexmo.com/hc/en-us/articles/115011781468-SMS-Features-Overview-Outbound-only- - -Hint: Some countries might need a Sender ID Registration to allow sending with an Alphanumeric Sender ID. You can find this information in the help article as well. If Alpha Sender IDs are not supported, you will need to buy a phone number. - -### Getting a phone number (optional) - -If you want a phone number to send SMS from, you can buy one from the Vonage Dashboard under Numbers > Buy Numbers (https://dashboard.nexmo.com/buy-numbers). - -Select the country you want a number for. You will need a mobile phone number with SMS or SMS+Voice capability. After you have bought the number, you will be able to send SMS from it. - -### Configure Supabase - -Now go to the Auth > Settings page in the Supabase dashboard (https://app.supabase.com/project/YOUR-PROJECT-REF/auth/settings). - -You should see an option to enable Phone Signup. - -Toggle it on, and copy the api key, api secret and optionally phone number values over from the Vonage dashboard. Click save. - -Now the backend should be setup, we can proceed to add our client-side code! - -#### SMS custom template - -The SMS message sent to a phone containing an OTP code can be customized. This is useful if you need to mention a brand name or display a website address. - -Go to Auth > Templates page in the Supabase dashboard (https://app.supabase.com/project/YOUR-PROJECT-REF/auth/templates). - -Use the variable `.Code` in the template to display the code. - -### Using OTP with password based logins - -In this use scenario we'll be using the user's mobile phone number as an alternative to an email address when signing up along with a password. You may want to think hard about the permanency of this however. It is not uncommon for mobile phone numbers to be recycled by phone networks when users cancel their phone contracts or move countries, therefore granting access to the user's account to whoever takes over the phone number in the future. - -Using supabase-js on the client you'll want to use the same `signUp` method that you'd use for email based sign ups, but with the `phone` param instead of the `email param`: - - - - -```js -let { user, error } = await supabase.auth.signUp({ - phone: '491512223334444', - password: 'some-password', -}) -``` - - - - -```bash -curl -X POST 'https://xxx.supabase.co/auth/v1/signup' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "phone": "491512223334444", - "password": "some-password" -}' -``` - - - - -The user will now receive an SMS with a 6-digit pin that you will need to receive from them within 60-seconds before they can login to their account. - -You should present a form to the user so they can input the 6 digit pin, then send it along with the phone number to `verifyOTP`: - - - - -```js -let { session, error } = await supabase.auth.verifyOTP({ - phone: '491512223334444', - token: '123456', -}) -``` - - - - -```bash -curl -X POST 'https://xxx.supabase.co/auth/v1/verify' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "type": "sms", - "phone": "491512223334444", - "token": "123456" -}' -``` - - - - -If successful the user will now be logged in and you should receive a valid session like: - -```json -{ - "access_token": "eyJxxx...", - "token_type": "bearer", - "expires_in": 3600, - "refresh_token": "yyy..." -} -``` - -The access token can be sent in the Authorization header as a Bearer token for any CRUD operations on supabase-js. See our guide on [Row Level Security](/docs/guides/auth#row-level-security) for more info on restricting access on a user basis. - -Also now that the mobile has been verified, the user can use the number and password to sign in without needing to verify their number each time: - - - - -```js -let { user, error } = await supabase.auth.signIn({ - phone: '491512223334444', - password: 'some-password', -}) -``` - - - - -```bash -curl -X POST 'https://xxx.supabase.co/auth/v1/token?grant_type=password' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "phone": "491512223334444", - "password": "some-password" -}' -``` - - - - -### Using OTP as a passwordless sign-in mechanism - -In this scenario you are granting your user's the ability to login to their account without needing to set a password on their account, all they have to do to log in is verify their mobile each time using the OTP. - -In javascript we can use the `signIn` method with a single parameter: `phone` - - - - -```js -let { user, error } = await supabase.auth.signIn({ - phone: '491512223334444', -}) -``` - - - - -```bash -curl -X POST 'https://xxx.supabase.co/auth/v1/otp' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "phone": "491512223334444" -}' -``` - - - - -The second step is the same as the previous section, you need to collect the 6-digit pin from the user and pass it along with their phone number to the verify method: - - - - -```js -let { session, error } = await supabase.auth.verifyOTP({ - phone: '491512223334444', - token: '123456', -}) -``` - - - - -```bash -curl -X POST 'https://xxx.supabase.co/auth/v1/verify' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "type": "sms", - "phone": "491512223334444", - "token": "123456" -}' -``` - - - - -and the response should also be the same as above: - -```json -{ - "access_token": "eyJxxx...", - "token_type": "bearer", - "expires_in": 3600, - "refresh_token": "yyy..." -} -``` - -The user does not have a password therefore will need to sign in via this method each time they want to access your service. - -## Resources - -- [Vonage Signup](https://dashboard.nexmo.com/sign-up) -- [Supabase Dashboard](https://app.supabase.com) -- [Supabase Row Level Security](/docs/guides/auth#row-level-security) \ No newline at end of file diff --git a/web/docs/guides/auth/auth-workos.mdx b/web/docs/guides/auth/auth-workos.mdx deleted file mode 100644 index 5a4b1abb306..00000000000 --- a/web/docs/guides/auth/auth-workos.mdx +++ /dev/null @@ -1,102 +0,0 @@ ---- -id: auth-workos -title: 'Login with WorkOS' -description: Add WorkOS OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable WorkOS Auth for your project, you need to set up WorkOS OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -In this guide, we will cover how to use Supabase OAuth with WorkOS to implement Single-Sign-On(SSO). - -The procedure consists of five broad steps: - -- Create a new organization from your WorkOS Dashboard. -- Obtain the `Client ID` from the Configuration tab and configure redirect URI. -- Obtain the `WorkOS Secret` from the credentials tab. -- Connect a WorkOS Supported Identity Provider -- Add your WorkOS credentials into your Supabase project - -## Steps - -### Create a WorkOS Organization - -Log in to the dashboard and hop over to the Organizations tab to create and organization -![Create an Organization](/img/guides/auth-workos/workos-create-organization.png) - -### Obtain the Client ID and configure Redirect URI - -Head over to the Configuration tab and configure the redirect URI.The redirect URI should look like `https://.supabase.co/auth/v1/callback` -Note that this is distinct from the redirect URI referred to in the Supabase dashboard - -![Fetch Client ID and configure Redirect URI](/img/guides/auth-workos/workos-clientid-redirect-uri.png) - -### Obtain the WorkOS Secret - -Head over to the API Keys page and obtain the secret key. - -![WorkOS Secret Key](/img/guides/auth-workos/workos-secret-key.png) - -### Connect a WorkOS Supported Identity Provider - -Set up the identity provider by visiting the setup link. - -![Visiting the setup link](/img/guides/auth-workos/workos-setup-identity-provider.png) - -You can pick between any one of the many identity providers that WorkOS supports. - -### Add your WorkOS credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com) -- In the left sidebar, click the `Authentication` icon (near the top) -- Click `Settings` from the list to go to the `Authentication Settings` page -- Under `External OAuth Providers` turn `WorkOS Enabled` to ON -- Enter the `Client ID`, `Secret`, and `WorkOS URL` saved in the previous steps. The ``WorkOS URL` setting should be set to https://api.workos.com/ -- Click `Save` - - - -### Add login code to your client app - -The JavaScript client code is documented in the [Supabase OAuth Reference](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers). Note that you only need to include one of the three parameters: `connection`, `organization`, and `provider`. -You can refer to the [WorkOS Documentation](https://workos.com/docs/reference/sso/authorize/) to learn more about the different methods. - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'workos', -}, { - connection: "", - organization: "" -}) -``` - -Add a function which you can call from a button, link, or UI element. - -```js -async function signInWithWorkOS() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'workos', - }, { - connection: "", - organization: "" - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [WorkOS Documentation](https://workos.com/docs/sso/guide) diff --git a/web/docs/guides/auth/auth-zoom.mdx b/web/docs/guides/auth/auth-zoom.mdx deleted file mode 100644 index 3d2e3b7b478..00000000000 --- a/web/docs/guides/auth/auth-zoom.mdx +++ /dev/null @@ -1,107 +0,0 @@ ---- -id: auth-zoom -title: 'Login with Zoom' -description: Add Zoom OAuth to your Supabase project ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -To enable Zoom Auth for your project, you need to set up a Zoom OAuth application and add the application credentials to your Supabase Dashboard. - -## Overview - -Setting up Zoom logins for your application consists of 3 parts: - -- Create and configure a Zoom OAuth App on [Zoom App Marketplace](https://marketplace.zoom.us/) -- Add your Zoom OAuth keys to your [Supabase Project](https://app.supabase.com) -- Add the login code to your [Supabase JS Client App](https://github.com/supabase/supabase-js) - -## Steps - -### Access your Zoom Developer account - -- Go to [marketplace.zoom.us](https://marketplace.zoom.us/). -- Click on `Sign In` at the top right to log in. - -![Zoom Developer Portal.](/img/guides/auth-zoom/zoom-portal.png) - -### Find your callback URL - -The next step requires a callback URL, which looks like this: - -`https://.supabase.co/auth/v1/callback` - -- Go to your [Supabase Project Dashboard](https://app.supabase.com). -- Click on the `Settings` icon at the bottom of the left sidebar. -- Click on `API` in the list. -- Under Config / URL you'll find your API URL, you can click `Copy` to copy it to the clipboard. -- Now just add `/auth/v1/callback` to the end of that to get your full `OAuth Redirect URI`. - - - -### Create a Zoom Oauth App - -- Go to [marketplace.zoom.us](https://marketplace.zoom.us/). -- Click on `Sign In` at the top right to log in. -- Click `Build App` (from the dropdown Develop) -- In the OAuth card, click `Create` -- Type the name of your app -- Choose app type -- Click `Create` - -Under `App credentials` - -- Copy and save your `Client ID`. -- Copy and save your `Client secret`. - -Under `Redirect URL for OAuth` - -- Paste your `Callback URL` -- Click `Continue` - -### Enter your Zoom credentials into your Supabase Project - -- Go to your [Supabase Project Dashboard](https://app.supabase.com) -- In the left sidebar, click the `Authentication` icon (near the top) -- Click `Settings` from the list to go to the `Authentication Settings` page -- Enter the final (hosted) URL of your app under `Site URL` (this is important) -- Under `External OAuth Providers` turn `Zoom Enabled` to ON -- Enter your `Zoom Client ID` and `Zoom Client Secret` saved in the previous step -- Click `Save` - -### Add login code to your client app - -The JavaScript client code is documented here: [Supabase OAuth Client Code](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) - -```js -const { user, session, error } = await supabase.auth.signIn({ - provider: 'zoom', -}) -``` - -Add this function which you can call from a button, link, or UI element. - -```js -async function signInWithZoom() { - const { user, session, error } = await supabase.auth.signIn({ - provider: 'zoom', - }) -} -``` - -To log out: - -```js -async function signout() { - const { error } = await supabase.auth.signOut() -} -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Zoom App Marketplace](https://marketplace.zoom.us/) diff --git a/web/docs/guides/auth/intro.mdx b/web/docs/guides/auth/intro.mdx deleted file mode 100644 index 104a5359024..00000000000 --- a/web/docs/guides/auth/intro.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: intro -title: Supabase Auth -sidebar_label: Introduction -description: Use Supabase to Authenticate and Authorize your users. -# hide_table_of_contents: true ---- - -import Link from '@docusaurus/Link' -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -import providers from '@site/src/data/authProviders' - - - -## Introduction - -Supabase Auth is designed to work with Postgres. There are two parts to every Auth system: - -- **Authentication:** should this person be allowed in? If yes, who are they? -- **Authorization:** once they are in, what are they allowed to do? - -## Authentication - -You can authenticate your users in several ways: - -- Email & password. -- Magic links (one-click logins). -- Social providers. -- Phone logins. - -
    -
    - {providers.map((x) => ( -
    - -
    -
    - {x.logo && {x.name}} -

    {x.name}

    -

    - {x.official ? - Official - : - - Unofficial - - } -

    -
    -
    -
    - Platform: - {x.platform.toString()} -
    -
    - Self-Hosted: - {x.selfHosted.toString()} -
    -
    -
    - -
    - ))} -
    -
    - - -## Authorization - - -When you need granular authorization rules, nothing beats PostgreSQL's Row Level Security (RLS). - -Policies are PostgreSQL's rule engine. They are incredibly powerful and flexible, allowing you to write complex SQL rules which fit your unique business needs. - -Get started with our [Row Level Security Guides](/docs/guides/auth/row-level-security). \ No newline at end of file diff --git a/web/docs/guides/auth/managing-user-data.mdx b/web/docs/guides/auth/managing-user-data.mdx deleted file mode 100644 index d0affd2a189..00000000000 --- a/web/docs/guides/auth/managing-user-data.mdx +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: managing-user-data -title: Managing User Data -description: Securing your user data with Row Level Security. ---- - -For security purposes, the `auth` schema is not exposed on the auto-generated API. - -Even though Supabase provides an `auth.users` table, it can be helpful to create tables in the `public` schema for storing user data that you want to access via the API. - -## Creating user tables - -When you create tables to store user data, it's helpful to reference the `auth.users` table in the primary key. This ensures data integrity. - -For example, a `public.profiles` table might look like this: - -```sql -create table public.profiles ( - id uuid references auth.users not null, - first_name text, - last_name text, - - primary key (id) -); - -alter table public.profiles enable row level security; -``` - - -## Public access - -Since Row Level Security is enabled, this table is accessible via the API but no data will be returned unless we set up some Policies. -If we wanted the data to be _readable_ by everyone but only allow logged-in users to update their own data, the Policies would look like this: - -```sql -create policy "Public profiles are viewable by everyone." - on profiles for select - using ( true ); - -create policy "Users can insert their own profile." - on profiles for insert - with check ( auth.uid() = id ); - -create policy "Users can update own profile." - on profiles for update - using ( auth.uid() = id ); -``` - -## Private access - -If the data should only be _readable_ by the user who owns the data, we just need to change the `for select` query above. - -```sql -create policy "Profiles are viewable by users who created them." - on profiles for select - using ( auth.uid() = id ); -``` - -The nice thing about this pattern? We can now query this table via the API and we don't need to include data filters in our API queries - the Policies will handle that for us: - -```js -// This will return nothing while the user is logged out -const { data } = await supabase - .from('profiles') - .select('id, username, avatar_url, website') - -// After the user is logged in, this will only return -// the logged-in user's data - in this case a single row -const { error } = await supabase.auth.signIn({ email }) -const { data: profile } = await supabase - .from('profiles') - .select('id, username, avatar_url, website') -``` - -## Bypassing Row Level Security - -If you need to fetch a full list of user profiles, we supply a `service_key` which you can use with your API and Client Libraries to bypass Row Level Security. - -Make sure you _NEVER_ expose this publicly. But it can be used on the server-side to fetch all of the profiles. - - -## Advanced techniques - -### Using triggers - -If you want to add a row to your `public.profiles` table every time a user signs up, you can use triggers. -If the trigger fails however, it could block the user sign ups - so make sure that the code is well-tested. - -For example: - -```sql --- inserts a row into public.users -create function public.handle_new_user() -returns trigger -language plpgsql -security definer set search_path = public -as $$ -begin - insert into public.profiles (id) - values (new.id); - return new; -end; -$$; - --- trigger the function every time a user is created -create trigger on_auth_user_created - after insert on auth.users - for each row execute procedure public.handle_new_user(); -``` diff --git a/web/docs/guides/auth/row-level-security.mdx b/web/docs/guides/auth/row-level-security.mdx deleted file mode 100644 index 88d91d049c8..00000000000 --- a/web/docs/guides/auth/row-level-security.mdx +++ /dev/null @@ -1,364 +0,0 @@ ---- -id: row-level-security -title: Row Level Security -description: Secure your data using Postgres Row Level Security. ---- - -When you need granular authorization rules, nothing beats PostgreSQL's [Row Level Security (RLS)](https://www.postgresql.org/docs/current/ddl-rowsecurity.html). - -[Policies](https://www.postgresql.org/docs/current/sql-createpolicy.html) are PostgreSQL's rule engine. They are incredibly powerful and flexible, allowing you to write complex SQL rules which fit your unique business needs. - - - -## Policies - -Policies are easy to understand once you get the hang of them. Each policy is attached to a table, and the policy is executed -every time a table is accessed. -You can just think of them as adding a `WHERE` clause to every query. For example a policy like this ... - -```sql -create policy "Individuals can view their own todos." - on todos for select - using ( auth.uid() = user_id ); -``` - -.. would translate to this whenever a user tries to select from the todos table: - -```sql -select * -from todos -where auth.uid() = todos.user_id; -- Policy is implicitly added. -``` - -## Helper Functions - -Supabase provides you with a few easy functions that you can use with your policies. - -### `auth.uid()` - -Returns the ID of the user making the request. - -### `auth.jwt()` - -Returns the JWT of the user making the request. - -### `auth.role()` - -:::caution - -Deprecated - -::: - -The `auth.role()` function has been deprecated in favour of using the `TO` field, natively supported within Postgres. - -```sql --- DEPRECATED -create policy "Public profiles are viewable by everyone." -on profiles for select using ( - auth.role() = 'authenticated' or auth.role() = 'anon' -); - --- RECOMMENDED -create policy "Public profiles are viewable by everyone." -on profiles for select -to authenticated, anon -using ( - true -); -``` - -### `auth.email()` - -:::caution - -Deprecated. Use `auth.jwt() ->> 'email'` instead. - -::: - -Returns the email of the user making the request. - -## Examples - -Here are some examples to show you the power of PostgreSQL's RLS. - -### Allow read access - -```sql --- 1. Create table -create table profiles ( - id uuid references auth.users, - avatar_url text -); - --- 2. Enable RLS -alter table profiles - enable row level security; - --- 3. Create Policy -create policy "Public profiles are viewable by everyone." - on profiles for select using ( - true - ); -``` - -1. Creates a table called `profiles` in the public schema (default schema). -2. Enables Row Level Security. -3. Creates a policy which allows all `select` queries to run. - -### Restrict updates - -```sql --- 1. Create table -create table profiles ( - id uuid references auth.users, - avatar_url text -); - --- 2. Enable RLS -alter table profiles - enable row level security; - --- 3. Create Policy -create policy "Users can update their own profiles." - on profiles for update using ( - auth.uid() = id - ); -``` - -1. Creates a table called `profiles` in the public schema (default schema). -2. Enables RLS. -3. Creates a policy which allows logged in users to update their own data. - -### Only anon or authenticated access - -You can add a Postgres role - -```sql -create policy "Public profiles are viewable by everyone." -on profiles for select -to authenticated, anon -using ( - true -); -``` - -### Policies with joins - -Policies can even include table joins. This example shows how you can query "external" tables to build more advanced rules. - -```sql -create table teams ( - id serial primary key, - name text -); - --- 2. Create many to many join -create table members ( - team_id bigint references teams, - user_id uuid references auth.users -); - --- 3. Enable RLS -alter table teams - enable row level security; - --- 4. Create Policy -create policy "Team members can update team details if they belong to the team." - on teams - for update using ( - auth.uid() in ( - select user_id from members - where team_id = id - ) - ); -``` - -**Note:** If RLS is also enabled for _members_, the user must also have read (_select_) access to _members_. Otherwise the joined query will not yield any results. - -### Policies with security definer functions - -Policies can also make use of `security definer functions`. This is useful in a many-to-many relationship where you want to restrict access to the linking table. Following the `teams` and `members` example from above, this example shows how you can use the security definer function in combination with a policy to control access to the `members` table. - -```sql --- 1. Follow example for 'Policies with joins' above - --- 2. Enable RLS -alter table members - enable row level security - --- 3. Create security definer function -create or replace function get_teams_for_authenticated_user() -returns setof bigint -language sql -security definer -set search_path = public -stable -as $$ - select team_id - from members - where user_id = auth.uid() -$$; - --- 4. Create Policy -create policy "Team members can update team members if they belong to the team." - on members - for all using ( - team_id in ( - select get_teams_for_authenticated_user() - ) - ); - -``` - -### Verifying email domains - -Postgres has a function `right(string, n)` that returns the rightmost n characters of a string. -You could use this to match staff member's email domains. - -```sql --- 1. Create table -create table leaderboard ( - id uuid references auth.users, - high_score bigint -); - --- 2. Enable RLS -alter table leaderboard - enable row level security; - --- 3. Create Policy -create policy "Only Blizzard staff can update leaderboard" - on leaderboard - for update using ( - right(auth.email(), 13) = '@blizzard.com' - ); -``` - -### Time to live for rows - -Policies can also be used to implement TTL or time to live feature that you see in Instagram stories or Snapchat. -In the following example, rows of `stories` table are available only if they have been created within the last 24 hours. - -```sql --- 1. Create table -create table if not exists stories ( - id uuid not null primary key DEFAULT uuid_generate_v4(), - created_at timestamp with time zone default timezone('utc' :: text, now()) not null, - content text not null -); - --- 2. Enable RLS -alter table stories - enable row level security; - --- 3. Create Policy -create policy "Stories are live for a day" - on stories - for select using ( - created_at > (current_timestamp - interval '1 day') - ); -``` - -### Advanced policies - -Use the full power of SQL to build extremely advanced rules. - -In this example, we will create a `posts` and `comments` tables and then create a policy that depends on another policy. -(In this case, the comments policy depends on the posts policy.) - -```sql -create table posts ( - id serial primary key, - creator_id uuid not null references auth.users(id), - title text not null, - body text not null, - publish_date date not null default now(), - audience uuid[] null -- many to many table omitted for brevity -); - -create table comments ( - id serial primary key, - post_id int not null references posts(id) on delete cascade, - user_id uuid not null references auth.users(id), - body text not null, - comment_date date not null default now() -); - -create policy "Creator can see their own posts" -on posts -for select -using ( - auth.uid() = posts.creator_id -); - -create policy "Logged in users can see the posts if they belong to the post 'audience'." -on posts -for select -using ( - auth.uid() = any (posts.audience) -); - -create policy "Users can see all comments for posts they have access to." -on comments -for select -using ( - exists ( - select 1 from posts - where posts.id = comments.post_id - ) -); -``` - -## Tips - -### Enable Realtime for database tables - -Realtime server broadcasts database changes to authorized users depending on your Row Level Security (RLS) policies. -We recommend that you enable row level security and set row security policies on tables that you add to the publication. -However, you may choose to disable RLS on a table and have changes broadcast to all connected clients. - -```sql -/** - * REALTIME SUBSCRIPTIONS - * Realtime enables listening to any table in your public schema. - */ - -begin; - -- remove the realtime publication - drop publication if exists supabase_realtime; - - -- re-create the publication but don't enable it for any tables - create publication supabase_realtime; -commit; - --- add a table to the publication -alter publication supabase_realtime add table products; - --- add other tables to the publication -alter publication supabase_realtime add table posts; -``` - -### You don't have to use policies - -You can also put your authorization rules in your middleware, similar to how you would create security rules with any other `backend <-> middleware <-> frontend` architecture. - -Policies are a tool. In the case of "serverless/Jamstack" setups, they are especially effective because you don't have to deploy any middleware at all. - -However, if you want to use another authorization method for your applications, that's also fine. Supabase is "just Postgres", so if your application -works with Postgres, then it also works with Supabase. - -Tip: Make sure to enable RLS for all your tables, so that your tables are inaccessible. Then use the "Service" which we provide, which is designed to bypass RLS. - -### Never use a service key on the client - -Supabase provides special "Service" keys, which can be used to bypass all RLS. -These should never be used in the browser or exposed to customers, but they are useful for administrative tasks. diff --git a/web/docs/guides/client-libraries.mdx b/web/docs/guides/client-libraries.mdx deleted file mode 100755 index 54db0f94a72..00000000000 --- a/web/docs/guides/client-libraries.mdx +++ /dev/null @@ -1,525 +0,0 @@ ---- -id: client-libraries -title: Client Libraries -description: 'Supabase provides client libraries in several languages.' ---- - - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - -The [Supabase Client](/docs/reference/javascript/installing) makes it simple for developers to build secure and scalable products. - -## Auth - - -Create new users using [`signUp()`](/docs/reference/javascript/auth-signup). By default, the user will need to verify their email address before logging in.
    -If confirmations are disabled the response will contain an access token and also a confirmed_at value, otherwise it will just contain a confirmation_sent_at attribute. - - - - - -```js -const { error, data } = await supabase.auth.signUp({ - email: 'example@email.com', - password: 'example-password', -}) -``` - - - - - -```py -import os -from supabase import create_client, Client - -url: str = os.environ.get("SUPABASE_TEST_URL") -key: str = os.environ.get("SUPABASE_TEST_KEY") -supabase: Client = create_client(url, key) -user = supabase.auth.sign_up( - email='example@email.com', - password='example-password', -) -``` - - - - - - -```dart -import 'package:supabase/supabase.dart'; - -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - // Sign up user with email and password - final response = await client - .auth - .signUp('example@email.com', 'example-password'); -} -``` - - - - - - - -Existing users can log in using [`signIn()`](/docs/reference/javascript/auth-signin). - - - - - -```js -const { error, data } = await supabase.auth.signIn({ - email: 'example@email.com', - password: 'example-password' -}) -``` - - - - - -```py -import os -from supabase import create_client, Client - -url: str = os.environ.get("SUPABASE_TEST_URL") -key: str = os.environ.get("SUPABASE_TEST_KEY") -supabase: Client = create_client(url, key) -user = supabase.auth.sign_in( - email='example@email.com', - password='example-password' -) -``` - - - - - - -```dart -import 'package:supabase/supabase.dart'; - -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - // Sign in user with email and password - final response = await client - .auth - .signIn(email: 'example@email.com', password: 'example-password'); -} -``` - - - - - - -If there is an email, but no password passed to [`signIn()`](/docs/reference/javascript/auth-signin), the user will receive a magic link. - - - - - -```js -const { error, data } = await supabase.auth.signIn({ - email: 'example@email.com' -}) -``` - - - - - -```py -import os -from supabase import create_client, Client - -url: str = os.environ.get("SUPABASE_TEST_URL") -key: str = os.environ.get("SUPABASE_TEST_KEY") -supabase: Client = create_client(url, key) -user = supabase.auth.sign_in( - email='example@email.com' -) -``` - - - - - - -```dart -import 'package:supabase/supabase.dart'; - -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - // Sign in user with email and magic link - final response = await client - .auth - .signIn(email: 'example@email.com'); -} -``` - - - - - - -Third party logins are also handled through [`signIn()`](/docs/reference/javascript/auth-signin). - - - - - - -```js -const { user, error } = await supabase.auth.signIn({ - // provider can be 'github', 'google', 'gitlab', or 'bitbucket' - provider: 'github' -}) -``` - - - - - -```py -# Not yet implemented -``` - - - - - - -```dart -import 'package:supabase/supabase.dart'; - -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - final response = await client - .auth - .signIn(provider: Provider.github); -} -``` - - - - - -## Managing data - -Since Postgres is a Relational database, the client makes it simple to query tables and fetch related data in one round-trip, using [`select()`](/docs/reference/javascript/select). - - - - - - -```js -const { data, error } = await supabase - .from('countries') - .select(` - name, - cities ( - name - ) - `) -``` - - - - - -```py -import os -from supabase import create_client, Client - -url: str = os.environ.get("SUPABASE_TEST_URL") -key: str = os.environ.get("SUPABASE_TEST_KEY") -supabase: Client = create_client(url, key) - -data = supabase.table('countries').select('name').execute() -``` - - - - - - -```dart -import 'package:supabase/supabase.dart'; - -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - // Query tables and fetch related data in one round-trip, using select() - final response = await client - .from('countries') - .select('name') - .execute(); -} -``` - - - - - - -You can do advanced [filtering](/docs/reference/javascript/using-filters) to extract only the data that you need. - - - - - - -```js -const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lt('country_id', 100) - .limit(10) -``` - - - - - -```py -data = supabase.table('cities').select('name, country_id').eq('name', 'Germany').execute() -# Assert we pulled real data. -assert len(data.get("data", [])) > 0 -``` - - - - - - -```dart -import 'package:supabase/supabase.dart'; - -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - // When fetching data, use advanced filtering to only extract data, that you need. - final response = await client - .from('cities') - .select('name,country_id') - .lt('country_id', 100) - .limit(10) - .execute(); -} -``` - - - - - - -You can create data easily using [`insert()`](/docs/reference/javascript/insert). - - - - - - - -```js -const { data, error } = await supabase - .from('cities') - .insert([ - { name: 'The Shire', country_id: 554 }, - { name: 'Rohan', country_id: 555 }, - ]) -``` - - - - - -```py -data = supabase.table('cities').insert({'name': 'Gotham', 'country_id': 556 }).execute() -# assert if insert response is a success -assert data.get("status_code") in (200, 201) - -# bulk insert -data = supabase.table('cities').insert([ -{'name': 'Gotham', 'country_id': 556 }, -{'name': 'The Shire', 'country_id': 557 } -]).execute() - -``` - - - - - - -```dart -import 'package:supabase/supabase.dart'; - -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - // Create data easily, using insert() - final response = await client - .from('cities') - .insert([ - { 'name': 'The Shire', 'country_id': 554 }, - { 'name': 'Rohan', 'country_id': 555 }, - ]) - .execute(); -} -``` - - - - - - -## Realtime Changes - -The Supabase client makes it simple to listen to realtime database changes, using [`subscribe()`](/docs/reference/javascript/subscribe). - - - - - - -```js -const mySubscription = supabase - .from('countries') - .on('*', payload => { - console.log('Change received!', payload) - }) - .subscribe() -``` - - - - - -```py -# Not yet implemented -``` - - - - - - -```dart -import 'package:supabase/supabase.dart'; - -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - // Listen to realtime database changes, using subscribe() - final response = await client - .from('countries') - .on(SupabaseEventTypes.all, (payload) { - print('Something happened: ${payload.eventType}'); - }) - .subscribe((String event, {String? errorMsg}) { - print('event: $event error: $errorMsg'); - }); -} -``` - - - - - - -You can even [listen to Row Level changes](/docs/reference/javascript/subscribe#listening-to-row-level-changes). - - - - - - -```js -const mySubscription = supabase - .from('countries:id.eq.200') - .on('UPDATE', handleRecordUpdated) - .subscribe() -``` - - - - - -```py -# Not yet implemented -``` - - - - - - -```dart -import 'package:supabase/supabase.dart'; - -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - // You can even listen to Row Level changes - final response = await client - .from('countries:id.eq.200') - .on(SupabaseEventTypes.update, (payload) { - print('Something happened: ${payload.eventType}'); - }) - .subscribe((String event, {String? errorMsg}) { - print('event: $event error: $errorMsg'); - }); -} -``` - - - - - - - -## Next steps - -- View the [Client Docs](/docs/reference/javascript/installing) -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/database.mdx b/web/docs/guides/database.mdx deleted file mode 100644 index 2ee6736a54c..00000000000 --- a/web/docs/guides/database.mdx +++ /dev/null @@ -1,218 +0,0 @@ ---- -id: database -title: Database -description: Use Supabase to manage your data. -sidebar_label: Overview ---- - -Every Supabase project comes with a full [Postgres](https://www.postgresql.org/) database, a free and open source -database which is considered one of the world's most stable and advanced databases. - -## Postgres or PostgreSQL? - -PostgreSQL the database was derived from the POSTGRES Project, a package written at the University of California at Berkeley in 1986. -This package included a query language called "PostQUEL". - -In 1994, Postgres95 was built on top of POSTGRES code, adding an SQL language interpreter as a replacement for PostQUEL. -Eventually, Postgres95 was renamed to PostgreSQL to reflect the SQL query capability. - -After this, many people referred to it as Postgres since it's less prone to confusion. Supabase is all about -simplicity, so we also refer to it as Postgres. - -## Features - -### Table View - -You don't have to be a database expert to start using Supabase. Our table view makes Postgres as easy to use as a spreadsheet. - -![Table View.](/img/table-view.png) - -### Relationships - -Dig into the relationships within your data. - - - -### Clone tables - -You can duplicate your tables, just like you would inside a spreadsheet. - - - -### The SQL Editor - -Supabase comes with a SQL Editor. You can also save your favorite queries to run later! - - - -### Additional features - -- Supabase extends Postgres with realtime functionality using our [Realtime Server](https://github.com/supabase/realtime). -- Every project is a full Postgres database, with `postgres` level access. -- Managed backups - Supabase handles all your database backups.[^backups] -- Data imports - import directly from a CSV or excel spreadsheet. - -[^backups] Database backups do _NOT_ include objects stored via the Storage API, as the database only includes metadata about these objects. Restoring an old backup will not restore objects that have been deleted since then. - -### Extensions - -To expand the functionality of your Postgres database, you can use extensions. -You can enable Postgres extensions with the click of a button within the Supabase dashboard. - - - -[Learn more](/docs/guides/database/extensions) about all the extensions provided on Supabase. - -## Tips - -### Realtime - -Supabase provides a realtime engine on top of Postgres, so that you can listen to changes as they happen. -Our realtime engine uses the built-in replication functionality of Postgres. - -Realtime server broadcasts database changes to authorized users depending on your Row Level Security (RLS) policies. -We recommend that you enable row level security and set row security policies on tables that you add to the publication. -However, you may choose to disable RLS on a table and have changes broadcast to all connected clients. - -You can manage the realtime system, simply by -[updating](/docs/guides/database/replication) the `supabase_realtime` publication. - -For example to enable realtime only for individual tables: - -```sql -begin; - -- remove the realtime publication - drop publication if exists supabase_realtime; - - -- re-create the publication but don't enable it for any tables - create publication supabase_realtime; -commit; - --- add a table to the publication -alter publication supabase_realtime add table products; - --- add other tables to the publication -alter publication supabase_realtime add table posts; -``` - -By default only "new" values are sent, but if you want to receive the old record (previous values) whenever you `update` or `delete` a record, -you can update the replica identity of your tables, setting it to `full`: - -```sql -alter table your_table replica identity full; -``` - -### Migrating between projects - -Migrating projects can be achieved using standard PostgreSQL tooling. This is particularly useful for older projects (e.g. to use a newer Postgres version). - -#### Before you begin - -- Make sure [Postgres](https://www.postgresql.org/download/) is installed so you can run `psql` and `pg_dump`. -- Create a new Supabase project. -- If you enabled Database Webhooks on your old project, enable it on your new project. -- Store the old project's database URL as `$OLD_DB_URL` and the new project's as `$NEW_DB_URL`. - -#### Migrate the database - -1. Run `ALTER ROLE postgres SUPERUSER` in the _old_ project's SQL editor -2. Run `pg_dump --clean --if-exists --quote-all-identifiers -h $OLD_DB_URL -U postgres > dump.sql` from your terminal -3. Run `ALTER ROLE postgres NOSUPERUSER` in the _old_ project's SQL editor -4. Run `ALTER ROLE postgres SUPERUSER` in the _new_ project's SQL editor -5. Run `psql -h $NEW_DB_URL -U postgres -f dump.sql` from your terminal -6. Run `TRUNCATE storage.objects` in the _new_ project's SQL editor -7. Run `ALTER ROLE postgres NOSUPERUSER` in the _new_ project's SQL editor - -#### Migrate storage objects - -This script moves storage objects from one project to another. If you have more than 10k objects, we can move the objects for you. Just contact us at [support@supabase.io](mailto:support@supabase.io). - -```js -const { createClient } = require('@supabase/supabase-js') - -const OLD_PROJECT_URL = 'https://xxx.supabase.co' -const OLD_PROJECT_SERVICE_KEY = 'old-project-service-key-xxx' - -const NEW_PROJECT_URL = 'https://yyy.supabase.co' -const NEW_PROJECT_SERVICE_KEY = 'new-project-service-key-yyy' - -;(async () => { - const oldSupabaseRestClient = createClient(OLD_PROJECT_URL, OLD_PROJECT_SERVICE_KEY, { - schema: 'storage', - }) - const oldSupabaseClient = createClient(OLD_PROJECT_URL, OLD_PROJECT_SERVICE_KEY) - const newSupabaseClient = createClient(NEW_PROJECT_URL, NEW_PROJECT_SERVICE_KEY) - - // make sure you update max_rows in postgrest settings if you have a lot of objects - // or paginate here - const { data: oldObjects, error } = await oldSupabaseRestClient.from('objects').select() - if (error) { - console.log('error getting objects from old bucket') - throw error - } - - for (const objectData of oldObjects) { - console.log(`moving ${objectData.id}`) - try { - const { data, error: downloadObjectError } = await oldSupabaseClient.storage - .from(objectData.bucket_id) - .download(objectData.name) - if (downloadObjectError) { - throw downloadObjectError - } - - const { _, error: uploadObjectError } = await newSupabaseClient.storage - .from(objectData.bucket_id) - .upload(objectData.name, data, { - upsert: true, - contentType: objectData.metadata.mimetype, - cacheControl: objectData.metadata.cacheControl, - }) - if (uploadObjectError) { - throw uploadObjectError - } - } catch (err) { - console.log('error moving ', objectData) - console.log(err) - } - } -})() -``` - -#### Caveats - -- The new project will have the old project's Storage buckets, but not the objects. You will need to migrate Storage objects manually. - -### Resetting your project password - -When you create a new project in Supabase we ask for a password. You can use this password to connect directly to your Postgres database. - -If you forget your password, you can reset it from the Dashboard under the database settings page. - -Read more in [Database Configuration](/docs/guides/database/managing-passwords). - -### Changing the timezone of your server. - -Your database is initialized with the UTC timezone. We recommend keeping it this way, as it is helpful for time calculations. -If, however, you want to update the timezone, you can do so using any of the [database timezones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). - -For example: - -```sql -alter database postgres set timezone to 'America/New_York'; -``` - -Read more in [Database Configuration](/docs/guides/database/managing-timezones). - -## Next steps - -- Read more about [Postgres](/docs/postgres/server/about) -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/database/arrays.mdx b/web/docs/guides/database/arrays.mdx deleted file mode 100644 index 63c5a12716d..00000000000 --- a/web/docs/guides/database/arrays.mdx +++ /dev/null @@ -1,175 +0,0 @@ ---- -id: arrays -title: 'Working With Arrays' -description: How to use arrays in PostgreSQL and the Supabase API. ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -PostgreSQL supports flexible [array types](https://www.postgresql.org/docs/12/arrays.html). These arrays are also supported in the Supabase Dashboard and in the JavaScript API. - -## Create a table with an array column - -Create a test table with a text array (an array of strings): - - - - - -1. Go to the [Table editor](https://app.supabase.com/project/_/editor) page in the Dashboard. -1. Click **New Table** and create a table with the name `arraytest`. -1. Click **Save**. -1. Click **New Column** and create a column with the name `textarray`, type `text`, and select **Define as array**. -1. Click **Save**. - - - - - -```sql -CREATE TABLE arraytest (id integer NOT NULL, textarray text ARRAY); -``` - - - - -## Insert a record with an array value - - - - - -1. Go to the [Table editor](https://app.supabase.com/project/_/editor) page in the Dashboard. -1. Select the `arraytest` table. -1. Click **Insert row** and add `["Harry", "Larry", "Moe"]`. -1. Click **Save.** - - - - - -```sql -INSERT INTO arraytest (id, textarray) VALUES (1, ARRAY['Harry', 'Larry', 'Moe']); -``` - - - - -Insert a record from the JavaScript client: - -```js -const { data, error } = await supabase - .from('arraytest') - .insert([{ id: 2, textarray: ['one', 'two', 'three', 'four'] }]) -``` - - - - - -## View the results - - - - - -1. Go to the [Table editor](https://app.supabase.com/project/_/editor) page in the Dashboard. -1. Select the `arraytest` table. - -You should see: - -| id | textarray | -| --- | ----------------------- | -| 1 | ["Harry","Larry","Moe"] | - - - - -```sql -SELECT * FROM arraytest; -``` - -You should see: - -| id | textarray | -| --- | ----------------------- | -| 1 | ["Harry","Larry","Moe"] | - - - - -## Query array data - -PostgreSQL uses 1-based indexing (e.g., `textarray[1]` is the first item in the array). - - - - - -To select the first item from the array and get the total length of the array: - -```js -SELECT textarray[1], array_length(textarray, 1) FROM arraytest; -``` - -returns: - -| textarray | array_length | -| --------- | ------------ | -| Harry | 3 | - - - - - -This returns the entire array field: - -```js -const { data, error } = await supabase.from('arraytest').select('textarray[]') -console.log(JSON.stringify(data, null, 2)) -``` - -returns: - -```js -[ - { - textarray: ['Harry', 'Larry', 'Moe'], - }, -] -``` - - - - -## Resources - -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [Supabase Account - Free Tier OK](https://supabase.com) -- [PostgreSQL Arrays](https://www.postgresql.org/docs/12/arrays.html) diff --git a/web/docs/guides/database/connecting-to-postgres.mdx b/web/docs/guides/database/connecting-to-postgres.mdx deleted file mode 100644 index 5f464169195..00000000000 --- a/web/docs/guides/database/connecting-to-postgres.mdx +++ /dev/null @@ -1,135 +0,0 @@ ---- -id: connecting-to-postgres -title: 'Database Connections' -description: There are various ways to connect to your Postgres database. ---- - -Supabase provides several options for programmatically connecting to your Postgres database: - -## Types of Connection - -- HTTP connections using the API. -- Direct connections using Postgres' standard connection system. -- Connection pooling using PgBouncer. - -### API vs Direct vs Pooling - -- The API is an auto-generated REST interface. You should use this for all browser and application interactions. -- A "direct connection" is when a connection is made to the database using Postgres' native connection implementation. You should use this for tools which are always alive - usually installed on a long-running server. -- A "connection pool" is a system (external to Postgres) which keeps connections "open". You should use this for serverless functions and tools which disconnect from the database frequently. - -Why would you use a connection pool? Primarily because the way that Postgres handles connections isn't very scalable for a large number of _temporary_ connections. -You can use these simple questions to determine which connection method to use: - -- Are you connecting to a database and _maintaining_ a connection? If yes, use a direct connection. -- Are you connecting to your database and then _disconnecting_ immediately (e.g. a serverless environment)? If yes, use a connection pool. - -## API - -Supabase provides an auto-updating [API](/docs/guides/api). This is the easiest way to get started if you are managing data (fetching, inserting, updating). - -### Interfaces - -We provides several types of API to suit your preferences and use-case: - -- [REST](/docs/guides/api#rest-api): interact with your database through a REST interface. -- [GraphQL](/docs/guides/api#graphql-api): interact with your database through a GraphQL interface. -- [Realtime](/docs/guides/api#realtime-api): listen to database changes over websockets. - -You cannot manage the database schema via the API (for security reasons). To do that you can use the dashboard or connect directly to your database. - -### API URL and Keys - -You can find the API URL and Keys in the [Dashboard](https://app.supabase.com/project/_/settings/api). - - - -## Direct connections - -Every Supabase project provides a full Postgres database. You can connect to the database using any tool which supports Postgres. - -### Finding your connection string - -1. Go to the `Settings` section. -2. Click `Database`. -3. Find your Connection Info and Connection String. Direct connections are on port `5432`. - - - -## Connection Pool - -Connection pools are useful for managing a large number of _temporary_ connections. For example, if you are using [Prisma](/docs/guides/integrations/prisma) deployed to a Serverless environment. - -### How connection pooling works - -A "connection pool" is a system (external to Postgres) which manages connections, rather than PostgreSQL's native system. Supabase uses [PgBouncer](https://www.pgbouncer.org/) for connection pooling. - -When a client makes a request, PgBouncer "allocates" an available connection to the client. -When the client transaction or session is completed the connection is returned to the pool and is free to be used by another client. - -![Connection pooling](/img/guides/database/connection-pool.png) - -### Pool modes - -Pool Mode determines how PgBouncer handles a connection. - -#### Session - -When a new client connects, a connection is assigned to the client until it disconnects. Afterward, the connection is returned back to the pool. - -All PostgreSQL features can be used with this option. - -#### Transaction - -This is the suggested option for serverless functions. A connection is only assigned to the client for the duration of a transaction. Two consecutive transactions from the same client -could be executed over two different connections. - -Some session-based PostgreSQL features such as prepared statements are not available with this option. -A comprehensive list of incompatible features can be found [here](https://www.pgbouncer.org/features.html). - -#### Statement - -This is the most granular option. Connections are returned to the pool after every statement. Transactions with multiple statements are not allowed. This is best used when `AUTOCOMMIT` is in use. - -### Finding the connection pool config - -1. Go to the `Settings` section. -2. Click `Database`. -3. Find your Connection Info and Connection String. Connection pooling is on port `6543`. - - - -## Connecting with SSL - -Use this when connecting to your database to prevent snooping and man-in-the-middle attacks. - -Obtain your connection info and Server root certificate from your application’s dashboard. -![Connection Info and Certificate.](/img/guides/database/connection-info-cert.png) - -Assuming you’ve downloaded your certificate and it’s located at `$HOME/Downloads/prod-ca-2021.cer`, and your Host address is `db.abcdefghijklm.supabase.co` you can connect to the DB with -SSL enabled as illustrated below: - -1. With `psql` - -``` -psql "sslmode=verify-full sslrootcert=$HOME/Downloads/prod-ca-2021.cer host=db.abcdefghijklm.supabase.co dbname=postgres user=postgres" -``` - -2. With `pgAdmin` - a. Register a new Postgres server - ![Register a new postgres server.](/img/guides/database/register-server-pgAdmin.png) - - b. Name your server to your liking and add the connection info. - ![Name Postgres Server.](/img/guides/database/name-pg-server.png) - ![Add Connection Info.](/img/guides/database/add-pg-server-conn-info.png) - -3. Navigate to the SSL tab and change the SSL mode to Require. Next navigate to the Root certificate input, it will open up a - file-picker modal. Select the certificate you downloaded from your Supabase dashboard and save the server details. PgAdmin - should now be able to connect to your Postgres via SSL. - ![Add Connection Info.](/img/guides/database/add-ssl-config.png) diff --git a/web/docs/guides/database/extensions.mdx b/web/docs/guides/database/extensions.mdx deleted file mode 100644 index fceef7106e5..00000000000 --- a/web/docs/guides/database/extensions.mdx +++ /dev/null @@ -1,62 +0,0 @@ ---- -id: extensions -title: Overview -description: Using Postgres extensions. ---- - -import ExtensionsComponent from '@site/src/components/Extensions' -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Extensions are exactly as they sound - they "extend" the database with functionality which isn't part of the Postgres core. -Supabase has pre-installed some of the most useful open source extensions. - - -### Enable and disable extensions - - - - - -1. Go to the [Database](https://app.supabase.com/project/_/database/tables) page in the Dashboard. -2. Click **Extensions** in the sidebar. -3. Enable or disable an extension. - - - - - - - -```sql --- Example: enable the "pgtap" extension and ensure it is installed -create extension pgtap with schema extensions; - --- Example: disable the "pgtap" extension -drop extension pgtap; -``` - -Even though the SQL code is `create extension`, this is the equivalent of "enabling the extension". -To disable an extension call `drop extension`. - -:::caution -Enabling some extensions with `create extension with schema extensions` may lead to permission issues (e.g., `dblink`, `http`, `pg_cron`). -::: - - - - - - -### Full list of extensions - -Supabase is pre-configured with over 50 extensions. You can also install your own SQL extensions directly in the database through our SQL editor. - - diff --git a/web/docs/guides/database/extensions/http.mdx b/web/docs/guides/database/extensions/http.mdx deleted file mode 100644 index 3ae3da1b654..00000000000 --- a/web/docs/guides/database/extensions/http.mdx +++ /dev/null @@ -1,122 +0,0 @@ ---- -id: http -title: "http: RESTful Client" -description: An HTTP Client for PostgreSQL Functions. ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -The `http` extension allows you to call RESTful endpoints within Postgres. - -## Quick demo - - - -## Overview - -Let's cover some basic concepts: - -- REST: stands for REpresentational State Transfer. It's simply a way to request data from external services. -- RESTful APIs are servers which accept HTTP "calls". The calls are typically: - - `GET` − Read only access to a resource. - - `POST` − Creates a new resource. - - `DELETE` − Removes a resource. - - `PUT` − Updates an existing resource or creates a new resource. - -You can use the `http` extension to make these network requests from Postgres. - -## Usage - - -### Enable the extension - - - - - -1. Go to the [Database](https://app.supabase.com/project/_/database/tables) page in the Dashboard. -2. Click on **Extensions** in the sidebar. -3. Search for "http" and enable the extension. - - - - -```sql --- Example: enable the "http" extension -create extension http with schema extensions; - --- Example: disable the "http" extension -drop extension if exists http; -``` - -Even though the SQL code is `create extension`, this is the equivalent of "enabling the extension". -To disable an extension, call `drop extension`. - -It's good practice to create the extension within a separate schema (like `extensions`) to keep your database clean. - - - - - -### Available functions - -While the main usage is simply `http('http_request')`, there are 5 wrapper functions for specific functionality: - -- `http_get()` -- `http_post()` -- `http_put()` -- `http_delete()` -- `http_head()` - -### Returned values - -A successful call to a web URL from the `http` extension returns a record with the following fields: - -- `status`: integer -- `content_type`: character varying -- `headers`: http_header[] -- `content`: character varying. Typically you would want to cast this to `jsonb` using the format `content::jsonb` - -## Examples - -### Simple `GET` example - -```sql -select - "status", "content"::jsonb -from - http_get('https://jsonplaceholder.typicode.com/todos/1'); -``` - - -### Simple `POST` example - -```sql -select - "status", "content"::jsonb -from - http_post( - 'https://jsonplaceholder.typicode.com/posts', - '{ "title": "foo", "body": "bar", "userId": 1 }', - 'application/json' - ); -``` - - -## Resources - -- Official [`http` GitHub Repository](https://github.com/pramsey/pgsql-http) diff --git a/web/docs/guides/database/extensions/pgtap.mdx b/web/docs/guides/database/extensions/pgtap.mdx deleted file mode 100644 index 484a50f7afd..00000000000 --- a/web/docs/guides/database/extensions/pgtap.mdx +++ /dev/null @@ -1,126 +0,0 @@ ---- -id: pgtap -title: "pgTAP: Unit Testing" -description: Unit testing in PostgreSQL. ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -`pgTAP` is a unit testing extension for PostgreSQL. - -## Overview - -Let's cover some basic concepts: - -- Unit tests: allow you to test small parts of a system (like a database table!). -- TAP: stands for [Test Anything Protocol](http://testanything.org/). It is an framework which aims to simplify the error reporting during testing. - -## Usage - -### Enable the extension - - - - - -1. Go to the [Database](https://app.supabase.com/project/_/database/tables) page in the Dashboard. -2. Click on **Extensions** in the sidebar. -3. Search for "pgtap" and enable the extension. - - - - - - -```sql --- Enable the "pgtap" extension -create extension pgtap with schema extensions; - --- Disable the "pgtap" extension -drop extension if exists pgtap; -``` - -Even though the SQL code is `create extension`, this is the equivalent of "enabling the extension". -To disable an extension you can call `drop extension`. - -It's good practice to create the extension within a separate schema (like `extensions`) to keep your database clean. - - - - - -### Managing tests - -It's a good practice to keep all your tests in a separate schema. - -```sql -create schema tests; -``` - -### Creating a test - - -@TODO - -- Create a plan -- We should come up with a recommendation on how to run the tests. Via a function? External scripts? -- Eventually this can be done via our CLI - - -### Running a test - -@TODO - - -## Examples - -Let's look at a few different tests which could be helpful in your project. - - -### Testing tables - - -```sql -begin; -select plan( 1 ); - -select has_table( 'profiles' ); - -select * from finish(); -rollback; -``` - -API: - -- [`has_table()`](https://pgtap.org/documentation.html#has_table) - - -### Testing columns - -```sql -begin; -select plan( 1 ); - -select has_column( 'profiles', 'id' ); -select col_is_pk( 'profiles', 'id' ); - -select * from finish(); -rollback; -``` - -API: - -- [`has_column()`](https://pgtap.org/documentation.html#has_column) -- [`col_is_pk()`](https://pgtap.org/documentation.html#col_is_pk) - -## Resources - -- Official [`pgTAP` documentation](https://pgtap.org/) diff --git a/web/docs/guides/database/extensions/plv8.mdx b/web/docs/guides/database/extensions/plv8.mdx deleted file mode 100644 index 1eed5c92bac..00000000000 --- a/web/docs/guides/database/extensions/plv8.mdx +++ /dev/null @@ -1,146 +0,0 @@ ---- -id: plv8 -title: "plv8: JavaScript Language" -description: JavaScript language for PostgreSQL. ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -The `plv8` extension allows you use JavaScript within Postgres. - -## Overview - -While Postgres natively runs SQL, it can also run other "procedural languages". -`plv8` allows you to run JavaScript code - specifically any code that runs on the [V8 JavaScript engine](https://v8.dev). - -It can be used for database functions, triggers, queries and more. - -## Usage - -### Enable the extension - - - - - -1. Go to the [Database](https://app.supabase.com/project/_/database/tables) page in the Dashboard. -2. Click on **Extensions** in the sidebar. -3. Search for "plv8" and enable the extension. - - - - -```sql --- Example: enable the "plv8" extension -create extension plv8; - --- Example: disable the "plv8" extension -drop extension if exists plv8; -``` - -Even though the SQL code is `create extension`, this is the equivalent of "enabling the extension". -To disable an extension, call `drop extension`. - -Procedural languages are automatically installed within `pg_catalog`, so you don't need to specify a schema. - - - - -### Create `plv8` functions - -Functions written in `plv8` are written just like any other PostgreSQL functions, only -with the `language` identifier set to `plv8`. - -```sql -create or replace function function_name() -returns void as $$ - // V8 JavaScript - // code - // here -$$ language plv8; -``` - -You can call `plv8` functions like any other Postgres function: - - - - - -```sql -select function_name(); -``` - - - - -```js -const { data, error } = supabase.rpc('function_name') -``` - - - - -## Examples - -### Scalar functions - -A [scalar function](https://plv8.github.io/#scalar-function-calls) is anything that takes in some user input and returns a single result. - -```sql -create or replace function hello_world(name text) -returns text as $$ - - let output = `Hello, ${name}!`; - return output; - -$$ language plv8; -``` - -### Executing SQL - -You can execute SQL within `plv8` code using the [`plv8.execute` function](https://plv8.github.io/#plv8-execute). - -```sql -create or replace function update_user(id bigint, first_name text) -returns smallint as $$ - - var num_affected = plv8.execute( - 'update profiles set first_name = $1 where id = $2', - [first_name, id] - ); - - return num_affected; -$$ language plv8; -``` - -### Set-returning functions - -A [set-returning function](https://plv8.github.io/#set-returning-function-calls) is anything that returns a full set of results - for example, rows in a table. - -```sql -create or replace function get_messages() -returns setof messages as $$ - - var json_result = plv8.execute( - 'select * from messages' - ); - - return json_result; -$$ language plv8; -``` - -## Resources - -- Official [`plv8` documentation](https://plv8.github.io/) -- [plv8 GitHub Repository](https://github.com/plv8/plv8) diff --git a/web/docs/guides/database/extensions/uuid-ossp.mdx b/web/docs/guides/database/extensions/uuid-ossp.mdx deleted file mode 100644 index 0fdb296c6b7..00000000000 --- a/web/docs/guides/database/extensions/uuid-ossp.mdx +++ /dev/null @@ -1,98 +0,0 @@ ---- -id: uuid-ossp -title: "uuid-ossp: Unique Identifiers" -description: A UUID generator for PostgreSQL. ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -The `uuid-ossp` extension can be used to generate a `UUID`. - - -## Overview - -A `UUID` is a "Universally Unique Identifer" and it is, for practical purposes, unique. -This makes them particularly well suited as Primary Keys. It is occasionally referred to as a `GUID`, which stands for "Globally Unique Identifer". - -## Usage - -### Enable the extension - - - - - -1. Go to the [Database](https://app.supabase.com/project/_/database/tables) page in the Dashboard. -2. Click on **Extensions** in the sidebar. -3. Search for "uuid-ossp" and enable the extension. - -**Note**: -Currently `uuid-ossp` extension is enabled by default and cannot be disabled. - - - - -```sql --- Example: enable the "uuid-ossp" extension -create extension "uuid-ossp" with schema extensions; - --- Example: disable the "uuid-ossp" extension -drop extension if exists "uuid-ossp"; -``` - -Even though the SQL code is `create extension`, this is the equivalent of "enabling the extension". -To disable an extension, call `drop extension`. - -It's good practice to create the extension within a separate schema (like `extensions`) to keep your database clean. - -**Note**: -Currently `uuid-ossp` extension is enabled by default and cannot be disabled. - - - - - -### The `uuid` type - -Once the extension is enabled, you now have access to a `uuid` type. - -### `uuid_generate_v1()` - -Creates a UUID value based on the combination of computer’s MAC address, current timestamp, and a random value. - -### `uuid_generate_v4()` - -Creates UUID values based solely on random numbers. - -## Examples - -### Within a query - -```sql -select uuid_generate_v4(); -``` - -### As a Primary Key - -Automatically create a unique, random ID in a table: - -```sql -create table contacts ( - id uuid default uuid_generate_v4(), - first_name text, - last_name text, - - primary key (id) -); -``` - - -## Resources - -- [The Basics Of PostgreSQL `UUID` Data Type](https://www.postgresqltutorial.com/postgresql-uuid/) diff --git a/web/docs/guides/database/full-text-search.mdx b/web/docs/guides/database/full-text-search.mdx deleted file mode 100644 index 53698afc5d3..00000000000 --- a/web/docs/guides/database/full-text-search.mdx +++ /dev/null @@ -1,630 +0,0 @@ ---- -id: full-text-search -title: "Full Text Search" -description: How to use full text search in PostgreSQL. ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - -Postgres has built-in functions to handle `Full Text Search` queries. This is like a "search engine" within Postgres. - - -## Preparation - -For this guide we'll use the following example data: - - - - - - -```sql -create table books ( - id serial primary key, - title text, - author text, - description text -); - -insert into books (title, author, description) -values - ('The Poky Little Puppy','Janette Sebring Lowrey','Puppy is slower than other, bigger animals.'), - ('The Tale of Peter Rabbit','Beatrix Potter','Rabbit eats some vegetables.'), - ('Tootle','Gertrude Crampton','Little toy train has big dreams.'), - ('Green Eggs and Ham','Dr. Seuss','Sam has changing food preferences and eats unusually colored food.'), - ('Harry Potter and the Goblet of Fire','J.K. Rowling','Fourth year of school starts, big drama ensues.'); -``` - - - - -| id | title | author | description | -| ---- | ---- | ---- | ----------- | -| 1 | The Poky Little Puppy | Janette Sebring Lowrey | Puppy is slower than other, bigger animals. | -| 2 | The Tale of Peter Rabbit | Beatrix Potter | Rabbit eats some vegetables. | -| 3 | Tootle | Gertrude Crampton | Little toy train has big dreams. | -| 4 | Green Eggs and Ham | Dr. Seuss | Sam has changing food preferences and eats unusually colored food. | -| 5 | Harry Potter and the Goblet of Fire | J.K. Rowling | Fourth year of school starts, big drama ensues. | - - - - - -## Usage - -The functions we'll cover in this guide are: - -### `to_tsvector()` - -Converts your data into searchable "tokens". `to_tsvector()` stands for "to text search vector". For example: - -```sql -select to_tsvector('green eggs and ham') - --- Returns 'egg':2 'green':1 'ham':4 -``` - -Collectively these tokens are called a "document" which Postgres can use for comparisons. - -### `to_tsquery()` - -Converts a query string into "tokens" to match. `to_tsquery()` stands for "to text search query". - -This conversion step is important because we will want to "fuzzy match" on keywords. -For example if a user searches for "eggs", and a column has the value "egg", we probably still want to return a match. - - -### Match: `@@` - -The `@@` symbol is the "match" symbol for Full Text Search. It returns any matches between a `to_tsvector` result and a `to_tsquery` result. - -Take the following example: - - - - -```sql -select * -from books -where title = 'Harry'; -``` - - - - -```js -const { data, error } = await supabase - .from('books') - .select() - .eq('title', 'Harry') -``` - - - - - -```dart -final result = await client - .from('books') - .select() - .eq('title', 'Harry') - .execute(); -``` - - - - - -The equality symbol above (`=`) is very "strict" on what it matches. In a full text search context, we might want to find all "Harry Potter" books and so we can rewrite the -example above: - - - - -```sql -select * -from books -where to_tsvector(title) @@ to_tsquery('Harry'); -``` - - - - -```js -const { data, error } = await supabase - .from('books') - .select() - .textSearch('title', `'Harry'`) -``` - - - - -```dart -final result = await client - .from('books') - .select() - .textSearch('title', "'Harry'") - .execute(); -``` - - - - -## Basic Full Text Queries - -### Search a single column - -To find all `books` where the `description` contain the word `big`: - - - - -```sql -select - * -from - books -where - to_tsvector(description) - @@ to_tsquery('big'); -``` - - - - -```js -const { data, error } = await supabase - .from('books') - .select() - .textSearch('description', `'big'`) -``` - - - - -```dart -final result = await client - .from('books') - .select() - .textSearch('description', "'big'") - .execute(); -``` - - - - -| id | title | author | description | -| -- | ----------------------------------- | ----------------- | ----------------------------------------------- | -| 3 | Tootle | Gertrude Crampton | Little toy train has big dreams. | -| 5 | Harry Potter and the Goblet of Fire | J.K. Rowling | Fourth year of school starts, big drama ensues. | - - - - -### Search multiple columns - -To find all `books` where `description` or `title` contain the word `little`: - - - - -```sql -select - * -from - books -where - to_tsvector(description || ' ' || title) -- concat columns, but be sure to include a space to separate them! - @@ to_tsquery('little'); -``` - - - - -| id | title | author | description | -| -- | --------------------- | ---------------------- | ------------------------------------------- | -| 1 | The Poky Little Puppy | Janette Sebring Lowrey | Puppy is slower than other, bigger animals. | -| 3 | Tootle | Gertrude Crampton | Little toy train has big dreams. | - - - - -### Match all search words - -To find all `books` where `description` contains BOTH of the words `little` and `big`, we can use the `&` symbol: - - - - -```sql -select - * -from - books -where - to_tsvector(description) - @@ to_tsquery('little & big'); -- use & for AND in the search query -``` - - - - -```js -const { data, error } = await supabase - .from('books') - .select() - .textSearch('description', `'little' & 'big'`) -``` - - - - -```dart -final result = await client - .from('books') - .select() - .textSearch('description', "'little' & 'big'") - .execute(); -``` - - - - -| id | title | author | description | -| -- | ------ | ----------------- | -------------------------------- | -| 3 | Tootle | Gertrude Crampton | Little toy train has big dreams. | - - - - -### Match any search words - -To find all `books` where `description` contain ANY of the words `little` or `big`, use the `|` symbol: - - - - -```sql -select - * -from - books -where - to_tsvector(description) - @@ to_tsquery('little | big'); -- use | for OR in the search query -``` - - - - -```js -const { data, error } = await supabase - .from('books') - .select() - .textSearch('description', `'little' | 'big'`) -``` - - - - -```dart -final result = await client - .from('books') - .select() - .textSearch('description', "'little' | 'big'") - .execute(); -``` - - - - -| id | title | author | description | -| -- | --------------------- | ---------------------- | ------------------------------------------- | -| 1 | The Poky Little Puppy | Janette Sebring Lowrey | Puppy is slower than other, bigger animals. | -| 3 | Tootle | Gertrude Crampton | Little toy train has big dreams. | - - - - -Notice how searching for `big` includes results with the word `bigger` (or `biggest`, etc). - -## Creating Indexes - -Now that we have Full Text Search working, let's create an `index`. This will allow Postgres to "build" the documents pre-emptively so that they -don't need to be created at the time we execute the query. This will make our queries much faster. - -### Searchable columns - -Let's create a new column `fts` inside the `books` table to store the searchable index of the `title` and `description` columns. - -We can use a special feature of Postgres called -[Generated Columns](https://www.postgresql.org/docs/current/ddl-generated-columns.html) -to ensure that the index is updated any time the values in the `title` and `description` columns change. - - - - -```sql -alter table - books -add column - fts tsvector generated always as (to_tsvector('english', description || ' ' || title)) stored; - -create index books_fts on books using gin (fts); -- generate the index - -select id, fts -from books; -``` - - - - -| id | fts | -| -- | --------------------------------------------------------------------------------------------------------------- | -| 1 | 'anim':7 'bigger':6 'littl':10 'poki':9 'puppi':1,11 'slower':3 | -| 2 | 'eat':2 'peter':8 'rabbit':1,9 'tale':6 'veget':4 | -| 3 | 'big':5 'dream':6 'littl':1 'tootl':7 'toy':2 'train':3 | -| 4 | 'chang':3 'color':9 'eat':7 'egg':12 'food':4,10 'green':11 'ham':14 'prefer':5 'sam':1 'unus':8 | -| 5 | 'big':6 'drama':7 'ensu':8 'fire':15 'fourth':1 'goblet':13 'harri':9 'potter':10 'school':4 'start':5 'year':2 | - - - - -### Search using the new column - -Now that we've created and populated our index, we can search it using the same techniques as before: - - - - -```sql -select - * -from - books -where - fts @@ to_tsquery('little & big'); -``` - - - - -```js -const { data, error } = await supabase - .from('books') - .select() - .textSearch('fts', `'little' & 'big'`) -``` - - - - -```dart -final result = await client - .from('books') - .select() - .textSearch('fts', "'little' & 'big'") - .execute(); -``` - - - - -| id | title | author | description | fts | -| -- | ------ | ----------------- | -------------------------------- | ------------------------------------------------------- | -| 3 | Tootle | Gertrude Crampton | Little toy train has big dreams. | 'big':5 'dream':6 'littl':1 'tootl':7 'toy':2 'train':3 | - - - - -## Query Operators - -Visit [PostgreSQL: Text Search Functions and Operators](https://www.postgresql.org/docs/current/functions-textsearch.html) -to learn about additional query operators you can use to do more advanced `full text queries`, such as: - -### Proximity: `<->` - -The proximity symbol is useful for searching for terms that are a certain "distance" apart. -For example, to find the phrase `big dreams`, where the a match for "big" is followed immediately by a match for "dreams": - - - - - -```sql -select - * -from - books -where - to_tsvector(description) @@ to_tsquery('big <-> dreams'); -``` - - - - -```js -const { data, error } = await supabase - .from('books') - .select() - .textSearch('description', `'big' <-> 'dreams'`) -``` - - - - -```dart -final result = await client - .from('books') - .select() - .textSearch('description', "'big' <-> 'dreams'") - .execute(); -``` - - - - - -We can also use the `<->` to find words within a certain distance of eachother. For example to find `year` and `school` within 2 words of each other: - - - - -```sql -select - * -from - books -where - to_tsvector(description) @@ to_tsquery('year <2> school'); -``` - - - - -```js -const { data, error } = await supabase - .from('books') - .select() - .textSearch('description', `'year' <2> 'school'`) -``` - - - - -```dart -final result = await client - .from('books') - .select() - .textSearch('description', "'year' <2> 'school'") - .execute(); -``` - - - - - -### Negation: `!` - -The negation symbol can be used to find phrases which _don't_ contain a search term. -For example, to find records that have the word `big` but not `little`: - - - - -```sql -select - * -from - books -where - to_tsvector(description) @@ to_tsquery('big & !little'); -``` - - - - -```js -const { data, error } = await supabase - .from('books') - .select() - .textSearch('description', `'big' & !'little'`) -``` - - - - -```dart -final result = await client - .from('books') - .select() - .textSearch('description', "'big' & !'little'") - .execute(); -``` - - - - - -## Resources - -* [PostgreSQL: Text Search Functions and Operators](https://www.postgresql.org/docs/12/functions-textsearch.html) - - - diff --git a/web/docs/guides/database/functions.mdx b/web/docs/guides/database/functions.mdx deleted file mode 100644 index 507643e7a31..00000000000 --- a/web/docs/guides/database/functions.mdx +++ /dev/null @@ -1,362 +0,0 @@ ---- -id: functions -title: Database Functions -description: Creating and using Postgres functions. ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - -Postgres has built-in support for [SQL functions](https://www.postgresql.org/docs/current/sql-createfunction.html). -These functions live inside your database, and they can be [used with the API](/docs/reference/javascript/rpc). - -## Quick demo - - - -## Getting started - -Supabase provides several options for creating database functions. You can use the Dashboard or create them directly using SQL. -We provide a SQL editor within the Dashboard, or you can [connect](/docs/guides/database/connecting/connecting-to-postgres) to your database -and run the SQL queries yourself. - - -1. Go to the "SQL editor" section. -2. Click "New Query". -3. Enter the SQL to create or replace your Database function. -4. Click "Run" or cmd+enter (ctrl+enter). - - -## Simple Functions - -Let's create a basic Database Function which returns a string "hello world". - -```sql -create or replace function hello_world() -- 1 -returns text -- 2 -language sql -- 3 -as $$ -- 4 - select 'hello world'; -- 5 -$$; --6 - -``` - -
    -Show/Hide Details - -At it's most basic a function has the following parts: - -1. `create or replace function hello_world()`: The function declaration, where `hello_world` is the name of the function. You can use either `create` when creating a new function or `replace` when replacing an existing function. Or you can use `create or replace` together to handle either. -2. `returns text`: The type of data that the function returns. If it returns nothing, you can `returns void`. -3. `language sql`: The language used inside the function body. This can also be a procedural language: `plpgsql`, `plv8`, `plpython`, etc. -4. `as $$`: The function wrapper. Anything enclosed inside the `$$` symbols will be part of the function body. -5. `select 'hello world';`: A simple function body. The final `select` statement inside a function body will be returned if there are no statements following it. -6. `$$;`: The closing symbols of the function wrapper. - -
    - -
    - -After the Function is created, we have several ways of "executing" the function - either directly inside the database using SQL, or with one of the client libraries. - - - - - -```sql -select hello_world(); -``` - - - - -```js -const { data, error } = await supabase - .rpc('hello_world') -``` - -Reference: [rpc()](/docs/reference/javascript/rpc) - - - - -```dart -final res = await supabase - .rpc('hello_world') - .execute(); -``` - -Reference: [rpc()](/docs/reference/dart/rpc) - - - - - - -## Returning data sets - -Database Functions can also return data sets from [Tables](/docs/guides/database/tables) or Views. - -For example, if we had a database with some Star Wars data inside: - - - - - -```sql -create table planets ( - id serial primary key, - name text -); - -insert into planets (id, name) -values - (1, 'Tattoine'), - (2, 'Alderaan'), - (3, 'Kashyyyk'); - -create table people ( - id serial primary key, - name text, - planet_id bigint references planets -); - -insert into people (id, name, planet_id) -values - (1, 'Anakin Skywalker', 1), - (2, 'Luke Skywalker', 1), - (3, 'Princess Leia', 2), - (4, 'Chewbacca', 3); -``` - - - - -

    Planets

    - -| id | name | -| ---- | ---- | -| 1 | Tattoine | -| 2 | Alderaan | -| 3 | Kashyyyk | - -

    People

    - -| id | name | planet_id | -| ---- | ---- | ---- | -| 1 | Anakin Skywalker | 1 | -| 2 | Luke Skywalker | 1 | -| 3 | Princess Leia | 2 | -| 4 | Chewbacca | 3 | - -
    - -
    - - -We could create a function which returns all the planets: - -```sql -create or replace function get_planets() -returns setof planets -language sql -as $$ - select * from planets; -$$; -``` - -Because this function returns a table set, we can also apply filters and selectors. For example, if we only wanted the first planet: - - - - - -```sql -select * -from get_planets() -where id = 1; -``` - - - - -```js -const { data, error } = supabase - .rpc('get_planets') - .eq('id', 1) -``` - - - - -```dart -final res = await supabase - .rpc('get_planets') - .eq('id', 1) - .execute(); -``` - - - - - - -## Passing parameters - -Let's create a Function to insert a new planet into the `planets` table and return the new ID. Note that this time we're using the `plpgsql` language. - -```sql -create or replace function add_planet(name text) -returns bigint -language plpgsql -as $$ -declare - new_row bigint; -begin - insert into planets(name) - values (add_planet.name) - returning id into new_row; - - return new_row; -end; -$$; -``` - -Once again, you can execute this function either inside your database using a `select` query, or with the client libraries: - - - - - -```sql -select * from add_planet('Jakku'); -``` - - - - -```js -const { data, error } = await supabase - .rpc('add_planet', { name: 'Jakku' }) -``` - - - - - -```dart -final res = await supabase - .rpc('add_planet', params: { 'name': 'Jakku' }) - .execute(); -``` - - - - - - -## Suggestions - -### Database Functions vs Edge Functions - -For data-intensive operations we recommend using [Database Functions](/docs/guides/database/functions), which are executed within your database -and can be called remotely using the [REST and GraphQL API](/docs/guides/database/api). - -For use-cases which require low-latency we recommend [Edge Functions](/docs/guides/functions), which are globally-distributed and can be written in Typescript. - -### Security `definer` vs `invoker` - -Postgres allows you to specify whether you want the function to be executed as the user _calling_ the function (`invoker`), or as the _creator_ of the function (`definer`). For example: - -```sql -create function hello_world() -returns text -language plpgsql -security definer set search_path = public -as $$ -begin - select 'hello world'; -end; -$$; -``` - -It is best practice to use `security invoker` (which is also the default). If you ever use `security definer`, you _must_ set the `search_path`. -This limits the potential damage if you allow access to schemas which the user executing the function should not have. - -## Resources - - -- Official Client libraries: [JavaScript](/docs/reference/javascript/rpc) and [Dart](/docs/reference/dart/rpc) -- Community client libraries: [github.com/supabase-community](https://github.com/supabase-community) -- PostgreSQL Official Docs: [Chapter 9. Functions and Operators](https://www.postgresql.org/docs/current/functions.html) -- PostgreSQL Reference: [CREATE FUNCTION](https://www.postgresql.org/docs/9.1/sql-createfunction.html) - -## Deep Dive - -### Create Database Functions - - - -### Call Database Functions using JavaScript - - - -### Using Database Functions to call an external API - - diff --git a/web/docs/guides/database/json.mdx b/web/docs/guides/database/json.mdx deleted file mode 100644 index 0af74c68906..00000000000 --- a/web/docs/guides/database/json.mdx +++ /dev/null @@ -1,278 +0,0 @@ ---- -id: json -title: 'JSON' -description: Using the JSON data type in PostgreSQL. ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -PostgreSQL supports [JSON functions and operators](https://www.postgresql.org/docs/current/functions-json.html) which gives flexibility when storing data inside a database column. - -PostgreSQL supports two types of JSON columns: `JSON` and `JSONB`. -The recommended type is `JSONB` for almost all cases. -When you use the `JSONB` format, the data is parsed when it's put into the database so it's faster when querying and also it can be indexed. - -## Create a table with a JSON column - - - - - -1. Go to the [Table Editor](https://app.supabase.com/project/_/editor) page in the Dashboard. -2. Click **New Table** and create a table called `books`. -3. Include a primary key with the following properties: - - Name: `id` - - Type: `int8` - - Default value: `Automatically generate as indentity` -4. Click **Save**. -5. Click **New Column** and add 3 columns with the following properties: - - **title** column - - Name: `title` - - Type: `text` - - **author** column - - Name: `author` - - Type: `text` - - **metadata** column - - Name: `metadata` - - Type: `jsonb` - - - - - -```sql -create table books ( - id serial primary key, - title text, - author text, - metadata jsonb -); -``` - - - - -## Insert data into the table - - - - - -1. Go to the [Table Editor](https://app.supabase.com/project/_/editor) page in the Dashboard. -2. Select the `books` table in the sidebar. -3. Click **+ Insert row** and add 5 rows with the following properties: - -| id | title | author | metadata | -| --- | ----------------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------- | -| 1 | The Poky Little Puppy | Janette Sebring Lowrey | {"ages":[3,6],"price":5.95,"description":"Puppy is slower than other, bigger animals."} | -| 2 | The Tale of Peter Rabbit | Beatrix Potter | {"ages":[2,5],"price":4.49,"description":"Rabbit eats some vegetables."} | -| 3 | Tootle | Gertrude Crampton | {"ages":[2,5],"price":3.99,"description":"Little toy train has big dreams."} | -| 4 | Green Eggs and Ham | Dr. Seuss | {"ages":[4,8],"price":7.49,"description":"Sam has changing food preferences and eats unusually colored food."} | -| 5 | Harry Potter and the Goblet of Fire | J.K. Rowling | {"ages":[10,99],"price":24.95,"description":"Fourth year of school starts, big drama ensues."} | - - - - - -```sql -insert into books - (title, author, metadata) -values - ( - 'The Poky Little Puppy', - 'Janette Sebring Lowrey', - '{"description":"Puppy is slower than other, bigger animals.","price":5.95,"ages":[3,6]}' - ), - ( - 'The Tale of Peter Rabbit', - 'Beatrix Potter', - '{"description":"Rabbit eats some vegetables.","price":4.49,"ages":[2,5]}' - ), - ( - 'Tootle', - 'Gertrude Crampton', - '{"description":"Little toy train has big dreams.","price":3.99,"ages":[2,5]}' - ), - ( - 'Green Eggs and Ham', - 'Dr. Seuss', - '{"description":"Sam has changing food preferences and eats unusually colored food.","price":7.49,"ages":[4,8]}' - ), - ( - 'Harry Potter and the Goblet of Fire', - 'J.K. Rowling', - '{"description":"Fourth year of school starts, big drama ensues.","price":24.95,"ages":[10,99]}' - ); -``` - - - - - -```js -const { data, error } = await supabase.from('books').insert([ - { - title: 'The Poky Little Puppy', - author: 'Janette Sebring Lowrey', - metadata: { - description: 'Puppy is slower than other, bigger animals.', - price: 5.95, - ages: [3, 6], - }, - }, - { - title: 'The Tale of Peter Rabbit', - author: 'Beatrix Potter', - metadata: { description: 'Rabbit eats some vegetables.', price: 4.49, ages: [2, 5] }, - }, - { - title: 'Tootle', - author: 'Gertrude Crampton', - metadata: { description: 'Little toy train has big dreams.', price: 3.99, ages: [2, 5] }, - }, - { - title: 'Green Eggs and Ham', - author: 'Dr. Seuss', - metadata: { - description: 'Sam has changing food preferences and eats unusually colored food.', - price: 7.49, - ages: [4, 8], - }, - }, - { - title: 'Harry Potter and the Goblet of Fire', - author: 'J.K. Rowling', - metadata: { - description: 'Fourth year of school starts, big drama ensues.', - price: 24.95, - ages: [10, 99], - }, - }, -]) -``` - - - - -## View the data - - - - - -```sql -select * -from books; -``` - - - - - -```js -const { data, error } = await supabase.from('books').select('*') -console.log(JSON.stringify(data, null, 2)) -``` - - - - - -| id | title | author | metadata | -| --- | ----------------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------- | -| 1 | The Poky Little Puppy | Janette Sebring Lowrey | {"ages":[3,6],"price":5.95,"description":"Puppy is slower than other, bigger animals."} | -| 2 | The Tale of Peter Rabbit | Beatrix Potter | {"ages":[2,5],"price":4.49,"description":"Rabbit eats some vegetables."} | -| 3 | Tootle | Gertrude Crampton | {"ages":[2,5],"price":3.99,"description":"Little toy train has big dreams."} | -| 4 | Green Eggs and Ham | Dr. Seuss | {"ages":[4,8],"price":7.49,"description":"Sam has changing food preferences and eats unusually colored food."} | -| 5 | Harry Potter and the Goblet of Fire | J.K. Rowling | {"ages":[10,99],"price":24.95,"description":"Fourth year of school starts, big drama ensues."} | - -The data as it appears here has the `JSONB` fields in a different order than when inserted. As mentioned earlier, data is parsed as its inserted when using the JSONB format. - - - - -## Query the `JSONB` data - -Select the title, description, price, and age range for each book. - - - - - -```sql -select - title, - metadata -> 'description' AS description, - metadata -> 'price' as price, - metadata -> 'ages' -> 0 as low_age, - metadata -> 'ages' -> 1 as high_age -from - books; -``` - - - - - -```js -const { data, error } = await supabase - .from('books') - .select( - 'title,description:metadata->description,price:metadata->price,low_age:metadata->ages->0,high_age:metadata->ages->1' - ) -console.log(JSON.stringify(data, null, 2)) -``` - - - - - -| title | description | price | low_age | high_age | -| ----------------------------------- | ------------------------------------------------------------------ | ----- | ------- | -------- | -| The Poky Little Puppy | Puppy is slower than other, bigger animals. | 5.95 | 3 | 6 | -| The Tale of Peter Rabbit | Rabbit eats some vegetables. | 4.49 | 2 | 5 | -| Tootle | Little toy train has big dreams. | 3.99 | 2 | 5 | -| Green Eggs and Ham | Sam has changing food preferences and eats unusually colored food. | 7.49 | 4 | 8 | -| Harry Potter and the Goblet of Fire | Fourth year of school starts, big drama ensues. | 24.95 | 10 | 99 | - - - - -Note that the `->` operator returns JSONB data. If you want TEXT/STRING data returned, use the `->>` operator. - -- metadata -> 'description' (returns a JSON object) -- metadata ->> 'description' (returns STRING/TEXT data) - -## Resources - -- [Supabase JS Client](https://github.com/supabase/supabase-js) -- [PostgreSQL: JSON Functions and Operators](https://www.postgresql.org/docs/12/functions-json.html) -- [PostgreSQL JSON types](https://www.postgresql.org/docs/12/datatype-json.html) diff --git a/web/docs/guides/database/managing-passwords.mdx b/web/docs/guides/database/managing-passwords.mdx deleted file mode 100644 index 2d878632b43..00000000000 --- a/web/docs/guides/database/managing-passwords.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: managing-passwords -title: "Passwords" -description: How to change your PostgreSQL database password. ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Your PostgreSQL database is the core of your Supabase project, so it's important that it has a strong, secure password at all times. - -If you use special symbols in your postgres password, you must remember to [percent-encode](https://en.wikipedia.org/wiki/Percent-encoding) your password later if using the postgres connection string e.g. `postgresql://postgres:p%3Dword@db.cvwawazfelidkloqmbma.supabase.co:5432/postgres` - - -### Changing your project password - -When you created your project you were also asked to enter a password. This is actually the password for your database, specifically for the `postgres` user. -You can update this from the Dashboard under the [database settings](https://app.supabase.com/project/_/settings/database) page. - -## Creating a secure password - -It's absolutely critical that you store your customers' data safely. Here are some tips for creating a secure password. - -- Use a password manager to generate it. -- Make a long password (12 characters at least). -- Don't use any common dictionary words. -- Use both upper and lower case characters, numbers, and special symbols. - -## Resources - -- [PostgreSQL `ALTER USER` Documentation](https://www.postgresql.org/docs/12/sql-alteruser.html) - diff --git a/web/docs/guides/database/managing-timezones.mdx b/web/docs/guides/database/managing-timezones.mdx deleted file mode 100644 index 6092dd779b0..00000000000 --- a/web/docs/guides/database/managing-timezones.mdx +++ /dev/null @@ -1,85 +0,0 @@ ---- -id: managing-timezones -title: "Timezones" -slug: managing-timezones -description: How to change your database timezone. ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - -Every Supabase database is set to UTC timezone by default. We strongly recommend keeping it this way, even if your users are in a different location. -This is because it makes it much easier to calculate differences between timezones if you adopt the mental model that "everything in my database is in UTC time". - - -### Change timezone - - - - - - - -```sql -alter database postgres -set timezone to 'America/New_York'; -``` - - - - - - -### Full list of timezones - -Get a full list of timezones supported by your database. This will return the following columns: - -- `name`: Time zone name -- `abbrev`: Time zone abbreviation -- `utc_offset`: Offset from UTC (positive means east of Greenwich) -- `is_dst`: True if currently observing daylight savings - - - - - - -```sql -select name, abbrev, utc_offset, is_dst -from pg_timezone_names() -order by name; -``` - - - - - - -### Search for a specific timezone - -Use `ilike` (case insensitive search) to find specific timezones. - - - - - -```sql -select * -from pg_timezone_names() -where name ilike '%york%'; -``` - - - - - \ No newline at end of file diff --git a/web/docs/guides/database/replication.mdx b/web/docs/guides/database/replication.mdx deleted file mode 100644 index 1ed979fa4a2..00000000000 --- a/web/docs/guides/database/replication.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: replication -title: "Replication" -slug: replication ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - - -Replication is a technique for copying the data from one database to another. Supabase uses replication functionality to provide a real-time API. Replication is useful for: - -- Spreading out the "load." For example, if your database has a lot of reads, you might want to split it between two databases. -- Reducing latency. For example, you may want one database in London to serve your European customers, and one in New York to serve the US. - -Replication is done through _publications_, a method of choosing which changes to send to other systems (usually another Postgres database). Publications can be managed in the [Dashboard](https://app.supabase.com) or with SQL. - -## Manage publications in the Dashboard - -1. Go to the [Database](https://app.supabase.com/project/_/database/tables) page in the Dashboard. -2. Click on **Replication** in the sidebar. -3. Control which database events are sent by toggling **Insert**, **Update**, and **Delete**. -4. Control which tables broadcast changes by selecting **Source** and toggling each table. - - - -## Create a publication - -This publication contains changes to all tables. - -```sql -create publication publication_name -for all tables; -``` - -## Create a publication to listen to individual tables - -```sql -create publication publication_name -for table table_one, table_two; -``` - -## Add tables to an existing publication - -```sql -alter publication publication_name -add table table_name; -``` - -## Listen to `insert` - -```sql -create publication publication_name -for all tables -with (publish = 'insert'); -``` - -## Listen to `update` - -```sql -create publication publication_name -for all tables -with (publish = 'update'); -``` - -## Listen to `delete` - -```sql -create publication publication_name -for all tables -with (publish = 'delete'); -``` - -## Remove a publication - -```sql -drop publication if exists publication_name; -``` - -## Recreate a publication - -If you're recreating a publication, it's best to do it in a transaction to ensure the operation succeeds. - -```sql -begin; - -- remove the realtime publication - drop publication if exists publication_name; - - -- re-create the publication but don't enable it for any tables - create publication publication_name; -commit; -``` diff --git a/web/docs/guides/database/sql-to-api.mdx b/web/docs/guides/database/sql-to-api.mdx deleted file mode 100644 index 4a07440ae3a..00000000000 --- a/web/docs/guides/database/sql-to-api.mdx +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: sql-to-api -title: 'Converting SQL to JavaScript API' -description: Implementing common SQL patterns in the JavaScript API ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - - - -Select a set of columns from a single table with where, order by, and limit clauses. - -```sql -select first_name, last_name, team_id, age from players -where age between 20 and 24 and team_id <> 'STL' -order by last_name, first_name desc -limit 20 -``` - -```js -const { data, error } = await supabase - .from('players') - .select('first_name,last_name,team_id,age') - .gte('age', 20) - .lte('age', 24) - .not('team_id', 'eq', 'STL') - .order('last_name', { ascending: true }) // or just .order('last_name') - .order('first_name', { ascending: false }) - .limit(20) -``` - -Select all columns from a single table with a complex where clause: OR AND OR - -```sql -select * from players -where ((team_id = 'CHN' or team_id is null) and (age > 35 or age is null)) -``` - -```js -const { data, error } = await supabase - .from('players') - .select() // or .select('*') - .or('team_id.eq.CHN,team_id.is.null') - .or('age.gt.35,age.is.null') // additional filters imply "AND" - .not('team_id', 'eq', 'STL') -``` - -Select all columns from a single table with a complex where clause: AND OR AND - -```sql -select * from players -where ((team_id = 'CHN' and age > 35) or (team_id <> 'CHN' and age is not null)) -``` - -```js -const { data, error } = await supabase - .from('players') - .select() // or .select('*') - .or('and(team_id.eq.CHN,age.gt.35),and(team_id.neq.CHN,.not.age.is.null)') -``` - -Get a count of rows, but don't return any data. - -```sql -select count(*) from players -where team_id = 'NYM' -``` - -```js -const { data, error } = await supabase - .from('players') - .select('*', { count: 'exact', head: true }) // exact, planned, or executed - .eq('team_id', 'NYM') -``` - -## Resources - -- [Supabase Account - Free Tier OK](https://supabase.com) -- [Postgrest Operators](https://postgrest.org/en/stable/api.html#operators) -- [Supabase API: JavaScript select](/docs/reference/javascript/select) -- [Supabase API: JavaScript modifiers](/docs/reference/javascript/using-modifiers) -- [Supabase API: JavaScript filters](/docs/reference/javascript/using-filters) diff --git a/web/docs/guides/database/tables.mdx b/web/docs/guides/database/tables.mdx deleted file mode 100644 index f04015df257..00000000000 --- a/web/docs/guides/database/tables.mdx +++ /dev/null @@ -1,514 +0,0 @@ ---- -id: tables -title: Tables and Data -description: Creating and using Postgres tables. ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -Tables are where you store your data. - -Tables are similar to excel spreadsheets. They contain columns and rows. -For example, this table has 3 "columns" (`id`, `name`, `description`) and 4 "rows" of data: - -| `id` | `name` | `description` | -| ---- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1 | The Phantom Menace | Two Jedi escape a hostile blockade to find allies and come across a young boy who may bring balance to the Force. | -| 2 | Attack of the Clones | Ten years after the invasion of Naboo, the Galactic Republic is facing a Separatist movement. | -| 3 | Revenge of the Sith | As Obi-Wan pursues a new threat, Anakin acts as a double agent between the Jedi Council and Palpatine and is lured into a sinister plan to rule the galaxy. | -| 4 | Star Wars | Luke Skywalker joins forces with a Jedi Knight, a cocky pilot, a Wookiee and two droids to save the galaxy from the Empire's world-destroying battle station. | - -There are a few important differences from a spreadsheet, but it's a good starting point if you're new to Relational databases. - -## Creating Tables - -When creating a table, it's best practice to add columns at the same time. - -![Tables and columns](/img/guides/database/tables-columns.png) - -You must define the "data type" of each column when it is created. You can add and remove columns at any time after creating a table. - -Supabase provides several options for creating tables. You can use the Dashboard or create them directly using SQL. -We provide a SQL editor within the Dashboard, or you can [connect](/docs/guides/database/connecting/connecting-to-postgres) to your database -and run the SQL queries yourself. - - - - - - - -1. Go to the [Table Editor](https://app.supabase.com/project/_/editor) page in the Dashboard. -2. Click **New Table** and create a table with the name `todos`. -3. Click **Save**. -4. Click **New Column** and create a column with the name `task` and type `text`. -5. Click **Save**. - - - - -```sql -create table movies ( - id bigint generated by default as identity primary key, - name text, - description text -); -``` - - - - -:::note -When naming tables, use lowercase and underscores instead of spaces (e.g., `table_name`, not `Table Name`). -::: - -## Columns - -You must define the "data type" when you create a column. - -### Data types - -Every column is a predefined type. PostgreSQL provides many [default types](https://www.postgresql.org/docs/current/datatype.html), and you can even design your own (or use extensions) -if the default types don't fit your needs. - -
    -Show/Hide default data types - -| `Name` | `Aliases` | `Description` | -| --------------------------------- | ----------- | ---------------------------------------------------------------- | -| bigint | int8 | signed eight-byte integer | -| bigserial | serial8 | autoincrementing eight-byte integer | -| bit | | fixed-length bit string | -| bit varying | varbit | variable-length bit string | -| boolean | bool | logical Boolean (true/false) | -| box | | rectangular box on a plane | -| bytea | | binary data (“byte array”) | -| character | char | fixed-length character string | -| character varying | varchar | variable-length character string | -| cidr | | IPv4 or IPv6 network address | -| circle | | circle on a plane | -| date | | calendar date (year, month, day) | -| double precision | float8 | double precision floating-point number (8 bytes) | -| inet | | IPv4 or IPv6 host address | -| integer | int, int4 | signed four-byte integer | -| interval \[ fields \] | | time span | -| json | | textual JSON data | -| jsonb | | binary JSON data, decomposed | -| line | | infinite line on a plane | -| lseg | | line segment on a plane | -| macaddr | | MAC (Media Access Control) address | -| macaddr8 | | MAC (Media Access Control) address (EUI-64 format) | -| money | | currency amount | -| numeric | decimal | exact numeric of selectable precision | -| path | | geometric path on a plane | -| pg_lsn | | PostgreSQL Log Sequence Number | -| pg_snapshot | | user-level transaction ID snapshot | -| point | | geometric point on a plane | -| polygon | | closed geometric path on a plane | -| real | float4 | single precision floating-point number (4 bytes) | -| smallint | int2 | signed two-byte integer | -| smallserial | serial2 | autoincrementing two-byte integer | -| serial | serial4 | autoincrementing four-byte integer | -| text | | variable-length character string | -| time \[ without time zone \] | | time of day (no time zone) | -| time with time zone | timetz | time of day, including time zone | -| timestamp \[ without time zone \] | | date and time (no time zone) | -| timestamp with time zone | timestamptz | date and time, including time zone | -| tsquery | | text search query | -| tsvector | | text search document | -| txid_snapshot | | user-level transaction ID snapshot (deprecated; see pg_snapshot) | -| uuid | | universally unique identifier | -| xml | | XML data | - -
    - -
    - -You can "cast" columns from one type to another, however there can be some incompatibilities between types. -For example, if you cast a `timestamp` to a `date`, you will lose all the time information that was previously saved. - -### Primary Keys - -A table can have a "primary key" - a unique identifier for every row of data. A few tips for Primary Keys: - -- It's recommended to create a Primary Key for every table in your database. -- You can use any column as a primary key, as long as it is unique for every row. -- It's common to use a `uuid` type or a numbered `identity` column as your primary key. - -```sql -create table movies ( - id bigint generated always as identity primary key -); -``` - -In the example above, we have: - -1. created a column called `id` -1. assigned the data type `bigint` -1. instructed the database that this should be `generated always as identity`, which means that Postgres will automatically assign a unique number to this column. -1. Becuase it's unique, we can also use it as our `primary key`. - -We could also use `generated by default as identity`, which would allow us to insert our own unique values. - -```sql -create table movies ( - id bigint generated by default as identity primary key -); -``` - -## Loading data - -There are several ways to load data in Supabase. You can load data directly into the database or using the [APIs](/docs/guides/api). -Use the "Bulk Loading" instructions if you are loading large data sets. - -### Basic data loading - - - - - -```sql -insert into movies - (name, description) -values - ('The Empire Strikes Back', 'After the Rebels are brutally overpowered by the Empire on the ice planet Hoth, Luke Skywalker begins Jedi training with Yoda.'), - ('Return of the Jedi', 'After a daring mission to rescue Han Solo from Jabba the Hutt, the Rebels dispatch to Endor to destroy the second Death Star.'); -``` - - - - - -```sql -const { data, error } = await supabase - .from('movies') - .insert([{ - name: 'The Empire Strikes Back', - description: 'After the Rebels are brutally overpowered by the Empire on the ice planet Hoth, Luke Skywalker begins Jedi training with Yoda.' - }, { - name: 'Return of the Jedi', - description: 'After a daring mission to rescue Han Solo from Jabba the Hutt, the Rebels dispatch to Endor to destroy the second Death Star.' - }]) -``` - - - - - -```sql -final res = await supabase - .from('movies') - .insert([{ - name: 'The Empire Strikes Back', - description: 'After the Rebels are brutally overpowered by the Empire on the ice planet Hoth, Luke Skywalker begins Jedi training with Yoda.' - }, { - name: 'Return of the Jedi', - description: 'After a daring mission to rescue Han Solo from Jabba the Hutt, the Rebels dispatch to Endor to destroy the second Death Star.' - }]).execute(); -``` - - - - -### Bulk data loading - -When inserting large data sets it's best to use PostgreSQL's [COPY](https://www.postgresql.org/docs/current/sql-copy.html) command. -This loads data directly from a file into a table. There are several file formats available for copying data: text, csv, binary, JSON, etc. - -For example, if you wanted to load a CSV file into your movies table: - -```csv title="./movies.csv" -"The Empire Strikes Back", "After the Rebels are brutally overpowered by the Empire on the ice planet Hoth, Luke Skywalker begins Jedi training with Yoda." -"Return of the Jedi", "After a daring mission to rescue Han Solo from Jabba the Hutt, the Rebels dispatch to Endor to destroy the second Death Star." -``` - -You would [connect](/docs/guides/database/connecting-to-postgres#direct-connections) to your database directly and load the file with the COPY command: - -```bash -psql -h DATABASE_URL -p 5432 postgres -U postgres \ - -c "COPY movies FROM './movies.csv';" -``` - -## Joining tables with Foreign Keys - -Tables can be "joined" together using Foreign Keys. - -![Foreign Keys](/img/guides/database/foreign-keys.png) - -This is where the "Relational" naming comes from, as data typically forms some sort of relationship. - -In our "movies" example above, we might want to add a "category" for each movie (for example, "Action", or "Documentary"). -Let's create a new table called `categories` and "link" our `movies` table. - -```sql -create table categories ( - id bigint generated always as identity primary key, - name text -- category name -); - -alter table movies - add column category_id bigint references categories; -``` - -You can also create "many-to-many" relationships by creating a "join" table. -For example if you had the following situations: - -- You have a list of `movies`. -- A movie can have several `actors`. -- An `actor` can perfom in several movies. - - - - - - - - - - - -```sql -create table movies ( - id bigint generated by default as identity primary key, - name text, - description text -); - -create table actors ( - id bigint generated by default as identity primary key, - name text -); - -create table performances ( - id bigint generated by default as identity primary key, - movie_id bigint not null references movies, - actor_id bigint not null references actors -); -``` - - - - -## Schemas - -Tables belong to `schemas`. Schemas are a way of organizing your tables, often for security reasons. - -![Schemas and tables](/img/guides/database/schema-tables.png) - -If you don't explicitly pass a schema when creating a table, Postgres will assume that you want to create the table in the `public` schema. - -We can create schemas for organizing tables. For example, we might want a private schema which is hidden from our API: - -```sql -create schema private; -``` - -Now we can create tables inside the `private` schema: - -```sql -create table salaries ( - id bigint generated by default as identity primary key, - salary bigint not null, - actor_id bigint not null references public.actors -); -``` - -## Views - -A View is a convenient shortcut to a query. Creating a view does not involve new tables or data. When run, an underlying query is executed, returning its results to the user. - -:::caution - -By default, PostgreSQL views bypass Row Level Security unless you change their owner (see https://github.com/supabase/supabase/discussions/901). PostgreSQL v15 (coming soon) will have a more intuitive control for this through [security invoker views](https://www.depesz.com/2022/03/22/waiting-for-postgresql-15-add-support-for-security-invoker-views/) and the previous step won't be needed. - -::: - -Say we have the following tables from a database of a university: - -**`students`** - -| id | name | type | -| --- | ---------------- | ------------- | -| 1 | Princess Leia | undergraduate | -| 2 | Yoda | graduate | -| 3 | Anakin Skywalker | graduate | - -**`courses`** - -| id | title | code | -| --- | ------------------------ | ------- | -| 1 | Introduction to Postgres | PG101 | -| 2 | Authentication Theories | AUTH205 | -| 3 | Fundamentals of Supabase | SUP412 | - -**`grades`** - -| id | student_id | course_id | result | -| --- | ---------- | --------- | ------ | -| 1 | 1 | 1 | B+ | -| 2 | 1 | 3 | A+ | -| 3 | 2 | 2 | A | -| 4 | 3 | 1 | A- | -| 5 | 3 | 2 | A | -| 6 | 3 | 3 | B- | - -Creating a view consisting of all the three tables will look like this: - -```sql -create view transcripts as - select - students.name, - students.type, - courses.title, - courses.code, - grades.result - from grades - left join students on grades.student_id = students.id - left join courses on grades.course_id = courses.id; - -alter view transcripts owner to authenticated; -``` - -Once done, we can now access the underlying query with: - -```sql -select * from transcripts; -``` - -### When to use views - -Views provide the several benefits: - -- Simplicity -- Consistency -- Logical Organization -- Security - -#### Simplicity - -As a query becomes complex it becomes a hassle to call it. Especially when we run it at regularly. In the example above, instead of repeatedly running: - -```sql -select - students.name, - students.type, - courses.title, - courses.code, - grades.result -from grades -left join students on grades.student_id = students.id -left join courses on grades.course_id = courses.id; -``` - -We can run this instead: - -```sql -select * from transcripts; -``` - -Additionally, a view behaves like a typical table. We can safely use it in table `JOIN`s or even create new views using existing views. - -#### Consistency - -Views ensure that the likelihood of mistakes decreases when repeatedly executing a query. In our example above, we may decide that we want to exclude the course _Introduction to Postgres_. The query would become: - -```sql -select - students.name, - students.type, - courses.title, - courses.code, - grades.result -from grades - left join students on grades.student_id = students.id - left join courses on grades.course_id = courses.id -where courses.code != 'PG101'; -``` - -Without a view, we would need to go into every dependent query to add the new rule. This would increase in the likelihood of errors and inconsistencies, as well as introducing a lot of effort for a developer. With views, we can alter just the underlying query in the view **transcripts**. The change will be applied to all applications using this view. - -#### Logical Organization - -With views, we can give our query a name. This is extremely useful for teams working with the same database. Instead of guessing what a query is supposed to do, a well-named view can easily explain it. For example, by looking at the name of the view **transcripts**, we can infer that the underlying query might involve the **students**, **courses**, and **grades** tables. - -#### Security - -Views can restrict the amount and type of data presented to a user. Instead of allowing a user direct access to a set of tables, we provide them a view instead. We can prevent them from reading sensitive columns by excluding them from the underlying query. - -### Materialized Views - -A [materialized view](https://www.postgresql.org/docs/12/rules-materializedviews.html) is a form of view but it also stores the results to disk. In subsequent reads of a materialized view, the time taken to return its results would be much faster than a conventional view. This is because the data is readily available for a materialized view while the conventional view executes the underlying query each time it is called. - -Using our example above, a materialized view can be created like this: - -```sql -create materialized view transcripts as - select - students.name, - students.type, - courses.title, - courses.code, - grades.result - from grades - left join students on grades.student_id = students.id - left join courses on grades.course_id = courses.id; -``` - -Reading from the materialized view is the same as a conventional view: - -```sql -select * from transcripts; -``` - -### Refreshing materialized views - -Unfortunately, there is a trade-off - data in materialized views are not always up to date. We need to refresh it regularly to prevent the data from becoming too stale. To do so: - -```sql -refresh materialized view transcripts; -``` - -It's up to you how regularly refresh your materialized views, and it's probably different for each view depending on its use-case. - -### Materialized views vs Conventional views - -Materialized views are useful when execution times for queries or views are too slow. These could likely occur in views or queries involving multiple tables and billions of rows. When using such a view, however, there should be tolerance towards data being outdated. Some use-cases for materialized views are internal dashboards and analytics. - -Creating a materialized view is not a solution to inefficient queries. You should always seek to optimize a slow running query even if you are implementing a materialized view. - -## Resources - -- [Official Docs: Create table](https://www.postgresql.org/docs/current/sql-createtable.html) -- [Official Docs: Create view](https://www.postgresql.org/docs/12/sql-createview.html) -- [PostgreSQL Tutorial: Create tables](https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-create-table/) -- [PostgreSQL Tutorial: Add column](https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-add-column/) -- [PostgreSQL Tutorial: Views](https://www.postgresqltutorial.com/postgresql-views/) diff --git a/web/docs/guides/database/timeouts.mdx b/web/docs/guides/database/timeouts.mdx deleted file mode 100644 index 2436c5dc0db..00000000000 --- a/web/docs/guides/database/timeouts.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: timeouts -title: Timeouts -description: Timeouts and optimization ---- - -By default, Supabase limits the maximum statement execution time to _3 seconds_ for users accessing the API using the anon key, and _8 seconds_ for authenticated users. Additionally, all users are subject to a global limit of _2 minutes_. This serves as a backstop against resource exhaustion due to either poorly written queries, or abusive usage. - -### Changing the default timeout - -The timeout values were picked as a reasonable default for the majority of use-cases, but can be modified using the [`alter role`](https://www.postgresql.org/docs/current/sql-alterrole.html) statement: - -```sql -alter role authenticated set statement_timeout = '15s'; -``` - -You can also update the statement timeout for a session: - -```sql -set statement_timeout to 60000; -- 1 minute in milliseconds -``` - -### Statement Optimization - -All Supabase projects come with the [`pg_stat_statements`](https://www.postgresql.org/docs/current/pgstatstatements.html) extension installed, which tracks planning and execution statistics for all statements executed against it. These statistics can be used in order to diagnose the performance of your project. - -This data can further be used in conjunction with the [`explain`](https://www.postgresql.org/docs/current/using-explain.html) functionality of Postgres to optimize your usage. diff --git a/web/docs/guides/examples.mdx b/web/docs/guides/examples.mdx deleted file mode 100644 index 70035bdfdb3..00000000000 --- a/web/docs/guides/examples.mdx +++ /dev/null @@ -1,159 +0,0 @@ ---- -id: examples -title: Examples and Resources -description: 'Examples you can use to get started with Supabase' ---- - -We have a [set of examples](https://github.com/supabase/supabase/tree/master/examples) in our [main repository](https://github.com/supabase/supabase) to help you get started. - -## Featured - - -### Supabase Crash Course - -By [Traversy Media](https://www.youtube.com/watch?v=7uKQBl9uZ00). - - - -### Build an App With Supabase and NextJS - -By [@jlengstorf](https://twitter.com/jlengstorf) and [@jonmeyers_io](https://twitter.com/jonmeyers_io). - - - - -### Is Supabase Legit - -By [Fireship](https://www.youtube.com/watch?v=WiwfiVdfRIc). - - - -## Official Examples - -### Todo List - -Build a basic Todo List with Supabase and your favorite frontend framework: - -- [Expo Todo List.](https://github.com/supabase/supabase/tree/master/examples/todo-list/expo-todo-list) -- [Next.js Todo List.](https://github.com/supabase/supabase/tree/master/examples/todo-list/nextjs-todo-list) -- [React Todo List.](https://github.com/supabase/supabase/tree/master/examples/todo-list/react-todo-list) -- [Svelte Todo List.](https://github.com/supabase/supabase/tree/master/examples/todo-list/sveltejs-todo-list) -- [Vue 3 Todo List (Typescript).](https://github.com/supabase/supabase/tree/master/examples/todo-list/vue3-ts-todo-list) -- [Angular Todo List.](https://github.com/supabase/supabase/tree/master/examples/todo-list/angular-todo-list) -- [Nuxt 3 Todo List.](https://github.com/nuxt-community/supabase-module/tree/main/demo) - -### Auth examples - -- [Supabase Auth with vanilla JavaScript.](https://github.com/supabase/supabase/tree/master/examples/auth/javascript-auth). Use Supabase without any frontend frameworks. -- [Supabase Auth with Next.js SSR.](https://github.com/supabase/supabase/tree/master/examples/nextjs-with-supabase-auth) Uses cookies to persist auth between the server and the client. -- [Supabase Auth with RedwoodJS.](https://redwood-playground-auth.netlify.app/supabase) Try out Supabase authentication in the [RedwoodJS](https://redwoodjs.com) Authentication Playground complete with OAuth support and code samples. - -### Collaborative - -- [Next.js Slack Clone.](https://github.com/supabase/supabase/tree/master/examples/slack-clone/nextjs-slack-clone) - -## Community - -### Courses - -- Build a FullStack App with Next.js, Supabase & Prisma by [@gdangel0](https://twitter.com/gdangel0): [Free course](https://themodern.dev/courses/build-a-fullstack-app-with-nextjs-supabase-and-prisma-322389284337222224) - -### Libraries - -- D (in development): [GitHub](https://github.com/csharpdf/dupabase) -- Dart (in development): [GitHub](https://github.com/supabase/supabase-dart) -- Python (in development): [GitHub](https://github.com/supabase/supabase-py) -- C# (in development): [GitHub](https://github.com/supabase/supabase-csharp) -- Kotlin (in development): [GitHub](https://github.com/supabase-community/postgrest-kt) -- `useSupabase`: Supabase React Hooks. [GitHub](https://github.com/gbibeaul/use-supabase) -- `vue-supabase`: Supabase Vue wrapper. [GitHub](https://github.com/supabase/vue-supabase) -- `vue-3-supabase`: Supabase Vue 3 wrapper. [GitHub](https://github.com/DidoMarchet/vue-3-supabase) -- `nuxt-supabase`: Supabase Nuxt wrapper. [GitHub](https://github.com/supabase/nuxt-supabase) -- `@nuxtjs/supabase`: Supabase Nuxt 3 module. [GitHub](https://github.com/nuxt-community/supabase-module) -- `react-supabase`: Supabase React Hooks. [Docs](https://react-supabase.vercel.app) [GitHub](https://github.com/tmm/react-supabase) -- ` @triniwiz/nativescript-supabase`: Supabase NativeScript. [GitHub](https://github.com/triniwiz/nativescript-plugins/tree/master/packages/nativescript-supabase) - -### Guides - -- Supabase Auth with Redwood. [Docs](https://redwoodjs.com/tutorial/authentication) -- Supabase Auth with Sapper SSR. [Blog](https://dev.to/jakobbouchard/how-to-setup-supabase-auth-with-sapper-ssr-13od) -- Switch from Firebase Auth to Supabase Auth. [Blog](https://msyyn.medium.com/switch-from-firebase-auth-to-supabase-auth-the-open-source-firebase-alternative-509746952b1b) -- Setting up Umami Analytics with Supabase. [Blog](https://dev.to/jakobbouchard/setting-up-umami-with-vercel-and-supabase-3a73) -- Creating New Supabase Users In NextJS. [Blog](https://www.aboutmonica.com/blog/creating-new-supabase-users-in-next-js) -- Creating Protected Routes In NextJS With Supabase. [Blog](https://www.aboutmonica.com/blog/creating-protected-routes-in-next-js-with-supabase) -- Migrate from Google Cloud Storage (GCS) to Supabase Storage [Gist](https://gist.github.com/danalloway/86f79efd5ca336ff7364554ac3104014) -- Subscriptions with Supabase and Stripe Billing [Blog](https://www.sandromaglione.com/2021/04/29/supabase-auth-create-stripe-customer-subscription-supabase-stripe-billing-part-1/) -- Flutter Supabase Authentication [Blog](https://www.sandromaglione.com/2021/04/24/flutter-supabase-authentication/) -- Supabase in 6 minutes [Video](https://www.youtube.com/watch?v=c8DNV9yl0mg) -- Let's build SupaAuth - Build an Authentication System using Supabase, Next.js and Typescript [6-part Blog Series](https://aalam.in/blog/supabase-auth-intro-setup-next) -- In-depth self-hosting guide using Nginx [Blog](https://dev.to/chronsyn/self-hosting-with-supabase-1aii) -- Build an Email and Social Auth for Next JS with Supabase, Tailwind CSS 3.0 and TypeScript [Blog](https://creativedesignsguru.com/next-js-supabase-auth/) -- Link Shortener using Supabase and Ory [3-part Blog Series](https://www.ory.sh/tutorial-url-shortener-supabase-ory-integration-backend/) - -### Example apps - -- Supabase + Stripe + Next.js. [GitHub](https://github.com/vercel/nextjs-subscription-payments) -- Supabase + Svelte Trello clone. [GitHub](https://github.com/joshnuss/supabase-kanban) -- Supabase + Expo Starter. [GitHub](https://github.com/codingki/react-native-expo-template/tree/master/template-typescript-bottom-tabs-supabase-auth-flow) -- Supabase + Nest.js. [GitHub](https://github.com/hiro1107/nestjs-supabase-auth) -- Supabase + Cloudflare Workers. [GitHub](https://github.com/supabase/supabase/tree/master/examples/with-cloudflare-workers) -- Supabase + Cloudflare Workers + Webpack. [GitHub](https://github.com/signalnerve/supabase-workers-proxy) -- Realtime chat app with Supabase + React. [GitHub](https://github.com/shwosner/realtime-chat-supabase-react) -- Repository.surf: GitHub insights dashboard. [GitHub](https://github.com/supabase/repository.surf) -- Supabase + React Native Instagram Clone. [GitHub](https://github.com/NiketanG/instaclone) -- KeepLink: Simple bookmark service with tags and archive. [GitHub](https://github.com/fengkx/keeplink) -- Supabase + Next.js (Next.js Starter Kit) [GitHub](https://github.com/one-aalam/next-starter-kit/tree/auth-supabase) -- Supabase + Svelte (Svelte Starter Kit) [GitHub](https://github.com/one-aalam/svelte-starter-kit) -- Supabase + SolidJS (SolidJS Starter Kit) [GitHub](https://github.com/one-aalam/solid-starter-kit) -- Supabase + Nuxt3 (Nuxt Starter Kit) [GitHub](https://github.com/one-aalam/nuxt-starter-kit) -- Supabase + Remix (Remix Starter Kit) [GitHub](https://github.com/one-aalam/remix-starter-kit) -- Supabase + Angular (Angular Starter Kit) [GitHub](https://github.com/one-aalam/ng-starter-kit) -- Supabase + Nuxt3 + nuxtjs/supabase [Github](https://github.com/nuxt-community/supabase-module/tree/main/demo) -- Supabase + Ory Kratos & Ory Oathkeeper [Github](https://github.com/ory/examples/tree/master/kratos-keto-oathkeeper-supabase) -- Supabase + Ory Cloud [Github](https://github.com/ory/examples/tree/master/supabase-ory-cloud) - -### Blog Posts - -- Realtime Subscriptions using Vue + Supabase. [Blog](https://dev.to/ftonato/realtime-subscriptions-using-vue-supabase-1e11) -- Creating a microblog using Vue + Supabase. [Blog](https://dev.to/ftonato/creating-a-microblog-using-vue-supabase-31p) -- Track Real-time Page Views. [Blog](https://codebycorey.com/blog/page-views-nextjs-supabase) -- Supabase as a Sentry alternative. [Blog](http://kopi.cloud/blog/2021/sentry-supabase/) -- Using Supabase with Chartbrew. [Blog](https://chartbrew.com/blog/how-to-visualize-your-supabase-data-with-chartbrew/) -- Authentication with Supabase and React. [Blog](https://hyperfoo.io/posts/supabase-authentication-react) -- Supabase Schema Visualizer. [Blog](https://dev.to/zernonia/supabase-schema-visualizer-no-installation-login-49kg) -- Create a real-time UI using Next.js + Supabase. [Blog](https://pablopunk.com/posts/how-to-create-a-real-time-ui-with-nextjs-and-supabase) -- How to add Twitter auth quickly with Supabase to your Next.js site ⚡ [Blog](https://blog.avneesh.tech/how-to-add-twitter-auth-quickly-with-supabase-to-your-nextjs-site) -- Under the hood: Architecture and Technology Stack of Supabase ⚡ [Blog](https://www.workingsoftware.dev/tech-stack-and-architecture-of-supabase/) - -### Podcasts - -- [Software Engineering Daily](https://softwareengineeringdaily.com/2020/10/15/supabase-open-source-firebase-with-paul-copplestone/) -- [Heavy Bit](https://www.heavybit.com/library/podcasts/jamstack-radio/ep-71-open-source-firebase-alternative-with-paul-copplestone-of-supabase/) -- [Log Rocket](https://podrocket.logrocket.com/9) -- [FS Jam](https://fsjam.org/episodes/episode-33-supabase-with-paul-copplestone) - - diff --git a/web/docs/guides/functions.mdx b/web/docs/guides/functions.mdx deleted file mode 100644 index c2294657e3b..00000000000 --- a/web/docs/guides/functions.mdx +++ /dev/null @@ -1,296 +0,0 @@ ---- -id: functions -title: Edge Functions -description: 'Globally distributed Typescript functions.' ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' -const examples = [ - { - name: 'With supabase-js', - description: 'Use the Supabase client inside your Edge Function.', - href: 'https://github.com/supabase/supabase/tree/master/examples/edge-functions', - }, - { - name: 'With CORS headers', - description: 'Send CORS headers for invoking from the browser.', - href: 'https://github.com/supabase/supabase/tree/master/examples/edge-functions/supabase/functions/browser-with-cors/index.ts', - }, - { - name: 'React Native with Stripe', - description: 'Full example for using Supabase and Stripe, with Expo.', - href: 'https://github.com/supabase-community/expo-stripe-payments-with-supabase-functions', - }, - { - name: 'Flutter with Stripe', - description: 'Full example for using Supabase and Stripe, with Flutter.', - href: 'https://github.com/supabase-community/flutter-stripe-payments-with-supabase-functions', - }, -] - -Edge Functions are server-side Typescript functions, distributed globally at the edge - close to your users. They can be used for listening to webhooks or integrating your Supabase project with third-parties, like Stripe. - -Edge Functions are developed using [Deno](https://deno.com), which offers a few benefits to you as a developer: - -- It is open source. -- It is portable. Supabase Edge Functions run locally, and on any other Deno-compatible platform (including self-hosted infrastructure). -- It is Typescript first and supports WASM. -- Edge Functions are globally distributed for low-latency. - -## Quickstart - -Learn how to develop Edge Functions in less than 7 minutes: - - - -## Prerequisites - -Follow the steps to prepare your Supabase project on your local machine. - -- Install the Supabase CLI. [Docs](/docs/reference/cli/installing-and-updating). -- Login to the CLI using the command: `supabase login`. [Docs](/docs/reference/cli/supabase-login). -- Initialize Supabase inside your project using the command: `supabase init`. [Docs](/docs/guides/local-development#getting-started). -- Link to your Remote Project using the command `supabase link --project-ref your-project-ref`. [Docs](/docs/reference/cli/supabase-link). -- Optional: Setup your environment: Follow [this setup guide](https://deno.land/manual/getting_started/setup_your_environment) to integrate the Deno language server with your editor. - -## Getting Started - -Let's build an Edge Function locally, then deploy it to the Supabase Platform. - -### Creating a function - -Let's create a new Edge Function called `hello-world` inside your project: - -```bash -supabase functions new hello-world -``` - -This creates a function stub in your `supabase` folder at `./functions/hello-world/index.ts`. - -### Deploy to production - -```bash -supabase functions deploy hello-world -``` - -This command bundles your Edge Function from `./functions/hello-world/index.ts` and deploys it to the Supabase platform. -The command outputs a URL to the Supabase Dashboard which you can open to find view more details. Let's open the link to find the execution command. - -:::note - -By default Edge Functions require a valid JWT to be send in the authorization header. This header is automatically set when invoking your function via a Supabase client library. - -If you want to use Edge Functions to handle webhooks (e.g. [Stripe payment webhooks](https://github.com/supabase/supabase/tree/master/examples/edge-functions/supabase/functions/stripe-webhooks), or [chat bot webhooks](https://github.com/supabase/supabase/tree/master/examples/edge-functions/supabase/functions/telegram-bot) etc.), you need to pass the `--no-verify-jwt` flag when deploying your function. - -::: - -### Executing Remote Functions - -You can execute Edge Functions using curl. Copy the curl command from the Dashboard. It should look like this: - -```bash -curl --request POST 'https://.functions.supabase.co/hello-world' \ - --header 'Authorization: Bearer ANON_KEY' \ - --header 'Content-Type: application/json' \ - --data '{ "name":"Functions" }' -``` - -If you receive an error `Invalid JWT`, find the `ANON_KEY` of your project in the Dashboard under `Settings > API`. - -After invoking your Edge Function you should see the response `{ "message":"Hello Functions!" }`. - -## Debugging your Functions - -You can debug your deployed Edge Functions using the "Functions" section of the Dashboard. There are two types debugging tools available: - -- Invocations: shows the Request and Response for each execution. -- Logs: shows any platform events, including deployments and errors. - -![Function invocations.](/img/guides/functions/function-logs.png) - -## Developing locally - -You can run your Edge Function locally using [`supabase functions serve`](/docs/reference/cli/supabase-functions-serve): - -```bash -supabase start # start the supabase stack -supabase functions serve hello-world # start the Function watcher -``` - -The `functions serve` command has hot-reloading capabilities. It will watch for any changes to your files and restart the Deno server. - -### Invoking Functions locally - -While serving your local Function, you can execute it using curl: - -```bash -curl --request POST 'http://localhost:54321/functions/v1/hello-world' \ - --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24ifQ.625_WdcF3KHqz5amU0x2X5WWHP-OEs_4qj0ssLNHzTs' \ - --header 'Content-Type: application/json' \ - --data '{ "name":"Functions" }' -``` - -You should see the response `{ "message":"Hello Functions!" }`. - -
    -Implementation details - -- All Edge Functions are `POST` requests. -- The `Authorization` header is required. You can use either the `ANON` key, the `SERVICE_ROLE` key, or a logged-in user's JWT. -- The Function is proxied through the local API (`http://localhost:54321`) - -
    -
    - -If you execute Function with a different payload the response will change.
    -Modify the `--data '{"name":"Functions"}'` line to `--data '{"name":"World"}'` and try invoking the command again! - -## Secrets and Environment Variables - -It's common that you will need to use sensitive information or environment-specific variables inside your Edge Functions. You can access these using Deno's built-in handler - -```js -Deno.env.get(MY_SECRET_NAME) -``` - -### Default secrets - -By default, Edge Functions have access to these secrets: - -- `SUPABASE_URL`: The API gateway for your Supabase project. -- `SUPABASE_ANON_KEY`: The `anon` key for your Supabase API. This is safe to use in a browser when you have [Row Level Security](/docs/guides/auth/row-level-security) enabled. -- `SUPABASE_SERVICE_ROLE_KEY`: The `service_role` key for your Supabase API. This is safe to use in Edge Functions, but it should NEVER be used in a browser. This key will bypass [Row Level Security](/docs/guides/auth/row-level-security). -- `SUPABASE_DB_URL`: The URL for your [PostgreSQL database](/docs/guides/database). You can use this to connect directly to your database. - -### Local secrets - -Let's create a local file for storing our secrets, and inside it we can store a secret `MY_NAME`: - -```jsx -echo "MY_NAME=Yoda" >> ./supabase/.env.local -``` - -This creates a new file `./supabase/.env.local` for storing your local development secrets. - -:::caution - -Never check your .env files into Git! - -::: - -Now let's access this environment variable `MY_NAME` inside our Function. Anywhere in your function, add this line: - -```jsx -console.log(Deno.env.get('MY_NAME')) -``` - -Now we can invoke our function locally, by serving it with our new `.env.local` file: - -```bash -supabase functions serve hello-world --env-file ./supabase/.env.local -``` - -When the function starts you should see the name “Yoda” output to the terminal. - -### Production secrets - -Let's create a `.env` for production. In this case we'll just use the same as our local secrets: - -```bash -cp ./supabase/.env.local ./supabase/.env -``` - -This creates a new file `./supabase/.env` for storing your production secrets. - -:::caution - -Never check your `.env` files into Git! - -::: - -Let's push all the secrets from the `.env` file to our remote project using [`supabase secrets set`](/docs/reference/cli/supabase-secrets-set): - -```bash -supabase secrets set --env-file ./supabase/.env - -# You can also set secrets individually using: -supabase secrets set MY_NAME=Chewbacca -``` - -You don't need to re-deploy after setting your secrets. - -To see all the secrets which you have set remotely, use [`supabase secrets list`](/docs/reference/cli/supabase-secrets-list): - -```bash -supabase secrets list -``` - -## Examples - -You can find a list of useful [Edge Function Examples](https://github.com/supabase/supabase/tree/master/examples/edge-functions) in our GitHub repository. - -
    -
    - {examples.map((x) => ( - - ))} -
    -
    - -## Suggestions - -### Database Functions vs Edge Functions - -For data-intensive operations we recommend using [Database Functions](/docs/guides/database/functions), which are executed within your database -and can be called remotely using the [REST and GraphQL API](/docs/guides/api). - -For use-cases which require low-latency we recommend [Edge Functions](/docs/guides/functions), which are globally-distributed and can be written in Typescript. - - -### Organizing your Edge Functions - -We recommend developing “fat functions”. This means that you should develop few large functions, rather than many small functions. One common pattern when developing Functions is that you need to share code between two or more Functions. To do this, you can store any shared code in a folder prefixed with an underscore (`_`). We recommend this folder structure: - -```bash -└── supabase - ├── functions - │ ├── _shared - │ | ├── supabaseAdmin.ts # Supabase client with SERVICE_ROLE key - │ │ └── supabaseClient.ts # Supabase client with ANON key - │ ├── function-one # use hyphens to name functions - │ │ └── index.ts - │ └── function-two - │ └── index.ts - ├── migrations - └── config.toml -``` - -### Naming Edge Functions - -We recommend using hyphens to name functions because hyphens are the most URL-friendly of all the naming conventions (snake_case, camelCase, PascalCase). - -## Limitations - -- Deno Deploy limitations - - Deno does not support outgoing connections to ports `25`, `465`, and `587`. - - Cannot write to File System -- Edge Functions - - Local development - only one function at a time - - Supabase Functions only supports `POST` requests. - - Supabase Functions do not support HTML responses. diff --git a/web/docs/guides/hosting/docker.mdx b/web/docs/guides/hosting/docker.mdx deleted file mode 100644 index 798d5e02999..00000000000 --- a/web/docs/guides/hosting/docker.mdx +++ /dev/null @@ -1,113 +0,0 @@ ---- -id: docker -title: Self-hosting with Docker -description: How to configure and deploy Supabase. -sidebar_label: Docker ---- - -Docker is the easiest way to get started with self-hosted Supabase. - -## Before you begin - -You need the following installed in your system: - -- [Docker](https://docs.docker.com/engine/install/) and [docker-compose](https://docs.docker.com/compose/install/) -- [Git](https://git-scm.com/downloads) - -## Quick Start - -### Get the code - -Checkout the docker directory in the Supabase repo: - -```sh -# Get the code -git clone --depth 1 https://github.com/supabase/supabase - -# Go to the docker folder -cd supabase/docker - -# Copy the fake env vars -cp .env.example .env - -# Start -docker-compose up -``` - -Now visit [http://localhost:3000](http://localhost:3000) to start using Supabase Studio. - - -## Securing your setup - -While we provided you with some example secrets for getting started, you should NEVER deploy your Supabase setup using the defaults we have provided. - -Please follow these steps to secure your Docker setup. We [strongly recommend](/docs/guides/hosting/overview#managing-your-secrets) using a secrets manager when deploying to production. - -### Generate API Keys - -Use your `JWT_SECRET` to generate a `anon` and `service` API keys using the [JWT generator](/docs/guides/hosting/overview#api-keys). - -Replace the values in these files: - -- `.env`: - - `ANON_KEY` - replace with an `anon` key - - `SERVICE_ROLE_KEY` - replace with a `service` key -- `volumes/api/kong.yml` - - `anon` - replace with an `anon` key - - `service_role` - replace with a `service` key - -### Update Secrets - -Update the `.env` file with your own secrets. In particular, these are required: - -- `POSTGRES_PASSWORD`: the password for the `postgres` role. -- `JWT_SECRET`: used by PostgREST and GoTrue, among others. -- `SITE_URL`: the base URL of your site. -- `SMTP_*`: mail server credentials. You can use any SMTP server. - - -### Securing the Dashboard - -The Docker setup doesn't include a management database for managing users and logins. If you plan to deploy the Studio to the web we suggest you put it behind a web proxy with Basic Auth or hide it behind a VPN. - -## Configuration - -Each system can be [configured](/docs/guides/hosting/overview#configuration) to suit your particular use-case. - -To keep the setup simple, we made some choices that may not be optimal for production: - -- the database is in the same machine as the servers -- Storage uses the filesystem backend instead of S3 -- Auth should be configured with a production-ready SMTP server - -### Using an external database - -We strongly [recommend](/docs/guides/hosting/overview#managing-your-database) that you decouple your database from `docker-compose` before deploying. -The middleware will run with any PostgreSQL database that has logical replication enabled. The following environment variables should be updated -in the `.env` file to point to your external database: - -```env title=".env" -POSTGRES_PASSWORD=your-super-secret-and-long-postgres-password - -POSTGRES_HOST=db -POSTGRES_DB=postgres -POSTGRES_USER=postgres -POSTGRES_PORT=5432 -``` - -Once you have done this, you can safely comment out the `db` section of the `docker-compose` file, and remove any instances where the services `depends_on` the `db` image. - - -## Deploying - -See the following guides to deploy Docker Compose setup using your preferred tool and platform: - -- [Docker Swarm](https://docs.docker.com/engine/swarm/stack-deploy/) -- [AWS Fargate](https://aws.amazon.com/blogs/containers/deploy-applications-on-amazon-ecs-using-docker-compose/) -- [Using Kompose for Kubernetes](https://kubernetes.io/docs/tasks/configure-pod-container/translate-compose-kubernetes/) - - -## Next steps - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/hosting/overview.mdx b/web/docs/guides/hosting/overview.mdx deleted file mode 100644 index db903c65d9c..00000000000 --- a/web/docs/guides/hosting/overview.mdx +++ /dev/null @@ -1,158 +0,0 @@ ---- -id: overview -title: Self Hosting -sidebar_label: Overview -description: Getting started with Self Hosting. ---- - -import JwtGenerator from '@site/src/components/JwtGenerator' - -There are several ways to use Supabase: - -- [Supabase Cloud](https://app.supabase.com): you don't need to deploy anything. We will manage and scale your infrastructure. -- [Docker](/docs/guides/hosting/docker): deploy to your own infrastructure. -- Kubernetes: coming soon. - -## Architecture - -Supabase is a combination of open source tools, each specifically chosen for Enterprise-readiness. - -If the tools and communities already exist, with an MIT, Apache 2, or equivalent open license, we will use and support that tool. -If the tool doesn't exist, we build and open source it ourselves. - -![Supabase Architecture](/img/supabase-architecture.png) - -- [Kong](https://github.com/Kong/kong) is a cloud-native API gateway. -- [GoTrue](https://github.com/netlify/gotrue) is an SWT based API for managing users and issuing SWT tokens. -- [PostgREST](http://postgrest.org/) is a web server that turns your PostgreSQL database directly into a RESTful API -- [Realtime](https://github.com/supabase/realtime) is an Elixir server that allows you to listen to PostgreSQL inserts, updates, and deletes using websockets. Realtime polls Postgres' built-in replication functionality for database changes, converts changes to JSON, then broadcasts the JSON over websockets to authorized clients. -- [Storage](https://github.com/supabase/storage-api) provides a RESTful interface for managing Files stored in S3, using Postgres to manage permissions. -- [postgres-meta](https://github.com/supabase/postgres-meta) is a RESTful API for managing your Postgres, allowing you to fetch tables, add roles, and run queries, etc. -- [PostgreSQL](https://www.postgresql.org/) is an object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance. - - - - - -## Configuration - -Each system has a number of configuration options which can be found in the relevant product documentation. - -- [Postgres](https://hub.docker.com/_/postgres/) -- [PostgREST](https://postgrest.org/en/stable/configuration.html) -- [Realtime](https://github.com/supabase/realtime#server-set-up) -- [GoTrue](https://github.com/supabase/gotrue) -- [Storage](https://github.com/supabase/storage-api) -- [Kong](https://docs.konghq.com/install/docker/) - -## Managing your database - -It is recommended that you decouple your database from the middleware so that you can upgrade the middleware without any downtime. -The "middleware" is everything except Postgres, and it should work with any Postgres provider (such as AWS RDS), or your own Postgres cluster. - -### Database Extensions - -Supabase requires some Postgres extensions to be enabled by default for the API and Auth system to work. You can find the extensions inside the -[schema initialization script](https://github.com/supabase/supabase/blob/master/docker/volumes/db/init/00-initial-schema.sql). - - -We recommend installing all extensions into an `extensions` schema. This will keep your API clean, -since all tables in the `public` schema are exposed via the API. - -```sql -create schema if not exists extensions; -create extension if not exists "uuid-ossp" with schema extensions; -create extension if not exists pgcrypto with schema extensions; -create extension if not exists pgjwt with schema extensions; -``` - -##### `uuid-ossp` - -For UUID functions, required for PostgreSQL <13. - - -##### `pgcrypto` and `pgjwt` - - -For working with JWT and Auth functions. - -### Database Roles - -Supabase creates several default roles in your Postgres database. To restore defaults at any time you can run the commands inside the -[schema initialization script](https://github.com/supabase/supabase/blob/master/docker/volumes/db/init/00-initial-schema.sql). - -##### `postgres` - -The default PostgreSQL role. This has admin privileges. - -##### `anon` - -For "anonymous access". This is the role which the API (PostgREST) will use when a user _is not_ logged in. - -##### `authenticator` - -A special role for the API (PostgREST). It has very limited access, and is used to validate a JWT and then -"change into" another role determined by the JWT verification. - -##### `authenticated` - -For "authenticated access". This is the role which the API (PostgREST) will use when a user _is_ logged in. - -##### `service_role` - -For elevated access. This role is used by the API (PostgREST) to bypass Row Level Security. - -##### `supabase_auth_admin` - -Used by the Auth middleware to connect to the database and run migration. Access is scoped to the `auth` schema. - -##### `supabase_storage_admin` - -Used by the Auth middleware to connect to the database and run migration. Access is scoped to the `storage` schema. - -##### `dashboard_user` - -For running commands via the Supabase UI. - -##### `supabase_admin` - -Supabase Administrative role for maintaining your database. - -## API Keys - -The API Gateway (Kong) uses JWT to authenticate access through to the database. The JWT should correspond to a relevant Postgres Role, -and Supabase is designed to work with 2 roles: an `ANON_KEY` for unauthenticated access and a `SERVICE_KEY` for elevated access. - -Use this tool to generate keys: - - - -## Managing your secrets - -Many components inside Supabase use secure secrets and passwords. These are listed in the self-hosting -[env file](https://github.com/supabase/supabase/blob/master/docker/.env.example), but we strongly recommend using a -secrets manager when deploying to production. Plain text files like dotenv lead to accidental costly leaks. - -Some suggested systems include: - -- [Doppler](https://www.doppler.com/) -- [Key Vault](https://docs.microsoft.com/en-us/azure/key-vault/general/overview) by Azure -- [Secrets Manager](https://aws.amazon.com/secrets-manager/) by AWS -- [Secrets Manager](https://cloud.google.com/secret-manager) by GCP -- [Vault](https://www.hashicorp.com/products/vault) by Hashicorp - -## Migrating and Upgrading - -If you have decoupled your database from the middleware, then you should be able to redeploy the latest middleware at any time as long as it has no breaking changes. -Supabase is evolving fast, and we'll continue to improve the migration strategy as part of our core offering. - -We realize that database migrations are difficult, and this is one of the problems we plan to make easy for developers. - -## Deployment options - -While Supabase officially supports Docker, we have several other deployment strategies managed by the community: - -- [supabase-docker](/docs/guides/hosting/docker) (Official) -- [supabase-kubernetes](https://github.com/supabase-community/supabase-kubernetes) (Unofficial) -- [supabase-terraform](https://github.com/supabase-community/supabase-terraform) (Unofficial) -- [supabase-traefik](https://github.com/supabase-community/supabase-traefik) (Unofficial) diff --git a/web/docs/guides/hosting/platform.mdx b/web/docs/guides/hosting/platform.mdx deleted file mode 100644 index 3543469ad40..00000000000 --- a/web/docs/guides/hosting/platform.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: platform -title: Supabase Platform -description: Getting started with the Supabase platform. ---- - - -Supabase is a hosted platform which makes it very simple to get started without needing to manage any infrastructure. - -Visit [app.supabase.com](https://app.supabase.com) and sign in to start creating projects. - -## Organizations - -Organizations are a way to group your projects. Every Organization can be configured with different Team members and billing settings. - -### Managing Team Members - -You can invite your Team members into your Organizations so that you can collaborate on projects. - - - -## Projects - -Each project on Supabase comes with these features: - -- A dedicated Postgres database. [Learn more](/docs/guides/database) -- Auto-generated APIs. [Learn more](/docs/guides/api) -- Auth and User management. [Learn more](/docs/guides/auth) -- Storage. [Learn more](/docs/guides/storage) - -## Next Steps - -- Sign in to [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/integrations/appsmith.mdx b/web/docs/guides/integrations/appsmith.mdx deleted file mode 100644 index ff9d330752a..00000000000 --- a/web/docs/guides/integrations/appsmith.mdx +++ /dev/null @@ -1,151 +0,0 @@ ---- -id: appsmith -title: 'Appsmith' -description: 'Get started with Supabase and Appsmith, an open-source framework for building internal tools.' ---- - -This guide explains how to quickly build a Support Dashboard by connecting a Supabase back-end to an Appsmith front-end. - -[Appsmith](https://www.appsmith.com/) is an open-source framework for building internal tools. It lets you drag-and-drop UI components to build pages, connect to any API, database or GraphQL source and write logic with JavaScript objects. - -If you don’t have an Appsmith account, create one [here](https://app.appsmith.com/user/signup). - -Let’s get started! - -## Step 1: Set up your Backend on Supabase - -- On the [Supabase dashboard](https://app.supabase.com), click `New project` and set the name to **Support Dashboard** - -![create-project-supabase-01](/img/guides/integrations/appsmith/create-project-supabase-01.png) - -- Create a new table by clicking on the Create Table option on the side navigation. -- Supabase provides many ways to add data to the tables, from writing queries to creating schemas using UI to simply uploading CSV files. For our support dashboard, we will be creating the **tickets** table by uploading the [CSV file](https://raw.githubusercontent.com/vihar/datasets/master/tickets.csv) on Supabase. - -![create-table-supabase-02](/img/guides/integrations/appsmith/create-table-supabase-02.png) - -The database is now set up. - -## Step 2: Connect the database to Appsmith - -- Note down the database connection information under Project Settings in Supabase. - -![project-settings-supabase-03](/img/guides/integrations/appsmith/project-settings-supabase-03.png) - -- On Appsmith, create a new application under the dashboard under your preferred organization. -- Click on the `+` icon next to Datasources on the left navigation bar under Page1 -- Next, click on Create New tab and choose PostgreSQL datasource, you’ll see the following screenshot: - -![create-datasource-appsmith-04](/img/guides/integrations/appsmith/create-datasource-appsmith-04.png) - -- Fill out the form to connect to your Supabase instance. Click **Test** to test connection and then **Save** to save the datasource - -![connect-supabase-datasource-05](/img/guides/integrations/appsmith/connect-supabase-datasource-05.png) - -## Step 3: Build UI on Appsmith - -- Click on the + icon next to widgets and drag and drop a Tab widget. We can configure using the property pane by clicking on the cog icon on the top-right corner. -- As seen in the below screenshot, we have added four tabs to support the dashboard. - -![property-pane-appsmith-06](/img/guides/integrations/appsmith/property-pane-appsmith-06.png) - -- Add widgets to the **Home** tab to create the dashboard as shown in the screenshot below. For eg: **Critical Open Issues** is a **Text** widget and below it is an **Input** widget which we will bind later to display the number of open tickets. - -- Set up the **New** button to open a modal which will have a form to raise a new ticket. - -![bind-query-appsmith-07](/img/guides/integrations/appsmith/bind-query-appsmith-07.png) - -- In the modal widget, add a few widgets to accept input when creating a new ticket. Please refer to the screenshot below. - -![modal-appsmith-08](/img/guides/integrations/appsmith/modal-appsmith-08.png) - -## Step 4: Writing Queries in Appsmith and binding data to widgets - -- Click on the + icon next to Datasources on the navigation bar and click New Query next to the Supabase connection here to create a new query. - -![create-query-appsmith-09](/img/guides/integrations/appsmith/create-query-appsmith-09.png) - -- Rename the query to create_new_ticket under the query pane; here we can write SQL that can collect the data from the widgets using mustache templates. - -```jsx -INSERT INTO PUBLIC."tickets"("id","createdAt","user","updatedAt","description", -"status","priority","category","assignedTo") -VALUES('{{appsmith.store.ticket.id}}','{{moment().format('yyyy-mm-ddHH:MM:ss')}}','{{c_user.text}}', -'{{moment().format('yyyy-mm-ddHH:MM:ss')}}','{{c_description.text}}','{{c_status.selectedOptionValue}}', -'{{c_property.selectedOptionValue}}', -'{{c_category.selectedOptionValue}}','{{c_assignee.selectedOptionValue}}'); -``` - -- Click the **Confirm** button on the modal and under **Events**, set the **onClick** property to execute the create_new_ticket query. -- Create a second query named **get_tickets** that will list all the tickets. - - **** - -```jsx -SELECT * FROM public."tickets"; -``` - -- Drag and drop a table widget under the **Assigned To Me** tab. Open the property pane and add the following snippet under **Table Data** to bind the query results. - -```jsx -{{get_tickets.data.filter(t => t.assignedTo === 'confidence@appsmith.com' && t.status !== 'closed')}} -``` - -- Drag and drop a table widget under the **Resolved** tab. Open the property pane and add the following snippet under **Table Data** to bind the query results. - -```jsx -{{get_tickets.data.filter(t => t.status === 'open')}} -``` - -- Drag and drop a table widget under the **Closed** tab. Open the property pane and add the following snippet under **Table Data** to bind the query results. - -```jsx -{{get_tickets.data.filter(t => t.status === 'closed')}} -``` - -## Step 5: Creating Charts in Appsmith - -- On the **Home** tab, click on the first Chart widget. Add Title **Open Issues By Category**. Change the **Chart Type** property to **Column Chart**. -- Update the x-axis and y-axis Labels under **Axis** on the property pane. -- Add the following code snippet under the **Series Data** property to bind the data to be displayed on the x and y axes. - -```jsx -[ - { - "x": "Hardware", - "y": {{get_tickets.data.filter(t => t.status==='open' && t.category==='hardware').length}} - }, - { - "x": "Software", - "y": {{get_tickets.data.filter(t => t.status==='open' && t.category==='software').length}} - }, - { - "x": "Other", - "y": {{get_tickets.data.filter(t => t.status==='open' && t.category==='other').length}} - } -] -``` - -- The second chart will be a pie chart. Add the title, axes labels as mentioned above, -- Add the following code snippet under the **Series Data** property of the pie chart. - -```jsx -[ - { - "x": "High", - "y": {{get_tickets.data.filter(t => t.status==='open' && t.priority==='high').length}} - }, - { - "x": "Medium", - "y": {{get_tickets.data.filter(t => t.status==='open' && t.priority==='medium').length}} - }, - { - "x": "Low", - "y": {{get_tickets.data.filter(t => t.status==='open' && t.priority==='low').length}} - } -] -``` - -## Resources -- [Appsmith](https://www.appsmith.com/) official website. -- [Appsmith GitHub](https://github.com/appsmithorg). -- [Appsmith](https://docs.appsmith.com/) documentation. \ No newline at end of file diff --git a/web/docs/guides/integrations/auth0.mdx b/web/docs/guides/integrations/auth0.mdx deleted file mode 100644 index 03dc5270dff..00000000000 --- a/web/docs/guides/integrations/auth0.mdx +++ /dev/null @@ -1,458 +0,0 @@ ---- -id: auth0 -title: 'Auth0' -description: 'Swap out Supabase authentication with Auth0. Let Auth0 handle tokens and signing users in and out, while Supabase enforces authorization policies with Row Level Security (RLS).' ---- - -This guide steps through building a Next.js application with Auth0 and Supabase. We configure Auth0 to handle authenticating users and managing tokens, while writing our authorization logic in Supabase - using Row Level Security policies. - -> Note: This guide is heavily inspired by the [Using Next.js and Auth0 with Supabase](https://auth0.com/blog/using-nextjs-and-auth0-with-supabase/) article on [Auth0's blog](https://auth0.com/blog/). Check it out for a practical step-by-step guide on integrating Auth0 and Supabase. - -The full code example for this guide can be found [here](https://github.com/dijonmusters/supabase-auth0-example). - -[Auth0](https://auth0.com/) is an authentication and authorization platform, offering numerous strategies to authenticate and manage users. It provides fine-grain control over how users sign in to your application, the token that is generated, and what data is stored about your users. - -[Next.js](https://nextjs.org/) is a web application framework built on top of React. We will be using it for this example, as it allows us to write server-side logic within our application. Auth0 have also written a [very well integrated authentication library](https://www.npmjs.com/package/@auth0/nextjs-auth0) specifically for Next.js. - -> Note: API routes (serverless functions) in Next.js closely resemble the structure of Node server frameworks - such as Express, Koa and Fastify. The server-side logic in this guide could easily be refactored in one of these frameworks and managed as a separate application to the front-end. - -If you don’t have an Auth0 account, create one [here](https://auth0.com/signup). - -You will also need a Supabase account, which can be created by signing in [here](https://app.supabase.com/). - -## Step 1: Creating an Auth0 tenant - -From the Auth0 dashboard, click the menu to the right of the Auth0 logo, and select `Create tenant`. - -![Create tenant from Auth0 dashboard](/img/guides/integrations/auth0/IYzHxeW.png) - -Enter a `Domain` for your tenant - this will need to be unique. - -Select a `Region` - this should be geographically close to the majority of your users. - -Select `Development` for `Environment Tag` - this should be production when you're ready to go live. - -![Auth0 tenant settings](/img/guides/integrations/auth0/iSA3E0J.png) - -## Step 2: Setting up an Auth0 application - -From the sidebar menu, select `Applications` > `Applications` and click `Create Application`. - -Give your application a name, select the `Regular Web Applications` option and click `Create`. - -![Auth0 application settings](/img/guides/integrations/auth0/ANU4Wez.png) - -Select `Settings` and navigate to the `Application URIs` section, and update the following: - -`Allowed Callback URLs`: `http://localhost:3000/api/auth/callback` - -`Allowed Logout URLs`: `http://localhost:3000` - -Scroll to the bottom of the `Settings` section and reveal the `Advanced Settings`. - -Select `OAuth` and set `JSON Web Token Signature` to `RS256`. - -Confirm `OIDC Conformant` is `Enabled`. - -Click `Save` to update the settings. - -## Step 3: Creating a Supabase project - -From your [Supabase dashboard](https://app.supabase.com/), click `New project`. - -Enter a `Name` for your Supabase project. - -Enter a secure `Database Password`. - -Select the same `Region` you selected for your Auth0 tenant. - -Click `Create new project`. - -![New Supabase project settings](/img/guides/integrations/auth0/qnmJEU7.png) - -## Step 4: Creating data in Supabase - -From the sidebar menu in the [Supabase dashboard](https://app.supabase.com/), click `Table editor`, then `New table`. - -Enter `todo` as the `Name` field. - -Select `Enable Row Level Security (RLS)`. - -Create two new columns: - -- `title` as `text` -- `user_id` as `text` -- `is_complete` as `bool` with the default value `false` - -Click `Save` to create the new table. - -![Todo table](/img/guides/integrations/auth0/33kqP4K.png) - -From the `Table editor` view, select the `todo` table and click `Insert row`. - -Fill out the `title` field and click `Save`. - -![New row settings](/img/guides/integrations/auth0/mEhHAWC.png) - -Click `Insert row` and add a couple of extra todos. - -![List of todos](/img/guides/integrations/auth0/dLOvhdq.png) - -## Step 5: Building a Next.js app - -Create a new Next.js project: - -```bash -npx create-next-app -``` - -Create a `.env.local` file and enter the following values: - -``` -AUTH0_SECRET=any-secure-value -AUTH0_BASE_URL=http://localhost:3000 -AUTH0_ISSUER_BASE_URL=https://..auth0.com -AUTH0_CLIENT_ID=get-from-auth0-dashboard -AUTH0_CLIENT_SECRET=get-from-auth0-dashboard -NEXT_PUBLIC_SUPABASE_URL=get-from-supabase-dashboard -NEXT_PUBLIC_SUPABASE_KEY=get-from-supabase-dashboard -SUPABASE_SIGNING_SECRET=get-from-supabase-dashboard -``` - -> Note: Auth0 values can be found under `Settings > Basic Information` for your application. - -![Auth0 settings](/img/guides/integrations/auth0/o07FaoV.png) - -> Note: Supabase values can be found under `Settings > API` for your project. - -![Supabase settings](/img/guides/integrations/auth0/r1GAfLo.png) - -Restart your Next.js development server to read in the new values from `.env.local`. - -```bash -npm run dev -``` - -## Step 6: Install Auth0 Next.js library - -Install the `@auth0/nextjs-auth0` library. - -```bash -npm i @auth0/nextjs-auth0 -``` - -Create a new file `pages/api/auth/[...auth0].js` and add: - -```jsx -// pages/api/auth/[...auth0].js - -import { handleAuth } from '@auth0/nextjs-auth0' - -export default handleAuth() -``` - -> Note: This will create a few API routes for us. The main ones we will use are `/api/auth/login` and `/api/auth/logout` to handle signing users in and out. - -Open `pages/_app.js` and wrap our `Component` with the `UserProvider` from Auth0: - -```jsx -// pages/_app.js - -import React from 'react' -import { UserProvider } from '@auth0/nextjs-auth0' - -const App = ({ Component, pageProps }) => { - return ( - - - - ) -} - -export default App -``` - -Update `pages/index.js` to ensure the user is logged in to view the landing page. - -```jsx -// pages/index.js - -import styles from '../styles/Home.module.css' -import { withPageAuthRequired } from '@auth0/nextjs-auth0' -import Link from 'next/link' - -const Index = ({ user }) => { - return ( -
    -

    - Welcome {user.name}!{' '} - - Logout - -

    -
    - ) -} - -export const getServerSideProps = withPageAuthRequired() - -export default Index -``` - -> Note: `withPageAuthRequired` will automatically redirect the user to `/api/auth/login` if they are not currently logged in. - -Test this is working by navigating to `http://localhost:3000` which should redirect you to an Auth0 sign in screen. - -![Auth0 sign in screen](/img/guides/integrations/auth0/xLRL7S7.png) - -Either `Sign up` for a new account, or click `Continue with Google` to sign in. - -You should now be able to view the landing page. - -![Landing page](/img/guides/integrations/auth0/YdBKRy6.png) - -## Step 7: Sign Auth0 token for Supabase - -Currently, neither Supabase or Auth0 allow for a custom signing secret to be set for their JWT. They also use different [signing algorithms](https://auth0.com/docs/configure/applications/signing-algorithms). - -Therefore, we need to extract the bits we need from Auth0's JWT, and sign our own to send to Supabase. - -We can do that using Auth0's `afterCallback` function, which gets called anytime the user authenticates. - -Install the `jsonwebtoken` library. - -```bash -npm i jsonwebtoken -``` - -Update `pages/api/auth/[...auth0].js` with the following: - -```jsx -// pages/api/auth/[...auth0].js - -import { handleAuth, handleCallback } from '@auth0/nextjs-auth0' -import jwt from 'jsonwebtoken' - -const afterCallback = async (req, res, session) => { - const payload = { - userId: session.user.sub, - exp: Math.floor(Date.now() / 1000) + 60 * 60, - } - - session.user.accessToken = jwt.sign(payload, process.env.SUPABASE_SIGNING_SECRET) - - return session -} - -export default handleAuth({ - async callback(req, res) { - try { - await handleCallback(req, res, { afterCallback }) - } catch (error) { - res.status(error.status || 500).end(error.message) - } - }, -}) -``` - -Our `payload` for the JWT will contain our user's unique identifier from Auth0 - `session.user.sub` and an expiry of 1 hour. - -We are signing this JWT using Supabase's signing secret, so Supabase will be able to validate it is authentic and hasn't been tampered with in transit. - -> Note: We need to sign the user out and back in again to run the `afterCallback` function, and create our new token. - -Now we just need to send the token along with the request to Supabase. - -## Step 8: Requesting data from Supabase - -Create a new file called `utils/supabase.js` and add the following: - -```jsx -// utils/supabase.js - -import { createClient } from '@supabase/supabase-js' - -const getSupabase = (access_token) => { - const supabase = createClient( - process.env.NEXT_PUBLIC_SUPABASE_URL, - process.env.NEXT_PUBLIC_SUPABASE_KEY - ) - - if (access_token) { - supabase.auth.session = () => ({ - access_token, - }) - } - - return supabase -} - -export { getSupabase } -``` - -This will be our client for talking to Supabase. We can pass it an `access_token` and it will be attached to our request. - -Let's load our `todos` from Supabase in our landing page! - -```jsx -// pages/index.js - -import styles from '../styles/Home.module.css' -import { withPageAuthRequired } from '@auth0/nextjs-auth0' -import { getSupabase } from '../utils/supabase' -import Link from 'next/link' -import { useEffect } from 'react' - -const Index = ({ user }) => { - const [todos, setTodos] = useState([]) - const supabase = getSupabase(user.accessToken) - - useEffect(() => { - const fetchTodos = async () => { - const { data } = await supabase.from('todo').select('*') - setTodos(data) - } - - fetchTodos() - }, []) - - return ( -
    -

    - Welcome {user.name}!{' '} - - Logout - -

    - {todos?.length > 0 ? ( - todos.map((todo) =>

    {todo.content}

    ) - ) : ( -

    You have completed all todos!

    - )} -
    - ) -} - -export const getServerSideProps = withPageAuthRequired() - -export default Index -``` - -Alternatively, we could fetch todos on the server using the `getServerSideProps` function. - -```jsx -// pages/index.js - -import styles from '../styles/Home.module.css' -import { withPageAuthRequired, getSession } from '@auth0/nextjs-auth0' -import { getSupabase } from '../utils/supabase' -import Link from 'next/link' - -const Index = ({ user, todos }) => { - return ( -
    -

    - Welcome {user.name}!{' '} - - Logout - -

    - {todos?.length > 0 ? ( - todos.map((todo) =>

    {todo.content}

    ) - ) : ( -

    You have completed all todos!

    - )} -
    - ) -} - -export const getServerSideProps = withPageAuthRequired({ - async getServerSideProps({ req, res }) { - const { - user: { accessToken }, - } = await getSession(req, res) - - const supabase = getSupabase(accessToken) - - const { data: todos } = await supabase.from('todo').select('*') - - return { - props: { todos }, - } - }, -}) - -export default Index -``` - -Either way, when we reload our application, we are still getting the empty state for todos. - -![Empty todo list](/img/guides/integrations/auth0/XgEMwnN.png) - -This is because we enabled Row Level Security, which blocks all requests by default. To enable our user to select their `todos` we need to write a policy. - -## Step 9: Write a policy to allow select - -Our policy will need to know who our currently logged in user is to determine whether or not they should have access. Let's create a PostgreSQL function to extract the current user from our new JWT. - -Navigate back to the Supabase dashboard, select `SQL` from the sidebar menu, and click `New query`. This will create a new query called `new sql snippet`, which will allow us to run any SQL against our Postgres database. - -Write the following and click `Run`. - -```sql -create or replace function auth.user_id() returns text as $$ - select nullif(current_setting('request.jwt.claims', true)::json->>'userId', '')::text; -$$ language sql stable; -``` - -This will create a function called `auth.user_id()`, which will inspect the `userId` field of our JWT payload. - -> Note: To learn more about PostgreSQL functions, check out [our deep dive video](https://www.youtube.com/watch?v=MJZCCpCYEqk). - -Let's create a policy that checks whether this user is the owner of the todo. - -Select `Authentication` from the Supabase sidebar menu, click `Policies`, and then `New Policy` on the `todo` table. - -![Create new policy](/img/guides/integrations/auth0/M7XyhHe.png) - -From the modal, select `Create a policy from scratch` and add the following. - -![Policy settings for SELECT](/img/guides/integrations/auth0/wuWz3am.png) - -This policy is calling the function we just created to get the currently logged in user's ID `auth.user_id()` and checking whether this matches the `user_id` column for the current `todo`. If it does, then it will allow the user to select it, otherwise it will continue to deny. - -Click `Review` and then `Save policy`. - -> Note: To learn more about RLS and policies, check out [our deep dive video](https://www.youtube.com/watch?v=Ow_Uzedfohk). - -The last thing we need to do is update the `user_id` columns for our existing `todos`. - -Head back to the Supabase dashboard, and select `Table editor` from the sidebar. - -![User ID null in Supabase Table Editor](/img/guides/integrations/auth0/dLOvhdq.png) - -Each of our `user_id` columns are set to `NULL`! - -To get the ID for our Auth0 user, head over to the Auth0 dashboard, select `User Management` from the sidebar, click `Users` and select your test user. - -![List of users in Auth0 dashboard](/img/guides/integrations/auth0/GdXS013.png) - -Copy their `user_id`. - -![User ID in Auth0 dashboard](/img/guides/integrations/auth0/tbvd0Uj.png) - -Update each row in Supabase. - -![User ID set to Auth0 user](/img/guides/integrations/auth0/tPu4Tt8.png) - -Now when we refresh our application, we should finally see our list of `todos`! - -> Note: Check out [the repo](https://github.com/dijonmusters/supabase-auth0-example/blob/main/pages/index.js) for an example of writing new `todos` to Supabase. - -## Resources - -- [Auth0](https://auth0.com/) official website. -- [Auth0 blog](https://auth0.com/blog/). -- [Using Next.js and Auth0 with Supabase article](https://auth0.com/blog/using-nextjs-and-auth0-with-supabase/). -- [Auth0 community](https://community.auth0.com/). -- [Auth0 documentation](https://auth0.com/docs/). diff --git a/web/docs/guides/integrations/clerk.mdx b/web/docs/guides/integrations/clerk.mdx deleted file mode 100644 index 8e625843f9f..00000000000 --- a/web/docs/guides/integrations/clerk.mdx +++ /dev/null @@ -1,184 +0,0 @@ ---- -id: clerk -title: 'Clerk' -description: 'This guide explains how to connect your Supabase database with Clerk, a powerful authentication provider built for the modern web.' ---- - -This guide explains how to connect your Supabase database with [Clerk](https://clerk.dev), an authentication provider built for the modern web. - -Clerk authenticates users, manages session tokens, and provides user management functionality that can be used in combination with the authorization logic available in Supabase through PostgreSQL Row Level Security (RLS) policies. - -This guide assumes you have a Supabase account and database project already set up. - -If you don't have a Clerk account, you can [create one now](https://dashboard.clerk.dev/sign-up). - -## Step 1: Create JWT template - -The first step is to create a new Clerk application from your Clerk Dashboard if you haven't done so already. You can choose whichever authentication strategy and social login providers you prefer. For more information, check out Clerk's [guide](https://docs.clerk.dev/popular-guides/setup-your-application). - -After your Clerk application has been created, use the lefthand menu to navigate to the **JWT Templates** page. - -Click on the button to create a new template based on Supabase. - -![Create Supabase JWT template from Clerk dashboard](/img/guides/integrations/clerk/01_supabase-template.png) - -This will pre-populate the default claims required by Supabase. You can include additional claims or modify them as necessary. [Shortcodes](https://docs.clerk.dev/popular-guides/jwt-templates#shortcodes) are also available for adding dynamic values. - -ℹ️ Note the name of the JWT template (which you can change) because this will be needed later. - -![JWT template claims](/img/guides/integrations/clerk/02_jwt-claims.png) - -## Step 2: Sign JWT with Supabase secret - -Supabase requires JWTs be signed with the HS256 signing algorithm and use their signing key. Find the JWT secret key in your Supabase project under **Settings** > **API** in the **Config** section. - -![Sign with Supabase secret](/img/guides/integrations/clerk/03_jwt-secret.png) - -Click to reveal the JWT secret, copy it, and then paste it in the Signing key field in the Clerk JWT template. - -![Paste signing key](/img/guides/integrations/clerk/04_signing-key.png) - -After the key is added, click the **Apply Changes** button to save your template. - -## Step 3: Configure client - -The next step is to configure your client. Supabase provides an official [JavaScript/TypeScript client library](https://github.com/supabase/supabase-js) and there are [libraries in other languages](https://supabase.com/docs/reference/javascript/installing) built by the community. - -This guide will use a Next.js project with the JS client as an example, but the mechanism of setting the authentication token should be similar with other libraries and frameworks. - -Assuming a Next.js application, set the following environment variables in an `.env.local` file: - -```bash -NEXT_PUBLIC_CLERK_FRONTEND_API=your-frontend-api -NEXT_PUBLIC_SUPABASE_URL=your-supabase-url -NEXT_PUBLIC_SUPABASE_KEY=your-supabase-anon-key -``` - -**Note**: If you're using Create React App, replace the `NEXT_PUBLIC` prefix with `REACT_APP` - -Your Clerk Frontend API can be found on the [API Keys](https://dashboard.clerk.dev/last-active?path=api-keys) screen. - -![Clerk Frontend API](/img/guides/integrations/clerk/05_clerk-frontend-api.png) - -To get the ones needed for Supabase, navigate to the same Settings > API page as before and locate the anon public key and URL. - -![Supabase keys](/img/guides/integrations/clerk/06_supabase-keys.png) - -**Note**: It is recommended that you enable [Row Level Security](https://supabase.com/docs/guides/auth/row-level-security) (RLS) for your database tables and configure access policies as needed. - -After setting those three environment variables, you should be able to start up your application development server. - -Install the JavaScript client for Supabase with: - -```bash -npm install @supabase/supabase-js -``` - -Initialize the Supabase client by passing it the environment variables. - -This can be saved to a common file, for example as `lib/supabaseClient.js` - -```jsx -import { createClient } from '@supabase/supabase-js'; - -const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL; -const supabaseKey = process.env.NEXT_PUBLIC_SUPABASE_KEY; - -export const supabase = createClient(supabaseUrl, supabaseKey); -export default supabase; -``` - -## Step 4: Set up Clerk Provider - -Install the latest Clerk Next.js SDK by running the following: - -```bash -npm install @clerk/nextjs@next -``` - -**Note**: There is also a Clerk library for [React](https://github.com/clerkinc/javascript/tree/main/packages/react) and [React Native with Expo](https://github.com/clerkinc/javascript/tree/main/packages/expo). - -After the package is installed, wrap your application with the `` component. - -In a Next.js application, this is typically done in `pages/_app.js`: - -```jsx -import { ClerkProvider } from '@clerk/nextjs'; - -function MyApp({ Component, pageProps }) { - return ( - - - - ); -} - -export default MyApp; -``` - -## Step 5: Set auth token with Supabase - -In order to access the custom JWT, you can use the `getToken` function returned by the Clerk `useAuth` hook and pass it the name of your template (hopefully you remembered from earlier). - -**Note**: The `getToken({ template: })` call is asynchronous and returns a Promise that needs to be resolved before accessing the token value. This token is short-lived for better security and should be called before every request to your Supabase backend. The caching and refreshing of the token is handled automatically by Clerk. - -Call `supabase.auth.setAuth(token)` to override the JWT on the current client. The JWT will then be sent to Supabase with all subsequent network requests. - -```jsx -import { useAuth } from '@clerk/nextjs'; -import supabase from '../lib/supabaseClient'; - -export default function Home() { - const { getToken } = useAuth(); - - const fetchData = async () => { - // TODO #1: Replace with your JWT template name - const token = await getToken({ template: 'supabase' }); - - supabase.auth.setAuth(token); - - // TODO #2: Replace with your database table name - const { data, error } = await supabase.from('your_table').select(); - - // TODO #3: Handle the response - }; - - return ( - - ); -} -``` - -## Access user ID in RLS policies - -It is common practice to need access to the user identifier on the database level, especially when working with RLS policies in Postgres. Although Supabase provides a special function `auth.uid()` to extract the user ID from the JWT, this does not work with Clerk. The workaround is to write a custom SQL function to read the `sub` property from the JWT claims. - -In the **SQL Editor** section of the Supabase dashboard, click New Query and enter the following: - -```sql -create or replace function requesting_user_id() -returns text -language sql stable -as $$ - select nullif(current_setting('request.jwt.claims', true)::json->>'sub', '')::text; -$$; -``` - -This will create a `requesting_user_id()` function that can be used within an RLS policy. - -For example, this policy would check that the user making the request is authenticated and matches the `user_id` column of a todos table. - -## Access user ID in table column - -If you would like the requesting user ID from the JWT to automatically populate a text type column in your database table, you can set the **Default Value** field to the previously defined `requesting_user_id()` function. - -![Set requesting_user_id() as default value](/img/guides/integrations/clerk/07_requesting-user-id.png) - -## Resources - -- [Clerk + Supabase starter repo](https://github.com/clerkinc/clerk-supabase-starter) -- [Next.js + Supabase + Clerk tutorial](https://clerk.dev/blog/nextjs-supabase-todos-with-multifactor-authentication) -- [Clerk guide for Next.js Authentication](https://docs.clerk.dev/get-started/nextjs) -- [Clerk Community Discord channel](https://discord.com/invite/b5rXHjAg7A) diff --git a/web/docs/guides/integrations/dashibase.mdx b/web/docs/guides/integrations/dashibase.mdx deleted file mode 100644 index 6383dc02a7e..00000000000 --- a/web/docs/guides/integrations/dashibase.mdx +++ /dev/null @@ -1,239 +0,0 @@ ---- -id: dashibase -title: 'Dashibase' -description: 'Create a CRUD app with Supabase and Dashibase in 15 mins.' ---- - -import ThemedImage from '@theme/ThemedImage' -import useBaseUrl from '@docusaurus/useBaseUrl' - -Let’s build an app together! - -This guide walks you through how to build a CRM for superheroes using Supabase on the backend and Dashibase on the front. - -[Dashibase](https://dashibase.com/) is a lightning-fast way to build your app dashboard so that your end users can manage their data. You get a full dashboard UI right out of the box. Not boilerplate code. Not drag-and-drop. Not individual components. - -## Step 1. Write down your idea - -Let’s say we want to build a CRM for Marvel Cinematic Universe. With the multiverse, the superheroes would need a CRM to stay in touch. - -Here is the information we want our users to store in our app: - -1. Name -2. Universe -3. Email -4. Last contacted date -5. Relationship: Never met, Acquaintance, Close -6. Can he/she fly? -7. History - -## Step 2. Set up your Supabase project - -First, sign up for a Supabase account and create a new project. We are naming our project MultiverseCRM. - - - -Next, set up the table for our data. Our table is called ‘contacts'. - -To store the various information we want, we need to set up the following columns: - -1. Name (text) -2. Universe (int4) -3. Email (text) -4. Last contacted date (date) -5. Relationship: Never met, Acquaintance, Close (text) -6. Can he/she fly? (boolean) -7. History (text) - -We also need a `user` column, which is a [foreign key](https://supabase.com/docs/guides/database/tables#joining-tables-with-foreign-keys) to the auth.users table so that we can keep track of which user these contacts belong to. To do that, add another column, name it ‘user’, and click on the chainlink button to add the foreign key relation. Then, select ‘users’ and ‘id’. - - - -This is what the columns should look like: - - - -Congrats! You have set up the backend of your app. - -## Step 3. Set up your frontend with Dashibase - -Let’s hop over to [Dashibase](https://dashibase.com/). - -When you log in to your new account, you will see an empty dashboard. - - - -The first things to do are to name our app, pick a URL, and connect our Supabase project. You can find your Supabase URL and Anon Key in your Supabase project > Settings > API. - - - -Connecting your Supabase project to Dashibase is as simple as that. - -Next, let’s create a page where our users can view, add, and edit their contacts. Simply click on “Add page”. - -Here are the settings we use for our Contacts page: - -- Name: Contacts -- Page URL: /contacts -- Supabase table: contacts (This is automatically pulled from your Supabase project. If you have multiple tables, you can select the relevant one.) -- Display: list (We will display our contacts in a list for now.) -- Read-only: false (Our users should be able to edit their contacts.) -- ID column: id (This is the ID of each contact in our database. If you are not using ‘id’ as your ID column, feel free to change this.) -- User column: user (This is the `user` column we created earlier.) - - - -Then, we will add the attributes for each contact so that our users can view or edit them: - -1. Name (text) -2. Universe (text) -3. Email (text) -4. Last contacted date (date) -5. Relationship: Never met, Acquaintance, Close (single select) -6. Can he/she fly? (boolean) -7. History (long text) - - - - -When you use the 'Single Select' type, you will get to add the options you want. - - - -Let’s customize our contacts a little. We will set Name, Universe, and Email as required fields. - - - -Then, we will hide History from the list because it can get too long. Our users will still be able to view a contact’s history by clicking on the contact in the dashboard. - - - -Finally, we will try the card display (under the page settings). - - - -The cards look pretty good in the preview. We will use that for now. - -**Once done, just hit “Save” and “Deploy”. Your app is now live!** - -One quick thing: You want to add your app URL to your Supabase project > Settings > Authentication > Additional redirect URLs. This redirects your users to your app when they sign up. - - - -## Step 4: Share your app - -Your app comes with signup and login pages right out of the box. You don’t have to spend time building that at all. - - - -When you are ready, share your app with your family, friends, and followers! - -P.S. You can check out our app at [https://multiversecrm.app.dashibase.com](https://multiversecrm.app.dashibase.com/). You can add new contacts and edit or delete existing contacts. You can also filter or sort to look for certain contacts. - - - -Fun fact: Both Dashibase and apps created with Dashibase have light and dark modes out of the box. Toggle the light/dark mode for this page to see them! - -## Resources - -- [Dashibase website](https://dashibase.com/) -- [Dashibase open-source repo](https://github.com/dashibase/dashibase) -- [Dashibase Twitter](https://twitter.com/dashibase) \ No newline at end of file diff --git a/web/docs/guides/integrations/directus.mdx b/web/docs/guides/integrations/directus.mdx deleted file mode 100644 index ef9a8855a5c..00000000000 --- a/web/docs/guides/integrations/directus.mdx +++ /dev/null @@ -1,128 +0,0 @@ ---- -id: directus -title: 'Directus' -description: "In this guide, we will show you how to create a Supabase project, install the Directus platform locally and configure the two to connect." ---- - -In this guide, we will demonstrate how to create a new Supabase project, install a fresh instance of the Directus platform, then configure the two to work together seamlessly. If you're unfamiliar with either of these systems, don’t worry! We’ll start off with an overview of each platform and explain how they complement each other, noting any overlap in capabilities. - -## Introduction - -![Supabase App](/img/guides/integrations/directus/supabase-20220608A.webp) - -[Supabase](​​https://supabase.com/) is an open-source Firebase alternative that provides a PostgreSQL database, storage, authentication, and a dynamic REST API based on your schema. While it is possible to self-host Supabase on your own infrastructure, this article will focus on Supabase Cloud’s Free tier, which is the fastest and easiest way to get started. - -![Directus App](/img/guides/integrations/directus/directus-20220608A.webp) - -[Directus](https://directus.io/) is an open-source data platform that layers on top of any SQL database, providing a powerful suite of tools. The Directus Engine provides dynamic REST and GraphQL APIs based on your schema, hooks and automation, authentication and access control, and file transformations. Directus Studio enables engineers and non-technical users alike to browse, manage, and visualize database content through a no-code app. - ---- - -Supabase is a suite of open-source tools making Postgres databases, file storage, authentication, and edge functions more accessible to developers of all skill levels. Directus is also developer tooling and additionally provides a Data Studio that is safe and intuitive enough for anyone, including non-technical users, to use. This is the crucial bit that gives the two platforms such a strong “network effect.” - -When these two systems are brought together, you get a scalable datastore, limitless connectivity options, and a no-code app that allows your technical and business teams to collaborate together efficiently. - -The two platforms share an overlap of capabilities that deepens their integration and offers developers the freedom of choice across a broader spectrum of connectivity. Key areas of intersection include: - -The ability to generate *powerful* APIs dynamically to connect data -User management and fine-grained access control -Digital asset storage and management. - -More importantly, Directus and Supabase share a common vision for your data, making them quite symbiotic. Both solutions are completely open-source, with self-hosted and cloud deployment options available. They are unopinionated in their approach, with vendor-agnostic data storage, and they both focus on providing a polished developer experience along with comprehensive documentation. - -By linking the Supabase database with your Directus Project, *you get a superset of data tools.* You'll benefit from Supabase's Postgres database and its *dev-centric* admin app with the raw power to run SQL queries, ***as well as*** the Directus no-code app, which enables intuitive permissions-based data access for the whole team. - -Let’s dive into how we actually set up and link these two platforms to create a modern data stack powerhouse. - -## Create a Supabase Project - -As mentioned, while you can [deploy Supabase locally](https://supabase.com/docs/guides/local-development). For the purpose of this guide, we’ll use Supabase Cloud: - -1. Create a **Supabase** account by signing in with GitHub. -2. Give your organization a name (this can be changed later). -3. Click **New Project** and select your organization. -4. Follow the prompts, setting a project Name, Database Password, Region, and Pricing Plan, then click **Create New Project**. -5. After your project has been provisioned, navigate to **Settings > Database** in the sidebar. -6. Scroll down to **Connection Info** and take note of your database’s **Host**, **Database Name**, **Port**, **User**, and **Password**. You will need to enter this during your Directus project setup. - -## Optional: Add PostGIS to Support Geometry and Mapping - -To take full advantage of the built-in geometry and mapping features Directus offers, we recommend enabling Geometric Data Support. To add PostGIS, follow these steps: - -![Enable PostGis](/img/guides/integrations/directus/enable-PostGIS-20220608A.webp) - -1. From the sidebar, navigate to **Database > Extensions**. -2. Use the search bar to look up `PostGIS`. -3. Toggle the PostGIS option to enable it. - -## Set up Directus - -At the time of writing this article, [Directus Cloud](https://directus.cloud/) does not yet support hybrid deployments for connecting an external database. So, we’ll be deploying a self-hosted instance to connect with Supabase. To install a self-hosted instance of Directus that’s connected to our Supabase project, follow these steps: - -1. Run the following command in your terminal: - -```bash -npm init directus-project example-project -``` - -2. Using the up/down arrow keys, select `Postgres` from the list: - -```bash -? Choose your database client Postgres -``` - -3. Next, you will be prompted to input database credentials. Add in the Supabase Database Connection Info noted above as follows: - -- **Database Host** – The IP address for your database. -- **Port** – Port number your database is running on. -- **Database Name** – Name of your existing database. -- **Database User** – Name of existing user in database. -- **Database Password** – Password to enter database. -- **Enable SSL** – Select Y for yes or N for no. -- **Root** – The root name. - -4. Now, simply set an email and password for your first Directus admin account. To be clear, this is Directus-specific, and is unrelated to your database user: - -```bash -Create your first admin user: -? Email: admin@example.com -? Password: ******** -``` - -Once this is complete, you should see details about your new project: - -```bash -Your project has been created at /example-project. -The configuration can be found in /example-project/.env -``` - -5. Lastly, navigate to your new project folder (in this case `example-project`) and start the platform: - -```bash -cd example-project -npx directus start -``` -**Please note:** To prevent public accessibility when using the supabase-js library,turn on row level security (RLS) on all these tables inside of the Supabase Dashboard. By default when RLS is turned on these tables cannot be read from or written to with the supabase-js library. - -That’s it! Your project is now up and running locally. You can access the Directus Studio in the browser via the URL displayed, and log in with the Directus admin credentials you entered above: - -```bash -✨ Server started at http://localhost:8055 -``` - -In a matter of minutes, we’ve created a flexible data backend, with access to an intuitive no-code app for managing and visualizing data along with a robust connectivity toolkit. This modern data stack is flexible and scalable enough to power any data-driven project… all you need to do is build the frontend! - -## Next Steps - -From here, the sky's the limit on what you can build. You’ll probably want to invite some new collaborators to your project and start architecting your data model. - -Below are some additional resources to dive in and start exploring these two platforms: - -**Directus** -- See the [Directus guides](https://directus.io/guides/). -- Join the Directus community on [Discord](https://directus.chat/). -- Check out the source code on the official [Directus GitHub Repo](https://github.com/directus/directus). - -**Supabase** -- Explore the [Supabase documentation](https://supabase.com/docs) -- Join the Supabase community on [Discord](https://discord.supabase.com/) diff --git a/web/docs/guides/integrations/draftbit.mdx b/web/docs/guides/integrations/draftbit.mdx deleted file mode 100644 index 56e5eabd09a..00000000000 --- a/web/docs/guides/integrations/draftbit.mdx +++ /dev/null @@ -1,231 +0,0 @@ ---- -id: draftbit -title: 'Draftbit' -description: 'Connect your Supabase postgres database to your Low-code mobile app.' ---- - -This guide explains how to connect a Supabase back-end to a Draftbit front-end and then configure all CRUD operations necessary to build a simple mobile app. - -[Draftbit](https://draftb.it/3Fkbask) is a "pro-code" low-code mobile app building platform. Draftbit exports React Native source code that is 100% run on open-source languages and libraries. - -Draftbit is back-end agnostic and connects to Supabase via REST API. - -> Note: For the demonstration purpose of this guide, we are using a pre-populated database in Supabase. We are calling `Groceries`. To follow along, rename it any way you prefer. - -![Prepopulated Database](/img/guides/integrations/draftbit/prepopulated-database.png) - -If you don’t have a Draftbit account, create one [here](https://draftb.it/3Fkbask). Once you’ve got your account set up, Create a New App. You can select `Start From a Blank App` for this demo and proceed to the Builder interface. - -## Step 1: Get the RESTful endpoint and Project API key - -To connect the REST API in the Draftbit app, the following fields are required: - -- Base URL of the REST API, which is in the format: `https://.supabase.co/rest/v1` where the `` (the space between `Bearer` and `` is required). Click **Add** after adding the value. -- Enter another key name to access the API Key such as `Api_Key_Header`. When making the service connection in the next section, it will be passed as the header `apiKey` value. -- The value of this key requires you to enter an authorization token that starts with syntax is ``. Click **Add** after adding the value. -- Click **Save** to save these keys and close the modal. - -![Add header values in Draftbit](/img/guides/integrations/draftbit/authheader.png) - -## Step 3: Add Supabase RESTful endpoint in Draftbit - -In your Draftbit builder interface: - -- Open the **API & Cloud Services** modal from the top menu bar. -- From the **Connect a service** menu, click on **Rest API**. - -- In Step 1: Enter a name for your REST API. Then, paste your `Base URL` (from the first section) into the Base URL field. -- In Step 2: Under **Key** add `Authorization` and `apikey`. Then, under **Value**, select the global variables (from the previous section) to add the actual values for both keys. -- Click Save. - -![Create a API service in Draftbit](/img/guides/integrations/draftbit/service.png) - -## Making API requests with Supabase & Draftbit - -### GET request to Fetch all records - -In this section, let's populate a Fetch component with all the data from a simple Supabase and then display the data fetched from the Supabase data table in a List component. - -For reference, here is a how the Components tree looks like for this screen: - -![Components tree](/img/guides/integrations/draftbit/ctree.png) - -The next step is to create an endpoint. Let's try fetching all the data using a `GET` HTTP request. Select the Supabase service in the **API & Cloud Services** modal, and then: - -- Click **Add endpoint**. -- In Step 1: enter the name for the endpoint. Make sure the **Method** select is `GET`. -- In Step 2: add the base name path: `/groceries/select=*`, where `groceries` is the table name in Supabase. -- In Step 4: click the **Test** button next to the Endpoint input to verify the response coming from the Supabase. -- Click Save. - -![Creating a GET request endpoint](/img/guides/integrations/draftbit/get-request.gif) - -In the Builder, on the app screen: - -- Select the Fetch component in the Components tree and go to the [Data tab from Properties Panel](doc:introduction-to-the-builder#properties-panel). -- For **Service**, select the name of the Supabase Service. -- For **Endpoint**, select the endpoint you want to fetch the data from. -- Select the List component in the Components and go to the [Data tab from Properties Panel](doc:introduction-to-the-builder#properties-panel). In Data, select `Top-Level Response` from the dropdown menu. -- Then, select the Text component in the Components and then go to the Data tab from the Properties Panel. -- Add a `{{varName}}` value (inside the curly braces) to represent a column field from the Supabase. For example, add `{{title}}` to represent the column name from the Supabase Base. -- Under **Variables**, you will see the variable name defined in the previous step. From the dropdown menu, select the appropriate field that represents the data field. - -![Fetching data on app screen](/img/guides/integrations/draftbit/fetchall.gif) - -### GET request to fetch single row - -Open the **API & Cloud services** modal from the top menu, select the Supabase service, and then: - -- Click **Add endpoint**. -- In Step 1: enter a name for the endpoint. -- In Step 2: add the `/groceries/column-name=eq.{{column-name}}` variable. Then, add a Test value for the `{{column-name}}`. For example, it can be the `title` or the `id`. -- In Step 4: click the **Test** button next to the Endpoint input to verify the response coming from the Supabase. -- Click Save. - -![Creating endpoint to fetch a single row](/img/guides/integrations/draftbit/getsingle.gif) - -On app screen: - -- Select the Fetch component in the Components tree and go to the Data tab from Properties Panel -- For **Service**, select the name of the Supabase Service. -- For **endpoint**, select the endpoint you want to fetch the data from. -- Set the value for the `id` in the Configuration > URL Structure section to Navigation > id. -- Select the List component in the Components and go to the Data tab from Properties Panel. In Data, select `Top-Level Response` from the dropdown menu. -- Then, select the Text component in the Components and then go to the Data tab from the Properties Panel. -- Add a `{{varName}}` value (inside the curly braces) to represent the column field from the Supabase. For example, add `{{title}}` to represent the field and value from the Supabase data table. -- Under **Variables**, you will see the variable name defined in the previous step. From the dropdown menu, select the appropriate field that represents the data field. - -![Displaying data from single row](/img/guides/integrations/draftbit/fetchsingle.png) - -### POST request to submit a new row - -Submitting new Data from the Draftbit app to Supabase's REST API requires the request to be sent using the HTTP `POST` method. - -For this section, you need to use at least one component that accepts user input and has a Field Name prop to POST data using Supabase REST API. - -You can use one of the following components in Draftbit: - -- Text Input -- Text Area/Text Field -- Checkbox -- Slider -- Radio Button Group -- Radio Button - -In addition, you need a Touchable component like a Button to attach the POST action. After you have created these components, we will create the `POST` endpoint: - -- Click **Add endpoint**. -- In Step 1: enter a name for the endpoint and select the Method to `POST`. -- In Step 2: enter the base name as path: `/groceries`. -- In Step 3: add a valid Body structure to submit a POST request. Add one or many `{{variable}}` for test values. Click Body Preview to validate the structure of the Body in the request. For the example, let's create a variable called `{{inputValue}}`. -- In Step 4: to see the new row added to the Supabase data table as JSON response inside the Builder, you have to pass a new header called `Prefer` with its value as `return=representation`. -- In Step 5: click the **Test** button next to the Endpoint input to verify the response coming from the Supabase and click Save. - -![Make a POST request to add new data to Supabase database](/img/guides/integrations/draftbit/postrequest.gif) - -Once you follow the above steps, you should get a 200 OK response with exactly the new record as a JSON you have entered for your schema. - -An example of how Body in a request will look like: - -```json -{ - "title": {{inputValue}} -} -``` - -Where `title` is the column name in your Supabase database table. - -In Draftbit, using a Touchable or a Button component, you can trigger the action **API Request** to submit the data to the endpoint. - -Now, there is a working `POST` request in Draftbit. Map its response to the components on your screen in Draftbit. - -First, for each input component, make sure you have set the Field Names (found in the Configs tab, second from the left) to unique values. For example, in the screen below, there is one TextInput field component with the value of the `Field Name` prop of `textInputValue`. - -![Field Name prop on a TextInput component](/img/guides/integrations/draftbit/textinput.png) - -Next, on your Button component, go to the Interactions tab in the Properties panel located on the far-right-hand side. Select an Action called `API request`. - -In the API request action: - -- In **Service**, select the name to Supabase API Service. -- In **Endpoint**, select the name of the Endpoint. -- Then add the configuration for the body request to be sent by selecting the values for `{{inputValue}}`. - -![Setting up the API Request to send a POST request](/img/guides/integrations/draftbit/postapirequest.png) - -After completing the above steps, you can trigger the API request to submit new data to the Supabase database. - -### PATCH request to Update a new record - -Updating an existing record from the Draftbit app to Supabase's REST API requires the request to be sent using the HTTP `PATCH` method. - -After you have created your screen components in the Draftbit builder, open the Supabase service and make the `PATCH` endpoint: - -- Click **Add endpoint**. -- In Step 1: enter a name for the endpoint and select the Method to `PATCH`. -- In Step 2: enter the base name as path: `/groceries?id=eq.{{id}}`, where `id` is the value of an existing record in the database. -- In Step 3: add a valid Body structure to submit a PATCH request. Add one or many `{{variable}}` for test values depending on the structure of your app. Click Body Preview to validate the structure of the Body in the request. For the example, let's create a variable called `{{inputValue}}`. -- In Step 5: click the **Test** button next to the Endpoint input to verify the response coming from the Supabase and click Save. - -![Creating an endpoint for PATCH request](/img/guides/integrations/draftbit/patch.gif) - -Next, on your Button component, go to the Interactions tab in the Properties panel located on the far-right-hand side. Select an Action called `API request`. - -In the API request action: - -- In **Service**, select the name to Supabase API Service. -- In **Endpoint**, select the name of the Endpoint. -- Then add the configuration for the query param, and the body request to be sent by selecting the values for `{{inputValue}}`. - -![Setting up the API Request to send a PATCH request](/img/guides/integrations/draftbit/patchapirequest.png) - -After completing the above steps, you can trigger the API request to update existing data in the Supabase database. - -### DELETE request to remove an existing record - -The `DELETE` request is to the Supabase with an item's `column-name` to remove that particular record from the table. You can use a [filter from Supabase](https://supabase.io/docs/reference/javascript/using-filters) to filter the value of a specific `column-name`. - -After you have created your screen components in the Draftbit builder, open the Supabase service and create the `DELETE` endpoint: - -- Click **Add endpoint**. -- In Step 1: enter a name for the endpoint and select the Method to `DELETE`. -- In Step 2: add `/groceries/columnName=eq.{{columnName}}`. Then, add a Test value for the `{{columnName}}`. For example, the `{{columnName}}` here can be `id` of the record. -- In Step 4: click the **Test** button next to the Endpoint input to verify the response from the Supabase. -- Click Save. - -![Creating an endpoint for DELETE request](/img/guides/integrations/draftbit/delete.gif) - -Next, on your Button component, go to the Interactions tab in the Properties panel located on the far-right-hand side. Select an Action called `API request`. - -In the API Request action: - -- In **Service**, select the name to Supabase API Service. -- In **Endpoint**, select the name of the Endpoint. -- Then, add the configuration for the query request to be sent by selecting a value. For example, in this case it will be the `id` of the record coming from the Navigation parameter. - -![Setting up the API Request to send a DELETE request](/img/guides/integrations/draftbit/deleteapirequest.gif) - -## Resources - -- [Draftbit](https://draftb.it/3Fkbask) official website. -- [Draftbit Community](https://community.draftbit.com/home). -- [Draftbit](https://docs.draftbit.com/) documentation. diff --git a/web/docs/guides/integrations/fezto.mdx b/web/docs/guides/integrations/fezto.mdx deleted file mode 100644 index 42d79402524..00000000000 --- a/web/docs/guides/integrations/fezto.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -id: fezto -title: 'Frontend Zero to One' -description: 'Create an app automatically from your Supabase Postgres using OpenAPI' ---- - -[Frontend Zero to One is](https://www.fezto.xyz) is a service which creates an app for your Supabase Postgres database on-the-fly without any drag and drop, using the OpenAPI spec provided by PostgREST. - - - -# Setup - -In the [Supabase control panel](https://app.supabase.com/), open your project and click the Settings cog icon, and then "API". -You will need: -1. From the Project URL copy the project ID from https://your-project-id.supabase.co -2. From the "Project API keys" section copy the "anon" "public" API Key into the - -Paste both into the [FEZTO Supabase setup page](https://www.fezto.xyz/#/supabase) and click Launch. -You can now share and bookmark the browser URL which includes the projectID and anon key with others to launch the same app. diff --git a/web/docs/guides/integrations/pgmustard.mdx b/web/docs/guides/integrations/pgmustard.mdx deleted file mode 100644 index 6efbb242ef4..00000000000 --- a/web/docs/guides/integrations/pgmustard.mdx +++ /dev/null @@ -1,65 +0,0 @@ ---- -id: pgmustard -title: 'pgMustard' -description: 'Troubleshoot slow queries on Supabase with pgMustard, a visualization tool that also gives advice.' ---- - -This guide explains how to troubleshoot slow queries on Supabase using `explain` and pgMustard. - -[pgMustard](https://pgmustard.com/) is a visualization tool for [`explain analyze`](https://www.postgresql.org/docs/current/using-explain.html#USING-EXPLAIN-ANALYZE) that also gives performance tips. - -## Step 1: Get the query plan from Supabase - -Use `explain analyze` to get a query plan from Postgres. This will run the query behind the scenes, so be careful with data modification queries. - -pgMustard requires plans to be in json format, and the buffers, verbose, and settings parameters allow it to give better tips. - -So a good prefix for your query would be: - -```jsx -explain (analyze, format json, buffers, verbose, settings) -``` - -Run the query, and copy the output. - -![01-supabase-run-query](/img/guides/integrations/pgmustard/01-supabase-run-query.png) - -If you’re using the Supabase SQL Editor, this is easily copied from the cell titled `QUERY PLAN`, as seen above. - -If you have any trouble, check out pgMustard’s guide for [getting a query plan](https://www.pgmustard.com/getting-a-query-plan). - -## Step 2: Paste the query plan into pgMustard - -Paste the json output into pgMustard and press Submit. - -![02-paste-plan-pgmustard](/img/guides/integrations/pgmustard/02-paste-plan-pgmustard.png) - -## Step 3: Look through the top tips and slowest operations - -Review the top tips in pgMustard. These are scored on a scale of 0 to 5 stars, based on how much time-saving potential they have (5 stars meaning lots of potential). - -![03-review-tips-pgmustard](/img/guides/integrations/pgmustard/03-review-tips-pgmustard.png) - -Click one of the tips, or one of the operations, to see more information. - -![04-click-tip-pgmustard](/img/guides/integrations/pgmustard/04-click-tip-pgmustard.png) - -## Step 4: Consider your options - -If you get some promising suggestions, you may wish to explore them. - -If you don’t get any tips, your query might be quite fast for the amount of work it’s doing. - -For the example we saw in Step 3, let's try adding an index on the `customer_name` field in Supabase. - -![05-create-index-supabase](/img/guides/integrations/pgmustard/05-create-index-supabase.png) - -Going through Steps 1-3 again, we now get an efficient index scan, that will scale nicely as our data grows. - -![06-check-pgmustard](/img/guides/integrations/pgmustard/06-check-pgmustard.png) - -We could look into why Postgres isn’t choosing to do an index-only scan here, but pgMustard is letting us know that it doesn’t think we’ll gain much by doing so, by scoring the tip 0.3 out of 5. - -## Resources -- [pgMustard](https://www.pgmustard.com) official website. -- [pgMustard explain glossary](https://www.pgmustard.com/docs/explain). diff --git a/web/docs/guides/integrations/plasmic.mdx b/web/docs/guides/integrations/plasmic.mdx deleted file mode 100644 index ac2e6f20b05..00000000000 --- a/web/docs/guides/integrations/plasmic.mdx +++ /dev/null @@ -1,299 +0,0 @@ ---- -id: plasmic -title: 'Plasmic' -description: 'Get started with Supabase and Plasmic, an open-source framework for building internal tools.' ---- - -In this guide, we will show you how to build a crowd-sourced Pokemon Pokedex, by connecting **Supabase**, an open source Firebase backend alternative, with **Plasmic**, a visual builder for the web. While many users leverage Plasmic to quickly launch and iterate on landing pages, in this tutorial we’ll show just how powerful Plasmic can be as a general-purpose visual builder for React, which can be used to design and implement fully featured read-write applications. - -You can play with the live demo here: -[https://plasmic-supabase-demo.vercel.app/](https://plasmic-supabase-demo.vercel.app/) - -You can also take a look at the Plasmic project here: -[https://studio.plasmic.app/projects/66RKaSPCwKxYjCfXWHCxn6](https://studio.plasmic.app/projects/66RKaSPCwKxYjCfXWHCxn6) - -> You’ll need to enable 3rd-party cookies in your browser for the project to properly load. - -![pokedex-screenshot](/img/guides/integrations/plasmic/application-screenshot-00.png) - -At a high level, - -- **Supabase** is used to store the database of Pokemon (backed by Postgres) and provides an authentication backend. Our code base includes React components for querying the database, displaying this data, and supporting user sessions. -- **Plasmic** is used to create the pages and visual design of the application. We import our Supabase components into the Studio, which can be visually assembled and configured there (e.g. for displaying data). -- Plasmic designed pages are rendered back into the Next.js application. - -## Step 1: Set up your Backend on Supabase - -- On the [Supabase dashboard](https://app.supabase.com/), click `New project` and set the name of the project. -By default, Supabase will already be set up for user signups with email, with users being stored in a `users` table. - -![create-project-supabase](/img/guides/integrations/plasmic/create-project-supabase-01.png) - -- Navigate to the `Table Editor` on the left side navigation bar. Here we can create a `New table` to store our Pokemon entries. Make sure you are in the `schema public` view. Create a new table called `entries`, with 6 columns: - - `id`: is a unique ID for the entry. This column should be generated automatically as the primary column. - - `user_id`: Create a relation to the `user` table by clicking on the link icon next to the column name. Here, you can select the `id` column of the `user` table. - - `name`, `description`, `imageUrl`: This will store the name, description, and imageUrl for each Pokemon. - - `inserted_at` : This will be an automatically populated column, set to when the row was first inserted. - -> Note: In this tutorial we’ve turned off “[Row Level Security (RLS)](https://supabase.com/docs/guides/auth/row-level-security)”. In practice, you will want to create policies that restrict who gets to create, edit, and delete posts. By turning this off, any user can modify the database without restrictions. -> - -![create-table-supabase](/img/guides/integrations/plasmic/create-table-supabase-02.png) - -For your convenience, feel free to import the following CSV into Supabase to pre-populate your database. In order to import, you must select `Import data via spreadsheet`, in the new table dialog box. (It does not work on existing tables.) - -[pokedex-export.csv](/img/guides/integrations/plasmic/pokedex-export.csv) - -## Step 2: Set up your codebase - -We have a working code example for you [here](https://github.com/plasmicapp/plasmic/tree/master/examples/supabase-demo). This starter comes with all of the code components you need to get started querying Supabase through Plasmic Studio. - -> Code components are React components defined in your code base that we import into Plasmic Studio for use. Your project will be configured to look for these at `http://localhost:3000/plasmic-host` You can use these components in your design, as well as style them. Check out `supabase-demo/plasmic-init.ts` to see how they are registered with Plasmic. -> - -First, clone the repo to your development machine and install the dependencies. - -```bash -git clone git@github.com:plasmicapp/plasmic.git -cd plasmic/examples/supabase-demo/ -yarn install -``` - -Copy `.env.example` to `.env.local`, which will store the environment variables when running a local development server. Add your Supabase project’s URL and public key, which you can find in the `API` tab on the left pane of your Supabase dashboard. - -Now run the dev server, which listens at `http://localhost:3000` - -```bash -yarn dev -``` - -## Step 3: Explore the existing application - -Navigate to [http://localhost:3000](http://localhost:3000) in your web browser. The project will already be set up for user signups, logins, and an admin interface for adding and editing Pokemon to the database. Feel free to sign up with your email address for an account and add Pokemon to the database. Supabase will require that you verify your email address before you can log in. - -If you pre-populated the database in Step 1. you should see the following homepage after logging in. Otherwise, feel free to add Pokemon manually via the UI. - -![application-screenshot](/img/guides/integrations/plasmic/application-screenshot-03.png) - -## Step 4: Clone the Plasmic project - -Now let’s try to make some additions! The code base is currently configured to a read-only copy of the Plasmic project. Let’s make an editable copy first. - -Open the default starter Plasmic project here: -[https://studio.plasmic.app/projects/66RKaSPCwKxYjCfXWHCxn6](https://studio.plasmic.app/projects/66RKaSPCwKxYjCfXWHCxn6) - -![clone-project-plasmic](/img/guides/integrations/plasmic/clone-project-plasmic-04.png) - -To make an editable copy, click on the `Copy Project` button in the blue bar. This will clone the project and redirect you to your copy. - -### Step 4a: Configure your code base to use the new Plasmic project - -Take note of the `project ID` and `API token`. You can find the project ID in the URL: -`https://studio.plasmic.app/projects/PROJECTID`. - -The API token can be found by clicking the `Code` button in the top bar. - -![api-token-plasmic](/img/guides/integrations/plasmic/api-token-plasmic-05.png) - -Now go back to `.env.local` and update the corresponding project ID and token fields. - -### Step 4b: Configure your Plasmic project app host - -To tell Plasmic to look for your code components on your dev server, you’ll need to update your project’s app host to `http://localhost:3000/plasmic-host`. - -> Note: At this point, you’ll need to keep your dev server running at `http://localhost:3000`for the project to load. - - - -After restarting the dev server and Plasmic Studio, you should now be able to make edits across Plasmic Studio and your codebase. - -## Step 5: Create a new page for our Pokedex gallery - -Let’s make a visual gallery for our Pokemon by using the code components from the code base. - -Create a new page called `Gallery`, and set a path for this page (`/gallery`). - - - -Insert a `SupabaseGrid` by searching the AddDrawer (by clicking the blue + button) - -> For source see `components/CodeComponents/DatabaseComponents.tsx` -> - -![add-supabasegrid-plasmic](/img/guides/integrations/plasmic/add-supabasegrid-plasmic-07.png) - -Then in the right-hand panel, configure the props on `SupabaseGrid`. - -- `tableName` should match the table you created in Supabase -- `tableColumns` are a comma-delimited list of columns you want to select from the table -- We also set the number of columns and spacing shown in the grid - -![set-props-plasmic](/img/guides/integrations/plasmic/set-props-plasmic-08.png) - -The `SupabaseGrid` will loop over the rows from the query. - -Now customize the repeated content by inserting instances of `SupabaseField`. Select the type of content and a selector string to fetch a single value. In the example below, we use `{{row.imageUrl}}` to retrieve the `imageUrl` column of the row. Apply any styling and layout you want on these elements. - -![add-supabasefield-plasmic](/img/guides/integrations/plasmic/add-supabasefield-plasmic-09.png) - -### Putting it all together (video) - -For your convenience, the following video shows you how to create the page end-to-end. - - - -## Step 6: Check your dev server - -If you have been running your development server this whole time, you’ll see that we have been automatically fetching and rebuilding your site as you make changes in Plasmic Studio. If you need to restart your dev server, just run: - -```bash -yarn dev -``` - -See the results at `http://localhost:3000/gallery`. - -## How does this all work under the hood? - -### SupabaseGrid - -`SupabaseGrid` is a code component that was registered in `plasmic-init.ts`. The `props` field is used to tell the Plasmic Studio the component prop interface, which allows us to expose these props in the right pane as shown in the screenshots earlier. See the docs for details on [component registration](https://docs.plasmic.app/learn/registering-code-components/). - -```tsx -// plasmic-init.ts -... - -PLASMIC.registerComponent(SupabaseGrid, { - name: "SupabaseGrid", - props: { - tableName: "string", - tableColumns: "string", - queryFilters: "object", - children: { - type: "slot", - defaultValue: { - type: "text", - value: "Placeholder", - }, - }, - numColumns: { - type: "number", - defaultValue: 4, - }, - columnGap: { - type: "number", - defaultValue: 16, - }, - rowGap: { - type: "number", - defaultValue: 16, - }, - count: "number", - loading: { - type: "slot", - defaultValue: { - type: "text", - value: "Loading...", - }, - }, - }, - importPath: "./components/CodeComponents/DisplayCollections", -}); -``` - -### SupabaseQuery - -`SupabaseGrid` wraps a `SupabaseQuery` component, where we perform the query based on the provided props and store the result in a `SupabaseQueryContext`. This will be used in downstream components to display the data. - -```tsx -// supabase-demo/components/CodeComponents/DatabaseComponents.tsx -export function SupabaseQuery(props: SupabaseQueryProps) { - // These props are set in the Plasmic Studio - const { children, tableName, columns, className, filters, single } = props; - const [result, setResult] = React.useState(undefined); - -... - - // Performs the Supabase query - let query = supabase.from(tableName!).select(columns + ",id"); - query = applyFilter(query, validFilters, contexts); - const { data, error, status } = await (single ? query.single() : query.order('id', { ascending: false })); - - if (error && status !== 406) { - throw error; - } else if (data) { - setResult(data); - } - -... - - // Save the result in a `SupabaseQueryContext for use with downstream components - return ( -
    - - {children} - -
    - ); -} -``` - -Note that this code component is defined in your codebase. Feel free to augment it to expose more powerful querying capabilities to the Plasmic Studio. - -### SupabaseGridCollection - -`SupabaseGrid` also nests a `SupabaseGridCollection` under the `SupabaseQuery`. This code component is a simple CSS grid, where we retrieve the Supabase query results from `SupabaseQueryContext`, and iterate over the results. For each row, we populate a `RowContext`, which will be used by the children to read the results of a single row. Note the use of `repeatedElement`, a special convenience function that enables the component’s children to be repeated. In this case, this represents a single card to be shown in the gallery. - -```tsx -// supabase-demo/components/CodeComponents/DisplayCollections.tsx - -export function SupabaseGridCollection(props: SupabaseGridCollectionProps) { - const supabaseQuery = React.useContext(SupabaseQueryContext); - const { children, columns, columnGap, rowGap, count, className, loading, testLoading } = props; - - const result = supabaseQuery; - if (!result || testLoading) { - return loading; - } - - return ( -
    - {result.slice(0, count).map((row: any, i: any) => - -
    {repeatedElement(i === 0, children)}
    -
    - )} -
    - ) -} -``` - -### SupabaseField - -`SupabaseField` will either render a `SupabaseTextField` or `SupabaseImgField` depending on the type. These code components simply read a single value from the contexts and display the data. - -```tsx -// supabase-demo/components/CodeComponents/DisplayCollections.tsx - -export function SupabaseTextField({ name, className }: { name?: string; className?: string }) { - const contexts = useAllContexts(); - if (!name) { - return

    You need to set the name prop

    - } - return
    {getPropValue(name, contexts)}
    ; -} -``` - -In summary, by populating state into React contexts, we can store and retrieve data for use in other code components, which can be used for arbitrarily powerful interactions in Plasmic Studio. diff --git a/web/docs/guides/integrations/prisma.mdx b/web/docs/guides/integrations/prisma.mdx deleted file mode 100644 index 7906190e07a..00000000000 --- a/web/docs/guides/integrations/prisma.mdx +++ /dev/null @@ -1,177 +0,0 @@ ---- -id: prisma -title: 'Prisma' -description: 'Connect your Supabase postgres database to your Prisma project.' ---- - -This guide explains how to quickly connect the Postgres database provided by Supabase to a Prisma project. - -[Prisma](https://prisma.io) is an [open source](https://github.com/prisma/prisma) next-generation ORM. It consists of the following parts: - -- **Prisma Client**: Auto-generated and type-safe query builder for Node.js & TypeScript. -- **Prisma Migrate**: Migration system. -- **Prisma Studio**: GUI to view and edit data in your database. - -## Step 1: Get the connection string from Supabase project settings - -Go to the settings page from the sidebar and navigate to the **Database** tab. You’ll find the database’s connection string with a placeholder for the password you provided when you created the project. -![Getting the connection string](/img/guides/integrations/prisma/zntcsh3ic91gf1gy8j73.png) - -## Step 2: Testing the connection - -To make sure that everything works correctly, let’s try the connection string in a Prisma project. - -If you already have one, all you need to do is set the `DATABASE_URL` to the connection string (including the password) in your `.env` file, and you’re good to go. - -In case you don’t have a Prisma project or this is your first time working with Prisma, you’re going to use the repo from the [quickstart](https://www.prisma.io/docs/getting-started/quickstart) guide. - -### Cloning the starter project - -Navigate into a directory of your choice and run the following command in your terminal if you’re on a Windows machine: - -```bash -curl https://pris.ly/quickstart -L -o quickstart-main.tar.gz && tar -zxvf quickstart-main.tar.gz quickstart-main/typescript/starter && move quickstart-main\typescript\starter starter && rmdir /S /Q quickstart-main && del /Q quickstart-main.tar.gz -``` - -And if you’re using Mac OS or Linux, run the following command: - -```bash -curl -L https://pris.ly/quickstart | tar -xz --strip=2 quickstart-main/typescript/starter -``` - -You can now navigate into the directory and install the project’s dependencies: - -```bash -cd starter && npm install -``` - -### A look at the project’s structure - -This project comes with TypeScript configured and has the following structure. - -- A `prisma` directory which contains: - - A `dev.db` file: This is a SQLite database. - - A `schema.prisma` file: Where we define the different database models and relations between them. -- A `.env` file: Contains the `DATABASE_URL` variable, which Prisma will use. -- A `script.ts` file: where we will run some queries using Prisma Client. - This starter also comes with the following packages installed: -- [`@prisma/client`](https://www.npmjs.com/package/@prisma/client): An auto-generated and type-safe query builder that’s _tailored_ to your data. -- [`prisma`](https://www.npmjs.com/package/prisma): Prisma’s command-line interface (CLI). It allows you to initialize new project assets, generate Prisma Client, and analyze existing database structures through introspection to automatically create your application models. - > Note: Prisma works with both JavaScript and TypeScript. However, to get the best possible development experience, using TypeScript is highly recommended. - -### Configuring the project to use PostgreSQL - -Go ahead and delete the `prisma/dev.db` file because we will be switching to PostgreSQL. -Next, inside the `prisma/.env` file, update the value of the `DATABASE_URL` variable to the connection string you got in **step 3**. The URL might look as follows: - -```env -# prisma/.env -postgres://postgres:[YOUR-PASSWORD]@db.vdbnhqozmlzdsaejdxwr.supabase.co:5432/postgres -``` - -Finally, inside your `schema.prisma` file, change the `provider` from “sqlite” to `“postgresql”`. -This is what your `schema.prisma` file should look like: - -```go -datasource db { - provider = “postgresql” - url = env(“DATABASE_URL”) -} -generator client { - provider = “prisma-client-js” -} -model Post { - id Int @id @default(autoincrement()) - title String - content String? - published Boolean @default(false) - author User? @relation(fields: [authorId], references: [id]) - authorId Int? -} -model User { - id Int @id @default(autoincrement()) - email String @unique - name String? - posts Post[] -} -``` - -To test that everything works correctly, run the following command to create a migration: - -```bash -prisma migrate dev --name init -``` - -You can optionally give your migration a name, depending on the changes you made. Since this is the project’s first migration, you’re setting the `--name` flag to “init”. -If everything works correctly, you should get the following message in your terminal: - -```text -Your database is now in sync with your schema. -:heavy_check_mark: Generated Prisma Client (2.x.x) to ./node_modules/@prisma/client in 111ms -``` - -This will create a `prisma/migrations` folder inside your `prisma` directory and synchronize your Prisma schema with your database schema. - -> Note: if you want to skip the process of creating a migration history, you can use the [`db push`](https://www.prisma.io/docs/concepts/components/prisma-migrate/db-push) command instead of `migrate dev`. -> If you go to your Supabase project, in the table editor, you should see that two tables have been created, a `Post` and a `User` table. -> ![tables created in the UI](/img/guides/integrations/prisma/7y4qq4wwvfrheti6r09u.png) -> That’s it! You have now successfully connected a Prisma project to a PostgreSQL database hosted on Supabase and ran your first migration. - -## Connection pooling with Supabase - -If you’re working in a serverless environment (for example Node.js functions hosted on AWS Lambda, Vercel or Netlify Functions), you need to set up [connection pooling](https://www.prisma.io/docs/guides/performance-and-optimization/connection-management#serverless-environments-faas) using a tool like [PgBouncer](https://www.pgbouncer.org/). That’s because every function invocation may result in a [new connection to the database](https://www.prisma.io/docs/guides/performance-and-optimization/connection-management#the-serverless-challenge). Supabase [supports connection management using PgBouncer](https://supabase.io/blog/2021/04/02/supabase-pgbouncer#what-is-connection-pooling) and are enabled by default. -Go to the **Database** page from the sidebar in the Supabase dashboard and navigate to **connection pool** settings -![Connection pool settings](/img/guides/integrations/prisma/w0oowg8vq435ob5c3gf0.png) -When running migrations you need to use the non pooled connection URL (like the one we used in **step 4**). However, when deploying your app, you’ll use the pooled connection URL and add the `?pgbouncer=true` flag to the PostgreSQL connection URL. To minimize the number of concurrent connections, setting the `connection_limit` to `1` is also recommended. So the URL might look as follows: - -```env -# prisma/.env -postgres://postgres:[YOUR-PASSWORD]@db.vdbnhqozmlzdsaejdxwr.supabase.co:6543/postgres?pgbouncer=true&connection_limit=1 -``` - -Prisma Migrate uses database transactions to check out the current state of the database and the migrations table. However, the Migration Engine is designed to use a single connection to the database, and does not support connection pooling with PgBouncer. If you attempt to run Prisma Migrate commands in any environment that uses PgBouncer for connection pooling, you might see the following error: - -```bash -Error: undefined: Database error -Error querying the database: db error: ERROR: prepared statement “s0” already exists -``` - -This is a known issue and it is being worked on, you can follow the progress on this [GitHub issue](https://github.com/prisma/prisma/issues/6485). -If you want to learn more about Prisma, check out the [docs](https://www.prisma.io/docs). Also in case you have any questions or run into any issue, feel free to start a discussion in the repo’s [discussions section](https://github.com/prisma/prisma/discussions). - -## Troubleshooting - -If you run `prisma migrate dev --name init` multiple times, it sometimes asks if you want to recreate the whole schema. If you chose yes, it will delete the public schema and recreates it. The default grants are missing after this. If you run into this problem, add a helper SQL for fixing the grants: - -```sql -CREATE SCHEMA IF NOT EXISTS "auth"; -CREATE SCHEMA IF NOT EXISTS "extensions"; -create extension if not exists "uuid-ossp" with schema extensions; -create extension if not exists pgcrypto with schema extensions; -create extension if not exists pgjwt with schema extensions; - -grant usage on schema public to postgres, anon, authenticated, service_role; -grant usage on schema extensions to postgres, anon, authenticated, service_role; -alter user supabase_admin SET search_path TO public, extensions; -- don't include the "auth" schema - -grant all privileges on all tables in schema public to postgres, anon, authenticated, service_role, supabase_admin; -grant all privileges on all functions in schema public to postgres, anon, authenticated, service_role, supabase_admin; -grant all privileges on all sequences in schema public to postgres, anon, authenticated, service_role, supabase_admin; - -alter default privileges in schema public grant all on tables to postgres, anon, authenticated, service_role; -alter default privileges in schema public grant all on functions to postgres, anon, authenticated, service_role; -alter default privileges in schema public grant all on sequences to postgres, anon, authenticated, service_role; - -alter default privileges for user supabase_admin in schema public grant all on sequences to postgres, anon, authenticated, service_role; -alter default privileges for user supabase_admin in schema public grant all on tables to postgres, anon, authenticated, service_role; -alter default privileges for user supabase_admin in schema public grant all on functions to postgres, anon, authenticated, service_role; - -alter role anon set statement_timeout = '3s'; -alter role authenticated set statement_timeout = '8s'; -``` - -## Resources - -- [Prisma](https://prisma.io) official website. -- [Prisma GitHub](https://github.com/prisma/prisma). -- [Prisma](https://www.prisma.io/docs/) documentation. diff --git a/web/docs/guides/integrations/snaplet.mdx b/web/docs/guides/integrations/snaplet.mdx deleted file mode 100644 index 9770c01aed2..00000000000 --- a/web/docs/guides/integrations/snaplet.mdx +++ /dev/null @@ -1,114 +0,0 @@ ---- -id: snaplet -title: 'Snaplet' -description: 'Get started with Supabase and Snaplet, a developer tool for working with safe, versioned, up-to-date production-like data' ---- - -This step-by-step guide explains how to use Snaplet to clone your production Supabase project into another development database. - -[Snaplet](https://snaplet.dev/) is a developer tool that copies a Postgres database, transforming personal information, so that you can **safely code against actual data.** This functionality makes it possible to easily achieve environment parity in Supabase. - -Let's get started! - -Follow along in the video below as the founder of Snaplet, Peter Pistorius, takes you through the entire process. Otherwise, you can skip the video and dive into the step-by-step guide. - - - -## Step 1: Prerequisites - -1. **A production Supabase project's connection string:** These can be found in Supabase via `Organization > Project > Database > Connection Pooling > Connection string` -2. **A development Supabase project's connection string:** Same steps as above, but a different project/environment -3. **A read-only role** in Production (recommended): This can be done by running the following statements on Supabase via `Organization > SQL Editor > + New Query` - -> To create a read-only role across all schemas you can checkout the Snaplet [docs](https://docs.snaplet.dev/postgresql/create-read-only-role) - -4. **Superuser access** for the development project. This can be done in Supabase via `Organization > SQL Editor > + New Query` and running this statement: - `ALTER USER postgres WITH superuser;` - -## Step 2: Copying your production database - -### 2.1. Connect your data source - -Navigate to [https://www.snaplet.dev/](https://www.snaplet.dev/) and sign up for a new account (it’s free). Once you have successfully signed up for a new account, create a team, and start by connecting to your Supabase project. - -![connect-your-database](/img/guides/integrations/snaplet/connect-your-database.png) - -Enter the credentials of your production Supabase project. Find the "Connection string" in Supabase via `Organization > Project > Settings > Database > Connection string` (at the bottom of the page). - -The password is the same password you used when creating the Supabase project. - -![supabase-connection-db-info](/img/guides/integrations/snaplet/supabase-connection-db-info.png) - -You’ll have to confirm providing Snaplet access to your database. Snaplet will prompt you to only provide `read-only` access to your database. Snaplet has a guide in their documentation on how to do so [here](https://docs.snaplet.dev/postgresql/create-read-only-role). - -> Note that whatever connection string you provide here will be that of your Data Source – essentially the production database in a real-life scenario - -![checking-database-credentials](/img/guides/integrations/snaplet/checking-database-credentials.png) - -### 2.2. Transform your data - -![transform-your-data](/img/guides/integrations/snaplet/transform-your-data.png) - -The next step is to exclude any schemas that you do not require. You are able to exclude an entire schema by clicking on the drop-down at the top, selecting the schema you would like to exclude and clicking ‘Exclude schema’. Alternatively, you can select a given schema and exclude only specific tables from that particular schema. Exclude any non-required table data (such as logs) and extensions and view your columns. - -At this point, Snaplet will automatically detect any columns that have Personally Identifiable Information (PII) and mark them in purple. If there are any additional columns that hold data you would like to anonymise, you can click on the respective column name and provide a replacement value for the data in that column. To complete the onboarding, click on `Review and Save` and proceed to the dashboard. - -![create-your-first-snapshot](/img/guides/integrations/snaplet/create-your-first-snapshot.png) - -### 2.3. Create a Snapshot - -Create a snapshot of your production database. This is what you’re going to restore later into your data target (more on that later in the guide). - -## Step 3: Pasting into your development database - -### 3.1. Create a data target on Supabase - -Your data target is where you want Snaplet to restore the captured snapshot of your production project. This would most likely be either your staging or developer Supabase project. If you don’t already have a developer database setup on Supabase, create a new data target by setting up a new project on Supabase. To create a new project, follow the steps below: - -1. Go to [app.supabase.com](https://app.supabase.com/) -2. Click on “new project” -3. Enter your project details -4. Wait for the new database to launch - -> Remember the password you use when creating the project. You’ll need this password to connect your database to Snaplet later. - -### 3.2. Make your `postgres` user a superuser - -Snaplet requires the ability to drop the database schemas whilst restoring a snapshot. In order to do that, Snaplet requires `superuser` privileges. - -1. Navigate to the `SQL Editor` in your Supabase console -2. Click on `new query` -3. Paste `alter user postgres with superuser;` into the SQL editor -4. Run the query - -### 3.3. Install the Snaplet CLI - -1. Open your terminal and run `curl -sL https://app.snaplet.dev/get-cli/ | bash` -2. Run `snaplet auth` -3. Navigate to [https://app.snaplet.dev/access-token/cli](https://app.snaplet.dev/access-token/cli) to get your access token -4. Paste your access token in the terminal - -### 3.4. Restore to the data target - -You're now ready to restore your production snapshot into your Supabase development project. - -1. Navigate to your project directory -2. Run `snaplet setup` – you will be prompted to enter your database credentials. These are the database credentials of your **data target.** This could be your staging or development database - -Once completed, you will be presented with a list of databases that are connected to your Snaplet account. - -1. Select a data source from the list -2. Run `snaplet snapshot restore` - -## All done! - -As a Supabase user, you can see how this solves an issue developers all typically experience when attempting to create multiple development environments and populating each of those environments with data that can be worked with. Snaplet simplifies this process down to creating the respective Supabase projects, connecting the data source (The production database) to Snaplet and telling Snaplet where to restore that data (staging and development databases). - -If you want to learn more about Snaplet, you can explore the Snaplet [docs](https://docs.snaplet.dev/). If you have any questions, feel free to [reach out on Discord](https://discord.com/invite/6HUuajc866). diff --git a/web/docs/guides/integrations/stytch.mdx b/web/docs/guides/integrations/stytch.mdx deleted file mode 100644 index 20a68ddb093..00000000000 --- a/web/docs/guides/integrations/stytch.mdx +++ /dev/null @@ -1,656 +0,0 @@ ---- -id: stytch -title: 'Stytch' -description: "Build a Next.js application powered by password-less authentication from Stytch, and Supabase's Row Level Security (RLS)." ---- - -In this guide we will build a simple expense tracker web application using Stytch, Supabase, and Next.js. - -[Stytch](https://stytch.com?utm_source=supabase&utm_medium=guide) provides an all-in-one platform for passwordless auth. Stytch makes it easy for you to embed passwordless solutions into your websites and apps for better security, better conversion rates, and a better end user experience. Their easy-to-use SDKs and direct API access allows for maximum control and customization. In this example we will use [Email magic links](https://stytch.com/products/email-magic-links?utm_source=supabase&utm_medium=guide) to create and log in our users, and Session management. There is an additional, optional step to enable [Google One Tap](https://stytch.com/blog/improving-conversion-with-google-one-tap?utm_source=supabase&utm_medium=guide) which is an especially high-converting Google OAuth sign-up and login flow. - -We will leverage Supabase to store and authorize access to user data. Supabase makes it simple to set up Row Level Security (RLS) policies which ensure users can only read and write data that they are authorized to do so. If you do not already have a Supabase account, you will need to create one. - -This guide will use [Next.js](https://nextjs.org/) which is a web application framework built on top of React. Stytch provides a [Node.js library](https://github.com/stytchauth/stytch-node) and a [React library](https://github.com/stytchauth/stytch-react) which makes building Next.js apps super easy. - -> Note: You can find a completed version of this project on [Github](https://github.com/stytchauth/stytch-nextjs-supabase). - -## Step 0: Create a Stytch Account - -If you already have a Stytch account you may skip this step. - -Go to [Stytch](https://stytch.com?utm_source=supabase&utm_medium=guide), and create an account. Note that Stytch provides two ways to create an account, either via Google OAuth, or through Email magic links.  This is the same user experience we will be building in this guide! - -![Stytch redirect URL settings](/img/guides/integrations/stytch/01.png) - -## Step 1: Set up Stytch redirect URLs - -First we need to add the redirect URLs that will be used during the Email magic link flow. This step helps ensure bad actors cannot spoof your magic links and hijack redirects. - -Navigate to your [redirect URL settings](https://stytch.com/dashboard/redirect-urls?utm_source=supabase&utm_medium=guide) in the Stytch dashboard, and under **Test environment** create an entry where the **URL** is `http://localhost:3000/api/authenticate` and the **Type** is `All`. - -![Edit Stytch redirect URL settings](/img/guides/integrations/stytch/02.png) - -After pressing **Confirm**, the redirect URLs dashboard will update to show your new entry. We will use this URL later on. - -![Stytch redirect URL settings](/img/guides/integrations/stytch/03.png) - -## Step 2: Create a Supabase project - -From your [Supabase dashboard](https://app.supabase.com/), click **New project**. - -Enter a `Name` for your Supabase project. - -Enter a secure `Database Password`. - -Click **Create new project**. It may take a couple minutes for your project to be provisioned. - -![New Supabase project settings](/img/guides/integrations/stytch/04.png) - -## Step 3: Creating data in Supabase - -Once your Supabase project is provisioned, click Table editor, then New table. This tool is available from the sidebar menu in the [Supabase dashboard](https://app.supabase.com/). - -Enter `expenses` as the **Name** field. - -Select `Enable Row Level Security (RLS)`. - -Add three new columns: - -- `user_id` as `text` - -- `title` as `text` - -- `value` as `float8` - -Click **Save** to create the new table. - -![Creating a new table](/img/guides/integrations/stytch/05.png) - -From the Table editor view, select the expenses table and click **Insert row**. - -Fill out the title and value fields (leave user_id blank for now) and click **Save**. - -![Creating a new row](/img/guides/integrations/stytch/06.png) - -Use **Insert Row** to further populate the table with expenses. - -![Multiple rows](/img/guides/integrations/stytch/07.png) - -## Step 4: Building a Next.js app - -Using a terminal, create a new Next.js project: - -```bash -npx create-next-app stytch-supabase-example -``` - -Next, within `stytch-supabase-example` create a `.env.local` file and enter the following values: - -``` -STYTCH_PROJECT_ENV=test -STYTCH_PROJECT_ID=GET_FROM_STYTCH_DASHBOARD -STYTCH_PUBLIC_TOKEN=GET_FROM_STYTCH_DASHBOARD -STYTCH_SECRET=GET_FROM_STYTCH_DASHBOARD -NEXT_PUBLIC_SUPABASE_URL=GET_FROM_SUPABASE_DASHBOARD -NEXT_PUBLIC_SUPABASE_KEY=GET_FROM_SUPABASE_DASHBOARD -SUPABASE_SIGNING_SECRET=GET_FROM_SUPABASE_DASHBOARD -``` - -> Note: Stytch values can be found in the project [dashboard](https://stytch.com/dashboard/api-keys?utm_source=supabase&utm_medium=guide) under **API Keys**. - -![Stytch API keys](/img/guides/integrations/stytch/08.png) - -> Note: Supabase values can be found under **Settings** > **API** for your project. - -![Supabase API keys](/img/guides/integrations/stytch/09.png) - -Start your Next.js development server to read in the new values from `.env.local`. - -```bash -npm run dev -``` - -You should have a running Next.js application on `localhost:3000`. - -## Step 5: Build the Login Form - -Now we will replace the default Next.js home page with a login UI. We will use the Stytch React library. - -> Note: Stytch provides direct API access for those that want to build login UI themselves - -Install the `@stytch/stytch-react` library. - -```bash -npm install @stytch/stytch-react -``` - -In the root directory, create a new folder named `components` and file in that folder named `/StytchLogin.js`. Within this file, paste the snippet below. This will configure, and style the Stytch React component to use Email magic links. - -```jsx -// components/StytchLogin.js -import React from 'react' -import { Stytch } from '@stytch/stytch-react' - -const stytchConfig = { - loginOrSignupView: { - products: ['emailMagicLinks'], - emailMagicLinksOptions: { - loginRedirectURL: 'http://localhost:3000/api/authenticate', - loginExpirationMinutes: 30, - signupRedirectURL: 'http://localhost:3000/api/authenticate', - signupExpirationMinutes: 30, - createUserAsPending: true, - }, - }, - style: { - fontFamily: '"Helvetica New", Helvetica, sans-serif', - width: '321px', - primaryColor: '#0577CA', - }, -} - -const StytchLogin = ({ publicToken }) => { - return ( - - ) -} - -export default StytchLogin -``` - -Additionally, create a profile component by creating a file called `Profile.js` in `/components`. We will use this component to render our expenses stored in Supabase later on. - -```jsx -// components/Profile.js -import React from 'react' -import Link from 'next/link' - -export default function Profile({ user }) { - return ( -
    -

    Welcome {user.userId}

    -

    Your expenses

    - {user.expenses?.length > 0 ? ( - user.expenses.map((expense) => ( -

    - {expense.title}: ${expense.value} -

    - )) - ) : ( -

    You have no expenses!

    - )} - - - - -
    - ) -} -``` - -Finally, replace the contents of the file `/pages/index.js` to render our new `StytchLogin` and `Profile` components. - -```jsx -// pages/index.js -import styles from '../styles/Home.module.css' -import Profile from '../components/Profile' -import StytchLogin from '../components/StytchLogin' - -const Index = ({ user, publicToken }) => { - let content - if (user) { - content = - } else { - content = - } - - return
    {content}
    -} - -export async function getServerSideProps({ req, res }) { - const user = null // Will update later - return { - props: { user, publicToken: process.env.STYTCH_PUBLIC_TOKEN }, - } -} - -export default Index -``` - -On `localhost:3000` there is now a login form prompting for your email address. - -![Email login step one](/img/guides/integrations/stytch/10.png) - -Enter your email address and press **Continue with email**. - -![Email login step two](/img/guides/integrations/stytch/11.png) - -In your inbox you will find a login request from your app. - -![Email login step three](/img/guides/integrations/stytch/12.png) - -However, if you click the link in the email you will get a 404. We need to build an API route to handle the email magic link authentication. - -## Step 6: Authenticate and start a session - -To make authentication easier we will use the Stytch Node.js library. Run - -```bash -npm install stytch -``` - -Additionally, we will need to store the authenticated session in a cookie. Run - -```bash -npm install cookies-next -``` - -Create a new folder named `utils` and inside a file named`stytchLogic.js` with the following contents - -```jsx -// utils/stytchLogic.js -import * as stytch from 'stytch' -import { getCookie, setCookies, removeCookies } from 'cookies-next' - -export const SESSION_COOKIE = 'stytch_cookie' - -let client -const loadStytch = () => { - if (!client) { - client = new stytch.Client({ - project_id: process.env.STYTCH_PROJECT_ID, - secret: process.env.STYTCH_SECRET, - env: process.env.STYTCH_PROJECT_ENV === 'live' ? stytch.envs.live : stytch.envs.test, - }) - } - - return client -} - -export const getAuthenticatedUserFromSession = async (req, res) => { - const sessionToken = getCookie(SESSION_COOKIE, { req, res }) - if (!sessionToken) { - return null - } - - try { - const stytchClient = loadStytch() - const resp = await stytchClient.sessions.authenticate({ - session_token: sessionToken, - }) - return resp.session.user_id - } catch (error) { - console.log(error) - return null - } -} - -export const revokeAndClearSession = async (req, res) => { - const sessionToken = getCookie(SESSION_COOKIE, { req, res }) - - if (sessionToken) { - try { - const stytchClient = loadStytch() - await stytchClient.sessions.revoke({ - session_token: sessionToken, - }) - } catch (error) { - console.log(error) - } - removeCookies(SESSION_COOKIE, { req, res }) - } - - return res.redirect('/') -} - -export const authenticateTokenStartSession = async (req, res) => { - const { token, type } = req.query - let sessionToken - try { - const stytchClient = loadStytch() - const resp = await stytchClient.magicLinks.authenticate(token, { - session_duration_minutes: 30, - }) - sessionToken = resp.session_token - } catch (error) { - console.log(error) - const errorString = JSON.stringify(error) - return res.status(400).json({ errorString }) - } - - setCookies(SESSION_COOKIE, sessionToken, { - req, - res, - maxAge: 60 * 60 * 24, - secure: true, - }) - - return res.redirect('/') -} -``` - -This logic is responsible for setting up the Stytch client we will use to call the API. It provides functions we will use to login, logout, and validate user sessions. - -In order to complete the email login flow, create a new file `pages/api/authenticate.js` with the contents: - -```jsx -// pages/api/authenticate.js -import { authenticateTokenStartSession } from '../../utils/stytchLogic' - -export default async function handler(req, res) { - return authenticateTokenStartSession(req, res) -} -``` - -We will also create a logout API endpoint with similar contents. In `pages/api/logout.js` include the following: - -```jsx -// pages/api/logout.js -import { revokeAndClearSession } from '../../utils/stytchLogic' - -export default async function handler(req, res) { - return revokeAndClearSession(req, res) -} -``` - -Finally, update `pages/index.js` by importing `getAuthenticatedUserFromSession`, and calling it to set the user variable in `getServerSideProps`. - -```jsx -// pages/index.js -import styles from '../styles/Home.module.css' - -import StytchLogin from '../components/StytchLogin' -import Profile from '../components/Profile' -import { getAuthenticatedUserFromSession } from '../utils/stytchLogic' - -const Index = ({ user, publicToken }) => { - let content - if (user) { - content = - } else { - content = - } - - return
    {content}
    -} - -export async function getServerSideProps({ req, res }) { - const userId = await getAuthenticatedUserFromSession(req, res) - if (userId) { - return { - props: { user: { userId }, publicToken: process.env.STYTCH_PUBLIC_TOKEN }, - } - } - return { - props: { publicToken: process.env.STYTCH_PUBLIC_TOKEN }, - } -} - -export default Index -``` - -Return to `localhost:3000`, and login again by sending yourself a new email. Upon clicking through in the email you should be presented with “Welcome $USER_ID”. If you refresh the page, you should remain in an authenticated state. If you press **Logout** then you should return to the login screen. - -![Profile page](/img/guides/integrations/stytch/13.png) - -Now that we have a working login flow with persistent authentication it is time to pull in our expense data from Supabase. - -## Step 7: Requesting user data from Supabase - -First, install the Supabase client: - -```bash -npm install @supabase/supabase-js -``` - -In order to pass an authenticated `user_id` to Supabase we will package it within a JWT. Install jsonwebtoken: - -```bash -npm install jsonwebtoken -``` - -Create a new file `utils/supabase.js` and add the following: - -```jsx -// utils/supabase.js -import { createClient } from '@supabase/supabase-js' -import jwt from 'jsonwebtoken' - -const getSupabase = (userId) => { - const supabase = createClient( - process.env.NEXT_PUBLIC_SUPABASE_URL, - process.env.NEXT_PUBLIC_SUPABASE_KEY - ) - - if (userId) { - const payload = { - userId, - exp: Math.floor(Date.now() / 1000) + 60 * 60, - } - - supabase.auth.session = () => ({ - access_token: jwt.sign(payload, process.env.SUPABASE_SIGNING_SECRET), - }) - } - - return supabase -} - -export { getSupabase } -``` - -Our payload for the JWT will contain our user's unique identifier from Stytch, their `user_id`. We are signing this JWT using Supabase's signing secret, so Supabase will be able to validate it is authentic and hasn't been tampered with in transit. - -Let's load our expenses from Supabase on the home page! Update `pages/index.js` a final time to make a request for expense data from Supabase. - -```jsx -import styles from '../styles/Home.module.css' - -import StytchLogin from '../components/StytchLogin' -import Profile from '../components/Profile' -import { getAuthenticatedUserFromSession } from '../utils/stytchLogic' -import { getSupabase } from '../utils/supabase' - -const Index = ({ user, publicToken }) => { - let content - if (user) { - content = - } else { - content = - } - - return
    {content}
    -} - -export async function getServerSideProps({ req, res }) { - const userId = await getAuthenticatedUserFromSession(req, res) - - if (userId) { - const supabase = getSupabase(userId) - const { data: expenses } = await supabase.from('expenses').select('*') - - return { - props: { - user: { userId, expenses }, - publicToken: process.env.STYTCH_PUBLIC_TOKEN, - }, - } - } else { - return { - props: { publicToken: process.env.STYTCH_PUBLIC_TOKEN }, - } - } -} - -export default Index -``` - -When we reload our application, we are still getting the empty state for expenses. - -This is because we enabled Row Level Security, which blocks all requests by default and lets you granularly control access to the data in your database. To enable our user to select their expenses we need to write a RLS policy. - -## Step 8: Write a policy to allow select - -Our policy will need to know who our currently logged in user is to determine whether or not they should have access. Let's create a PostgreSQL function to extract the current user from our new JWT. - -Navigate back to the Supabase dashboard, select SQL from the sidebar menu, and click **New query**. This will create a new query,, which will allow us to run any SQL against our Postgres database. - -Write the following and click **Run**. - -```sql -create or replace function auth.user_id() returns text as $$ - select nullif(current_setting('request.jwt.claims', true)::json->>'userId', '')::text; -$$ language sql stable; -``` - -You should see the output `Success, no rows returned`. This created a function called `auth.user_id()`, which will inspect the `userId` field of our JWT payload. - -> Note: To learn more about PostgreSQL functions, check out this [deep dive video](https://www.youtube.com/watch?v=MJZCCpCYEqk). - -Let's create a policy that checks whether this user is the owner of an expense. - -Select **Authentication** from the Supabase sidebar menu, click **Policies**, then **New Policy**. - -![Supabase authentication page](/img/guides/integrations/stytch/14.png) - -From the modal, select **For full customization create a policy from scratch** and add the following. - -![Supabase create policy page](/img/guides/integrations/stytch/15.png) - -This policy is calling the function we just created to get the currently logged in user's `user_id` `auth.user_id()` and checking whether this matches the `user_id` column for the current expense. If it does, then it will allow the user to select it, otherwise it will continue to deny. - -Click Review and then Save policy. After you've saved, click Enable RLS on the table to enable the policy we just created. - -> Note: To learn more about RLS and policies, check out this [video](https://www.youtube.com/watch?v=Ow_Uzedfohk). - -The last thing we need to do is update the `user_id` columns for our existing expenses. - -Head back to the Supabase dashboard, and select Table editor from the sidebar. You will notice each entry has `user_id` set to `NULL`. We need to update this value to the proper `user_id`. - -![Supabase null users in table](/img/guides/integrations/stytch/16.png) - -To get the `user_id` for our Stytch user, you can pull it from the welcome page in our example app (eg `user-test-61497d40-f957-45cd-a6c8-5408d22e93bc`). - -![Get user_id](/img/guides/integrations/stytch/17.png) - -Update each row in Supabase to this `user_id`. - -![Populate user_id](/img/guides/integrations/stytch/18.png) - -Return to `localhost:3000`, and you will see your expenses listed. - -![Listed expenses](/img/guides/integrations/stytch/19.png) - -We now have a basic expense tracker application powered by Stytch, Supabase, and Next.js. From here you could add additional features like adding, editing, and organizing your expenses further. - -> Note: You can find a completed version of this project on [Github](https://github.com/stytchauth/stytch-nextjs-supabase). - -## Optional: Add Google One Tap - -In this optional step, we will extend our application to allow users to login with Google One Tap in addition to Email magic links. - -You will need to follow the first four steps of [this guide](https://stytch.com/docs/one-tap-guide?utm_source=supabase&utm_medium=guide) to create a Google project, set up Google OAuth consent, and configure credentials and redirect URLs. - -First, we will make some adjustments to the `StytchLogin` component. We will update the configuration, so that it uses both Google OAuth, and Email magic links. - -```jsx -// components/StytchLogin.js -import React from 'react' -import { Stytch } from '@stytch/stytch-react' - -const stytchConfig = { - loginOrSignupView: { - products: ['oauth', 'emailMagicLinks'], - oauthOptions: { - providers: [ - { - type: 'google', - one_tap: true, - position: 'embedded', - }, - ], - loginRedirectURL: 'http://localhost:3000/api/authenticate?type=oauth', - signupRedirectURL: 'http://localhost:3000/api/authenticate?type=oauth', - }, - emailMagicLinksOptions: { - loginRedirectURL: 'http://localhost:3000/api/authenticate', - loginExpirationMinutes: 30, - signupRedirectURL: 'http://localhost:3000/api/authenticate', - signupExpirationMinutes: 30, - createUserAsPending: true, - }, - }, - style: { - fontFamily: '"Helvetica New", Helvetica, sans-serif', - width: '321px', - primaryColor: '#0577CA', - }, -} - -const StytchLogin = ({ publicToken }) => { - return ( - - ) -} - -export default StytchLogin -``` - -We also need to make an adjustment to the function `authenticateTokenStartSession` in `stytchLogic.js`. Stytch has separate authentication endpoints for Email magic links and OAuth, so we need to route our token correctly. - -```jsx -// utils/stytchLogic.js - -// leave the rest of the file contents as is -export const authenticateTokenStartSession = async (req, res) => { - const { token, type } = req.query - let sessionToken - try { - const stytchClient = loadStytch() - if (type == 'oauth') { - const resp = await stytchClient.oauth.authenticate(token, { - session_duration_minutes: 30, - session_management_type: 'stytch', - }) - sessionToken = resp.session.stytch_session.session_token - } else { - const resp = await stytchClient.magicLinks.authenticate(token, { - session_duration_minutes: 30, - }) - sessionToken = resp.session_token - } - } catch (error) { - console.log(error) - const errorString = JSON.stringify(error) - return res.status(400).json({ errorString }) - } - - setCookies(SESSION_COOKIE, sessionToken, { - req, - res, - maxAge: 60 * 60 * 24, - secure: true, - }) - - return res.redirect('/') -} -``` - -With these two changes you will now have a working Google One Tap authentication method along with email magic links. - -![Google One Tap](/img/guides/integrations/stytch/20.png) - -## Resources - -- [Stytch blog](https://stytch.com/blog?utm_source=supabase&utm_medium=guide) -- [Stytch documentation](https://stytch.com/docs?utm_source=supabase&utm_medium=guide) diff --git a/web/docs/guides/integrations/supertokens.mdx b/web/docs/guides/integrations/supertokens.mdx deleted file mode 100644 index 61e34821798..00000000000 --- a/web/docs/guides/integrations/supertokens.mdx +++ /dev/null @@ -1,399 +0,0 @@ ---- -id: supertokens -title: 'SuperTokens' -description: 'Create a Next.js application secured by SuperTokens and PostgreSQL Row Level Security.' ---- - -[SuperTokens](https://www.supertokens.com) is an open source authentication solution which provides many stratergies for authenticating and managing users. You can use the managed service for easy setup or you can self host the solution to have complete control over your data. - -In this guide we will build a simple web application using SuperTokens, Supabase, and Next.js. You will be able to sign up using SuperTokens and your email and user ID will be stored in Supabase. Once authenticated the frontend will be able to query Supabase and retrieve the user's email. Our example app will be using the [Email-Password and Social Login](https://supertokens.com/docs/thirdpartyemailpassword/introduction) recipe for authentication and session management. - -We will use Supabase to store and authorize access to user data. Supabase makes it simple to setup Row Level Security(RLS) policies which ensure users can only read and write data that belongs to them. - -### Demo App - -You can find a demo app using SuperTokens, Supabase and Nexts.js on [Github](https://github.com/supertokens/supertokens-auth-react/tree/master/examples/with-supabase) - -## Step 1: Create a new Supabase project - -From your [Supabase dashboard](https://app.supabase.com/), click `New project`. - -Enter a `Name` for your Supabase project. - -Enter a secure `Database Password`. - -Select the same `Region` you host your app's backend in. - -Click `Create new project`. - -![New Supabase project settings](/img/guides/integrations/supertokens/supabase_dashboard_create.png) - -## Step 2: Creating tables in Supabase - -From the sidebar menu in the [Supabase dashboard](https://app.supabase.com/), click `Table editor`, then `New table`. - -Enter `users` as the `Name` field. - -Select `Enable Row Level Security (RLS)`. - -Remove the default columns - -Create two new columns: - -- `user_id` as `varchar` as primary key -- `email` as `varchar` - -Click `Save` to create the new table. - -![Users table](/img/guides/integrations/supertokens/supabase_table_create.png) - -## Step 3: Setup your Next.js App with SuperTokens. - -Since the scope of this guide is limited to the intergration between SuperTokens and Supabase, you can refer to the SuperTokens website to see [how to setup your Next.js app with SuperTokens](https://supertokens.com/docs/thirdpartyemailpassword/nextjs/about). - -Once you finish setting up your app, you will be greeted with the following screen - -![SuperTokens Auth Screen](/img/guides/integrations/supertokens/supertokens_thirdpartyemailpassword_auth_screen.png) - -## Step 4: Creating a Supabase JWT to access Supabase - -In our Nextjs app when a user signs up, we want to store the user's email in Supabase. We would then retrieve this email from Supabase and display it on our frontend. - -To use the Supabase client to query the database we will need to create a JWT signed with your Supabase app's signing secret. This JWT will also need to contain the user's userId so Supabase knows an authenticated user is making the request. - -To create this flow we will need to modify SuperTokens so that, when a user signs up or signs in, a JWT signed with Supabase's signing secret is created and attached to the user's session. Attaching the JWT to the user's session will allow us to retrieve the Supabase JWT on the frontend and backend (post session verification), using which we can query Supabase. - -We want to create a Supabase JWT when we are creating a SuperTokens' session. This can be done by overriding the `createNewSession` function in your backend config. - -```ts -// config/backendConfig.ts - -import ThirdPartyEmailPasswordNode from "supertokens-node/recipe/thirdpartyemailpassword"; -import SessionNode from "supertokens-node/recipe/session"; -import { TypeInput } from "supertokens-node/lib/build/types"; -import { appInfo } from "./appInfo"; -import jwt from "jsonwebtoken"; - -let backendConfig = (): TypeInput => { - return { - framework: "express", - supertokens: { - connectionURI: "https://try.supertokens.com", - }, - appInfo, - recipeList: [ - ThirdPartyEmailPasswordNode.init({...}), - SessionNode.init({ - override: { - functions: (originalImplementation) => { - return { - ...originalImplementation, - // We want to create a JWT which contains the users userId signed with Supabase's secret so - // it can be used by Supabase to validate the user when retrieving user data from their service. - // We store this token in the accessTokenPayload so it can be accessed on the frontend and on the backend. - createNewSession: async function (input) { - const payload = { - userId: input.userId, - exp: Math.floor(Date.now() / 1000) + 60 * 60, - }; - - const supabase_jwt_token = jwt.sign(payload, process.env.SUPABASE_SIGNING_SECRET); - - input.accessTokenPayload = { - ...input.accessTokenPayload, - supabase_token: supabase_jwt_token, - }; - - return await originalImplementation.createNewSession(input); - }, - }; - }, - }, - }), - ], - isInServerlessEnv: true, - }; -}; - -``` - -As seen above, we will be using the `jsonwebtoken` library to create a JWT signed with Supabase's signing secret whose payload contains the user's userId. - -We will be storing this token in the `accessTokenPayload` which will essentially allow us to access the `supabase_token` on the frontend and backend whilst the user is logged in. - -## Step 5: Creating a Supabase client - -Create a new file called `utils/supabase.ts` and add the following: - -```ts -// utils/supabase.ts - -import { createClient } from '@supabase/supabase-js' - -const getSupabase = (access_token) => { - const supabase = createClient( - process.env.NEXT_PUBLIC_SUPABASE_URL, - process.env.NEXT_PUBLIC_SUPABASE_KEY - ) - - supabase.auth.session = () => ({ - access_token, - }) - - return supabase -} - -export { getSupabase } -``` - -This will be our client for talking to Supabase. We can pass it an `access_token` and it will be attached to our request. This `access_token` is the same as the `supabase_token` we had created earlier. - -## Step 6: Inserting users into Supabase when they sign up: - -In our example app there are two ways for signing up a user. Email-Password and Social Login based authentication. We will need to override both these APIs such that when a user signs up, their email mapped to their userId is stored in Supabase. - -```ts -// config/backendConfig.ts - -import ThirdPartyEmailPasswordNode from "supertokens-node/recipe/thirdpartyemailpassword"; -import SessionNode from "supertokens-node/recipe/session"; -import { TypeInput } from "supertokens-node/lib/build/types"; -import { appInfo } from "./appInfo"; -import jwt from "jsonwebtoken"; -import { getSupabase } from "../utils/supabase"; - -let backendConfig = (): TypeInput => { - return { - framework: "express", - supertokens: { - connectionURI: "https://try.supertokens.com", - }, - appInfo, - recipeList: [ - ThirdPartyEmailPasswordNode.init({ - providers: [...], - override: { - apis: (originalImplementation) => { - return { - ...originalImplementation, - // the thirdPartySignInUpPost function handles sign up/in via Social login - thirdPartySignInUpPOST: async function (input) { - if (originalImplementation.thirdPartySignInUpPOST === undefined) { - throw Error("Should never come here"); - } - - // call the sign up/in api for social login - let response = await originalImplementation.thirdPartySignInUpPOST(input); - - // check that there is no issue with sign up and that a new user is created - if (response.status === "OK" && response.createdNewUser) { - - // retrieve the accessTokenPayload from the user's session - const accessTokenPayload = response.session.getAccessTokenPayload(); - - // create a supabase client with the supabase_token from the accessTokenPayload - const supabase = getSupabase(accessTokenPayload.supabase_token); - - // store the user's email mapped to their userId in Supabase - const { error } = await supabase - .from("users") - .insert({ email: response.user.email, user_id: response.user.id }); - - if (error !== null) { - - throw error; - } - } - - return response; - }, - // the emailPasswordSignUpPOST function handles sign up via Email-Password - emailPasswordSignUpPOST: async function (input) { - if (originalImplementation.emailPasswordSignUpPOST === undefined) { - throw Error("Should never come here"); - } - - let response = await originalImplementation.emailPasswordSignUpPOST(input); - - if (response.status === "OK") { - - // retrieve the accessTokenPayload from the user's session - const accessTokenPayload = response.session.getAccessTokenPayload(); - - // create a supabase client with the supabase_token from the accessTokenPayload - const supabase = getSupabase(accessTokenPayload.supabase_token); - - // store the user's email mapped to their userId in Supabase - const { error } = await supabase - .from("users") - .insert({ email: response.user.email, user_id: response.user.id }); - - if (error !== null) { - - throw error; - } - } - - return response; - }, - }; - }, - }, - }), - SessionNode.init({...}), - ], - isInServerlessEnv: true, - }; -}; - -``` - -As seen above, we will be overriding the `emailPasswordSignUpPOST` and `thirdPartySignInUpPOST` APIs such that if a user signs up, we retrieve the Supabase JWT (which we created in the `createNewSession` function) from the user's accessTokenPayload and send a request to Supabase to insert the email-userid mapping. - -## Step 7: Retrieving the user's email on the frontend - -Now that our backend is setup we can modify our frontend to retrieve the user's email from Supabase. - -```tsx -// pages/index.tsx - -import React, { useState, useEffect } from 'react' -import Head from 'next/head' -import styles from '../styles/Home.module.css' -import ThirdPartyEmailPassword, { - ThirdPartyEmailPasswordAuth, -} from "supertokens-auth-react/recipe/thirdpartyemailpassword"; -import dynamic from 'next/dynamic' -import { useSessionContext } from 'supertokens-auth-react/recipe/session' -import { getSupabase } from '../utils/supabase' - -export default function Home() { - return ( - // We will wrap the ProtectedPage component with ThirdPartyEmailPasswordAuth so only an - // authenticated user can access it. This will also allow us to access the users session information - // within the component. - - - - ) -} - -function ProtectedPage() { - // retrieve the authenticated user's accessTokenPayload and userId from the sessionContext - const { accessTokenPayload, userId } = useSessionContext() - - if (sessionContext.loading === true) { - return null; - } - - const [userEmail, setEmail] = useState('') - useEffect(() => { - async function getUserEmail() { - // retrieve the supabase client who's JWT contains users userId, this will be - // used by supabase to check that the user can only access table entries which contain their own userId - const supabase = getSupabase(accessTokenPayload.supabase_token) - - // retrieve the user's name from the users table whose email matches the email in the JWT - const { data } = await supabase.from('users').select('email').eq('user_id', userId) - - if (data.length > 0) { - setEmail(data[0].email) - } - } - getUserEmail() - }, []) - - return ( -
    - - SuperTokens 💫 - - - -
    -

    - You are authenticated with SuperTokens! (UserId: {userId}) -
    - Your email retrieved from Supabase: {userEmail} -

    -
    -
    - ) -} -``` - -As seen above we will be using SuperTokens `useSessionContext` hook to retrieve the authenticated user's `userId` and `accessTokenPayload`. Using React's `useEffect` hook we can use the Supabase client to retrieve the user's email from Supabase using the JWT retrieved from the user's `accessTokenPayload` and their `userId`. - -## Step 8: Create Policies to enforce Row Level Security for Select and Insert requests - -To enforce Row Level Security for the `Users` table we will need to create policies for Select and Insert requests. - -These polices will retrieve the userId from the JWT and check if it matches the userId in the Supabase table - -To do this we will need a PostgreSQL function to extract the userId from the JWT. - -The payload in the JWT will have the following structure: - -``` -// JWT payload -{ - userId, - exp -} -``` - -To create the PostgreSQL function, lets navigate back to the Supabase dashboard, select `SQL` from the sidebar menu, and click `New query`. This will create a new query called `new sql snippet`, which will allow us to run any SQL against our Postgres database. - -Write the following and click `Run`. - -```sql -create or replace function auth.user_id() returns text as $$ - select nullif(current_setting('request.jwt.claims', true)::json->>'userId', '')::text; -$$ language sql stable; -``` - -This will create a function called `auth.user_id()`, which will inspect the `userId` field of our JWT payload. - -### SELECT query policy - -Our first policy will check whether the user is the owner of the email. - -Select `Authentication` from the Supabase sidebar menu, click `Policies`, and then `New Policy` on the `Users` table. - -![Create new policy](/img/guides/integrations/supertokens/create_policy.png) - -From the modal, select `Create a policy from scratch` and add the following. - -![Policy settings for SELECT](/img/guides/integrations/supertokens/policy_config_select.png) - -This policy is calling the PostgreSQL function we just created to get the currently logged in user's ID `auth.user_id()` and checking whether this matches the `user_id` column for the current `email`. If it does, then it will allow the user to select it, otherwise it will continue to deny. - -Click `Review` and then `Save policy`. - -### INSERT query policy - -Our second policy will check whether the `user_id` being inserted is the same as the `userId` in the JWT. - -Create another policy and add the following: - -![Policy settings for INSERT](/img/guides/integrations/supertokens/policy_config_insert.png) - -Similar to the previous policy we are calling the PostgreSQL function we created to get the currently logged in user's ID `auth.user_id()` and check whether this matches the `user_id` column for the row we are trying to insert. If it does, then it will allow the user to insert the row, otherwise it will continue to deny. - -Click `Review` and then `Save policy`. - -## Step 9: Test your changes - -You can now sign up and you should see the following screen: - -![SuperTokens App Authenticated](/img/guides/integrations/supertokens/supabase_app_authenticated_screen.png) - -If you navigate to your table you should see a new row with the user's `user_id` and `email`. - -![Supabase Users table](/img/guides/integrations/supertokens/table_with_user.png) - -## Resources - -- [SuperTokens](https://supertokens.com/) official website. -- [SuperTokens community](https://supertokens.com/discord). -- [SuperTokens documentation](https://supertokens.com/docs/guides). diff --git a/web/docs/guides/integrations/vercel.mdx b/web/docs/guides/integrations/vercel.mdx deleted file mode 100644 index 846a4bec3cb..00000000000 --- a/web/docs/guides/integrations/vercel.mdx +++ /dev/null @@ -1,241 +0,0 @@ ---- -id: vercel -title: 'Vercel' -description: The fastest way to get up and running with an application that uses Supabase is with Vercel's Next.js starter and Supabase integration. ---- - -This guide steps through using Vercel's dashboard to create a Next.js project integrated with Supabase. To further streamline the process, we will be using the Next.js starter template, which can be automatically forked to a new GitHub repo, without leaving the dashboard! - -If you don’t have a Vercel account, create one [here](https://vercel.com/signup). - -## Step 1: Create a Supabase project - -This guide could use an existing Supabase project, but to create the `todo` demo from scratch, navigate to [Supabase](https://app.supabase.com/), click `Sign In` and authenticate with GitHub to login or register a new account. - -From the Supabase dashboard, click `New project` and select an organization. - -> Note: You may need to create an organization first. - -Give your project a `name`, `password`, select a `region` close to your potential users and click `Create new project`. - -![Create a Supabase project](/img/guides/integrations/vercel/create-supabase-project.png) - -Supabase will take a couple of minutes to configure the infrastructure. - -Once this is finished, navigate to `SQL Editor` from the sidebar menu and click `New query`. - -This will create a new SQL snippet called "New Query". Copy and paste the following and click `Run`. - -```sql -create table todos ( - id bigint generated by default as identity primary key, - title text, - is_complete boolean default false, - created_at timestamp with time zone default timezone('utc'::text, now()) not null -); - -alter table todos enable row level security; - -create policy "Anyone can view todos" on todos for - select using (true); - -create policy "Anyone can add new todos" on todos for - insert with check (true); - -insert into todos(title) -values - ('Create Supabase project'), - ('Create Vercel project'), - ('Install Supabase integration'); -``` - -This will create a new todos table, enable row level security, add policies for selecting and inserting data, and add some example rows. - -> Note: To simplify this example, we are allowing anyone to `select` and `insert` rows on the `todos` table. Usually, these actions would be locked down to only allow logged in users to perform them. Check out [this video](https://www.youtube.com/watch?v=Ow_Uzedfohk) to learn more about Row Level Security and policies. - -## Step 2: Create Vercel project - -From your [Vercel dashboard](https://vercel.com/dashboard), click `New Project`. - -![Create new Vercel project](/img/guides/integrations/vercel/create-vercel-project.png) - -Under the `Clone Template` menu, click `Next.js`. - -![Clone Next.js template](/img/guides/integrations/vercel/clone-next-js-template.png) - -In the `Create Git Repository` section, click `GitHub`, select your username under `GIT SCOPE`, enter a name for your project, choose whether you want your repo `private` or `public`, and click `Create`. - -![New GitHub repo settings](/img/guides/integrations/vercel/repo-settings.png) - -This will create a new GitHub repository, clone and commit the Next.js starter project, then build and deploy your new project to Vercel. - -Once you have been redirected to the `Congratulations` screen, click `Go to Dashboard`. - -Navigate to `Settings`, `Integrations`, then click `Browse Marketplace`. - -Search for `Supabase` and click the Supabase integration. - -![Supabase integration](/img/guides/integrations/vercel/supabase-integration.png) - -Click `Add Integration`. Select your account from the `Vercel Scope` dropdown, and click `CONTINUE`. - -![Choose scope](/img/guides/integrations/vercel/choose-scope.png) - -Choose `Specific Projects` and select your new Vercel project from the dropdown, and click `Add Integration`. - -![Choose project](/img/guides/integrations/vercel/choose-project.png) - -From the Supabase popup, select your new Vercel Project and Supabase project from the dropdowns. - -![Supabase integration](/img/guides/integrations/vercel/link-vercel-to-supabase.png) - -## Step 3: Clone GitHub repo - -The fastest way to get this project running locally is to clone the repo that Vercel created for us. - -Navigate back to the Vercel project `Overview` page, and click `View Git Repository`. - -![Vercel Project Dashboard](/img/guides/integrations/vercel/vercel-project-dashboard.png) - -This will open the GitHub repo. From here, click the arrow next to `Code` and copy the url from the dropdown. - -![GitHub repo url](/img/guides/integrations/vercel/github-project-url.png) - -Open a terminal window or CLI and run the following command to clone the GitHub repo. - -```bash -git clone your-repo-url.git -``` - -Open the project in your code editor of choice, and update the contents of `pages/index.js` to the following: - -```jsx -import styles from '../styles/Home.module.css' - -export default function Home() { - return
    working
    -} -``` - -Run a local development server. - -```bash -npm run dev -``` - -Navigate to `http://localhost:3000` to confirm the project is "working". - -## Step 4: Pull environment variables from Vercel - -First, we need to login to Vercel using their CLI tool. - -```bash -npx vercel login -``` - -This will ask if we are happy to install `vercel`. Type `y` and hit `Enter`. - -We will then need to authenticate Vercel by selecting `Continue with GitHub`. - -This will open a browser window where you need to authenticate with your GitHub account. - -Next, we need to link our Vercel project. - -```bash -npx vercel link -``` - -Step through the prompts to link the Vercel project. - -![Link project from Vercel](/img/guides/integrations/vercel/vercel-link.png) - -Copy the environment variables from our Vercel project. - -```bash -npx vercel env pull -``` - -This will create a `.env` file containing our Supabase environment variables. Rename this file to `.env.local` to automatically ignore it from git. - -## Step 5: Install Supabase.js - -Install the `supabase-js` library. - -```bash -npm i @supabase/supabase-js -``` - -Create a new file called `/utils/supabase.js` and add the following. - -```jsx -import { createClient } from '@supabase/supabase-js' - -export default createClient( - process.env.NEXT_PUBLIC_SUPABASE_URL, - process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY -) -``` - -Create a new file called `/components/NewTodo.js` and add the following. - -```jsx -import { useState } from 'react' -import supabase from '../utils/supabase' - -export default ({ reload }) => { - const [title, setTitle] = useState('') - - const addTodo = async (e) => { - e.preventDefault() - await supabase.from('todos').insert({ title }) - reload() - setTitle('') - } - - return ( -
    - setTitle(e.target.value)} /> - - ) -} -``` - -This component will be responsible for writing a new `todo` to Supabase. - -Let's import our new component in `pages/index.js` and display a list of todos. - -```jsx -import { useState, useEffect } from 'react' -import styles from '../styles/Home.module.css' -import supabase from '../utils/supabase' -import NewTodo from '../components/NewTodo' - -export default function Home() { - const [todos, setTodos] = useState([]) - - const fetchTodos = async () => { - const { data } = await supabase.from('todos').select('*') - setTodos(data) - } - - useEffect(() => { - fetchTodos() - }, []) - - return ( -
    - - {todos.map((todo) => ( -

    {todo.title}

    - ))} -
    - ) -} -``` - -## Resources - -- [Vercel official website](https://vercel.com). -- [Vercel blog](https://vercel.com/blog). -- [Vercel docs](https://vercel.com/docs). -- [Vercel Integration docs](https://vercel.com/docs/integrations) diff --git a/web/docs/guides/local-development.mdx b/web/docs/guides/local-development.mdx deleted file mode 100644 index 114c5f8cfcf..00000000000 --- a/web/docs/guides/local-development.mdx +++ /dev/null @@ -1,258 +0,0 @@ ---- -id: local-development -title: Local Development -description: How to use Supabase on your local development machine. ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Supabase provides a CLI so that you can develop your application locally, with the ability to deploy your application to the Supabase platform. - -## Prerequisites - -### Dependencies - -Before we begin, make sure you have these installed on your local machine: - -- Git. [Docs](https://github.com/git-guides/install-git) -- Docker (make sure this is running). [Docs](https://docs.docker.com/engine/install/) -- Supabase CLI. [Docs](/docs/reference/cli/installing-and-updating) - -### Supabase CLI login - -After installing the Supabase CLI you can [log in](/docs/reference/cli/supabase-login) using your Supabase account (sign up at [app.supabase.com](https://app.supabase.com)). - -```bash -supabase login -``` - -This is a one-time operation. After you have logged in the CLI will have permissions to manage your Supabase projects. - -## Getting started - -### Initialize your project - -Let's create a new folder on your local machine: - -```bash -# create your project folder -mkdir your-project - -# move into the new folder -cd your-project - -# start a new git repository -git init -``` - -These commands will create an empty folder for your project and start a new git repository. - -### Initialize Supabase - -Let's [initialize](/docs/reference/cli/supabase-init) Supabase inside the folder that you created: - -```bash -supabase init -``` - -This command will create a `supabase` folder which holds all the configuration for developing your project locally. - -## Developing Locally - -### Start Supabase - -```bash -supabase start -``` - -The [start](/docs/reference/cli/supabase-start) command uses Docker to start the open source [services](/docs/#how-it-works) of Supabase. -This command may take a while to run if this is the first time using the CLI. - -Once all of the Supabase services are running, you'll see an output that contains your local Supabase credentials. - -You can use the [stop](/docs/reference/cli/supabase-stop) command at any time to stop all services. - -### Accessing Services Directly - - - - -```sh -# Default URL: -postgresql://postgres:postgres@localhost:54322/postgres -``` - -The local Postgres instance can be accessed through [`psql`](https://www.postgresql.org/docs/current/app-psql.html) -or any other Postgres client, such as [pgadmin](https://www.pgadmin.org/). - -For example: - -```bash -psql 'postgresql://postgres:postgres@localhost:54322/postgres' -``` - - - - -```sh -# Default URL: -http://localhost:54321 -``` - -All of the services are accessible through the API Gateway [Kong](https://github.com/Kong/kong)). -If you are accessing these services without the client libraries, you may need to pass the client keys as an `Authorization` header. -You can learn more about these JWT headers in our [Resources](/docs/learn/auth-deep-dive/auth-deep-dive-jwts). - -```sh -curl 'http://localhost:54321/rest/v1/' \ - -H "apikey: " \ - -H "Authorization: Bearer " - -http://localhost:54321/rest/v1/ # REST (PostgREST) -http://localhost:54321/realtime/v1/ # Realtime -http://localhost:54321/storage/v1/ # Storage -http://localhost:54321/auth/v1/ # Auth (GoTrue) -``` - - - - - -### Database Migrations - -Database changes are managed through "migrations". Database migrations are a common way of tracking changes to your database over time. - - -#### Making database changes - -For this guide, let's create a table called `employees`, using the "Supabase Studio" link provided. - -:::note - -If you're familiar with databases, you can also execute any SQL using the `DB URL` shown by `supabase start`. - -::: - -Open the Studio, navigate to the "SQL Editor" section, and run the following SQL command: - -```sql -create table employees ( - id integer primary key generated always as identity, - name text -); -``` - -Now we have the `employees` table in the local database, but how do we incorporate this into migrations? The CLI automatically detects changes by running the [commit](/docs/reference/cli/supabase-db-commit) command: - -```sh -supabase db commit create_employees -``` - -This creates a new migration named `supabase/migrations/_create_employees.sql`, representing any changes we've made to the local database since `supabase start`. - -#### Adding sample data - -Let's add some sample data into the table. We can use the seed script in `supabase/seed.sql` (which gets created when you run `supabase init`). - -```sql --- in supabase/seed.sql -insert into public.employees (name) -values - ('Erlich Backman'), - ('Richard Hendricks'), - ('Monica Hall'); -``` - -Now run the following to rerun the migration scripts and the seed script: - -```bash -supabase db reset -``` - -If you look again within Studio, you should now see the contents of `employees`. - -#### Resetting database changes - -If you run any SQL on the local database that you want to revert, you can use the `reset` command. - -```sql --- run on local database to make a change -alter table employees - add department text default 'Hooli'; -``` - -To revert this change we can run: - -```sh -supabase db reset -``` - -And the local database will be reset. - -## Deploying - -Now that you've developed an application locally, head over to [app.supabase.com](https://app.supabase.com) and create a project where we can deploy the changes. - -### Linking your project - -:::note - -There are a few commands required to link your project. We are in the process of consolidating these commands into a single command. Bear with us! - -::: - -Let's associate your project with your remote project using [supabase link](/docs/guides/local-development) and [db remote set](/docs/reference/cli/supabase-db-remote-set) - - -```bash - -supabase link -# Use "supabase link --project-ref your-project-ref" to link your project in one step. - -supabase db remote set 'postgresql://postgres:@db..supabase.co:5432/postgres' -# Use the connection string from your Supabase project here. - -supabase db remote commit -# capture any changes that you have made to your database before setting up the CLI -``` - -You'll notice that `supabase/migrations` is now populated with a migration in `..._remote_commit.sql`. -This migration captures any changes required for your local database to match the schema of your remote Supabase project. - - -### Deploying Database changes - -You can deploy any local database migrations using [`db push`](/docs/reference/cli/supabase-db-push): - -```sh -supabase db push -``` - -### Deploying Edge Functions - -You can deploy any Edge Functions using [`functions deploy`](/docs/reference/cli/supabase-functions-deploy): - -```sh -supabase functions deploy -``` - -## Limitations - -The local development environment is not as feature-complete as the Platform. Here are some of the differences: - -- The Storage interface is coming soon. -- The Functions interface is coming soon. -- Logs are not supported through the interface (however you can accesss them via the docker containers). -- You cannot update your project settings via the Dashboard - this can be done using the CLI instead. - -## Next steps - -- Got a question? [Ask in our Discussions](https://github.com/supabase/supabase/discussions). -- CLI repository: [GitHub](https://github.com/supabase/cli). -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/platform/logs.mdx b/web/docs/guides/platform/logs.mdx deleted file mode 100644 index 5fcf33ff1b1..00000000000 --- a/web/docs/guides/platform/logs.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -id: logs -title: Logging -description: Getting started with Supabase Platform Log Browser ---- - -The Supabase Platform provides a log explorer that allows log tracing and debugging. Currently, PostgreSQL and Cloudflare edge logs are available. - -:::note - -The features discussed in this article are only available through the Supabase Platform and are not available on self-hosted. - -::: - -## Product Logs - -As well as a Log Explorer, Supabase provides a logging interface specific to each product. - -### API Logs - -![API Logs](/img/guides/platform/logs/logs-api.png) - -The API Logs can be found under `Database > API Logs`. These show all network requests for the REST and GraphQL [API](/docs/guides/api). - -### Postgres Logs - -![Postgres Logs](/img/guides/platform/logs/logs-database.png) - -The Postgres Logs can be found under `Database > Postgres Logs`. These show all queries and activity for your [Database](/docs/guides/database). - - -## Log Explorer - -![Sidebar navigation steps](/img/guides/platform/logs/sidebar-navigation.png) - -The log browser can be accessed in the sidebar under **Logs Explorer**. The **Logs Explorer** is for querying and aggregating project logs across products using SQL `SELECT` queries. - - -### Example -For example, you may enter the following into the SQL editor to query for each user's IP address: - -```sql -SELECT timestamp, h.x_real_ip -FROM edge_logs - LEFT JOIN UNNEST(metadata) as m ON TRUE - LEFT JOIN UNNEST(m.request) AS r ON TRUE - LEFT JOIN UNNEST(r.headers) AS h ON TRUE -WHERE h.x_real_ip IS NOT NULL -``` - -![SELECT query example](/img/guides/platform/logs/select-query.png) - - -The list of supported product sources can be found under the **Sources** dropdown. - -### Unnesting Arrays - -To query the metadata in the above example, you can unnest the field and "join" the unnested data. Clicking on the log row shows that log metadata is stored as an array of objects. - -In order to query any value that is an array, we would need to `UNNEST()` that field and add it to the query as a join, thereby allowing us to reference the nested fields within the array. - -:::caution - -Large projects may run into a `Resources Exceeded` memory limit error when selecting large objects with many nested keys. To avoid this error, select individual keys separately or reduce the queried date range. -::: - -### Functions - -You may have also noticed from the above examples that we are able to use certain SQL functions within our queries. The querying engine currently supported is BigQuery, hence you may use [any valid BigQuery function](https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators) within your query. - - -#### Timestamp Behavior - -Each log entry is stored with a `timestamp`. In order to utilize the `timestamp` field in a query, you can use the appropriate [timestamp functions](https://cloud.google.com/bigquery/docs/reference/standard-sql/timestamp_functions#timestamp). - -:::note - -In the Log Explorer, timestamps are rendered as unix microsecond timestamps. SQL queries, however, should always use the `TIMESTAMP` data type. If you are using a unix timestamp value in a query, cast the value to a `TIMESTAMP` data type. - -::: - -## Templates - -Templates are available to help craft you log queries. Templates are available under the **Templates** tab, or under the **Templates** Dropdown in the **Query** tab. \ No newline at end of file diff --git a/web/docs/guides/platform/metrics.mdx b/web/docs/guides/platform/metrics.mdx deleted file mode 100644 index 8fba89eace9..00000000000 --- a/web/docs/guides/platform/metrics.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -id: metrics -title: Metrics -description: Observability for your Supabase project ---- - -In addition to the reports and charts built in to the Supabase dashboard, each project hosted on the Supabase platform comes with a [Prometheus](https://prometheus.io/)-compatible metrics endpoint, which can be used to gather insight into the health and status of your project. - -You can use this endpoint to ingest data into your own monitoring and alerting infrastructure, as long as it is capable of scraping Prometheus-compatible endpoints, in order to set up custom rules beyond those supported by the Supabase dashboard. - -:::note - -The endpoint discussed in this article is in beta, and the metrics returned by it might evolve or be changed in the future to increase its utility. - -::: - -:::note - -The endpoint discussed in this article is not available on self-hosted. - -::: - -## Accessing the metrics endpoint - -Your project's metrics endpoint is accessible at `https://.supabase.co/customer/v1/privileged/metrics`. Access to the endpoint is secured via HTTP Basic Auth; the username is `service_role`, while the password is the service role JWT available through the Supabase dashboard. - -```shell -> curl https://.supabase.co/customer/v1/privileged/metrics --user 'service_role:' -``` - -Additionally, we [maintain a guide](https://github.com/supabase/grafana-agent-fly-example/) on quickly setting up a scraping agent to work with Grafana Cloud. diff --git a/web/docs/guides/platform/performance.mdx b/web/docs/guides/platform/performance.mdx deleted file mode 100644 index 3194054dff8..00000000000 --- a/web/docs/guides/platform/performance.mdx +++ /dev/null @@ -1,78 +0,0 @@ ---- -id: performance -title: Performance Tuning -description: Getting the best results out of your Supabase project ---- - -The Supabase platform automatically optimizes your Postgres database to take advantage of the compute resources of the tier your project is on. However, these optimizations are based on assumptions about the type of workflow the project is being utilized for, and it is likely that better results can be obtained by tuning the database for your particular workflow. - -## Optimizing the number of connections - -By default, the number of connections allowed to Postgres and PgBouncer is configured based on the resources available to the database. - -| Compute Add-on | Postgresql connections | PGBouncer connections | -|----------------|------------------------|-----------------------| -| None | 60 | 200 | -| Small | 90 | 200 | -| Medium | 120 | 200 | -| Large | 160 | 300 | -| XL | 240 | 700 | -| 2XL | 380 | 1500 | -| 4XL | 480 | 3000 | -| 8XL | 490 | 6000 | -| 12XL | 500 | 9000 | -| 16XL | 500 | 12000 | - -If the number of connections is insufficient, you will receive the following error upon connecting to the DB: - -```shell -$ psql -U postgres -h ... -FATAL: remaining connection slots are reserved for non-replication superuser connections -``` - -In such a scenario, you can consider either upgrading to a larger compute add-on, or alternatively, by manually configuring the database for a higher number of connections. - -You can configure Postgres by executing the following statement, followed by a server restart: - -```sql -alter system set max_connections = ''; -``` - -Note that [the default configuration used by the Supabase platform](https://github.com/supabase/supabase-admin-api/blob/master/optimizations/postgres.go) optimizes the database to maximize resource utilization, and as a result, you might also need to configure other options (e.g. `work_mem`, `shared_buffers`, `maintenance_work_mem`) in order to tune them towards your use-case, and to avoid causing instability in your database. - -Once overridden, the Supabase platform will continue to respect your manually configured value (even if the add-on size is changed), unless the override is removed with the following statement, followed by a server restart: - -```sql -alter system reset max_connections; -alter system reset ; -... -``` - -Configuring the number of PgBouncer connections is not supported at this time. - -## Examining Query Performance - -Every Supabase project has [the pg_stat_statements extension](https://www.postgresql.org/docs/14/pgstatstatements.html) enabled by default. This extension records query execution performance details and is the best way to find queries that take the most time to execute. This information can be combined with the Postgres query plan analyzer to develop more efficient queries. - -Obtaining information from pg_stat_statements: -```sql -select mean_exec_time + stddev_exec_time, * from pg_stat_statements order by 1 desc; -``` - -Using the query plan analyzer on your expensive queries: - -```sql -explain analyze ; -``` - -Be careful using `explain analyze` with `insert`/`update`/`delete` queries, because the query will actually run, and could have unintended side-effects. - -Using the query plan analyzer to optimize your queries is a large topic, with a number of online resources available: - -- [Official docs.](https://www.postgresql.org/docs/current/using-explain.html) -- [The Art of PostgreSQL.](https://theartofpostgresql.com/explain-plan-visualizer/) -- [Postgres Wiki.](https://wiki.postgresql.org/wiki/Using_EXPLAIN) -- [Enterprise DB.](https://www.enterprisedb.com/blog/postgresql-query-optimization-performance-tuning-with-explain-analyze) - - -You can pair the information available from `pg_stat_statements` with the detailed system metrics available [via your metrics endpoint](/docs/guides/platform/metrics) to better understand the behavior of your DB and the queries you're executing against it. diff --git a/web/docs/guides/platform/permissions.mdx b/web/docs/guides/platform/permissions.mdx deleted file mode 100644 index c3fbf719d23..00000000000 --- a/web/docs/guides/platform/permissions.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: permissions -title: Permissions -description: Permissions requirements for the Supabase Cloud hosting environment ---- - -The Supabase platform offers additional services (e.g. Storage) on top of the Postgres database that comes with each project. These services default to storing their operational data within your database, to ensure that you retain complete control over it. - -However, these services assume a base level of access to their data, in order to e.g. be able to run migrations over it. Breaking these assumptions runs the risk of rendering these services inoperational for your project: - -- all entitites under the `storage` schema are owned by `supabase_storage_admin` -- all entitites under the `auth` schema are owned by `supabase_auth_admin` - -It is possible for violations of these assumptions to not cause an immediate outage, but take effect at a later time when a newer migration becomes available. diff --git a/web/docs/guides/storage.mdx b/web/docs/guides/storage.mdx deleted file mode 100644 index 8caca04659a..00000000000 --- a/web/docs/guides/storage.mdx +++ /dev/null @@ -1,379 +0,0 @@ ---- -id: storage -title: Storage -description: Use Supabase to store and serve files. -sidebar_label: Overview ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -## Overview - -Supabase Storage makes it simple to store and serve large files. - -### Files - -Files can be any sort of media file. This includes images, GIFs, and videos. It is best practice to store files outside of your database because of their sizes. - -### Folders - -Folders are a way to organize your files (just like on your computer). -There is no right or wrong way to -organize your files. You can store them in whichever folder structure suits your project. - -### Buckets - -Buckets are distinct containers for files and folders. You can think of them like "super folders". -Generally you would create distinct buckets for different Security and Access Rules. For example, you might -keep all public files in a "public" bucket, and other files that require logged-in access in a "restricted" bucket. - -## Getting started - -This is a quick guide that shows the basic functionality of Supabase Storage. Find a full -[example application in GitHub](https://github.com/supabase/supabase/tree/master/examples/user-management/nextjs-ts-user-management), -which you can deploy yourself. - -**Note before begin** : File, Folder, and Bucket names **must follow** [AWS Safe Characters naming guideline](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html) and avoid use of any other characters - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Fsupabase%2Fsupabase%2Ftree%2Fmaster%2Fexamples%2Fnextjs-ts-user-management&project-name=supabase-user-management&repository-name=supabase-user-management&demo-title=Supabase%20User%20Management&demo-description=An%20example%20web%20app%20using%20Supabase%20and%20Next.js&demo-url=https%3A%2F%2Fsupabase-nextjs-ts-user-management.vercel.app&demo-image=https%3A%2F%2Fi.imgur.com%2FZ3HkQqe.png&integration-ids=oac_jUduyjQgOyzev1fjrW83NYOv&external-id=nextjs-user-management) - -### Create a bucket - -You can create a bucket using the Supabase Dashboard. -Since the storage is interoperable with your Postgres database, you can also use SQL or our -client libraries. Here we create a bucket called "avatars": - - - - -1. Go to the [Storage](https://app.supabase.com/project/_/storage/buckets) page in the Dashboard. -2. Click **New Bucket** and enter a name for the bucket. -3. Click **Create Bucket**. - - - - - - -```sql --- Use Postgres to create a bucket. - -insert into storage.buckets (id, name) -values ('avatars', 'avatars'); -``` - - - - -```js -// Use the JS library to create a bucket. - -const { data, error } = await supabase.storage.createBucket('avatars') -``` - -[Reference.](/docs/reference/javascript/storage-createbucket) - - - - -```dart -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - final storageResponse = await client - .storage - .createBucket('avatars'); -} -``` - -[Reference.](https://pub.dev/documentation/storage_client/latest/storage_client/SupabaseStorageClient/createBucket.html) - - - - -### Upload a file - -You can upload a file from the Dashboard, or within a browser using our JS libraries. - - - - -1. Go to the [Storage](https://app.supabase.com/project/_/storage/buckets) page in the Dashboard. -2. Select the bucket you want to upload the file to. -3. Click **Upload File**. -4. Select the file you want to upload. - - - - - - -```js -const avatarFile = event.target.files[0] -const { data, error } = await supabase.storage - .from('avatars') - .upload('public/avatar1.png', avatarFile) -``` - -[Reference.](/docs/reference/javascript/storage-from-upload) - - - - -```dart -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - // Create file `example.txt` and upload it in `public` bucket - final file = File('example.txt'); - file.writeAsStringSync('File content'); - final storageResponse = await client - .storage - .from('public') - .upload('example.txt', file); -} -``` - - - - -### Download a file - -You can download a file from the Dashboard, or within a browser using our JS libraries. - - - - -1. Go to the [Storage](https://app.supabase.com/project/_/storage/buckets) page in the Dashboard. -2. Select the bucket that contains the file. -3. Select the file that you want to download. -4. Click **Download**. - - - - - - -```js -// Use the JS library to create a bucket. - -const { data, error } = await supabase.storage.from('avatars').download('public/avatar1.png') -``` - -[Reference.](/docs/reference/javascript/storage-from-download) - - - - -```dart -void main() async { - final client = SupabaseClient('supabaseUrl', 'supabaseKey'); - - final storageResponse = await client - .storage - .from('public') - .download('example.txt'); -} -``` - - - - -### Add security rules - -To restrict access to your files you can use either the Dashboard or SQL. - - - - -1. Go to the [Storage](https://app.supabase.com/project/_/storage/buckets) page in the Dashboard. -2. Click **Policies** in the sidebar. -3. Click **Add Policies** in the `OBJECTS` table to add policies for Files. You can also create policies for Buckets. -4. Choose whether you want the policy to apply to downloads (SELECT), uploads (INSERT), updates (UPDATE), or deletes (DELETE). -5. Give your policy a unique name. -6. Write the policy using SQL. - - - - - - -```sql --- Use SQL to create a policy. - -create policy "Public Access" - on storage.objects for select - using ( bucket_id = 'public' ); -``` - - - - -## Helpers - -Supabase Storage is configured with database SQL helper functions which you can use in your database queries and -policies. - ---- - -#### `storage.filename()` - -Returns the name of a file. - -```sql -select storage.filename(name) -from storage.objects; -``` - -For example, if your file is stored in `public/subfolder/avatar.png` it would return: - -`'avatar.png'` - ---- - -#### `storage.foldername()` - -Returns an array path, with all of the subfolders that a file belongs to. - -```sql -select storage.foldername(name) -from storage.objects; -``` - -For example, if your file is stored in `public/subfolder/avatar.png` it would return: - -`[ 'public', 'subfolder' ]` - ---- - -#### `storage.extension()` - -Returns the extension of a file. - -```sql -select storage.extension(name) -from storage.objects; -``` - -For example, if your file is stored in `public/subfolder/avatar.png` it would return: - -`'png'` - ---- - -## Accessing objects - - -For private buckets, you can access objects via the [download](/docs/reference/javascript/storage-from-download) method. This corresponds to `/object/auth/` API endpoint. -Alternatively, you can create a publicly shareable URL with an expiry date using the [createSignedUrl](/docs/reference/javascript/storage-from-createsignedurl) method -which calls the `/object/sign/` API. - -For public buckets, you can access the assets directly without a token or an Authorisation header. The [getPublicUrl](/docs/reference/javascript/storage-from-getpublicurl) -helper method returns the full public URL for an asset. This calls the `/object/public/` API endpoint internally. - - -
    -Advanced: reverse proxy -The URLs returned are proxied through the API Proxy. They are prefixed by /storage/v1. - -For example, on the hosted Platform they will be - -https://[project_ref].supabase.co/storage/v1/object/public/[id] - -You can access the storage API directly with the same endpoint. See the API docs for a full list of operations available. - -
    - - ---- - -## Security - -Supabase Storage is integrated with your [Postgres Database](/docs/guides/database). -This means that you can use the same [Policy](/docs/guides/auth#policies) engine -for managing access to your files. - -## Policy Examples - -Here are some examples to show you the power of PostgreSQL's Row Level Security. Each policy is attached to a table, and the policy is executed -every time a table is accessed. - -### Allow public access to a bucket - -```sql --- 1. Allow public access to any files in the "public" bucket -create policy "Public Access" -on storage.objects for select -using ( bucket_id = 'public' ); -``` - -### Allow logged-in access to a bucket - -```sql --- 1. Allow logged-in access to any files in the "restricted" bucket -create policy "Restricted Access" -on storage.objects for select -using ( - bucket_id = 'restricted' - and auth.role() = 'authenticated' -); -``` - -### Allow individual access to a file - -```sql --- 1. Allow a user to access their own files -create policy "Individual user Access" -on storage.objects for select -using ( auth.uid() = owner ); -``` - -## Resources - -- Find the API server on GitHub: [github.com/supabase/storage-api](https://github.com/supabase/storage-api) -- Find the Swagger API Docs online: [supabase.github.io/storage-api](https://supabase.github.io/storage-api) -- Official client libraries documentation: [JavaScript](/docs/reference/javascript/storage-createbucket) and [Dart](/docs/reference/dart/storage-createbucket). -- Community libraries: [github.com/supabase-community](https://github.com/supabase-community) - -## Next steps - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Read more about storage in our [blog post](https://supabase.com/blog/2021/03/30/supabase-storage). -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/storage/storage-sample.mdx b/web/docs/guides/storage/storage-sample.mdx deleted file mode 100644 index cd9ec88a3b4..00000000000 --- a/web/docs/guides/storage/storage-sample.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: storage-sample -title: "Storage Sample Doc" -description: Storage Sample Doc ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Description - -Sample... \ No newline at end of file diff --git a/web/docs/guides/with-angular.mdx b/web/docs/guides/with-angular.mdx deleted file mode 100644 index 58b7444c70c..00000000000 --- a/web/docs/guides/with-angular.mdx +++ /dev/null @@ -1,571 +0,0 @@ ---- -id: with-angular -title: "Quickstart: Angular" -description: Learn how to use Supabase in your Angular App. -sidebar_label: Angular ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Intro - -This example provides the steps to build a simple user management app (from scratch!) using Supabase and Angular. It includes: - -- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data. -- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email). -- Supabase [Storage](/docs/guides/storage): users can upload a photo. -- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data. -- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables. - -By the end of this guide you'll have an app which allows users to login and update some basic profile details: - -![Supabase User Management example](/img/user-management-demo.png) - -Clicking this button the application will: - -- Launch and prepare the Postgres database in Supabase. -- Launch the app in Vercel. -- Fork the example into your own GitHub account. -- Prepare the deployed application with all the necessary environment variables. - -If you want to do it yourself, let's get started! - -### GitHub - -Whenever you get stuck at any point, take a look at [this repo](https://github.com/angular-supa/supabase-angular-user-management). - -## Project set up - -Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase -and then creating a "schema" inside the database. - -### Create a project - -1. Go to [app.supabase.com](https://app.supabase.com). -1. Click on "New Project". -1. Enter your project details. -1. Wait for the new database to launch. - - -### Set up the database schema - -Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor, -or you can just copy/paste the SQL from below and run it yourself. - - - - -1. Go to the [SQL Editor](https://app.supabase.com/project/_/sql) page in the Dashboard. -2. Click **User Management Starter**. -3. Click **Run**. - - - - - - -```sql --- Create a table for public "profiles" -create table profiles ( - id uuid references auth.users not null, - updated_at timestamp with time zone, - username text unique, - avatar_url text, - website text, - - primary key (id), - unique(username), - constraint username_length check (char_length(username) >= 3) -); - -alter table profiles enable row level security; - -create policy "Public profiles are viewable by everyone." - on profiles for select - using ( true ); - -create policy "Users can insert their own profile." - on profiles for insert - with check ( auth.uid() = id ); - -create policy "Users can update own profile." - on profiles for update - using ( auth.uid() = id ); - --- Set up Realtime! -begin; - drop publication if exists supabase_realtime; - create publication supabase_realtime; -commit; -alter publication supabase_realtime add table profiles; - --- Set up Storage! -insert into storage.buckets (id, name) -values ('avatars', 'avatars'); - -create policy "Avatar images are publicly accessible." - on storage.objects for select - using ( bucket_id = 'avatars' ); - -create policy "Anyone can upload an avatar." - on storage.objects for insert - with check ( bucket_id = 'avatars' ); -``` - - - - - -### Get the API Keys - -Now that you've created some database tables, you are ready to insert data using the auto-generated API. -We just need to get the URL and `anon` key from the API settings. - -1. Go to the [Settings](https://app.supabase.com/project/_/settings) page in the Dashboard. -2. Click **API** in the sidebar. -3. Find your API `URL`, `anon`, and `service_role` keys on this page. - - - -## Building the App - -Let's start building the Angular app from scratch. - -### Initialize an Angular app - -We can use the [Angular CLI](https://angular.io/cli) to initialize -an app called `supabase-angular`: - -```bash -npx ng new supabase-angular --routing false --style css -cd supabase-angular -``` - -Then let's install the only additional dependency: [supabase-js](https://github.com/supabase/supabase-js) - -```bash -npm install @supabase/supabase-js -``` - -And finally we want to save the environment variables in the `environment.ts` file. -All we need are the API URL and the `anon` key that you copied [earlier](#get-the-api-keys). -These variables will be exposed on the browser, and that's completely fine since we have [Row Level Security](/docs/guides/auth#row-level-security) enabled on our Database. - - -```ts title="environment.ts" -export const environment = { - production: false, - supabaseUrl: "YOUR_SUPABASE_URL", - supabaseKey: "YOUR_SUPABASE_KEY" -}; -``` - -Now that we have the API credentials in place, let's create a **SupabaseService** with `ng g s supabase` to initialize the Supabase client and implement functions to communicate with the Supabase API. - -```ts title="src/app/supabase.service.ts" -import { Injectable } from '@angular/core'; -import {AuthChangeEvent, createClient, Session, SupabaseClient} from '@supabase/supabase-js'; -import {environment} from "../environments/environment"; - -export interface Profile { - username: string; - website: string; - avatar_url: string; -} - -@Injectable({ - providedIn: 'root' -}) -export class SupabaseService { - private supabase: SupabaseClient; - - constructor() { - this.supabase = createClient(environment.supabaseUrl, environment.supabaseKey); - } - - get user() { - return this.supabase.auth.user(); - } - - get session() { - return this.supabase.auth.session(); - } - - get profile() { - return this.supabase - .from('profiles') - .select(`username, website, avatar_url`) - .eq('id', this.user?.id) - .single(); - } - - authChanges(callback: (event: AuthChangeEvent, session: Session | null) => void) { - return this.supabase.auth.onAuthStateChange(callback); - } - - signIn(email: string) { - return this.supabase.auth.signIn({email}); - } - - signOut() { - return this.supabase.auth.signOut(); - } - - updateProfile(profile: Profile) { - const update = { - ...profile, - id: this.user?.id, - updated_at: new Date() - } - - return this.supabase.from('profiles').upsert(update, { - returning: 'minimal', // Don't return the value after inserting - }); - } - - downLoadImage(path: string) { - return this.supabase.storage.from('avatars').download(path); - } - - uploadAvatar(filePath: string, file: File) { - return this.supabase.storage - .from('avatars') - .upload(filePath, file); - } -} - -``` - -And one optional step is to update the CSS file `src/index.css` to make the app look nice. -You can find the full contents of this file [here](https://raw.githubusercontent.com/angular-supa/supabase-angular-user-management/main/src/styles.css). - -### Set up a Login component - -Let's set up an Angular component to manage logins and sign ups. We'll use Magic Links, so users can sign in with their email without using passwords. -Create an **AuthComponent** with `ng g c auth` Angular CLI command. - -```ts title="src/app/auth.component.ts" -import { Component } from '@angular/core'; -import {SupabaseService} from "./supabase.service"; - -@Component({ - selector: 'app-auth', - template: ` -
    -
    -

    Supabase + Angular

    -

    Sign in via magic link with your email below

    -
    - -
    -
    - -
    - -
    - `, -}) -export class AuthComponent { - loading = false; - - constructor(private readonly supabase: SupabaseService) { } - - async handleLogin(input: string) { - try { - this.loading = true; - await this.supabase.signIn(input); - alert('Check your email for the login link!'); - } catch (error) { - alert(error.error_description || error.message) - } finally { - this.loading = false; - } - } -} -``` - -### Account page - -After a user is signed in we can allow them to edit their profile details and manage their account. -Create an **AccountComponent** with `ng g c account` Angular CLI command. - -```ts title="src/app/account.component.ts" -import {Component, Input, OnInit} from '@angular/core'; -import {Profile, SupabaseService} from "./supabase.service"; -import {Session} from "@supabase/supabase-js"; - -@Component({ - selector: 'app-account', - template: ` -
    -
    - - -
    -
    - - -
    -
    - - -
    - -
    - -
    - -
    - -
    -
    - ` -}) -export class AccountComponent implements OnInit { - loading = false; - profile: Profile | undefined; - - @Input() session: Session | undefined; - - constructor(private readonly supabase: SupabaseService) { } - - ngOnInit() { - this.getProfile(); - } - - async getProfile() { - try { - this.loading = true; - let {data: profile, error, status} = await this.supabase.profile; - - if (error && status !== 406) { - throw error; - } - - if (profile) { - this.profile = profile; - } - } catch (error) { - alert(error.message) - } finally { - this.loading = false; - } - } - - async updateProfile(username: string, website: string, avatar_url: string = '') { - try { - this.loading = true; - await this.supabase.updateProfile({username, website, avatar_url}); - } catch (error) { - alert(error.message); - } finally { - this.loading = false; - } - } - - async signOut() { - await this.supabase.signOut(); - } -} -``` - - - -### Launch! - -Now that we have all the components in place, let's update **AppComponent**: - -```ts title="src/app/app.component.ts" -import {Component, OnInit} from '@angular/core'; -import {SupabaseService} from "./supabase.service"; - -@Component({ - selector: 'app-root', - template: ` -
    - - - - -
    - ` -}) -export class AppComponent implements OnInit { - session = this.supabase.session; - - constructor(private readonly supabase: SupabaseService) { } - - ngOnInit() { - this.supabase.authChanges((_, session) => this.session = session); - } -} -``` - -Once that's done, run this in a terminal window: - -```bash -npm run start -``` - -And then open the browser to [localhost:4200](http://localhost:4200) and you should see the completed app. - - -![Supabase Angular](/img/supabase-angular-demo.png) - -## Bonus: Profile photos - -Every Supabase project is configured with [Storage](/docs/guides/storage) for managing large files like photos and videos. - -### Create an upload widget - -Let's create an avatar for the user so that they can upload a profile photo. -Create an **AvatarComponent** with `ng g c avatar` Angular CLI command. - -```ts title="src/app/avatar.component.ts" -import {Component, EventEmitter, Input, Output} from '@angular/core'; -import {SupabaseService} from "./supabase.service"; -import {DomSanitizer, SafeResourceUrl} from "@angular/platform-browser"; - -@Component({ - selector: 'app-avatar', - template: ` -
    - Avatar
    -
    -
    - - -
    - `, -}) -export class AvatarComponent { - _avatarUrl: SafeResourceUrl | undefined; - uploading = false; - - @Input() - set avatarUrl(url: string | undefined) { - if (url) { - this.downloadImage(url); - } - }; - - @Output() upload = new EventEmitter(); - - constructor( - private readonly supabase: SupabaseService, - private readonly dom: DomSanitizer - ) { } - - async downloadImage(path: string) { - try { - const {data} = await this.supabase.downLoadImage(path); - if (data instanceof Blob) { - this._avatarUrl = this.dom.bypassSecurityTrustResourceUrl( - URL.createObjectURL(data) - ); - } - } catch (error) { - console.error('Error downloading image: ', error.message); - } - } - - async uploadAvatar(event: any) { - try { - this.uploading = true; - if (!event.target.files || event.target.files.length === 0) { - throw new Error('You must select an image to upload.'); - } - - const file = event.target.files[0]; - const fileExt = file.name.split('.').pop(); - const fileName = `${Math.random()}.${fileExt}`; - const filePath = `${fileName}`; - - await this.supabase.uploadAvatar(filePath, file); - this.upload.emit(filePath); - } catch (error) { - alert(error.message); - } finally { - this.uploading = false; - } - } -} -``` - - -### Add the new widget - -And then we can add the widget on top of the **AccountComponent** html template: - -```ts title="src/app/account.component.ts" -template: ` - - - - -` -``` - -## Next steps - -At this stage you have a fully functional application! - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/with-expo.mdx b/web/docs/guides/with-expo.mdx deleted file mode 100644 index 2406ed70c74..00000000000 --- a/web/docs/guides/with-expo.mdx +++ /dev/null @@ -1,524 +0,0 @@ ---- -id: with-expo -title: 'Quickstart: Expo' -description: Learn how to use Supabase in your React Native App. -sidebar_label: Expo ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -## Intro - -This example provides the steps to build a simple user management app (from scratch!) using Supabase and React Native. It includes: - -- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data. -- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email). -- Supabase [Storage](/docs/guides/storage): users can upload a photo. -- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data. -- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables. - -By the end of this guide you'll have an app which allows users to login and update some basic profile details: - -## Project set up - -Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase -and then creating a "schema" inside the database. - -### Create a project - -1. Go to [app.supabase.com](https://app.supabase.com). -1. Click on "New Project". -1. Enter your project details. -1. Wait for the new database to launch. - -### Set up the database schema - -Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor, -or you can just copy/paste the SQL from below and run it yourself. - - - - -1. Go to the [SQL Editor](https://app.supabase.com/project/_/sql) page in the Dashboard. -2. Click **User Management Starter**. -3. Click **Run**. - - - - - - -```sql --- Create a table for public "profiles" -create table profiles ( - id uuid references auth.users not null, - updated_at timestamp with time zone, - username text unique, - avatar_url text, - website text, - - primary key (id), - unique(username), - constraint username_length check (char_length(username) >= 3) -); - -alter table profiles enable row level security; - -create policy "Public profiles are viewable by everyone." - on profiles for select - using ( true ); - -create policy "Users can insert their own profile." - on profiles for insert - with check ( auth.uid() = id ); - -create policy "Users can update own profile." - on profiles for update - using ( auth.uid() = id ); - --- Set up Realtime! -begin; - drop publication if exists supabase_realtime; - create publication supabase_realtime; -commit; -alter publication supabase_realtime add table profiles; - --- Set up Storage! -insert into storage.buckets (id, name) -values ('avatars', 'avatars'); - -create policy "Avatar images are publicly accessible." - on storage.objects for select - using ( bucket_id = 'avatars' ); - -create policy "Anyone can upload an avatar." - on storage.objects for insert - with check ( bucket_id = 'avatars' ); - -``` - - - - -### Get the API Keys - -Now that you've created some database tables, you are ready to insert data using the auto-generated API. -We just need to get the URL and `anon` key from the API settings. - -1. Go to the [Settings](https://app.supabase.com/project/_/settings) page in the Dashboard. -2. Click **API** in the sidebar. -3. Find your API `URL`, `anon`, and `service_role` keys on this page. - - - -## Building the App - -Let's start building the React Native app from scratch. - -### Initialize a React Native app - -We can use [`expo`](https://docs.expo.dev/get-started/create-a-new-app/) to initialize -an app called `supabaseReactNative`: - -```bash -#select the "Blank (TypeScript)" template when prompted -expo init supabaseReactNative - -cd supabaseReactNative -``` - -Then let's install the additional dependencies: [supabase-js](https://github.com/supabase/supabase-js) - -```bash -yarn add @supabase/supabase-js -yarn add react-native-elements -yarn add react-native-safe-area-context -yarn add @react-native-async-storage/async-storage -yarn add react-native-url-polyfill -``` - -Now let's create a helper file to initialize the Supabase client. -We need the API URL and the `anon` key that you copied [earlier](#get-the-api-keys). -These variables will be exposed on the browser, and that's completely fine since we have -[Row Level Security](/docs/guides/auth#row-level-security) enabled on our Database. - -```js title="lib/supabase.ts" -import AsyncStorage from '@react-native-async-storage/async-storage'; -import { createClient } from '@supabase/supabase-js' - -const supabaseUrl = YOUR_REACT_NATIVE_SUPABASE_URL -const supabaseAnonKey = YOUR_REACT_NATIVE_SUPABASE_ANON_KEY - -export const supabase = createClient(supabaseUrl, supabaseAnonKey, { - localStorage: AsyncStorage as any, - autoRefreshToken: true, - persistSession: true, - detectSessionInUrl: false, -}); -``` - -### Set up a Login component - -Let's set up a React Native component to manage logins and sign ups. -Users would be able to sign in with their email and password. - -```jsx title="components/Auth.tsx" -import React, { useState } from 'react' -import { Alert, StyleSheet, View } from 'react-native' -import { supabase } from '../lib/supabase' -import { Button, Input } from 'react-native-elements' - -export default function Auth() { - const [email, setEmail] = useState('') - const [password, setPassword] = useState('') - const [loading, setLoading] = useState(false) - - async function signInWithEmail() { - setLoading(true) - const { user, error } = await supabase.auth.signIn({ - email: email, - password: password, - }) - - if (error) Alert.alert(error.message) - setLoading(false) - } - - async function signUpWithEmail() { - setLoading(true) - const { user, error } = await supabase.auth.signUp({ - email: email, - password: password, - }) - - if (error) Alert.alert(error.message) - setLoading(false) - } - - return ( - - - setEmail(text)} - value={email} - placeholder="email@address.com" - autoCapitalize={'none'} - /> - - - setPassword(text)} - value={password} - secureTextEntry={true} - placeholder="Password" - autoCapitalize={'none'} - /> - - - -
    -
    -
    - ) -} -``` - -### Account page - -After a user is signed in we can allow them to edit their profile details and manage their account. - -Let's create a new component for that called `Account.js`. - -```jsx title="components/Account.js" -import { useState, useEffect } from 'react' -import { supabase } from '../utils/supabaseClient' - -export default function Account({ session }) { - const [loading, setLoading] = useState(true) - const [username, setUsername] = useState(null) - const [website, setWebsite] = useState(null) - const [avatar_url, setAvatarUrl] = useState(null) - - useEffect(() => { - getProfile() - }, [session]) - - async function getProfile() { - try { - setLoading(true) - const user = supabase.auth.user() - - let { data, error, status } = await supabase - .from('profiles') - .select(`username, website, avatar_url`) - .eq('id', user.id) - .single() - - if (error && status !== 406) { - throw error - } - - if (data) { - setUsername(data.username) - setWebsite(data.website) - setAvatarUrl(data.avatar_url) - } - } catch (error) { - alert(error.message) - } finally { - setLoading(false) - } - } - - async function updateProfile({ username, website, avatar_url }) { - try { - setLoading(true) - const user = supabase.auth.user() - - const updates = { - id: user.id, - username, - website, - avatar_url, - updated_at: new Date(), - } - - let { error } = await supabase.from('profiles').upsert(updates, { - returning: 'minimal', // Don't return the value after inserting - }) - - if (error) { - throw error - } - } catch (error) { - alert(error.message) - } finally { - setLoading(false) - } - } - - return ( -
    -
    - - -
    -
    - - setUsername(e.target.value)} - /> -
    -
    - - setWebsite(e.target.value)} - /> -
    - -
    - -
    - -
    - -
    -
    - ) -} - -``` - - - -### Launch! - -Now that we have all the components in place, let's update `pages/index.js`: - -```jsx title="pages/index.js" -import { useState, useEffect } from 'react' -import { supabase } from '../utils/supabaseClient' -import Auth from '../components/Auth' -import Account from '../components/Account' - -export default function Home() { - const [session, setSession] = useState(null) - - useEffect(() => { - setSession(supabase.auth.session()) - - supabase.auth.onAuthStateChange((_event, session) => { - setSession(session) - }) - }, []) - - return ( -
    - {!session ? : } -
    - ) -} -``` - -Once that's done, run this in a terminal window: - -```bash -npm run dev -``` - -And then open the browser to [localhost:3000](http://localhost:3000) and you should see the completed app. - - -![Supabase User demo](/img/supabase-react-demo.png) - -## Bonus: Profile photos - -Every Supabase project is configured with [Storage](/docs/guides/storage) for managing large files like -photos and videos. - -### Create an upload widget - -Let's create an avatar for the user so that they can upload a profile photo. -We can start by creating a new component: - -```jsx title="components/Avatar.js" -import { useEffect, useState } from 'react' -import { supabase } from '../utils/supabaseClient' - -export default function Avatar({ url, size, onUpload }) { - const [avatarUrl, setAvatarUrl] = useState(null) - const [uploading, setUploading] = useState(false) - - useEffect(() => { - if (url) downloadImage(url) - }, [url]) - - async function downloadImage(path) { - try { - const { data, error } = await supabase.storage.from('avatars').download(path) - if (error) { - throw error - } - const url = URL.createObjectURL(data) - setAvatarUrl(url) - } catch (error) { - console.log('Error downloading image: ', error.message) - } - } - - - async function uploadAvatar(event) { - try { - setUploading(true) - - if (!event.target.files || event.target.files.length === 0) { - throw new Error('You must select an image to upload.') - } - - const file = event.target.files[0] - const fileExt = file.name.split('.').pop() - const fileName = `${Math.random()}.${fileExt}` - const filePath = `${fileName}` - - let { error: uploadError } = await supabase.storage - .from('avatars') - .upload(filePath, file) - - if (uploadError) { - throw uploadError - } - - onUpload(filePath) - } catch (error) { - alert(error.message) - } finally { - setUploading(false) - } - } - - return ( -
    - {avatarUrl ? ( - Avatar - ) : ( -
    - )} -
    - - -
    -
    - ) -} -``` - - -### Add the new widget - -And then we can add the widget to the Account page: - - -```jsx title="components/Account.js" -// Import the new component -import Avatar from './Avatar' - -// ... - -return ( -
    - {/* Add to the body */} - { - setAvatarUrl(url) - updateProfile({ username, website, avatar_url: url }) - }} - /> - {/* ... */} -
    -) - -``` - -## Next steps - -At this stage you have a fully functional application! - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/with-nuxt-3.mdx b/web/docs/guides/with-nuxt-3.mdx deleted file mode 100644 index 529b3c41bfb..00000000000 --- a/web/docs/guides/with-nuxt-3.mdx +++ /dev/null @@ -1,544 +0,0 @@ ---- -id: with-nuxt-3 -title: 'Quickstart: Nuxt 3' -description: Learn how to use Supabase in your Nuxt 3 App. -sidebar_label: Nuxt 3 ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Intro - -This example provides the steps to build a simple user management app (from scratch!) using Supabase and Nuxt 3. It includes: - -- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data. -- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email). -- Supabase [Storage](/docs/guides/storage): users can upload a photo. -- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data. -- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables. - -By the end of this guide you'll have an app which allows users to login and update some basic profile details: - -![Supabase User Management example](/img/user-management-demo.png) - -### Github - -Whenever you get stuck at any point, take a look at [this repo](https://github.com/supabase-community/nuxt3-quickstarter). - -## Project set up - -Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase -and then creating a "schema" inside the database. - -### Create a project - -1. Go to [app.supabase.com](https://app.supabase.com). -1. Click on "New Project". -1. Enter your project details. -1. Wait for the new database to launch. - -### Set up the database schema - -Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor, -or you can just copy/paste the SQL from below and run it yourself. - - - - -1. Go to the [SQL Editor](https://app.supabase.com/project/_/sql) page in the Dashboard. -2. Click **User Management Starter**. -3. Click **Run**. - - - - - - -```sql --- Create a table for public "profiles" -create table profiles ( - id uuid references auth.users not null, - updated_at timestamp with time zone, - username text unique, - avatar_url text, - website text, - - primary key (id), - unique(username), - constraint username_length check (char_length(username) >= 3) -); - -alter table profiles enable row level security; - -create policy "Public profiles are viewable by everyone." - on profiles for select - using ( true ); - -create policy "Users can insert their own profile." - on profiles for insert - with check ( auth.uid() = id ); - -create policy "Users can update own profile." - on profiles for update - using ( auth.uid() = id ); - --- Set up Realtime! -begin; - drop publication if exists supabase_realtime; - create publication supabase_realtime; -commit; -alter publication supabase_realtime add table profiles; - --- Set up Storage! -insert into storage.buckets (id, name) -values ('avatars', 'avatars'); - -create policy "Avatar images are publicly accessible." - on storage.objects for select - using ( bucket_id = 'avatars' ); - -create policy "Anyone can upload an avatar." - on storage.objects for insert - with check ( bucket_id = 'avatars' ); - -``` - - - - -### Get the API Keys - -Now that you've created some database tables, you are ready to insert data using the auto-generated API. -We just need to get the URL and `anon` key from the API settings. - -1. Go to the [Settings](https://app.supabase.com/project/_/settings) page in the Dashboard. -2. Click **API** in the sidebar. -3. Find your API `URL`, `anon`, and `service_role` keys on this page. - - - -## Building the App - -Let's start building the Vue 3 app from scratch. - -### Initialize a Nuxt 3 app - -We can use [`nuxi init`](https://v3.nuxtjs.org/getting-started/quick-start/) to create an app called `nuxt-user-management`: - -```bash -npx nuxi init nuxt-user-management - -cd nuxt-user-management -``` - -Then let's install the only additional dependency: [NuxtSupabase](https://supabase.nuxtjs.org/). We only need to import NuxtSupabase as a dev dependency. - -```bash -npm install @nuxtjs/supabase --save-dev -``` - -And finally we want to save the environment variables in a `.env`. -All we need are the API URL and the `anon` key that you copied [earlier](#get-the-api-keys). - -```bash title=".env" -SUPABASE_URL="YOUR_SUPABASE_URL" -SUPABASE_KEY="YOUR_SUPABASE_ANON_KEY" -``` - -These variables will be exposed on the browser, and that's completely fine since we have [Row Level Security](/docs/guides/auth#row-level-security) enabled on our Database. -Amazing thing about [NuxtSupabase](https://supabase.nuxtjs.org/) is that setting environment variables is all we need to do in order to start using Supabase. -No need to initialize Supabase. The library will take care of it automatically. - -And one optional step is to update the CSS file `assets/main.css` to make the app look nice. -You can find the full contents of this file [here](https://github.com/supabase-community/nuxt3-quickstarter/blob/main/assets/main.css). - -```typescript title="nuxt.config.ts" -import { defineNuxtConfig } from 'nuxt' - -// https://v3.nuxtjs.org/api/configuration/nuxt.config -export default defineNuxtConfig({ - modules: ['@nuxtjs/supabase'], - css: ['@/assets/main.css'], -}) -``` - -### Set up Auth component - -Let's set up a Vue component to manage logins and sign ups. We'll use Magic Links, so users can sign in with their email without using passwords. - -```html title="/components/Auth.vue" - - - -``` - -### User state - -To access the user information in other places, will create a user state. Create a new file called `states.ts` and utilize `useState` method of Nuxt 3. - -```typescript title="composables/states.ts" -export const useUser = () => useState('user', () => null) -``` - -### Account component - -After a user is signed in we can allow them to edit their profile details and manage their account. -Let's create a new component for that called `Account.vue`. - -```html title="components/Account.vue" - - - -``` - -### Launch! - -Now that we have all the components in place, let's update `app.vue`: - -```html title="app.vue" - -``` - -We now need to create an index page called `pages/index.vue`: - -```html title="pages/index.vue" - - - -``` - -Once that's done, run this in a terminal window: - -```bash -npm run dev -``` - -And then open the browser to [localhost:3000](http://localhost:3000) and you should see the completed app. - -![Supabase Nuxt 3](/img/supabase-vue-3-demo.png) - -## Bonus: Profile photos - -Every Supabase project is configured with [Storage](/docs/guides/storage) for managing large files like photos and videos. - -### Create an upload widget - -Let's create an avatar for the user so that they can upload a profile photo. We can start by creating a new component: - -```html title="components/Avatar.vue" - - - -``` - -### Add the new widget - -And then we can add the widget to the Account page: - -```html title="components/Account.vue" - - - -``` - -That is it! You should now be able to upload a profile photo to Supabase Storage. - -## Next steps - -At this stage you have a fully functional application! - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/with-react.mdx b/web/docs/guides/with-react.mdx deleted file mode 100644 index db22e129800..00000000000 --- a/web/docs/guides/with-react.mdx +++ /dev/null @@ -1,529 +0,0 @@ ---- -id: with-react -title: 'Quickstart: React' -description: Learn how to use Supabase in your React App. -sidebar_label: React ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -## Intro - -This example provides the steps to build a simple user management app (from scratch!) using Supabase and React. It includes: - -- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data. -- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email). -- Supabase [Storage](/docs/guides/storage): users can upload a photo. -- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data. -- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables. - -By the end of this guide you'll have an app which allows users to login and update some basic profile details: - -![Supabase User Management example](/img/user-management-demo.png) - - - -## Project set up - -Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase -and then creating a "schema" inside the database. - -### Create a project - -1. Go to [app.supabase.com](https://app.supabase.com). -1. Click on "New Project". -1. Enter your project details. -1. Wait for the new database to launch. - -### Set up the database schema - -Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor, -or you can just copy/paste the SQL from below and run it yourself. - - - - -1. Go to the [SQL Editor](https://app.supabase.com/project/_/sql) page in the Dashboard. -2. Click **User Management Starter**. -3. Click **Run**. - - - - - - -```sql --- Create a table for public "profiles" -create table profiles ( - id uuid references auth.users not null, - updated_at timestamp with time zone, - username text unique, - avatar_url text, - website text, - - primary key (id), - unique(username), - constraint username_length check (char_length(username) >= 3) -); - -alter table profiles enable row level security; - -create policy "Public profiles are viewable by everyone." - on profiles for select - using ( true ); - -create policy "Users can insert their own profile." - on profiles for insert - with check ( auth.uid() = id ); - -create policy "Users can update own profile." - on profiles for update - using ( auth.uid() = id ); - --- Set up Realtime! -begin; - drop publication if exists supabase_realtime; - create publication supabase_realtime; -commit; -alter publication supabase_realtime add table profiles; - --- Set up Storage! -insert into storage.buckets (id, name) -values ('avatars', 'avatars'); - -create policy "Avatar images are publicly accessible." - on storage.objects for select - using ( bucket_id = 'avatars' ); - -create policy "Anyone can upload an avatar." - on storage.objects for insert - with check ( bucket_id = 'avatars' ); - -``` - - - - -### Get the API Keys - -Now that you've created some database tables, you are ready to insert data using the auto-generated API. -We just need to get the URL and `anon` key from the API settings. - -1. Go to the [Settings](https://app.supabase.com/project/_/settings) page in the Dashboard. -2. Click **API** in the sidebar. -3. Find your API `URL`, `anon`, and `service_role` keys on this page. - - - -## Building the App - -Let's start building the React app from scratch. - -### Initialize a React app - -We can use [Create React App](https://create-react-app.dev/docs/getting-started/) to initialize -an app called `supabase-react`: - -```bash -npx create-react-app supabase-react -cd supabase-react -``` - -Then let's install the only additional dependency: [supabase-js](https://github.com/supabase/supabase-js) - -```bash -npm install @supabase/supabase-js -``` - -And finally we want to save the environment variables in a `.env`. -All we need are the API URL and the `anon` key that you copied [earlier](#get-the-api-keys). - -```bash title=".env" -REACT_APP_SUPABASE_URL=YOUR_SUPABASE_URL -REACT_APP_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY -``` - -Now that we have the API credentials in place, let's create a helper file to initialize the Supabase client. These variables will be exposed -on the browser, and that's completely fine since we have [Row Level Security](/docs/guides/auth#row-level-security) enabled on our Database. - -```js title="src/supabaseClient.js" -import { createClient } from '@supabase/supabase-js' - -const supabaseUrl = process.env.REACT_APP_SUPABASE_URL -const supabaseAnonKey = process.env.REACT_APP_SUPABASE_ANON_KEY - -export const supabase = createClient(supabaseUrl, supabaseAnonKey) -``` - -And one optional step is to update the CSS file `src/index.css` to make the app look nice. -You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/react-user-management/src/index.css). - -### Set up a Login component - -Let's set up a React component to manage logins and sign ups. We'll use Magic Links, so users can sign in with their email without using passwords. - -```jsx title="/src/Auth.js" -import { useState } from 'react' -import { supabase } from './supabaseClient' - -export default function Auth() { - const [loading, setLoading] = useState(false) - const [email, setEmail] = useState('') - - const handleLogin = async (e) => { - e.preventDefault() - - try { - setLoading(true) - const { error } = await supabase.auth.signIn({ email }) - if (error) throw error - alert('Check your email for the login link!') - } catch (error) { - alert(error.error_description || error.message) - } finally { - setLoading(false) - } - } - - return ( -
    -
    -

    Supabase + React

    -

    Sign in via magic link with your email below

    - {loading ? ( - 'Sending magic link...' - ) : ( -
    - - setEmail(e.target.value)} - /> - - - )} -
    -
    - ) -} -``` - -### Account page - -After a user is signed in we can allow them to edit their profile details and manage their account. - -Let's create a new component for that called `Account.js`. - -```jsx title="src/Account.js" -import { useState, useEffect } from 'react' -import { supabase } from './supabaseClient' - -const Account = ({ session }) => { - const [loading, setLoading] = useState(true) - const [username, setUsername] = useState(null) - const [website, setWebsite] = useState(null) - const [avatar_url, setAvatarUrl] = useState(null) - - useEffect(() => { - getProfile() - }, [session]) - - const getProfile = async () => { - try { - setLoading(true) - const user = supabase.auth.user() - - let { data, error, status } = await supabase - .from('profiles') - .select(`username, website, avatar_url`) - .eq('id', user.id) - .single() - - if (error && status !== 406) { - throw error - } - - if (data) { - setUsername(data.username) - setWebsite(data.website) - setAvatarUrl(data.avatar_url) - } - } catch (error) { - alert(error.message) - } finally { - setLoading(false) - } - } - - const updateProfile = async (e) => { - e.preventDefault() - - try { - setLoading(true) - const user = supabase.auth.user() - - const updates = { - id: user.id, - username, - website, - avatar_url, - updated_at: new Date(), - } - - let { error } = await supabase.from('profiles').upsert(updates, { - returning: 'minimal', // Don't return the value after inserting - }) - - if (error) { - throw error - } - } catch (error) { - alert(error.message) - } finally { - setLoading(false) - } - } - - return ( -
    - {loading ? ( - 'Saving ...' - ) : ( -
    -
    Email: {session.user.email}
    -
    - - setUsername(e.target.value)} - /> -
    -
    - - setWebsite(e.target.value)} - /> -
    -
    - -
    - - )} - -
    - ) -} - -export default Account -``` - -### Launch! - -Now that we have all the components in place, let's update `App.js`: - -```jsx title="src/App.js" -import './index.css' -import { useState, useEffect } from 'react' -import { supabase } from './supabaseClient' -import Auth from './Auth' -import Account from './Account' - -export default function App() { - const [session, setSession] = useState(null) - - useEffect(() => { - setSession(supabase.auth.session()) - - supabase.auth.onAuthStateChange((_event, session) => { - setSession(session) - }) - }, []) - - return ( -
    - {!session ? : } -
    - ) -} -``` - -Once that's done, run this in a terminal window: - -```bash -npm start -``` - -And then open the browser to [localhost:3000](http://localhost:3000) and you should see the completed app. - -![Supabase React](/img/supabase-react-demo.png) - -## Bonus: Profile photos - -Every Supabase project is configured with [Storage](/docs/guides/storage) for managing large files like photos and videos. - -### Add @reach/visually-hidden - -The upload widget uses one additional npm library. You can install it like so: `npm install @reach/visually-hidden`. - -### Create an upload widget - -Let's create an avatar for the user so that they can upload a profile photo. We can start by creating a new component: - -```jsx title="src/Avatar.js" -import { useEffect, useState } from 'react' -import { supabase } from './supabaseClient' -import VisuallyHidden from '@reach/visually-hidden' - -export default function Avatar({ url, size, onUpload }) { - const [avatarUrl, setAvatarUrl] = useState(null) - const [uploading, setUploading] = useState(false) - - useEffect(() => { - if (url) downloadImage(url) - }, [url]) - - const downloadImage = async (path) => { - try { - const { data, error } = await supabase.storage.from('avatars').download(path) - if (error) { - throw error - } - const url = URL.createObjectURL(data) - setAvatarUrl(url) - } catch (error) { - console.log('Error downloading image: ', error.message) - } - } - - const uploadAvatar = async (event) => { - try { - setUploading(true) - - if (!event.target.files || event.target.files.length === 0) { - throw new Error('You must select an image to upload.') - } - - const file = event.target.files[0] - const fileExt = file.name.split('.').pop() - const fileName = `${Math.random()}.${fileExt}` - const filePath = `${fileName}` - - let { error: uploadError } = await supabase.storage.from('avatars').upload(filePath, file) - - if (uploadError) { - throw uploadError - } - - onUpload(filePath) - } catch (error) { - alert(error.message) - } finally { - setUploading(false) - } - } - - return ( -
    - {avatarUrl - {uploading ? "Uploading..." : ( - <> - - - - - - )} -
    - ) -} -``` - -### Add the new widget - -And then we can add the widget to the Account page: - -```jsx title="src/Account.js" -// Import the new component -import Avatar from './Avatar' - -// ... - -return ( -
    - {/* Add to the body */} - { - setAvatarUrl(url) - updateProfile({ username, website, avatar_url: url }) - }} - /> - {/* ... */} -
    -) -``` - -## Next steps - -At this stage you have a fully functional application! - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/with-redwoodjs.mdx b/web/docs/guides/with-redwoodjs.mdx deleted file mode 100644 index 7a46bb920db..00000000000 --- a/web/docs/guides/with-redwoodjs.mdx +++ /dev/null @@ -1,764 +0,0 @@ ---- -id: with-redwoodjs -title: 'Quickstart: RedwoodJS' -description: Learn how to use Supabase in your RedwoodJS App. -sidebar_label: RedwoodJS ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -## Intro - -For the sake of consistency with the other framework Quickstart examples, we'll build a RedwoodJS a little differently than normal. - -We **_won't use_** Prisma to connect to the Supabase Postgres database or [Prisma migrations](https://redwoodjs.com/docs/cli-commands#prisma-migrate) as one typically might in a Redwood app. -Instead, we'll rely on the Supabase client to do some of the work on the **web** side and use the client again on the **API** side to do data fetching as well. - -That means you will want to refrain from running any `yarn rw prisma migrate` commands and also double check your build commands on deployment to ensure Prisma won't reset your database. - -:::note -TLDR; Prisma currently doesn't support cross-schema foreign keys, so introspecting the schema fails due to how your Supabase `public` schema references the `auth.users`. -::: - -This example provides the steps to build a simple user management app (from scratch!) using Supabase and [RedwoodJS](https://redwoodjs.com/docs/introduction). It includes: - -- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data. -- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email). -- Supabase [Storage](/docs/guides/storage): users can upload a photo. -- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables. -- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data. - -By the end of this guide you'll have an app which allows users to login and update some basic profile details: - -![Supabase User Management example](/img/user-management-demo.png) - -:::note -Note: For RedwoodJS apps, port will be 8910 -::: - -### GitHub - -If you get stuck at any point, take a look at [this repo](https://github.com/redwoodjs/redwoodjs-supabase-quickstart). - - - -## About RedwoodJS - -A Redwood application is split into two parts: a frontend and a backend. This is represented as two node projects within a single monorepo. - -The frontend project is called **`web`** and the backend project is called **`api`**. For clarity, we will refer to these in prose as **"sides"**, i.e. the "web side" and the "api side". -They are separate projects because code on the `web side` will end up running in the user's browser while code on the `api side` will run on a server somewhere. - -:::note -Important: When this guide refers to "API", that means the Supabase API and when it refers to "api side", that means the RedwoodJS `api side`. -::: - -The **`api side`** is an implementation of a GraphQL API. The business logic is organized into "services" that represent their own internal API and can be called both from external GraphQL requests and other internal services. - -The **`web side`** is built with React. Redwood's router makes it simple to map URL paths to React "Page" components (and automatically code-split your app on each route). -Pages may contain a "Layout" component to wrap content. They also contain "Cells" and regular React components. -Cells allow you to declaratively manage the lifecycle of a component that fetches and displays data. - -:::note -For the sake of consistency with the other framework Quickstart examples, we'll build a RedwoodJS a little differently than normal. -We **_won't use_** Prisma to connect to the Supabase Postgres database or [Prisma migrations](https://redwoodjs.com/docs/cli-commands#prisma-migrate) as one typically might in a Redwood app. -Instead, we'll rely on the Supabase client to do some of the work on the **`web`** side and use the client again on the **`api`** side to do data fetching as well. -::: - -## Project set up - -Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase -and then creating a "schema" inside the database. - -:::note -When setting up Supabase, you'll interact with your project dashboard. However, most of the RedwoodJS setup steps will interact with the [Redwood CLI](https://redwoodjs.com/docs/cli-commands) to generate routes, pages, components, and more. -So be sure to have a terminal at the ready and in your project directory. -::: - -### Create a project - -1. Go to [app.supabase.com](https://app.supabase.com). -1. Click on "New Project". -1. Enter your project details. -1. Wait for the new database to launch. - -### Set up the database schema - -Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor, -or you can just copy/paste the SQL from below and run it yourself. - - - - -1. Go to the [SQL Editor](https://app.supabase.com/project/_/sql) page in the Dashboard. -2. Click **User Management Starter**. -3. Click **Run**. - - - - - - -```sql --- Create a table for public "profiles" -create table profiles ( - id uuid references auth.users not null, - updated_at timestamp with time zone, - username text unique, - avatar_url text, - website text, - - primary key (id), - unique(username), - constraint username_length check (char_length(username) >= 3) -); - -alter table profiles enable row level security; - -create policy "Public profiles are viewable by everyone." - on profiles for select - using ( true ); - -create policy "Users can insert their own profile." - on profiles for insert - with check ( auth.uid() = id ); - -create policy "Users can update own profile." - on profiles for update - using ( auth.uid() = id ); - --- Set up Realtime! -begin; - drop publication if exists supabase_realtime; - create publication supabase_realtime; -commit; -alter publication supabase_realtime add table profiles; - --- Set up Storage! -insert into storage.buckets (id, name) -values ('avatars', 'avatars'); - -create policy "Avatar images are publicly accessible." - on storage.objects for select - using ( bucket_id = 'avatars' ); - -create policy "Anyone can upload an avatar." - on storage.objects for insert - with check ( bucket_id = 'avatars' ); - -``` - - - - -#### Important Note about Prisma and Migrations - -:::note -Because this Quick Start does not use Prisma to manage the database schema, seed it, or run migrations, you **need** to take extra care when running some of the typical Redwood CLI commands. -::: - -### Get the API Keys - -Now that you've created some database tables, you are ready to insert data using the auto-generated API. -We just need to get the URL as well as the `anon`, `service_role` and `JWT_SECRET` keys from the API settings. - -1. Go to the [Settings](https://app.supabase.com/project/_/settings) page in the Dashboard. -2. Click **API** in the sidebar. -3. Find your API `URL`, `anon`, and `service_role` keys on this page. - - - -## Building the App - -Let's start building the RedwoodJS app from scratch. - -:::note -RedwoodJS requires Node.js (>=14.x <=16.x) and Yarn (>=1.15). -::: - -Make sure you have installed yarn since RedwoodJS relies on it to [manage its packages in workspaces](https://classic.yarnpkg.com/lang/en/docs/workspaces/) for its `web` and `api` "sides". - -### Initialize a RedwoodJS app - -We can use [Create Redwood App](https://redwoodjs.com/docs/quick-start) command to initialize -an app called `supabase-redwoodjs`: - -```bash -yarn create redwood-app supabase-redwoodjs -cd supabase-redwoodjs -``` - -While the app is installing, you should see: - -```bash -✔ Creating Redwood app - ✔ Checking node and yarn compatibility - ✔ Creating directory 'supabase-redwoodjs' -✔ Installing packages - ✔ Running 'yarn install'... (This could take a while) -✔ Convert TypeScript files to JavaScript -✔ Generating types - -Thanks for trying out Redwood! -``` - -Then let's install the only additional dependency [supabase-js](https://github.com/supabase/supabase-js) by running the `setup auth` command: - -```bash -yarn redwood setup auth supabase -``` - -When prompted: - -Overwrite existing /api/src/lib/auth.[jt]s? -::: - -Say, **yes** and it will setup the Supabase client in your app and also provide hooks used with Supabase authentication. - -```bash -✔ Generating auth lib... - ✔ Successfully wrote file `./api/src/lib/auth.js` - ✔ Adding auth config to web... - ✔ Adding auth config to GraphQL API... - ✔ Adding required web packages... - ✔ Installing packages... - ✔ One more thing... - - You will need to add your Supabase URL (SUPABASE_URL), public API KEY, - and JWT SECRET (SUPABASE_KEY, and SUPABASE_JWT_SECRET) to your .env file. -``` - -Next, we want to save the environment variables in a `.env`. -We need the `API URL` as well as the `anon` and `jwt_secret` keys that you copied [earlier](#get-the-api-keys). - -```bash title=".env" -SUPABASE_URL=YOUR_SUPABASE_URL -SUPABASE_KEY=YOUR_SUPABASE_ANON_KEY -SUPABASE_JWT_SECRET=YOUR_SUPABASE_JWT_SECRET -``` - -And finally, you will also need to save **just** the `web side` environment variables to the `redwood.toml`. - -```bash title="redwood.toml" -[web] - title = "Supabase Redwood Quickstart" - port = 8910 - apiProxyPath = "/.redwood/functions" - includeEnvironmentVariables = ["SUPABASE_URL", "SUPABASE_KEY"] -[api] - port = 8911 -[browser] - open = true -``` - -These variables will be exposed on the browser, and that's completely fine. -They allow your web app to initialize the Supabase client with your public anon key -since we have [Row Level Security](/docs/guides/auth#row-level-security) enabled on our Database. - -You'll see these being used to configure your Supabase client in `web/src/App.js`: - -```js title="web/src/App.js" -// ... Redwood imports -import { AuthProvider } from '@redwoodjs/auth' -import { createClient } from '@supabase/supabase-js' - -// ... - -const supabaseClient = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_KEY) - -const App = () => ( - - - - - - - - - -) - -export default App -``` - -And one optional step is to update the CSS file `web/src/index.css` to make the app look nice. -You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/react-user-management/src/index.css). - -### Start RedwoodJS and your first Page - -Let's test our setup at the moment by starting up the app: - -```bash -yarn rw dev -``` - -:::note -Note: You can also use the alias `rw` for `redwood`, as in `yarn rw` to run Redwood CLI commands -::: - -You should see a "Welcome to RedwoodJS" page and a message about not having any pages yet. - -So, let's create a "home" page: - -```bash -yarn rw generate page home / - -✔ Generating page files... - ✔ Successfully wrote file `./web/src/pages/HomePage/HomePage.stories.js` - ✔ Successfully wrote file `./web/src/pages/HomePage/HomePage.test.js` - ✔ Successfully wrote file `./web/src/pages/HomePage/HomePage.js` -✔ Updating routes file... -✔ Generating types ... -``` - -:::note -Note: the slash `/` is important here as it creates a root level route. -::: - -You can stop the `dev` server if you want; to see your changes, just be sure to run `yarn rw dev` again. - -You should see the `Home` page route in `web/src/Routes.js`: - -```bash title="web/src/Routes.js" -import { Router, Route } from '@redwoodjs/router' - -const Routes = () => { - return ( - - - - - ) -} - -export default Routes -``` - -### Set up a Login component - -Let's set up a Redwood component to manage logins and sign ups. We'll use Magic Links, so users can sign in with their email without using passwords. - -```bash -yarn rw g component auth - - ✔ Generating component files... - ✔ Successfully wrote file `./web/src/components/Auth/Auth.test.js` - ✔ Successfully wrote file `./web/src/components/Auth/Auth.stories.js` - ✔ Successfully wrote file `./web/src/components/Auth/Auth.js` - -``` - -Now, update the `Auth.js` component to contain: - -```jsx title="/web/src/components/Auth/Auth.js" -import { useState } from 'react' -import { useAuth } from '@redwoodjs/auth' - -const Auth = () => { - const { logIn } = useAuth() - const [loading, setLoading] = useState(false) - const [email, setEmail] = useState('') - - const handleLogin = async (email) => { - try { - setLoading(true) - const { error } = await logIn({ email }) - if (error) throw error - alert('Check your email for the login link!') - } catch (error) { - alert(error.error_description || error.message) - } finally { - setLoading(false) - } - } - - return ( -
    -
    -

    Supabase + RedwoodJS

    -

    Sign in via magic link with your email below

    -
    - setEmail(e.target.value)} - /> -
    -
    - -
    -
    -
    - ) -} - -export default Auth -``` - -### Set up an Account component - -After a user is signed in we can allow them to edit their profile details and manage their account. - -Let's create a new component for that called `Account.js`. - -```bash -yarn rw g component account - - ✔ Generating component files... - ✔ Successfully wrote file `./web/src/components/Account/Account.test.js` - ✔ Successfully wrote file `./web/src/components/Account/Account.stories.js` - ✔ Successfully wrote file `./web/src/components/Account/Account.js` -``` - -And then update the file to contain: - -```jsx title="web/src/components/Account/Account.js" -import { useState, useEffect } from 'react' -import { useAuth } from '@redwoodjs/auth' - -const Account = () => { - const { client: supabase, currentUser, logOut } = useAuth() - const [loading, setLoading] = useState(true) - const [username, setUsername] = useState(null) - const [website, setWebsite] = useState(null) - const [avatar_url, setAvatarUrl] = useState(null) - - useEffect(() => { - getProfile() - }, [supabase.auth.session]) - - async function getProfile() { - try { - setLoading(true) - const user = supabase.auth.user() - - let { data, error, status } = await supabase - .from('profiles') - .select(`username, website, avatar_url`) - .eq('id', user.id) - .single() - - if (error && status !== 406) { - throw error - } - - if (data) { - setUsername(data.username) - setWebsite(data.website) - setAvatarUrl(data.avatar_url) - } - } catch (error) { - alert(error.message) - } finally { - setLoading(false) - } - } - - async function updateProfile({ username, website, avatar_url }) { - try { - setLoading(true) - const user = supabase.auth.user() - - const updates = { - id: user.id, - username, - website, - avatar_url, - updated_at: new Date(), - } - - let { error } = await supabase.from('profiles').upsert(updates, { - returning: 'minimal', // Don't return the value after inserting - }) - - if (error) { - throw error - } - - alert('Updated profile!') - } catch (error) { - alert(error.message) - } finally { - setLoading(false) - } - } - - return ( -
    -
    -

    Supabase + RedwoodJS

    -

    Your profile

    -
    -
    - - -
    -
    - - setUsername(e.target.value)} - /> -
    -
    - - setWebsite(e.target.value)} - /> -
    - -
    - -
    - -
    - -
    -
    -
    -
    - ) -} - -export default Account -``` - -:::note -Note: You'll see the use of `useAuth()` several times in the quickstart. Redwood's `useAuth` hook provides convenient ways to access -logIn, logOut, currentUser, and access the `supabase` authenticate client. We'll use it to get an instance -of the supabase client to interact with your API. -::: - -### Update Home Page - -Now that we have all the components in place, let's update your `HomePage` page to use them: - -```jsx title="web/src/pages/HomePage/HomePage.js" -import { useAuth } from '@redwoodjs/auth' -import { MetaTags } from '@redwoodjs/web' - -import Account from 'src/components/Account' -import Auth from 'src/components/Auth' - -const HomePage = () => { - const { isAuthenticated } = useAuth() - - return ( - <> - - {!isAuthenticated ? : } - - ) -} - -export default HomePage -``` - -> What we're doing here is showing the sign in form if you aren't logged in and your account profile if you are. - -### Launch! - -Once that's done, run this in a terminal window to launch the `dev` server: - -```bash -yarn rw dev -``` - -And then open the browser to [localhost:8910](http://localhost:8910) and you should see the completed app. - -![Supabase RedwoodJS](/img/supabase-redwoodjs-demo.png) - -## Bonus: Profile photos - -Every Supabase project is configured with [Storage](/docs/guides/storage) for managing large files like photos and videos. - -### Create an upload widget - -Let's create an avatar for the user so that they can upload a profile photo. We can start by creating a new component: - -```bash -yarn rw g component avatar - ✔ Generating component files... - ✔ Successfully wrote file `./web/src/components/Avatar/Avatar.test.js` - ✔ Successfully wrote file `./web/src/components/Avatar/Avatar.stories.js` - ✔ Successfully wrote file `./web/src/components/Avatar/Avatar.js` -``` - -Now, update your Avatar component to contain the following widget: - -```jsx title="web/src/components/Avatar/Avatar.js" -import { useEffect, useState } from 'react' -import { useAuth } from '@redwoodjs/auth' - -const Avatar = ({ url, size, onUpload }) => { - const { client: supabase } = useAuth() - - const [avatarUrl, setAvatarUrl] = useState(null) - const [uploading, setUploading] = useState(false) - - useEffect(() => { - if (url) downloadImage(url) - }, [url]) - - async function downloadImage(path) { - try { - const { data, error } = await supabase.storage.from('avatars').download(path) - if (error) { - throw error - } - const url = URL.createObjectURL(data) - setAvatarUrl(url) - } catch (error) { - console.log('Error downloading image: ', error.message) - } - } - - async function uploadAvatar(event) { - try { - setUploading(true) - - if (!event.target.files || event.target.files.length === 0) { - throw new Error('You must select an image to upload.') - } - - const file = event.target.files[0] - const fileExt = file.name.split('.').pop() - const fileName = `${Math.random()}.${fileExt}` - const filePath = `${fileName}` - - let { error: uploadError } = await supabase.storage.from('avatars').upload(filePath, file) - - if (uploadError) { - throw uploadError - } - - onUpload(filePath) - } catch (error) { - alert(error.message) - } finally { - setUploading(false) - } - } - - return ( -
    - {avatarUrl ? ( - Avatar - ) : ( -
    - )} -
    - - -
    -
    - ) -} - -export default Avatar -``` - -### Add the new widget - -And then we can add the widget to the Account component: - -```jsx title="web/src/components/Account/Account.js" -// Import the new component -import Avatar from 'src/components/Avatar' - -// ... - -return ( -
    - {/* Add to the body */} - { - setAvatarUrl(url) - updateProfile({ username, website, avatar_url: url }) - }} - /> - {/* ... */} -
    -) -``` - -## Next steps - -At this stage you have a fully functional application! - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Sign in: [app.supabase.com](https://app.supabase.com) -- Learn more about [RedwoodJS](https://redwoodjs.com) -- Visit the [RedwoodJS Discourse Community](https://community.redwoodjs.com) diff --git a/web/docs/guides/with-solidjs.mdx b/web/docs/guides/with-solidjs.mdx deleted file mode 100644 index 953c44500e9..00000000000 --- a/web/docs/guides/with-solidjs.mdx +++ /dev/null @@ -1,526 +0,0 @@ ---- -id: with-solidjs -title: 'Quickstart: SolidJS' -description: Learn how to use Supabase in your SolidJS App. -sidebar_label: SolidJS ---- - -import Tabs from '@theme/Tabs' -import TabItem from '@theme/TabItem' - -## Intro - -This example provides the steps to build a simple user management app (from scratch!) using Supabase and Solid JS. It includes: - -- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data. -- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email). -- Supabase [Storage](/docs/guides/storage): users can upload a photo. -- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data. -- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables. - -By the end of this guide you'll have an app which allows users to login and update some basic profile details: - -![Supabase User Management example](/img/user-management-demo.png) - - - -## Project set up - -Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase -and then creating a "schema" inside the database. - -### Create a project - -1. Go to [app.supabase.com](https://app.supabase.com). -1. Click on "New Project". -1. Enter your project details. -1. Wait for the new database to launch. - -### Set up the database schema - -Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor, -or you can just copy/paste the SQL from below and run it yourself. - - - - -1. Go to the [SQL Editor](https://app.supabase.com/project/_/sql) page in the Dashboard. -2. Click **User Management Starter**. -3. Click **Run**. - - - - - - -```sql --- Create a table for public "profiles" -create table profiles ( - id uuid references auth.users not null, - updated_at timestamp with time zone, - username text unique, - avatar_url text, - website text, - - primary key (id), - unique(username), - constraint username_length check (char_length(username) >= 3) -); - -alter table profiles enable row level security; - -create policy "Public profiles are viewable by everyone." - on profiles for select - using ( true ); - -create policy "Users can insert their own profile." - on profiles for insert - with check ( auth.uid() = id ); - -create policy "Users can update own profile." - on profiles for update - using ( auth.uid() = id ); - --- Set up Realtime! -begin; - drop publication if exists supabase_realtime; - create publication supabase_realtime; -commit; -alter publication supabase_realtime add table profiles; - --- Set up Storage! -insert into storage.buckets (id, name) -values ('avatars', 'avatars'); - -create policy "Avatar images are publicly accessible." - on storage.objects for select - using ( bucket_id = 'avatars' ); - -create policy "Anyone can upload an avatar." - on storage.objects for insert - with check ( bucket_id = 'avatars' ); - -``` - - - - -### Get the API Keys - -Now that you've created some database tables, you are ready to insert data using the auto-generated API. -We just need to get the URL and `anon` key from the API settings. - -1. Go to the [Settings](https://app.supabase.com/project/_/settings) page in the Dashboard. -2. Click **API** in the sidebar. -3. Find your API `URL`, `anon`, and `service_role` keys on this page. - - - -## Building the App - -Let's start building the SolidJS app from scratch. - -### Initialize a SolidJS app - -We can use [Degit](https://github.com/Rich-Harris/degit) to initialize an app called `supabase-solid`: - -```bash -npx degit solidjs/templates/js supabase-solid -cd supabase-solid -``` - -Then let's install the only additional dependency: [supabase-js](https://github.com/supabase/supabase-js) - -```bash -npm install @supabase/supabase-js -``` - -And finally we want to save the environment variables in a `.env`. -All we need are the API URL and the `anon` key that you copied [earlier](#get-the-api-keys). - -```bash title=".env" -VITE_SUPABASE_URL=YOUR_SUPABASE_URL -VITE_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY -``` - -Now that we have the API credentials in place, let's create a helper file to initialize the Supabase client. These variables will be exposed -on the browser, and that's completely fine since we have [Row Level Security](/docs/guides/auth#row-level-security) enabled on our Database. - -```js title="src/supabaseClient.jsx" -import { createClient } from '@supabase/supabase-js' - -const supabaseUrl = import.meta.env.VITE_SUPABASE_URL -const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY - -export const supabase = createClient(supabaseUrl, supabaseAnonKey) -``` - -And one optional step is to update the CSS file `src/index.css` to make the app look nice. -You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/react-user-management/src/index.css). - -### Set up a Login component - -Let's set up a SolidJS component to manage logins and sign ups. We'll use Magic Links, so users can sign in with their email without using passwords. - -```jsx title="/src/Auth.jsx" -import { createSignal } from 'solid-js' -import { supabase } from './supabaseClient' - -export default function Auth() { - const [loading, setLoading] = createSignal(false) - const [email, setEmail] = createSignal('') - - const handleLogin = async (e) => { - e.preventDefault() - - try { - setLoading(true) - const { error } = await supabase.auth.signIn({ email: email() }) - if (error) throw error - alert('Check your email for the login link!') - } catch (error) { - alert(error.error_description || error.message) - } finally { - setLoading(false) - } - } - - return ( -
    -
    -

    Supabase + SolidJS

    -

    Sign in via magic link with your email below

    - {loading() ? ( - 'Sending magic link...' - ) : ( -
    - - setEmail(e.target.value)} - /> - - - )} -
    -
    - ) -} -``` - -### Account page - -After a user is signed in we can allow them to edit their profile details and manage their account. - -Let's create a new component for that called `Account.js`. - -```jsx title="src/Account.jsx" -import { createSignal, createEffect } from 'solid-js' -import { supabase } from './supabaseClient' - -const Account = (props) => { - const [loading, setLoading] = createSignal(true) - const [username, setUsername] = createSignal(null) - const [website, setWebsite] = createSignal(null) - const [avatar_url, setAvatarUrl] = createSignal(null) - - createEffect(() => { - props.session - getProfile() - }) - - const getProfile = async () => { - try { - setLoading(true) - const user = supabase.auth.user() - - let { data, error, status } = await supabase - .from('profiles') - .select(`username, website, avatar_url`) - .eq('id', user.id) - .single() - - if (error && status !== 406) { - throw error - } - - if (data) { - setUsername(data.username) - setWebsite(data.website) - setAvatarUrl(data.avatar_url) - } - } catch (error) { - alert(error.message) - } finally { - setLoading(false) - } - } - - const updateProfile = async (e) => { - e.preventDefault() - - try { - setLoading(true) - const user = supabase.auth.user() - - const updates = { - id: user.id, - username: username(), - website: website(), - avatar_url: avatar_url(), - updated_at: new Date(), - } - - let { error } = await supabase.from('profiles').upsert(updates, { - returning: 'minimal', // Don't return the value after inserting - }) - - if (error) { - throw error - } - } catch (error) { - alert(error.message) - } finally { - setLoading(false) - } - } - - return ( -
    - {loading() ? ( - 'Saving ...' - ) : ( -
    -
    Email: {props.session.user.email}
    -
    - - setUsername(e.target.value)} - /> -
    -
    - - setWebsite(e.target.value)} - /> -
    -
    - -
    - - )} - -
    - ) -} - -export default Account -``` - -### Launch! - -Now that we have all the components in place, let's update `App.js`: - -```jsx title="src/App.jsx" -import './index.css' -import { createSignal, createEffect } from 'solid-js' -import { supabase } from './supabaseClient' -import Auth from './Auth' -import Account from './Account' - -export default () => { - const [session, setSession] = createSignal(null) - - createEffect(() => { - setSession(supabase.auth.session()) - - supabase.auth.onAuthStateChange((_event, session) => { - setSession(session) - }) - }) - - return ( -
    - {!session() ? : } -
    - ) -} -``` - -Once that's done, run this in a terminal window: - -```bash -npm start -``` - -And then open the browser to [localhost:3000](http://localhost:3000) and you should see the completed app. - -![Supabase SolidJS](/img/supabase-solidjs-demo.png) - -## Bonus: Profile photos - -Every Supabase project is configured with [Storage](/docs/guides/storage) for managing large files like photos and videos. - -### Create an upload widget - -Let's create an avatar for the user so that they can upload a profile photo. We can start by creating a new component: - -```jsx title="src/Avatar.jsx" -import { createEffect, createSignal } from 'solid-js' -import { supabase } from './supabaseClient' - -export default (props) => { - const [avatarUrl, setAvatarUrl] = createSignal(null) - const [uploading, setUploading] = createSignal(false) - - createEffect(() => { - if (props.url()) downloadImage(props.url()) - }) - - const downloadImage = async (path) => { - try { - const { data, error } = await supabase.storage.from('avatars').download(path) - if (error) { - throw error - } - const url = URL.createObjectURL(data) - setAvatarUrl(url) - } catch (error) { - console.log('Error downloading image: ', error.message) - } - } - - const uploadAvatar = async (event) => { - try { - setUploading(true) - - if (!event.target.files || event.target.files.length === 0) { - throw new Error('You must select an image to upload.') - } - - const file = event.target.files[0] - const fileExt = file.name.split('.').pop() - const fileName = `${Math.random()}.${fileExt}` - const filePath = `${fileName}` - - let { error: uploadError } = await supabase.storage.from('avatars').upload(filePath, file) - - if (uploadError) { - throw uploadError - } - - props.onUpload(event, filePath) - } catch (error) { - alert(error.message) - } finally { - setUploading(false) - } - } - - return ( -
    - {avatarUrl() - {uploading() ? ( - 'Uploading...' - ) : ( - <> - - - - - - )} -
    - ) -} -``` - -### Add the new widget - -And then we can add the widget to the Account page: - -```jsx title="src/Account.jsx" -// Import the new component -import Avatar from './Avatar' - -// ... - -return ( -
    - {/* Add to the body */} - { - setAvatarUrl(url) - updateProfile(e) - }} - /> - {/* ... */} -
    -) -``` - -## Next steps - -At this stage you have a fully functional application! - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/with-svelte.mdx b/web/docs/guides/with-svelte.mdx deleted file mode 100644 index b1f5c3463ec..00000000000 --- a/web/docs/guides/with-svelte.mdx +++ /dev/null @@ -1,537 +0,0 @@ ---- -id: with-svelte -title: "Quickstart: Svelte" -description: Learn how to use Supabase in your Svelte App. -sidebar_label: Svelte ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Intro - -This example provides the steps to build a simple user management app (from scratch!) using Supabase and Svelte. It includes: - -- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data. -- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email). -- Supabase [Storage](/docs/guides/storage): users can upload a photo. -- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data. -- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables. - -By the end of this guide you'll have an app which allows users to login and update some basic profile details: - -![Supabase User Management example](/img/user-management-demo.png) - -### GitHub -Whenever you get stuck at any point, take a look at [this repo](https://github.com/yustarandomname/svelte-supabase-quickstart). - -## Project set up - -Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase -and then creating a "schema" inside the database. - -### Create a project - -1. Go to [app.supabase.com](https://app.supabase.com). -1. Click on "New Project". -1. Enter your project details. -1. Wait for the new database to launch. - - -### Set up the database schema - -Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor, -or you can just copy/paste the SQL from below and run it yourself. - - - - -1. Go to the [SQL Editor](https://app.supabase.com/project/_/sql) page in the Dashboard. -2. Click **User Management Starter**. -3. Click **Run**. - - - - - - -```sql --- Create a table for public "profiles" -create table profiles ( - id uuid references auth.users not null, - updated_at timestamp with time zone, - username text unique, - avatar_url text, - website text, - - primary key (id), - unique(username), - constraint username_length check (char_length(username) >= 3) -); - -alter table profiles enable row level security; - -create policy "Public profiles are viewable by everyone." - on profiles for select - using ( true ); - -create policy "Users can insert their own profile." - on profiles for insert - with check ( auth.uid() = id ); - -create policy "Users can update own profile." - on profiles for update - using ( auth.uid() = id ); - --- Set up Realtime! -begin; - drop publication if exists supabase_realtime; - create publication supabase_realtime; -commit; -alter publication supabase_realtime add table profiles; - --- Set up Storage! -insert into storage.buckets (id, name) -values ('avatars', 'avatars'); - -create policy "Avatar images are publicly accessible." - on storage.objects for select - using ( bucket_id = 'avatars' ); - -create policy "Anyone can upload an avatar." - on storage.objects for insert - with check ( bucket_id = 'avatars' ); - -``` - - - - - -### Get the API Keys - - -Now that you've created some database tables, you are ready to insert data using the auto-generated API. -We just need to get the URL and `anon` key from the API settings. - -1. Go to the [Settings](https://app.supabase.com/project/_/settings) page in the Dashboard. -2. Click **API** in the sidebar. -3. Find your API `URL`, `anon`, and `service_role` keys on this page. - - - -## Building the App - -Let's start building the Svelte app from scratch. - -### Initialize a Svelte app - -We can use the [Quickstart Svelte Template](https://svelte.dev/blog/the-easiest-way-to-get-started) to initialize -an app called `supabase-svelte`: - -```bash -npx degit sveltejs/template supabase-svelte -cd supabase-svelte -``` - -Then let's install the only additional dependency: [supabase-js](https://github.com/supabase/supabase-js) - -```bash -npm install @supabase/supabase-js -``` - -And finally we want to save the environment variables in a `.env`. -All we need are the API URL and the `anon` key that you copied [earlier](#get-the-api-keys). - -```bash title=".env" -SVELTE_APP_SUPABASE_URL=YOUR_SUPABASE_URL -SVELTE_APP_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY -``` - -Our app is almost functional, to make svelte work with supabase and .env files we first need to change the `rollup.config.js` file a bit. -Supabase imports `json` files, to convert .json files to ES6 modules we need the `@rollup/plugin-json` install it by running: - -```bash - npm install --save-dev @rollup/plugin-json -``` - -Furthermore, to use the .env with svelte we need another rollup plugin. Install: - -```bash - npm install --save-dev dotenv @rollup/plugin-replace -``` - -and add these plugins to the `rollup.config.js` file. - -```js title="rollup.config.js" - import { config } from 'dotenv'; - import replace from '@rollup/plugin-replace'; - import json from '@rollup/plugin-json' - - export default { - plugins: [ - replace({ - __api: JSON.stringify({ - env: { - isProd: production, - ...config().parsed // attached the .env config - } - }), - delimiters: ['', ''] - }), - json(), - // ... - ], - // ... - } -``` - -Now that we have the API credentials in place, let's create a helper file to initialize the Supabase client. These variables will be exposed -on the browser, and that's completely fine since we have [Row Level Security](/docs/guides/auth#row-level-security) enabled on our Database. - -```js title="src/supabaseClient.js" -import { createClient } from '@supabase/supabase-js' - -const supabaseUrl = __api.env.SVELTE_APP_SUPABASE_URL -const supabaseAnonKey = __api.env.SVELTE_APP_SUPABASE_ANON_KEY - -export const supabase = createClient(supabaseUrl, supabaseAnonKey) -``` - -And one optional step is to update the CSS file `public/global.css` to make the app look nice. -You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/react-user-management/src/index.css). - -### Set up a Login component - -Let's set up a Svelte component to manage logins and sign ups. We'll use Magic Links, so users can sign in with their email without using passwords. - -```html title="/src/Auth.svelte" - - -
    -
    -

    Supabase + Svelte

    -

    Sign in via magic link with your email below

    -
    - -
    -
    - -
    -
    - -``` - -### User store -To access the user information in other places, we use a writable store. Create a new file called `sessionStore.js` -```javascript title="src/sessionStore.js" -import { writable } from 'svelte/store'; - -export const user = writable(false); -``` - - -### Account page - -After a user is signed in we can allow them to edit their profile details and manage their account. -Let's create a new component for that called `Profile.svelte`. - -```html title="src/Profile.svelte" - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - -
    - -
    - -
    - -
    - -``` - - - -### Launch! - -Now that we have all the components in place, let's update `App.svelte`: - -```html title="src/App.svelte" - - -
    - {#if $user} - - {:else} - - {/if} -
    -``` - -Once that's done, run this in a terminal window: - -```bash -npm run dev -``` - -And then open the browser to [localhost:5000](http://localhost:5000) and you should see the completed app. - -> ⚠️ WARNING: Svelte uses by default `port 5000`, Supabase uses `port 3000`. To change the redirection port for supabase go to: `Authentication > Settings` and change the `Site Url` to `localhost:5000` - -![Supabase Svelte](/img/supabase-svelte-demo.png) - -## Bonus: Profile photos - -Every Supabase project is configured with [Storage](/docs/guides/storage) for managing large files like photos and videos. - -### Create an upload widget - -Let's create an avatar for the user so that they can upload a profile photo. We can start by creating a new component: - -```html title="src/Avatar.svelte" - - -
    - {#if path} - Avatar - {:else} -
    - {/if} - -
    - - -
    -
    -``` - - -### Add the new widget - -And then we can add the widget to the Account page: - - -```html title="src/Profile.svelte" - - -
    - - - - - - -``` - -## Next steps - -At this stage you have a fully functional application! - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/with-sveltekit.mdx b/web/docs/guides/with-sveltekit.mdx deleted file mode 100644 index ddf83b7f853..00000000000 --- a/web/docs/guides/with-sveltekit.mdx +++ /dev/null @@ -1,500 +0,0 @@ ---- -id: with-sveltekit -title: "Quickstart: SvelteKit" -description: Learn how to use Supabase in your SvelteKit App. -sidebar_label: SvelteKit ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Intro - -This example provides the steps to build a simple user management app (from scratch!) using Supabase and Svelte. It includes: - -- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data. -- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email). -- Supabase [Storage](/docs/guides/storage): users can upload a photo. -- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data. -- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables. - -By the end of this guide you'll have an app which allows users to login and update some basic profile details: - -![Supabase User Management example](/img/user-management-demo.png) - -### Github -Whenever you get stuck at any point, take a look at [this repo](https://github.com/yustarandomname/svelte-supabase-quickstart). - -## Project set up - -Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase -and then creating a "schema" inside the database. - -### Create a project - -1. Go to [app.supabase.com](https://app.supabase.com). -1. Click on "New Project". -1. Enter your project details. -1. Wait for the new project to launch. - - -### Set up the database schema - -Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor, -or you can just copy/paste the SQL from below and run it yourself. - - - - -1. Go to the [SQL Editor](https://app.supabase.com/project/_/sql) page in the Dashboard. -2. Click **User Management Starter**. -3. Click **Run**. - - - - - - -```sql --- Create a table for public "profiles" -create table profiles ( - id uuid references auth.users not null, - updated_at timestamp with time zone, - username text unique, - avatar_url text, - website text, - - primary key (id), - unique(username), - constraint username_length check (char_length(username) >= 3) -); - -alter table profiles enable row level security; - -create policy "Public profiles are viewable by everyone." - on profiles for select - using ( true ); - -create policy "Users can insert their own profile." - on profiles for insert - with check ( auth.uid() = id ); - -create policy "Users can update own profile." - on profiles for update - using ( auth.uid() = id ); - --- Set up Realtime! -begin; - drop publication if exists supabase_realtime; - create publication supabase_realtime; -commit; -alter publication supabase_realtime add table profiles; - --- Set up Storage! -insert into storage.buckets (id, name) -values ('avatars', 'avatars'); - -create policy "Avatar images are publicly accessible." - on storage.objects for select - using ( bucket_id = 'avatars' ); - -create policy "Anyone can upload an avatar." - on storage.objects for insert - with check ( bucket_id = 'avatars' ); - -``` - - - - - -### Get the API Keys - - -Now that you've created some database tables, you are ready to insert data using the auto-generated API. -We just need to get the URL and `anon` key from the API settings. - -1. Go to the [Settings](https://app.supabase.com/project/_/settings) page in the Dashboard. -2. Click **API** in the sidebar. -3. Find your API `URL`, `anon`, and `service_role` keys on this page. - - - -## Building the App - -Let's start building the Svelte app from scratch. - -### Initialize a Svelte app - -We can use the [SvelteKit Skeleton Project](https://kit.svelte.dev/docs) to initialize -an app called `supabase-sveltekit` (for this tutorial you do not need TypeScript, ESLint, Prettier, or Playwright): - -```bash -npm create svelte supabase-sveltekit -cd supabase-sveltekit -npm install -``` - -Then let's install the only additional dependency: [supabase-js](https://github.com/supabase/supabase-js) - -```bash -npm install @supabase/supabase-js -``` - -And finally we want to save the environment variables in a `.env`. -All we need are the `SUPABASE_URL` and the `SUPABASE_KEY` key that you copied [earlier](#get-the-api-keys). - -```bash title=".env" -VITE_SUPABASE_URL="YOUR_SUPABASE_URL" -VITE_SUPABASE_ANON_KEY="YOUR_SUPABASE_KEY" -``` - -Now that we have the API credentials in place, let's create a helper file to initialize the Supabase client. These variables will be exposed -on the browser, and that's completely fine since we have [Row Level Security](/docs/guides/auth#row-level-security) enabled on our Database. - -```js title="lib/supabaseClient.js" -import { createClient } from '@supabase/supabase-js' - -const supabaseUrl = import.meta.env.VITE_SUPABASE_URL -const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY - -export const supabase = createClient(supabaseUrl, supabaseAnonKey) -``` - -And one optional step is to update the CSS file `public/global.css` to make the app look nice. -You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/react-user-management/src/index.css). - -### Set up a Login component - -Let's set up a Svelte component to manage logins and sign ups. We'll use Magic Links, so users can sign in with their email without using passwords. - -```html title="lib/Auth.svelte" - - -
    -
    -

    Supabase + Svelte

    -

    Sign in via magic link with your email below

    -
    - -
    -
    - -
    -
    - -``` - -### User store -To access the user information in other places, we use a writable store. Create a new file called `sessionStore.js` -```javascript title="lib/sessionStore.js" -import { writable } from 'svelte/store' - -export const user = writable(false) -``` - - -### Account page - -After a user is signed in we can allow them to edit their profile details and manage their account. -Let's create a new component for that called `Profile.svelte`. - -```html title="lib/Profile.svelte" - - -
    -
    - - -
    -
    - - -
    -
    - - -
    - -
    - -
    - -
    - -
    - -``` - - - -### Launch! - -Now that we have all the components in place, let's update `src/routes/index.svelte`: - -```html title="src/routes/index.svelte" - - -
    - {#if $user} - - {:else} - - {/if} -
    -``` - -Once that's done, run this in a terminal window: - -```bash -npm run dev -``` - -And then open the browser to [localhost:3000](http://localhost:3000) and you should see the completed app. - -![Supabase Svelte](/img/supabase-svelte-demo.png) - -## Bonus: Profile photos - -Every Supabase project is configured with [Storage](/docs/guides/storage) for managing large files like photos and videos. - -### Create an upload widget - -Let's create an avatar for the user so that they can upload a profile photo. We can start by creating a new component: - -```html title="lib/Avatar.svelte" - - -
    - {#if path} - Avatar - {:else} -
    - {/if} - -
    - - -
    -
    -``` - - -### Add the new widget - -And then we can add the widget to the Account page: - - -```html title="$lib/Profile.svelte" - - -
    - - - - - - -``` - -## Next steps - -At this stage you have a fully functional application! - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/guides/with-vue-3.mdx b/web/docs/guides/with-vue-3.mdx deleted file mode 100644 index c954e23927f..00000000000 --- a/web/docs/guides/with-vue-3.mdx +++ /dev/null @@ -1,590 +0,0 @@ ---- -id: with-vue-3 -title: "Quickstart: Vue 3" -description: Learn how to use Supabase in your Vue 3 App. -sidebar_label: "Vue 3" ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## Intro - -This example provides the steps to build a simple user management app (from scratch!) using Supabase and Vue 3. It includes: - -- Supabase [Database](/docs/guides/database): a Postgres database for storing your user data. -- Supabase [Auth](/docs/guides/auth): users can sign in with magic links (no passwords, only email). -- Supabase [Storage](/docs/guides/storage): users can upload a photo. -- [Row Level Security](/docs/guides/auth#row-level-security): data is protected so that individuals can only access their own data. -- Instant [APIs](/docs/guides/api): APIs will be automatically generated when you create your database tables. - -By the end of this guide you'll have an app which allows users to login and update some basic profile details: - -![Supabase User Management example](/img/user-management-demo.png) - -### GitHub -Whenever you get stuck at any point, take a look at [this repo](https://github.com/zernonia/supabase-vue-3). - -## Project set up - -Before we start building we're going to set up our Database and API. This is as simple as starting a new Project in Supabase -and then creating a "schema" inside the database. - -### Create a project - -1. Go to [app.supabase.com](https://app.supabase.com). -1. Click on "New Project". -1. Enter your project details. -1. Wait for the new database to launch. - - -### Set up the database schema - -Now we are going to set up the database schema. We can use the "User Management Starter" quickstart in the SQL Editor, -or you can just copy/paste the SQL from below and run it yourself. - - - - -1. Go to the [SQL Editor](https://app.supabase.com/project/_/sql) page in the Dashboard. -2. Click **User Management Starter**. -3. Click **Run**. - - - - - - -```sql --- Create a table for public "profiles" -create table profiles ( - id uuid references auth.users not null, - updated_at timestamp with time zone, - username text unique, - avatar_url text, - website text, - - primary key (id), - unique(username), - constraint username_length check (char_length(username) >= 3) -); - -alter table profiles enable row level security; - -create policy "Public profiles are viewable by everyone." - on profiles for select - using ( true ); - -create policy "Users can insert their own profile." - on profiles for insert - with check ( auth.uid() = id ); - -create policy "Users can update own profile." - on profiles for update - using ( auth.uid() = id ); - --- Set up Realtime! -begin; - drop publication if exists supabase_realtime; - create publication supabase_realtime; -commit; -alter publication supabase_realtime add table profiles; - --- Set up Storage! -insert into storage.buckets (id, name) -values ('avatars', 'avatars'); - -create policy "Avatar images are publicly accessible." - on storage.objects for select - using ( bucket_id = 'avatars' ); - -create policy "Anyone can upload an avatar." - on storage.objects for insert - with check ( bucket_id = 'avatars' ); - -``` - - - - - -### Get the API Keys - - -Now that you've created some database tables, you are ready to insert data using the auto-generated API. -We just need to get the URL and `anon` key from the API settings. - -1. Go to the [Settings](https://app.supabase.com/project/_/settings) page in the Dashboard. -2. Click **API** in the sidebar. -3. Find your API `URL`, `anon`, and `service_role` keys on this page. - - - -## Building the App - -Let's start building the Vue 3 app from scratch. - -### Initialize a Vue 3 app - -We can quickly use [Vite with Vue 3 Template](https://vitejs.dev/guide/#scaffolding-your-first-vite-project) to initialize -an app called `supabase-vue-3`: - -```bash -# npm 6.x -npm init @vitejs/app supabase-vue-3 --template vue - -# npm 7+, extra double-dash is needed: -npm init @vitejs/app supabase-vue-3 -- --template vue - -cd supabase-vue-3 -``` - -Then let's install the only additional dependency: [supabase-js](https://github.com/supabase/supabase-js) - -```bash -npm install @supabase/supabase-js -``` - -And finally we want to save the environment variables in a `.env`. -All we need are the API URL and the `anon` key that you copied [earlier](#get-the-api-keys). - -```bash title=".env" -VITE_SUPABASE_URL=YOUR_SUPABASE_URL -VITE_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_KEY -``` - -Now that we have the API credentials in place, let's create a helper file to initialize the Supabase client. These variables will be exposed -on the browser, and that's completely fine since we have [Row Level Security](/docs/guides/auth#row-level-security) enabled on our Database. - -```js title="src/supabase.js" -import { createClient } from '@supabase/supabase-js' - -const supabaseUrl = import.meta.env.VITE_SUPABASE_URL -const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY - -export const supabase = createClient(supabaseUrl, supabaseAnonKey) -``` - -And one optional step is to update the CSS file `src/assets/main.css` to make the app look nice. -You can find the full contents of this file [here](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/react-user-management/src/index.css). - -```javascript title="src/main.js" -import { createApp } from "vue" -import App from "./App.vue" -import "./assets/main.css" - -createApp(App).mount("#app") -``` - - - -### Set up a Login component - -Let's set up a Vue component to manage logins and sign ups. We'll use Magic Links, so users can sign in with their email without using passwords. - -```html title="/src/components/Auth.vue" - - - -``` - -### User store -To access the user information in other places, we use a reactive store. Create a new file called `store.js` and utilize Vue 3 `reactive` functionalities. -```javascript title="src/store.js" -import { reactive } from "vue" - -export const store = reactive({ - user: {}, -}) -``` - - -### Account page - -After a user is signed in we can allow them to edit their profile details and manage their account. -Let's create a new component for that called `Profile.vue`. - -```html title="src/components/Profile.vue" - - - - -``` - - - -### Launch! - -Now that we have all the components in place, let's update `App.vue`: - -```html title="src/App.vue" - - - - -``` - -Once that's done, run this in a terminal window: - -```bash -npm run dev -``` - -And then open the browser to [localhost:3000](http://localhost:3000) and you should see the completed app. - -![Supabase Vue 3](/img/supabase-vue-3-demo.png) - -## Bonus: Profile photos - -Every Supabase project is configured with [Storage](/docs/guides/storage) for managing large files like photos and videos. - -### Create an upload widget - -Let's create an avatar for the user so that they can upload a profile photo. We can start by creating a new component: - -```html title="src/components/Avatar.vue" - - - -``` - - -### Add the new widget - -And then we can add the widget to the Account page: - - -```html title="src/Profile.vue" - - - -``` - -## Next steps - -At this stage you have a fully functional application! - -- Got a question? [Ask here](https://github.com/supabase/supabase/discussions). -- Sign in: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/handbook/contributing.mdx b/web/docs/handbook/contributing.mdx deleted file mode 100644 index e6ad5dfa399..00000000000 --- a/web/docs/handbook/contributing.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -id: contributing -title: Contributing -description: Want to help? ---- - -import Sponsors from '@site/src/components/Sponsors' - -## How to contribute - -Supabase has many [open source repos](https://github.com/orgs/supabase/repositories). Some of the more popular ones are: - - [Supabase](https://github.com/supabase/supabase) - Our Dashboard, Websites, and example apps - - [Supabase-js](https://github.com/supabase/supabase-js) - A clientside library written in Typescript - - [Gotrue](https://github.com/supabase/gotrue) - Our auth server, written in Go - - [Realtime](https://github.com/supabase/realtime) - A server for streaming changes from Postgres, written in Elixir - - [browse all](https://github.com/orgs/supabase/repositories) - -Want to contribute? Why not jump into our GitHub repo and: - -- [Sponsor Supabase](https://github.com/sponsors/supabase). -- [Answer Discussions](https://github.com/supabase/supabase/discussions). -- Submit an issue to one of our [repos](https://github.com/orgs/supabase/repositories) -- Report a performance issue or a part of the documentation that you find confusing. -- Create a pull request in one of our [repos](https://github.com/orgs/supabase/repositories) -- [Translate our Readme](https://github.com/supabase/supabase/issues/1341). -- Try our products and give feedback. -- Spread the word if you like what we are doing. - - -## Sponsors - - \ No newline at end of file diff --git a/web/docs/handbook/introduction.mdx b/web/docs/handbook/introduction.mdx deleted file mode 100644 index 69d9bb2bcae..00000000000 --- a/web/docs/handbook/introduction.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: introduction -title: Supabase Handbook -description: 'The Supabase public handbook and manifesto' ---- - -Supabase is thinking in public. Everything is online, no matter how raw the current state of things. - -This is our public handbook and manifesto. We are completely opensource and this means that you, our users, are also our team members. - ---- - -## Opensource - -Wherever we can we will support existing opensource tools and libraries. diff --git a/web/docs/handbook/supasquad.mdx b/web/docs/handbook/supasquad.mdx deleted file mode 100644 index 90d66f74820..00000000000 --- a/web/docs/handbook/supasquad.mdx +++ /dev/null @@ -1,83 +0,0 @@ ---- -id: supasquad -title: SupaSquad -description: Supabase Advocate program ---- - -The SupaSquad is an official Supabase advocate program where community members help build and manage the Supabase community. - -- Official recognition in the Supabase community. -- Direct connection to the Supabase team. -- Help steer the Supabase community. - -![Supabase SupaSquad](/img/supabase-squad.png) - -## Requirements - -As a member of the Squad, you choose the approach where you'll provide the most value. -You can help in one of five ways: - -### Maintainer - -Help maintain Supabase repositories. This includes building client libraries, managing issues, and fixing bugs. - -### Expert - -Answer user questions on GitHub [Discussions](https://github.com/supabase/supabase/discussions), [Discord](https://discord.supabase.com), and various other social platforms. - -### Advocate - -Spread the word on social channels and help to answer Supabase-related questions in the broader community and social channels. - -### Builder - -Build Supabase examples, blog about them, and them add to the [SupaSquad GitHub Org](https://github.com/supasquad). - -### Author - -Write guest blog posts, create documentation, and help Supabase global expansion through translation. - -### Moderator - -Help us maintain the community guidelines in our GitHub and Community-led communities such as [Discord](https://discord.supabase.com), [Reddit](https://reddit.com/r/Supabase/), -[StackOverflow](https://stackoverflow.com/questions/tagged/supabase), etc. - -## Benefits for SupaSquad members - -- Access to a Supabase Discord channel providing direct communication with the team, Discord badges, and elevated privileges. -- Special AMA sessions with members of the Supabase team. -- Monthly DevRel committee call with industry-leading Developer Advocates (many of whom are [angel investors](https://supabase.com/blog/2021/03/25/angels-of-supabase)), where you can learn from the best. -- We'll help you build your audience by promoting content via the Supabase social channels. -- Featured profile on Supabase website. -- Early access to new features (and the opportunity to provide feedback to the team!). -- Free credits that you can use for Squad efforts. -- Direct access to members of the Supabase team for questions, suggestions, etc. -- Help shape the future of the program. -- Invited to the [SupaSquad GitHub Org](https://github.com/supasquad) to collaborate with the other squad members. -- Exclusive Supabase Team swag drops are usually exclusively reserved for the Supabase core team. - -## How to join - - -1. Apply to join the program using [this form](https://airtable.com/shr0FtLqLfhpuEya8). -2. We will start taking interviewing members from `1 September 2021`. -3. Entry is capped to 20 founding members so we can grow the community at a healthy pace and provide a great experience to all new users. -4. Membership is valid for one year, and can be renewed every year. - - -## FAQs - -
    - Why are you only admitting 20 new members? - The entire Supabase team is only 20 people, so as you can imagine adding another 20 people sounds like a lot to us! We wish we could admit everyone who wanted to join. - But we also want to make sure everyone who joins the Squad has an awesome experience. In the future we will probably expand the intake to include a monthly quota. -
    -
    - What is expected? - Mostly just enthusiasm. If you are interested in Open Source and want to get involved, the SupaSquad program is a great channel. You'll be given opportunities to contribute - to the community in whatever ways match your skillset. -
    -
    - What if I become too busy to contribute? - No worries! The program isn't a job. It's just an opportunity to build your skillset and audience within the Supabase ecosystem. -
    \ No newline at end of file diff --git a/web/docs/learn/auth-deep-dive/google-oauth.md b/web/docs/learn/auth-deep-dive/google-oauth.md deleted file mode 100644 index cb6915f3e84..00000000000 --- a/web/docs/learn/auth-deep-dive/google-oauth.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -id: auth-google-oauth -title: 'Part Five: Google Oauth' -description: 'Supabase Deep Dive Part 5: Google OAuth Provider' ---- - -### About - -How to add Google OAuth Logins to your Supabase Application. - -### Watch - - - -### Logging in with external OAuth providers - -Connecting social logins such as Google, GitHub, or Facebook couldn't be easier. In this guide we'll walk you through the process of connecting Google, but the process is basically the same for all of the providers which includes: azure, bitbucket, github, gitlab, facebook, and google. - -First you'll need to create a google project inside their [cloud console](https://console.cloud.google.com/home/dashboard), in other providers they may refer to this as an "app" and is usually available on the company's developer portal. - -![Create a new Google Project inside cloud console](/img/auth-5-1.png) - -Once you have a project, type "OAuth" into the search bar and open up "OAuth Consent Screen" - -![Open the OAuth consent screen](/img/auth-5-2.png) - -Select 'External' and proceed to fill out the rest of the form fields - -![Select External on the OAuth form](/img/auth-5-3.png) - -Next open up Credentials page on the left - -![Open up Credentials page](/img/auth-5-4.png) - -And click to create a new set of credentials, select OAuth client ID as the option - -![Create new oauth client id credentials](/img/auth-5-5.png) - -Now choose Web Application (assuming you're creating a web app) and in the Authorized redirect URI section you need to add: `https://.supabase.co/auth/v1/callback`. You can find your Supabase URL in Settings > API inside the Supabase dashboard. - -![Add your redirect URI](/img/auth-5-6.png) - -Now you can grab the client ID and secret from the popup, and insert them into the google section inside the Supabase dashboard in Auth > Settings: - -![take client id and secret](/img/auth-5-7.png) - -![insert client id and secret into supabase dashboard in auth > auth](/img/auth-5-8.png) - -Hit save. Now you should be able to navigate in the browser to: - -``` -https://.supabase.co/auth/v1/authorize?provider=google -``` - -And log in to your service using any google or gmail account. - -You can additionally add a query parameter `redirect_to=` to the end of the URL for example: - -``` -https://.supabase.co/auth/v1/authorize?provider=google&redirect_to=http://localhost:3000/welcome -``` - -But make sure any URL you enter here is on the same host as the site url that you have entered on the Auth > Settings page on the Supabase dashboard. (There is additional functionality coming soon, where you'll be able to add additional URLs to the allow list). - -If you want to redirect the user to a specific page in your website or app after a successful authentication. - -You also have the option of requesting additional scopes from the oauth provider. Let's say for example you want the ability to send emails on behalf of the user's gmail account. You can do this by adding the query parameter `scopes`, like: - -``` -https://.supabase.co/auth/v1/authorize?provider=google&https://www.googleapis.com/auth/gmail.send -``` - -Note however that your app will usually have to be verified by Google before you can request advanced scopes such as this. - -The only thing left to implement is the UI, but if you prefer to use something pre-built, we have a handy [Auth Widget](https://github.com/supabase/ui/#using-supabase-ui-auth), where you can enable/disable whichever auth providers you want to support. - -For any support please get in touch at beta at [supabase.com](https://supabase.com) or for feature requests open an issue in the [backend](https://github.com/supabase/gotrue) or [frontend](https://github.com/supabase/gotrue-js) repos. - -### Resources - -- [JWT debugger](https://jwt.io) - -### Next steps - -- Watch [Part One: JWTs](/docs/learn/auth-deep-dive/auth-deep-dive-jwts) -- Watch [Part Two: Row Level Security](/docs/learn/auth-deep-dive/auth-row-level-security) -- Watch [Part Three: Policies](/docs/learn/auth-deep-dive/auth-policies) -- Watch [Part Four: GoTrue](/docs/learn/auth-deep-dive/auth-gotrue) - -- Sign up for Supabase: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/learn/auth-deep-dive/gotrue.md b/web/docs/learn/auth-deep-dive/gotrue.md deleted file mode 100644 index da56e1e3559..00000000000 --- a/web/docs/learn/auth-deep-dive/gotrue.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -id: auth-gotrue -title: 'Part Four: GoTrue' -description: 'Supabase Deep Dive Part 4: Gotrue Overview' ---- - -### About - -How to restrict table access to authenticated users, row level policies, and email domain based access. - -### Watch - - - -### Gotrue Server - -Gotrue is an auth API server written in Go by the Netlify team, find the Supabase fork here: https://github.com/supabase/gotrue. The list of available API endpoints is available [here](https://github.com/supabase/gotrue#endpoints). - -When you deploy a new Supabase project, we deploy a new instance of this server alongside your database, and also inject your database with the required `auth` schema. - -It makes it super easy to, for example, send magic link emails which your users can use to login: - -```bash -# replace with your own project reference -# and SUPABASE_KEY with your anon api key -curl -X POST 'https://.supabase.co/auth/v1/magiclink' \ --H "apikey: SUPABASE_KEY" \ --H "Content-Type: application/json" \ --d '{ - "email": "someone@email.com" -}' -``` - -Gotrue is responsible for issuing access tokens for your users, sends confirmation, magic-link, and password recovery emails (by default we send these from a Supabase SMTP server, but you can easily plug in your own inside the dashboard at Auth > Settings) and also transacting with third party OAuth providers to get basic user data. - -The community even recently built in the functionality to request custom OAuth scopes, if your users need to interact more closely with the provider. See the scopes parameter here: [https://github.com/supabase/gotrue#get-authorize](https://github.com/supabase/gotrue#get-authorize). - -So let's say you want to send emails on behalf of a user via gmail, you might request the gmail.send scope by directing them to: - -``` -https://sjvwsaokcugktsdaxxze.supabase.co/auth/v1/authorize?provider=google&https://www.googleapis.com/auth/gmail.send -``` - -You'll have to make sure your google app is verified of course in order to request these advanced scopes. - -[Gotrue-js](https://github.com/supabase/gotrue-js) (and also [gotrue-csharp](https://github.com/supabase/gotrue-csharp), [gotrue-py](https://github.com/j0/gotrue-py), [gotrue-kt](https://github.com/supabase/gotrue-kt), and [gotrue-dart](https://github.com/supabase/gotrue-dart)) are all wrappers around the gotrue API endpoints, and make for easier session management inside your client. - -But all the functionality of gotrue-js is also available in supabase-js, which uses gotrue-js internally when you do things like: - -```jsx -const { user, session, error } = await supabase.auth.signIn({ - email: 'example@email.com', - password: 'example-password', -}) -``` - -If you want to request a feature, or contribute to the project directly, just head to https://github.com/supabase/gotrue and open some issues/PRs, we're always open to help. - -In the next guide we'll be looking at how to setup external OAuth providers: Watch [Part Five: Google Oauth](/docs/learn/auth-deep-dive/auth-google-oauth) - -### Resources - -- JWT debugger: https://jwt.io​ - -### Next steps - -- Watch [Part One: JWTs](/docs/learn/auth-deep-dive/auth-deep-dive-jwts) -- Watch [Part Two: Row Level Security](/docs/learn/auth-deep-dive/auth-row-level-security) -- Watch [Part Three: Policies](/docs/learn/auth-deep-dive/auth-policies) - -- Watch [Part Five: Google Oauth](/docs/learn/auth-deep-dive/auth-google-oauth) -- Sign up for Supabase: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/learn/auth-deep-dive/jwts.md b/web/docs/learn/auth-deep-dive/jwts.md deleted file mode 100644 index 708bfa2fc3e..00000000000 --- a/web/docs/learn/auth-deep-dive/jwts.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -id: auth-deep-dive-jwts -title: 'Part One: JWTs' -description: Supabase Auth Deep Dive Part 1 - JWTs ---- - -### About - -An introduction to JWTs and how they are used in Supabase Auth - -### Watch - - - -### What are JSON Web Tokens (JWTs)? - -JWTs are JSON objects that are encoded and signed and sent around as a string. They are distributed to users of a service or website, who can later show the JWT to the website or service as proof that they have the right to access certain content. - -What exactly do we mean when we say "encoded" and "signed"? - -Well, the JSON object starts out looking something like this: - -```js -{ - "sub": "0001", - "name": "Sam Vimes", - "iat": 1516239022, - "exp": 1518239022 -} -``` - -`sub` is the "subject", which is usually the UUID of the user. `name` is self-explanatory, and `iat` is the Unix timestamp at which the token was created. Many JWTs will also have an `exp`, which is the date at which the token is set to expire and can no longer be used. These are some of the standard fields you may find in a JWT, but you can pretty much store whatever you want in there, for example: - -```js -{ - "sub": "0002", - "name": "Věra Hrabánková", - "iat": 1516239022, - "exp": 1518239022, - "theme": { - "primary" : "#D80C14", - "secondary" : "#FFFFFF" - } -} -``` - -Just note that the more data you store in your token, the longer the encoded string will be. - -When we want to send the JWT to the user, we first encode the data using an algorithm such as `HS256`. There are many libraries (and several different algorithms) that can be used to do this encoding/decoding, such as [jsonwebtoken](https://www.npmjs.com/package/jsonwebtoken). I made a repl [here](https://replit.com/@awalias/jsonwebtokens#index.js) so you can try it for yourself. The signing is as simple as: - -```js -// from https://replit.com/@awalias/jsonwebtokens#index.js -let token = jwt.sign({ name: 'Sam Vimes' }, 'some-secret') -``` - -And the resulting string will look like this: - -```js -eyJhbGciOiJIUzI1NiJ9 - .eyJzdWIiOiIwMDAxIiwibmFtZSI6IlNhbSBWaW1lcyIsImlhdCI6MTUxNjIzOTAyMiwiZXhwIjoxNTE4MjM5MDIyfQ - .zMcHjKlkGhuVsiPIkyAkB2rjXzyzJsMMgpvEGvGtjvA -``` - -You will notice that the string is actually made up of three components, which we'll address one by one: - -The first segment `eyJhbGciOiJIUzI1NiJ9` is known as the "header", and when decoded just tells us which algorithm was used to do the encoding: - -```js -{ - "alg": "HS256" -} -``` - -The second segment `eyJzdWIiOiIwMDAxIiwibmFtZSI6IlNhbSBWaW1lcyIsImlhdCI6MTUxNjIzOTAyMiwiZXhwIjoxNTE4MjM5MDIyfQ` contains our original payload: - -```js -{ - "sub": "0001", - "name": "Sam Vimes", - "iat": 1516239022, - "exp": 1518239022 -} -``` - -The last segment `zMcHjKlkGhuVsiPIkyAkB2rjXzyzJsMMgpvEGvGtjvA` is the signature itself, which is the part used by the website or service provider to verify that a token sent by some user is legitimate. It is produced in the first instance by running the cryptographic function HS256 on the following input: - -```js -HMACSHA256( - base64UrlEncode(header) + "." + - base64UrlEncode(payload) - -) -``` - -You can test out minting your own tokens on [https://jwt.io](https://jwt.io). - -It is important to note that anyone who possesses the `jwt_secret` here can create new tokens, and also verify existing ones. More advanced JWT algorithms use two secrets: one for the creation of tokens, and a separate one to verify the validity of signed tokens. - -You might wonder why JWTs are so popular all of a sudden. The answer is that with the mass adoption of microservice architecture, we were in a situation where several distinct microservices (APIs, websites, servers, etc.) want to easily validate that a user is who they say they are, or are in other words a "logged-in" user. Traditional session tokens are no use here, since they would require each microservice to either maintain a record of currently valid session tokens or to query a central database each time a user wants to access a resource in order to check the validity of the session token – very inefficient indeed. JWT-based auth in this sense is decentralized, since anyone with the `jwt_secret` can verify a token without needing access to a centralized database. - -Note: One downside of JWTs is that they are not easily voidable, like session tokens. If a JWT is leaked to a malicious actor, they will be able to redeem it anywhere until the expiry date is reached – unless of course the system owner updates the `jwt_secret` (which will of course invalidate _everyone's_ existing tokens). - -### JWTs in Supabase - -In Supabase we issue JWTs for three different purposes: - -1. `anon key`: This key is used to bypass the Supabase API gateway and can be used in your client-side code. -2. `service role key`: This key has super admin rights and can bypass your Row Level Security. Do not put it in your client-side code. Keep it private. -3. `user specific jwts`: These are tokens we issue to users who log into your project/service/website. It's the modern equivalent of a session token, and can be used by a user to access content or permissions specific to them. - -The first token here, the `anon key` token, is for developers to send along with their API requests whenever they want to interact with their Supabase database. - -Let's say you want to read the names of all the rows in a table `colors`. We would make a request like: - -```bash -curl 'https://xscduanzzfseqszwzhcy.supabase.co/rest/v1/colors?select=name' \ --H "apikey: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlhdCI6MTYxNDIwNTE3NCwiZXhwIjoxOTI5NzgxMTc0fQ.-NBR1WnZyQGpRLdXJfgfpszoZ0EeE6KHatJsDPLIX8c" -``` - -If we put this token into https://jwt.io, we see it decodes to: - -```js -{ - "role": "anon", - "iss": "supabase", - "iat": 1614205174, - "exp": 1929781174 -} -``` - -This JWT is signed by a `jwt_secret` specific to the developer's Supabase token (you can find this secret alongside this encoded "anon key" on your Dashboard under Settings > API page) and is required to get past the Supabase API gateway and access the developer's project. - -The idea with this particular key is that it's safe to put into your client, meaning it's okay if your end users see this key – but _only_ if you first enable Row Level Security, which is the topic of [Part Two](/docs/learn/auth-deep-dive/auth-row-level-security) in this series. - -The second key, `service role key`, should only ever be used on one of your own servers or environments, and should never be shared with end users. You might use this token to do things like make batch inserts of data. - -The `user access token` is the JWT issued when you call for example: - -```js -supabase.auth.signIn({ email: 'lao.gimmie@gov.sg', password: 'They_Live_1988!' }) -``` - -This token should be passed in addition to the `apikey` header as an `Authorization Bearer` header like: - -```bash -curl 'https://xscduanzzfseqszwzhcy.supabase.co/rest/v1/colors?select=name' \ --H "apikey: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlhdCI6MTYxNDIwNTE3NCwiZXhwIjoxOTI5NzgxMTc0fQ.-NBR1WnZyQGpRLdXJfgfpszoZ0EeE6KHatJsDPLIX8c" \ --H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjE1ODI0Mzg4LCJzdWIiOiIwMzM0NzQ0YS1mMmEyLTRhYmEtOGM4YS02ZTc0OGY2MmExNzIiLCJlbWFpbCI6InNvbWVvbmVAZW1haWwuY29tIiwiYXBwX21ldGFkYXRhIjp7InByb3ZpZGVyIjoiZW1haWwifSwidXNlcl9tZXRhZGF0YSI6bnVsbCwicm9sZSI6ImF1dGhlbnRpY2F0ZWQifQ.I-_oSsJamtinGxniPETBf-ezAUwDW2sY9bJIThvdX9s" -``` - -You'll notice that this token is quite a bit longer, since it contains information specific to the user such as: - -```js -{ - "aud": "authenticated", - "exp": 1615824388, - "sub": "0334744a-f2a2-4aba-8c8a-6e748f62a172", - "email": "d.l.solove@gmail.com", - "app_metadata": { - "provider": "email" - }, - "user_metadata": null, - "role": "authenticated" -} -``` - -Now that you understand what JWTs are and where they're used in Supabase, you can explore how to use them in combination with Row Level Security to start restricting access to certain tables, rows, and columns in your Postgres database: [Part Two: Row Level Security](/docs/learn/auth-deep-dive/auth-row-level-security) - -### Resources - -- JWT debugger: https://jwt.io/ - -### Next steps - - - -- [Part Two: Row Level Security](/docs/learn/auth-deep-dive/auth-row-level-security) -- [Part Three: Policies](/docs/learn/auth-deep-dive/auth-policies) -- [Part Four: GoTrue](/docs/learn/auth-deep-dive/auth-gotrue) -- [Part Five: Google Oauth](/docs/learn/auth-deep-dive/auth-google-oauth) -- Sign up for Supabase: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/learn/auth-deep-dive/policies.md b/web/docs/learn/auth-deep-dive/policies.md deleted file mode 100644 index e965fae6835..00000000000 --- a/web/docs/learn/auth-deep-dive/policies.md +++ /dev/null @@ -1,169 +0,0 @@ ---- -id: auth-policies -title: 'Part Three: Policies' -description: 'Supabase Auth Deep Dive Part 3: User Based Access Policies' ---- - -### About - -How to restrict table access to authenticated users, row level policies, and email domain based access. - -### Watch - - - -### User based row level policies - -Now that we know how to restrict access to tables based on JWT roles, we can combine this with user management to give us much more control over what data your users can read to and write from your database. - -We'll start with how user sessions work in Supabase, and later move on to writing user-centric policies. - -Let's say we're signing a user up to our service for the first time. The typical way to do this is by invoking the following method in supabase-js: - -```jsx -// see full api reference here: /docs/reference/javascript/auth-signup -supabase.auth.signUp({ email, password }) -``` - -By default this will send a confirmation email to the user. When the user clicks the link in the email, they will be redirected to your site (you need to provide your site url in Auth > Settings on the dashboard. By default this is http://localhost:3000) and the full URL including query params will look something like this: - -``` -http://localhost:3000/#access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjE2NDI5MDY0LCJzdWIiOiI1YTQzNjVlNy03YzdkLTRlYWYtYThlZS05ZWM5NDMyOTE3Y2EiLCJlbWFpbCI6ImFudEBzdXBhYmFzZS5pbyIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIn0sInVzZXJfbWV0YWRhdGEiOnt9LCJyb2xlIjoiYXV0aGVudGljYXRlZCJ9.4IFzn4eymqUNYYo2AHLxNRL8m08G93Qcg3_fblGqDjo&expires_in=3600&refresh_token=RuioJv2eLV05lgH5AlJwTw&token_type=bearer&type=signup -``` - -Let's break this up so that it's easier to read: - -```jsx -// the base url - whatever you set in the Auth Settings in app.supabase.com dashboard -http://localhost:3000/ - -// note we use the '#' (fragment) instead of '?' query param -// the access token is a JWT issued to the user -#access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoxNjE2NDI5MDY0LCJzdWIiOiI1YTQzNjVlNy03YzdkLTRlYWYtYThlZS05ZWM5NDMyOTE3Y2EiLCJlbWFpbCI6ImFudEBzdXBhYmFzZS5pbyIsImFwcF9tZXRhZGF0YSI6eyJwcm92aWRlciI6ImVtYWlsIn0sInVzZXJfbWV0YWRhdGEiOnt9LCJyb2xlIjoiYXV0aGVudGljYXRlZCJ9.4IFzn4eymqUNYYo2AHLxNRL8m08G93Qcg3_fblGqDjo - -// valid for 60 minutes by default -&expires_in=3600 - -// use to get a new access_token before 60 minutes expires -&refresh_token=RuioJv2eLV05lgH5AlJwTw - -// can use as the Authorization: Bearer header in requests to your API -&token_type=bearer - -// why was this token issued? was it a signup, login, password reset, or magic link? -&type=signup -``` - -If we put the access_token into [https://jwt.io](https://jwt.io) we'll see it decodes to: - -```jsx -{ - "aud": "authenticated", - "exp": 1616429064, - "sub": "5a4365e7-7c7d-4eaf-a8ee-9ec9432917ca", - "email": "ant@supabase.io", - "app_metadata": { - "provider": "email" - }, - "user_metadata": {}, - "role": "authenticated" -} -``` - -The `authenticated` role is special in Supabase, it tells the API that this is an authenticated user and will know to compare the JWT against any policies you've added to the requested resource (table or row). - -The `sub` claim is usually what we use to match the JWT to rows in your database, since by default it is the unique identifier of the user in the `auth.users` table (as a side note - it's generally not recommended to alter the `auth` schema in any way in your Supabase database since the Auth API relies on it to function correctly). - -For the curious, try heading to the SQL editor and querying: - -```sql -select * from auth.users; -``` - -If supabase-js is loaded on your site (in this case http://localhost:3000) then it will automatically pluck the access_token out of the URL and initiate a session. You can check the [session()](/docs/reference/javascript/auth-session) method to see if there is a valid session: - -```jsx -console.log(supabase.auth.session()) -``` - -Now that we can use methods like `supabase.auth.signIn({ email, password})` to issue JWTs to users we want to start fetching resources specific to that user. So let's make some. Go to the SQL editor and run: - -```sql -create table my_scores ( - name text, - score int, - user_id uuid not null -); - -ALTER TABLE my_scores ENABLE ROW LEVEL SECURITY; - -insert into my_scores(name, score, user_id) -values - ('Paul', 100, '5a4365e7-7c7d-4eaf-a8ee-9ec9432917ca'), - ('Paul', 200, '5a4365e7-7c7d-4eaf-a8ee-9ec9432917ca'), - ('Leto', 50, '9ec94326-2e2d-2ea2-22e3-3a535a4365e7'); - --- use UUIDs from the auth.users table if you want to try it --- for yourself -``` - -Now we'll write our policy, again in SQL, but note it's also possible to add via the dashboard in Auth > Policies: - -```sql -CREATE POLICY user_update_own_scores ON my_scores - FOR ALL - USING (auth.uid() = user_id); -``` - -Now, assuming you have an active session in your javascript/supabase-js environment you can do: - -```jsx -supabase.from('my_scores').select('*').then(console.log) -``` - -and you should only receive scores belonging to the current logged in user. Alternatively you can use Bash like: - -```bash -curl 'https://sjvwsaokcugktsdaxxze.supabase.co/rest/v1/my_scores?select=*' \ --H "apikey: " \ --H "Authorization: Bearer " -``` - -Note that the `anon key` (or `service role key`) is always needed to get past the API gateway. This can be passed in the `apikey` header or in a query param named `apikey`. It is passed automatically in supabase-js as long as you used it to instantiate the client. - -There are some more notes here on how to structure your schema to best integrate with the `auth.users` table. - -Once you get the hang of policies you can start to get a little bit fancy. Let's say I work at Blizzard and I only want Blizzard staff members to be able to update people's high scores, I can write something like: - -```sql -create or replace function auth.email() returns text as $$ - select nullif(current_setting('request.jwt.claims', true)::json->>'email', '')::text; -$$ language sql; - -create policy "Only Blizzard staff can update leaderboard" - on my_scores - for update using ( - right(auth.email(), 13) = '@blizzard.com' - ); -``` - -Supabase comes with three built-in helper functions: `auth.email()`, `auth.uid()` and `auth.role()`. - -See the full PostgreSQL policy docs here: [https://www.postgresql.org/docs/12/sql-createpolicy.html](https://www.postgresql.org/docs/12/sql-createpolicy.html) - -You can get as creative as you like with these policies. - -### Resources - -- JWT debugger: https://jwt.io​ -- PostgeSQL Policies: https://www.postgresql.org/docs/12/sql-createpolicy.html -- PostgREST Row Level Security: https://postgrest.org/en/v7.0.0/auth.html - -### Next steps - -- Watch [Part One: JWTs](/docs/learn/auth-deep-dive/auth-deep-dive-jwts) -- Watch [Part Two: Row Level Security](/docs/learn/auth-deep-dive/auth-row-level-security) - -- Watch [Part Four: GoTrue](/docs/learn/auth-deep-dive/auth-gotrue) -- Watch [Part Five: Google Oauth](/docs/learn/auth-deep-dive/auth-google-oauth) -- Sign up for Supabase: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/learn/auth-deep-dive/row-level-security.md b/web/docs/learn/auth-deep-dive/row-level-security.md deleted file mode 100644 index 490d8e106cb..00000000000 --- a/web/docs/learn/auth-deep-dive/row-level-security.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -id: auth-row-level-security -title: 'Part Two: Row Level Security' -description: Supabase Auth Deep Dive Part Two - Row Level Security ---- - -### About - -Learn how to restrict access to your database tables by enabling Row Level Security and writing Postgres Policies in the Supabase Dashboard. - -### Watch - - - -### Securing Your Tables - -In Supabase, you can access your data directly from the client (often the web browser), you do this by passing your Supabase URL and Anon key to supabase-js like so: - -```js -const supabase = createClient( - 'https://qwertyuiop.supabase.co', - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' -) -``` - -This raises an interesting question however: "if my anon key is in the client, then can't someone read my javascript and steal my key?", the answer is yes. And this is where Postgres policies come in. - -Using Postgres's "Row-Level-Security" policies, we can set rules on what data the anon key is allowed or not allowed to access by default. - -We can say for example that the anon key should only be able to read from a particular table, but not write, update, nor delete. - -And these rules can be as complex as we want. We could say that the anon key can only delete rows which were inserted on a Thursday afternoon between 4 and 6pm, and where the id column is an even number. Pretty strange, but it shows the power of policies. - -Let's say we create a leaderboard table. We want people on our website to be able to read the leaderboard, but not write, update, or delete from it. We start by defining our table in SQL and adding some dummy data: - -```sql -create table leaderboard ( - name text, - score int -); - -insert into leaderboard(name, score) -values ('Paul', 100), ('Leto', 50), ('Chani', 200); -``` - -Now let's set up a client to read the data, I've created a repl here to show a living example: [https://replit.com/@awalias/supabase-leaderboard-demo#index.js](https://replit.com/@awalias/supabase-leaderboard-demo#index.js). If you copy the snippet you can plug in your own Supabase URL and anon key. - -You can see that it's possible to freely read from and write to the table by using: - -```js -// Writing -let { data, error } = await supabase.from('leaderboard').insert({ name: 'Bob', score: 99999 }) - -// Reading -let { data, error } = await supabase - .from('leaderboard') - .select('name, score') - .order('score', { ascending: false }) -``` - -Now let's restrict access. We'll start by fully restricting the table. We can do this in the SQL editor by making a query: - -```sql -ALTER TABLE leaderboard ENABLE ROW LEVEL SECURITY; -``` - -or via the Supabase Dashboard, by navigating to Auth > Policies, and clicking the red padlock on the leaderboard table, so that it turns white. - -![Enable row level security in Supabase](/img/auth-deep-dive-2.png) - -You'll notice that both reading and writing now fail with an error like: - -```jsx -{ - hint: null, - details: null, - code: '42501', - message: 'new row violates row-level security policy for table "leaderboard"' -} -``` - -Now we need to add a policy to enable reading of the table, for everyone who sends the anon key (JWT) in the `Authorization: Bearer` header. - -In SQL this can be done with: - -```sql -CREATE POLICY anon_read_leaderboard ON leaderboard - FOR SELECT - TO 'anon' - USING (true); -``` - -`anon_read_leaderboard` here is just a name that you choose for your policy. `leaderboard` is the table name. `FOR SELECT` says that we only want this policy to apply for reads (or rather "selects" in SQL). `TO` means that this policy will only apply to the `anon` Postgres role. And finally the rule itself is `true'`, which means it will _allow_ any `selects` to the `anon` user. - -If you'd prefer to use the dashboard to add your policy you can do so by clicking "Add Policy" in the Policies tab and making a policy like this: - -![Add a read only policy in Supabase](/img/auth-deep-dive-2-2.png) - -You should now be able to read from your leaderboard, but will still not be able to write, update, or delete from it, which is exactly what we wanted! - -A quick reminder that you can always use your `service_role` API key to bypass these row level security policies. But be extra careful that you don't leak this key by including it in the client. This can be useful if you're building internal admin tools, or if you need to bulk insert or delete data via the API. - -In the next guide we will look at using Policies in combination with User Accounts, so that you can restrict access to data on a User by User basis: Watch [Part Three: Policies](/docs/learn/auth-deep-dive/auth-policies) - -### Resources - -- JWT debugger: https://jwt.io/ -- RESTED: https://github.com/RESTEDClient/RESTED - -### Next steps - -- Watch [Part One: JWTs](/docs/learn/auth-deep-dive/auth-deep-dive-jwts) - -- Watch [Part Three: Policies](/docs/learn/auth-deep-dive/auth-policies) -- Watch [Part Four: GoTrue](/docs/learn/auth-deep-dive/auth-gotrue) -- Watch [Part Five: Google Oauth](/docs/learn/auth-deep-dive/auth-google-oauth) -- Sign up for Supabase: [app.supabase.com](https://app.supabase.com) diff --git a/web/docs/postgres/api/about.md b/web/docs/postgres/api/about.md deleted file mode 100644 index 0182279f986..00000000000 --- a/web/docs/postgres/api/about.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -id: about -title: Postgres API -description: A RESTful API for managing your Postgres. Fetch tables, add roles, and run queries ---- - -A RESTful API for managing your Postgres. Fetch tables, add roles, and run queries. - -## Usage - -- GitHub: https://github.com/supabase/postgres-meta -- Full documentation: https://supabase.github.io/postgres-meta/ diff --git a/web/docs/postgres/server/about.md b/web/docs/postgres/server/about.md deleted file mode 100644 index 1f5db272b2d..00000000000 --- a/web/docs/postgres/server/about.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -id: about -title: Postgres -description: 'The easiest way to get started with Postgres.' ---- - -We've talked to a lot of developers, and they often tell us that they know Postgres is the best database for their needs, but they still choose something that's easier to get started. - -We want to solve that problem. So we packaged Postgres with some useful plugins and built some one-click installers. Our goal is not to modify Postgres, but to provide some of the most common extensions with a simple installation process. - -## Resources - -- Find the repository here: [supabase/postgres](https://github.com/supabase/postgres/) -- Use with [Docker](https://github.com/supabase/postgres/wiki/Docker) -- Install on [Digital Ocean](https://github.com/supabase/postgres/wiki/Digital-Ocean) -- Install on [AWS](https://github.com/supabase/postgres/wiki/AWS-EC2) diff --git a/web/docs/postgres/server/aws.md b/web/docs/postgres/server/aws.md deleted file mode 100644 index e39b2af09a3..00000000000 --- a/web/docs/postgres/server/aws.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: aws -title: AWS -description: 'Host your own Postgres server' ---- - -# Quick install - -We are still in the process of registering for the AWS Marketplace. Subscribe to the releases on this repo to get notified when we are accepted. diff --git a/web/docs/postgres/server/digitalocean.md b/web/docs/postgres/server/digitalocean.md deleted file mode 100644 index 8cbb9a34f73..00000000000 --- a/web/docs/postgres/server/digitalocean.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -id: digitalocean -title: DigitalOcean -description: 'Host your own Realtime server' ---- - -## Create your droplet - -Head over to our Digital Ocean marketplace [listing](https://marketplace.digitalocean.com/apps/supabase-postgres) and create your droplet. You are free to create one even at the most basic configuration. No restrictions for you here. - -## Set up the password - -Set up the password for the DB Superuser **postgres**. - -SSH into your instance using the user **root** and type in the following once you are in: - -``` -$ sudo -u postgres psql -``` - -This logs you into the **psql** terminal as the DB Superuser **postgres**. - -![psql Screenshot](https://dev-to-uploads.s3.amazonaws.com/i/j0kdzn07wu8uawmr6nmz.png) - -Set your password with this command: - -``` -$ \password -``` - -Enter your desired password afterward and re-enter it when prompted. Once done, you can now exit your SSH connection. - -## Try out your new database - -With any SQL client of your choice (Such as [DBeaver](https://dbeaver.io/)), connect to your database with the following credentials: - -- Host: **_insert droplet ip address_** -- Port: **5432** -- User: **postgres** -- Password: **_insert your chosen password_** -- Database: **postgres** diff --git a/web/docs/postgres/server/docker.md b/web/docs/postgres/server/docker.md deleted file mode 100644 index 0465f5b9adc..00000000000 --- a/web/docs/postgres/server/docker.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -id: docker -title: Docker -description: 'Host your own Postgres server' ---- - -## Docker - -The image is now available in [Docker Hub](https://hub.docker.com/r/supabase/postgres) under the name `supabase/postgres`. - -## Docker compose - -You can use the [docker-compose file](https://github.com/supabase/postgres/blob/develop/docker/docker-compose.yml) available in this repository as your starting point. You can then run: - - -``` -$ docker-compose up -``` -As the image is based on the [postgreSQL 12 image](https://hub.docker.com/_/postgres), environment variables from the postgreSQL 12 image are applicable to this image. diff --git a/web/docs/reference.mdx b/web/docs/reference.mdx deleted file mode 100644 index 9b47f8dd6d7..00000000000 --- a/web/docs/reference.mdx +++ /dev/null @@ -1,494 +0,0 @@ ---- -id: reference -title: Reference Documentation -sidebar_label: Overview -description: 'Reference Docs' -hide_table_of_contents: true ---- - -import Link from '@docusaurus/Link' - -The Supabase Reference Docs provide technical descriptions of the products and how to use them. - -
    -
    - {/* Examples - coming soon */} - {/*
    - -
    -

    Examples

    -

    Code examples and snippets for Supabase products.

    -
    - -
    */} - {/* CLI */} -
    - -
    -

    CLI

    -

    Manage your Supabase projects from the command line.

    -
    - -
    - {/* */} -
    -
    - -## Tools - -The Supabase Reference Docs provide technical descriptions of the products and how to use them. - -
    -
    - {/* Examples - coming soon */} -
    - -
    -

    Auth

    -

    Auth reference.

    -
    - -
    -{/* NOT YET IMPLEMENTED -
    - -
    -

    Connection Pool

    -

    PgBouncer reference docs.

    -
    - -
    - */} -
    -
    - -## Client Libraries - -
    -
    - {/* Database */} -
    - -
    -

    JavaScript

    -

    JavaScript and TypeScript documentation.

    -
    - -
    - {/* Auth */} -
    - -
    -

    Dart

    -

    Dart and Flutter documentation.

    -
    - -
    -
    -
    - -### Library Structure - -Our approach for client libraries is modular. Each sub-library is a standalone implementation for a single external system, maintained by Supabase or our community. -This is one of the ways we support existing tools and open source contributors. - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Supabase Tool: - - PostgREST - - - - GoTrue - - - - Realtime - - - - Storage - - - - Edge Functions - -
    JavaScript (TypeScript) - - supabase-js - - - - postgrest-js - - - - gotrue-js - - - - realtime-js - - - - storage-js - - - - functions-js - -
    Dart - - supabase-dart - - - - postgrest-dart - - - - gotrue-dart - - - - realtime-dart - - - - storage-dart - - - - functions-dart - -
    Flutter - - supabase-flutter - - -----
    Community
    C# - - supabase-csharp - - - - postgrest-csharp - - - - gotrue-csharp - - - - realtime-csharp - - - - storage-csharp - - -
    Go- - - postgrest-go - - -- - - storage-go - - -
    Java-- - - gotrue-java - - ---
    Kotlin- - - postgrest-kt - - - - gotrue-kt - - ---
    Python - - supabase-py - - - - postgrest-py - - - - gotrue-py - - - - realtime-py - - - - storage-py - - -
    Ruby - - supabase-rb - - - - postgrest-rb - - ----
    Rust- - - postgrest-rs - - ----
    Swift - - supabase-swift - - - - postgrest-swift - - - - gotrue-swift - - - - realtime-swift - - - - storage-swift - - -
    diff --git a/web/docs/reference/tools/auth.mdx b/web/docs/reference/tools/auth.mdx deleted file mode 100644 index dcdff06de52..00000000000 --- a/web/docs/reference/tools/auth.mdx +++ /dev/null @@ -1,249 +0,0 @@ ---- -id: reference-auth -title: Auth Server -description: An SWT based API for managing users and issuing SWT tokens ---- - -GoTrue is an open source Auth server written in Go. It is an API server that handles user registration, authentication, and managing user data inside a PostgreSQL database. - -The Supabase Platform exposes a subset of these configuration options in the dashboard. If you're self-hosting GoTrue, these configuration options are maintained as environment variables. - - -## Security - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `SITE_URL` | `string` | **Required**. The base URL your site is located at. Currently used in combination with other settings to construct URLs used in emails. Any URI that shares a host with `SITE_URL` is a permitted value for `redirect_to` params (see `/authorize` etc.). | -| `URI_ALLOW_LIST` | `string` | A comma separated list of URIs (e.g. `"https://foo.example.com,https://*.foo.example.com"`) which are permitted as valid `redirect_to` destinations. Defaults to [ ].

    Supports wildcard matching through globbing. (e.g. `https://*.foo.example.com` will allow `https://a.foo.example.com` and `https://b.foo.example.com` to be accepted.)

    Globbing is also supported on subdomains. (e.g. `https://foo.example.com/*` will allow `https://foo.example.com/page1` and `https://foo.example.com/page2` to be accepted.)
    For more common glob patterns, check out the [following link](https://pkg.go.dev/github.com/gobwas/glob#Compile).| -| `OPERATOR_TOKEN` | `string` | The shared secret with an operator for this microservice. Used to verify requests have been proxied through the operator and the payload values can be trusted. | -| `DISABLE_SIGNUP` | `bool` | When signup is disabled the only way to create new users is through invites. Defaults to `false`, all signups enabled. | -| `EXTERNAL_EMAIL_ENABLED` | `bool` | Use this to disable email signups (users can still use external oauth providers to sign up / sign in) | -| `EXTERNAL_PHONE_ENABLED` | `bool` | Use this to disable phone signups (users can still use external oauth providers to sign up / sign in) | -| `RATE_LIMIT_TOKEN_REFRESH` | `string` | Rate limit the number of requests sent to `/token` | -| `RATE_LIMIT_EMAIL_SENT` | `string` | Rate limit the number of emails sent per hr on the following endpoints: `/signup`, `/invite`, `/magiclink`, `/recover`, `/otp`, & `/user`. | -| `PASSWORD_MIN_LENGTH` | `int` | Minimum password length, defaults to 6. | - -These options control additional security settings available in gotrue. If self-hosting, they need to be prefixed with `GOTRUE_SECURITY_` . - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `REFRESH_TOKEN_ROTATION_ENABLED` | `bool` | If refresh token rotation is enabled, gotrue will automatically detect malicious attempts to reuse a revoked refresh token. When a malicious attempt is detected, gotrue immediately revokes all tokens that descended from the offending token. | -| `REFRESH_TOKEN_REUSE_INTERVAL` | `string` | This setting is only applicable if `REFRESH_TOKEN_ROTATION_ENABLED` is enabled. The reuse interval for a refresh token allows for exchanging the refresh token multiple times during the interval to support concurrency or offline issues.
    During the reuse interval, gotrue will not consider using a revoked token as a malicious attempt and will simply return the child refresh token.
    Only the previous revoked token can be reused. Using an old refresh token way before the current valid refresh token will trigger the reuse detection. | -| `CAPTCHA_ENABLED` | `string` | Enables the captcha middleware. | -| `CAPTCHA_PROVIDER` | `string` | The only captcha provider option supported is: `hcaptcha`. | -| `CAPTCHA_SECRET` | `string` | The captcha secret token. Retrieve this from your captcha account. | -| `CAPTCHA_TIMEOUT` | `string` | The http timeout on the captcha request. | -| `UPDATE_PASSWORD_REQUIRE_REAUTHENTICATION` | `bool` | When enabled, this requires a user to reauthenticate before being able to update their password. | - -## API - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `API_HOST` | `string` | Hostname to listen on. | -| `PORT` | `number` | Port number to listen on. Defaults to `8081`. | -| `REQUEST_ID_HEADER` | `string` | If you wish to inherit a request ID from the incoming request, specify the name in this value. | - - -## Database - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `DB_DRIVER` | `string` | **Required**. Chooses what dialect of database you want. Must be `postgres`. | -| `DATABASE_URL` | `string` | **Required**. Connection string for the database. | -| `DB_MAX_POOL_SIZE` | `int` | Sets the maximum number of open connections to the database. Defaults to 0 which is equivalent to an "unlimited" number of connections. | -| `DB_NAMESPACE` | `string` | Specifies the schema in which the tables are to be created in. | - -## JSON Web Tokens (JWT) - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `JWT_SECRET` | `string` | **Required**. The secret used to sign JWT tokens with. | -| `JWT_EXP` | `number` | How long tokens are valid for in seconds. Defaults to 3600 (1 hour). | -| `JWT_AUD` | `string` | The default JWT audience. Use audiences to group users. Defaults to `authenticated`. | -| `JWT_ADMIN_GROUP_NAME` | `string` | The name of the admin group (if enabled). Defaults to `admin`. | -| `JWT_DEFAULT_GROUP_NAME` | `string` | The default group to assign all new users to. | - -## External Authentication Providers - -We support `apple`, `azure`, `bitbucket`, `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin`, `notion`, `spotify`, `slack`, `twitch`, `twitter` and `workos` for external authentication. - -Use the names as the keys underneath `external` to configure each separately. - -No external providers are required, but you must provide the required values if you choose to enable any. - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `EXTERNAL_X_ENABLED` | `bool` | Whether this external provider is enabled or not | -| `EXTERNAL_X_CLIENT_ID` | `string` | **Required**. The OAuth2 Client ID registered with the external provider. | -| `EXTERNAL_X_SECRET` | `string` | **Required**. The OAuth2 Client Secret provided by the external provider when you registered. | -| `EXTERNAL_X_REDIRECT_URI` | `string` | **Required**. Also known as the callback url, this is the URI an OAuth2 provider will redirect to with the `code` and `state` values. | -| `EXTERNAL_X_URL` | `string` | The base URL used for constructing the URLs to request authorization and access tokens. Used by `gitlab` and `keycloak`. For `gitlab` it defaults to `https://gitlab.com`. For `keycloak` you need to set this to your realm url, (e.g. `https://keycloak.example.com/auth/realms/myrealm`) | - -### Apple OAuth - -To try out sign-in with Apple locally, you will need to do the following: - -1. Run GoTrue over `https` via a reverse proxy (like ngrok). -2. Generate the `crt` and `key` file. See [here](https://www.freecodecamp.org/news/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec/) for more information. -3. Generate the `GOTRUE_EXTERNAL_APPLE_SECRET` by following this [post](https://medium.com/identity-beyond-borders/how-to-configure-sign-in-with-apple-77c61e336003)! - -## SMTP Configuration - -Sending email is not required, but highly recommended for password recovery. If `mailer_autoconfirm` is enabled, no emails will be sent out for `signup`, `recovery`, `invite`. Emails will only be sent out for `magiclink`. - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `SMTP_ADMIN_EMAIL` | `string` | **Required**. The `From` email address for all emails sent. | -| `SMTP_HOST` | `string` | **Required**. The mail server hostname to send emails through. | -| `SMTP_PORT` | `string` | **Required**. The port number to connect to the mail server on. | -| `SMTP_USER` | `string` | **Required**. If the mail server requires authentication, the username to use. | -| `SMTP_PASS` | `string` | **Required**. If the mail server requires authentication, the password to use. | -| `SMTP_MAX_FREQUENCY` | `string` | Controls the minimum amount of time that must pass before sending another signup confirmation or password reset email. The value is the number of seconds. Defaults to 60 seconds. | -| `SMTP_SENDER_NAME` | `string` | Sets the name of the sender. Defaults to the `SMTP_ADMIN_EMAIL` if not used. | - -## Email - -These options control the emails sent from GoTrue. - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `MAILER_AUTOCONFIRM` | `bool` | If you do not require email confirmation, you may set this to `true`. Defaults to `false`. | -| `MAILER_SECURE_EMAIL_CHANGE_ENABLED` | `bool` | If `true`, send an email to both the user's current and new email with a confirmation link, otherwise send an email with confirmation link only to new email. Defaults to `true`. | -| `MAILER_OTP_EXP` | `string` | Controls the duration an email link or otp is valid for. Defaults to 24 hrs. | -| `MAILER_URLPATHS_INVITE` | `string` | URL path to use in the user invite email. Defaults to `/`. | -| `MAILER_URLPATHS_CONFIRMATION` | `string` | URL path to use in the signup confirmation email. Defaults to `/`. | -| `MAILER_URLPATHS_RECOVERY` | `string` | URL path to use in the password reset email. Defaults to `/`. | -| `MAILER_URLPATHS_EMAIL_CHANGE` | `string` | URL path to use in the email change confirmation email. Defaults to `/`. | -| `MAILER_SUBJECTS_INVITE` | `string` | Email subject to use for user invite. Defaults to `You have been invited`. | -| `MAILER_SUBJECTS_CONFIRMATION` | `string` | Email subject to use for signup confirmation. Defaults to `Confirm Your Signup`. | -| `MAILER_SUBJECTS_RECOVERY` | `string` | Email subject to use for password reset. Defaults to `Reset Your Password`. | -| `MAILER_SUBJECTS_MAGIC_LINK` | `string` | Email subject to use for magic link email. Defaults to `Your Magic Link`. | -| `MAILER_SUBJECTS_EMAIL_CHANGE` | `string` | Email subject to use for email change confirmation. Defaults to `Confirm Email Change`. | - -## Email Templates - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `MAILER_TEMPLATES_INVITE` | `string` | URL path to an email template to use when inviting a user. `SiteURL`, `Email`, and `ConfirmationURL` variables are available. | - -Default Content (if template is unavailable): - -```html -

    You have been invited

    -

    - You have been invited to create a user on {{ .SiteURL }}. Follow this link to accept the invite: -

    -

    Accept the invite

    -``` - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `MAILER_TEMPLATES_CONFIRMATION` | `string` | URL path to an email template to use when confirming a signup. `SiteURL`, `Email`, and `ConfirmationURL` variables are available. | - -Default Content (if template is unavailable): - -```html -

    Confirm your signup

    - -

    Follow this link to confirm your user:

    -

    Confirm your mail

    -``` - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `MAILER_TEMPLATES_RECOVERY` | `string` | URL path to an email template to use when resetting a password. `SiteURL`, `Email`, and `ConfirmationURL` variables are available. | - -Default Content (if template is unavailable): - -```html -

    Reset Password

    - -

    Follow this link to reset the password for your user:

    -

    Reset Password

    -``` - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `MAILER_TEMPLATES_MAGIC_LINK` | `string` | URL path to an email template to use when sending magic link. `SiteURL`, `Email`, and `ConfirmationURL` variables are available. | - -Default Content (if template is unavailable): - -```html -

    Magic Link

    - -

    Follow this link to login:

    -

    Log In

    -``` - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `MAILER_TEMPLATES_EMAIL_CHANGE` | `string` | URL path to an email template to use when confirming the change of an email address. `SiteURL`, `Email`, `NewEmail` and `ConfirmationURL` variables are available. | - -Default Content (if template is unavailable): - -```html -

    Confirm Change of Email

    - -

    Follow this link to confirm the update of your email from {{ .Email }} to {{ .NewEmail }}:

    -

    Change Email

    -``` - -### Phone Auth - -These options control the SMS-es sent from GoTrue. - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `SMS_AUTOCONFIRM` | `bool` | If you do not require phone confirmation, you may set this to `true`. Defaults to `false`. | -| `SMS_MAX_FREQUENCY` | `number` | Controls the minimum amount of time that must pass before sending another sms otp. The value is the number of seconds. Defaults to 60 (1 minute)). | -| `SMS_OTP_EXP` | `number` | Controls the duration an sms otp is valid for. | -| `SMS_OTP_LENGTH` | `number` | Controls the number of digits of the sms otp sent. Valid otp lengths are between [6 - 10] digits | -| `SMS_PROVIDER` | `string` | Available options are: `twilio`, `messagebird`, `textlocal`, and `vonage` | - -If you're using twilio, you can obtain your credentials from the [twilio dashboard](https://www.twilio.com/docs/usage/requests-to-twilio#credentials): - -You can find the `SMS_TWILIO_ACCOUNT_SID` and `SMS_TWILIO_AUTH_TOKEN` in the account info page of the twilio console dashboard. - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `SMS_TWILIO_ACCOUNT_SID` | `string` | Your twilio account string identifier (SID). | -| `SMS_TWILIO_AUTH_TOKEN` | `string` | Your twilio auth token. | -| `SMS_TWILIO_MESSAGE_SERVICE_SID` | `string` | Your twilio sender mobile number | - - -If you're using MessageBird, you can obtain your credentials from the [MessageBird dashboard](https://dashboard.messagebird.com/en/developers/access): - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `SMS_MESSAGEBIRD_ACCESS_KEY` | `string` | Your MessageBird access key. | -| `SMS_MESSAGEBIRD_ORIGINATOR` | `string` | Your MessageBird sender phone number with + or company name. | - -## Logging - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `LOG_LEVEL` | `string` | Controls what log levels are output. Choose from `panic`, `fatal`, `error`, `warn`, `info`, or `debug`. Defaults to `info`. | -| `LOG_FILE` | `string` | If you wish logs to be written to a file, set `log_file` to a valid file path. | - -## Opentracing - -Currently Datadog is the only tracer supported. - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `TRACING_ENABLED` | `bool` | Whether tracing is enabled or not. Defaults to `false`. | -| `TRACING_HOST` | `string` | The tracing destination. (e.g. `GOTRUE_TRACING_HOST=127.0.0.1`) | -| `TRACING_PORT` | `int` | The port for the tracing host. | -| `TRACING_TAGS` | `string` | A comma separated list of key:value pairs. These key value pairs will be added as tags to all opentracing spans. (e.g. `GOTRUE_TRACING_TAGS="tag1:value1,tag2:value2"`) | -| `SERVICE_NAME` | `string` | The name to use for the service. | - -## Webhooks - -| Parameter | Type | Description | -| :-------- | :------- | :------------------------- | -| `WEBHOOK_URL` | `string` | URL of the webhook receiver endpoint. This will be called when events like `validate`, `signup` or `login` occur. | -| `WEBHOOK_SECRET` | `string` | Shared secret to authorize webhook requests. This secret signs the [JSON Web Signature](https://tools.ietf.org/html/draft-ietf-jose-json-web-signature-41) of the request. You _should_ use this to verify the integrity of the request. Otherwise others can feed your webhook receiver with fake data. | -| `WEBHOOK_RETRIES` | `number` | How often GoTrue should try a failed hook. | -| `WEBHOOK_TIMEOUT_SEC` | `number` | Time between retries (in seconds). | -| `WEBHOOK_EVENTS` | `list` | Which events should trigger a webhook. You can provide a comma separated list. For example to listen to all events, provide the values `validate,signup,login`. | - diff --git a/web/docs/support.md b/web/docs/support.md deleted file mode 100644 index 4c8f1572ffa..00000000000 --- a/web/docs/support.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -id: support -title: Support -description: Supabase Support ---- - -How can we help? - -## Community Support - -For help and questions about best practices, we have a discussion forum set up on GitHub: https://github.com/supabase/supabase/discussions - -## Business Support - -We offer email based support for business users. You can email us at support@supabase.io. - -If you need SLAs, guaranteed response times, or other enterprise level services, please contact us at this email address. - -## Slack Support - -If you are building with Supabase and you would like to set up a shared Slack channel (via [Slack Connect](https://slack.com/connect)), please reach out to us at support@supabase.io. diff --git a/web/docusaurus.config.js b/web/docusaurus.config.js deleted file mode 100755 index 529550f968f..00000000000 --- a/web/docusaurus.config.js +++ /dev/null @@ -1,287 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -module.exports = { - title: 'Supabase', - tagline: 'The open source Firebase alternative.', - url: 'https://reference-docs.vercel.app', - baseUrl: '/docs/', - favicon: '/favicon.ico', - organizationName: 'supabase', // Usually your GitHub org/user name. - projectName: 'Supabase Docs', // Usually your repo name. - onBrokenLinks: 'ignore', - themes: ['docusaurus-theme-search-typesense'], - themeConfig: { - docs: { - sidebar: { - autoCollapseCategories: true, - }, - }, - colorMode: { - // "light" | "dark" - defaultMode: 'dark', - - // Hides the switch in the navbar - // Useful if you want to support a single color mode - disableSwitch: false, - - // Should we use the prefers-color-scheme media-query, - // using user system preferences, instead of the hardcoded defaultMode - respectPrefersColorScheme: false, - }, - typesense: { - typesenseCollectionName: 'supabase', // Replace with your own doc site's name. Should match the collection name in the scraper settings. - - typesenseServerConfig: { - nodes: [ - { - host: 'doc-search.supabase.com', - port: 443, - protocol: 'https', - }, - ], - apiKey: 't0HAJQy4KtcMk3aYGnm8ONqab2oAysJz', - }, - - // Optional: Typesense search parameters: https://typesense.org/docs/0.21.0/api/documents.md#search-parameters - typesenseSearchParameters: {}, - - // Optional - contextualSearch: true, - }, - image: '/img/supabase-og-image.png', // used for meta tag, in particular og:image and twitter:image - metaImage: '/img/supabase-og-image.png', - navbar: { - // classNames: 'shadow--md', - // title: 'supabase', - hideOnScroll: true, - logo: { - alt: 'Supabase', - src: '/supabase-light.svg', - srcDark: '/supabase-dark.svg', - }, - items: [ - { - label: 'Guides', - to: '/', - activeBaseRegex: - '.*.docs/$|^/docs/architecture|(^/docs/guides/(database|auth|storage|api|examples!))|(^/docs/guides/(examples|with-angular|with-flutter|with-nextjs|with-nuxt-3|with-react|with-redwoodjs|with-svelte|with-vue-3)|^/docs/faq|^/docs/going-into-prod|^/docs/handbook|^/docs/company)', - position: 'left', - }, - { - label: 'Reference', - to: '/docs/reference', - activeBasePath: '/docs/reference', - position: 'left', - }, - { href: 'https://app.supabase.com', label: 'Login', position: 'left' }, - { - href: 'https://github.com/supabase/supabase', - className: 'navbar-item-github', - position: 'right', - }, - { - href: 'https://discord.supabase.com', - className: 'navbar-item-discord', - position: 'right', - }, - { - href: 'https://twitter.com/supabase', - className: 'navbar-item-twitter', - position: 'right', - }, - ], - }, - prism: { - defaultLanguage: 'js', - additionalLanguages: ['dart'], - plugins: ['line-numbers', 'show-language'], - theme: require('@kiwicopple/prism-react-renderer/themes/vsDark'), - darkTheme: require('@kiwicopple/prism-react-renderer/themes/vsDark'), - }, - footer: { - links: [ - { - title: 'Company', - items: [ - { - label: 'Blog', - to: 'https://supabase.com/blog', - }, - { - label: 'Open source', - to: '/oss', - }, - { - label: 'Humans.txt', - to: 'https://supabase.com/humans.txt', - }, - { - label: 'Lawyers.txt', - to: 'https://supabase.com/lawyers.txt', - }, - ], - }, - { - title: 'Resources', - items: [ - { - label: 'Brand Assets', - to: 'https://supabase.com/brand-assets', - }, - { - label: 'Docs', - to: '/', - }, - { - label: 'Pricing', - to: 'https://supabase.com/pricing', - }, - { - label: 'Support', - to: '/support', - }, - { - label: 'System Status', - to: 'https://status.supabase.com/', - }, - ], - }, - { - title: 'Community', - items: [ - { - label: 'GitHub', - href: 'https://github.com/supabase/supabase', - }, - { - label: 'Twitter', - href: 'https://twitter.com/supabase', - }, - { - label: 'DevTo', - href: 'https://dev.to/supabase', - }, - { - label: 'RSS', - href: 'https://supabase.com/rss.xml', - }, - { - label: 'Discord', - href: 'https://discord.supabase.com', - }, - ], - }, - { - title: 'Beta', - items: [ - { - label: 'Join our beta', - href: 'https://app.supabase.com', - }, - ], - }, - ], - copyright: `Copyright © ${new Date().getFullYear()} Supabase.`, - }, - }, - presets: [ - [ - '@docusaurus/preset-classic', - { - docs: { - routeBasePath: '/', - sidebarPath: require.resolve('./sidebars.js'), - editUrl: 'https://github.com/supabase/supabase/edit/master/web', - breadcrumbs: false, - }, - theme: { - customCss: require.resolve('./src/css/custom.css'), - }, - blog: { - feedOptions: { - type: 'all', - copyright: `Copyright © ${new Date().getFullYear()} Supabase, Inc.`, - }, - }, - }, - ], - ], - scripts: [{ src: '/docs/scripts/telemetry.js' }], - // plugins: [ - // // [ - // // '@docusaurus/plugin-content-docs', - // // { - // // id: 'supabase-client', // for first plugin-content-docs with "resources/" path - // // // homePageId: "doc2", - // // path: './ref/supabase', // Path to data on filesystem, relative to site dir. - // // routeBasePath: 'ref/supabase', // URL Route. - // // include: ['**/*.md', '**/*.mdx'], - // // sidebarPath: require.resolve('./sidebar_spec_supabase.js'), - // // // disableVersioning: true, // if not set with versions, throw: Identifier 'React' has already been declared - // // }, - // // ], - // // [ - // // '@docusaurus/plugin-content-docs', - // // { - // // id: 'postgrest-client', // for first plugin-content-docs with "resources/" path - // // // homePageId: "doc2", - // // path: './ref/postgrest', // Path to data on filesystem, relative to site dir. - // // routeBasePath: 'ref/postgrest', // URL Route. - // // include: ['**/*.md', '**/*.mdx'], - // // sidebarPath: require.resolve('./sidebar_spec_postgrest.js'), - // // // disableVersioning: true, // if not set with versions, throw: Identifier 'React' has already been declared - // // }, - // // ], - // // [ - // // '@docusaurus/plugin-content-docs', - // // { - // // id: 'gotrue-client', // for first plugin-content-docs with "resources/" path - // // // homePageId: "doc2", - // // path: './ref/gotrue', // Path to data on filesystem, relative to site dir. - // // routeBasePath: 'ref/gotrue', // URL Route. - // // include: ['**/*.md', '**/*.mdx'], - // // sidebarPath: require.resolve('./sidebar_spec_gotrue.js'), - // // // disableVersioning: true, // if not set with versions, throw: Identifier 'React' has already been declared - // // }, - // // ], - // // [ - // // '@docusaurus/plugin-content-docs', - // // { - // // id: 'realtime-client', // for first plugin-content-docs with "resources/" path - // // // homePageId: "doc2", - // // path: './ref/realtime', // Path to data on filesystem, relative to site dir. - // // routeBasePath: 'ref/realtime', // URL Route. - // // include: ['**/*.md', '**/*.mdx'], - // // sidebarPath: require.resolve('./sidebar_spec_realtime.js'), - // // // disableVersioning: true, // if not set with versions, throw: Identifier 'React' has already been declared - // // }, - // // ], - // // [ - // // '@docusaurus/plugin-content-docs', - // // { - // // id: 'realtime-server', // for first plugin-content-docs with "resources/" path - // // path: './tools/realtime', // Path to data on filesystem, relative to site dir. - // // routeBasePath: 'docs/realtime', // URL Route. - // // include: ['**/*.md', '**/*.mdx'], - // // sidebarPath: require.resolve('./sidebar_realtime_server.js'), - // // // disableVersioning: true, // if not set with versions, throw: Identifier 'React' has already been declared - // // }, - // // ], - // // [ - // // '@docusaurus/plugin-content-docs', - // // { - // // id: 'postgrest', // for first plugin-content-docs with "resources/" path - // // // homePageId: "doc2", - // // path: './ref/postgrest', // Path to data on filesystem, relative to site dir. - // // routeBasePath: 'ref/postgrest', // URL Route. - // // include: ['**/*.md', '**/*.mdx'], - // // sidebarPath: require.resolve('./sidebar_spec_postgrest.js'), - // // // disableVersioning: true, // if not set with versions, throw: Identifier 'React' has already been declared - // // }, - // // ], - // ], -} diff --git a/web/package-lock.json b/web/package-lock.json deleted file mode 100644 index c844dff36a4..00000000000 --- a/web/package-lock.json +++ /dev/null @@ -1,24055 +0,0 @@ -{ - "name": "supabase", - "version": "0.0.3", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "supabase", - "version": "0.0.3", - "dependencies": { - "@docusaurus/core": "^2.0.0-beta.18", - "@docusaurus/preset-classic": "^2.0.0-beta.18", - "@kiwicopple/prism-react-renderer": "https://github.com/kiwicopple/prism-react-renderer.git", - "@octokit/core": "^3.5.1", - "docusaurus-theme-search-typesense": "^0.4.0", - "jsrsasign": "^10.5.25", - "mermaid": "^8.13.8", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "react-inlinesvg": "^2.0.1", - "react-loadable": "^5.5.0" - }, - "devDependencies": { - "@types/node": "^14.17.34", - "axios": "^0.21.1", - "babel-plugin-css-modules-transform": "^1.6.2", - "clsx": "^1.1.1", - "dotenv": "^10.0.0", - "js-yaml": "^3.14.0", - "minimist": "^1.2.5", - "ts-node": "^10.8.0", - "typescript": "^4.7.2" - } - }, - "node_modules/@algolia/autocomplete-core": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.6.3.tgz", - "integrity": "sha512-dqQqRt01fX3YuVFrkceHsoCnzX0bLhrrg8itJI1NM68KjrPYQPYsE+kY8EZTCM4y8VDnhqJErR73xe/ZsV+qAA==", - "dependencies": { - "@algolia/autocomplete-shared": "1.6.3" - } - }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.2.1.tgz", - "integrity": "sha512-Lf4PpPVgHNXm1ytrnVdrZYV7hAYSCpAI/TrebF8UC6xflPY6sKb1RL/2OfrO9On7SDjPBtNd+6MArSar5JmK0g==", - "dependencies": { - "@algolia/autocomplete-shared": "1.2.1" - }, - "peerDependencies": { - "@algolia/client-search": "^4.9.1", - "algoliasearch": "^4.9.1" - } - }, - "node_modules/@algolia/autocomplete-preset-algolia/node_modules/@algolia/autocomplete-shared": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.2.1.tgz", - "integrity": "sha512-RHCwcXAYFwDXTlomstjWRFIzOfyxtQ9KmViacPE5P5hxUSSjkmG3dAb77xdydift1PaZNbho5TNTCi5UZe0RpA==" - }, - "node_modules/@algolia/autocomplete-shared": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.6.3.tgz", - "integrity": "sha512-UV46bnkTztyADFaETfzFC5ryIdGVb2zpAoYgu0tfcuYWjhg1KbLXveFffZIrGVoboqmAk1b+jMrl6iCja1i3lg==" - }, - "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.13.1.tgz", - "integrity": "sha512-UAUVG2PEfwd/FfudsZtYnidJ9eSCpS+LW9cQiesePQLz41NAcddKxBak6eP2GErqyFagSlnVXe/w2E9h2m2ttg==", - "dependencies": { - "@algolia/cache-common": "4.13.1" - } - }, - "node_modules/@algolia/cache-common": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.13.1.tgz", - "integrity": "sha512-7Vaf6IM4L0Jkl3sYXbwK+2beQOgVJ0mKFbz/4qSxKd1iy2Sp77uTAazcX+Dlexekg1fqGUOSO7HS4Sx47ZJmjA==" - }, - "node_modules/@algolia/cache-in-memory": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.13.1.tgz", - "integrity": "sha512-pZzybCDGApfA/nutsFK1P0Sbsq6fYJU3DwIvyKg4pURerlJM4qZbB9bfLRef0FkzfQu7W11E4cVLCIOWmyZeuQ==", - "dependencies": { - "@algolia/cache-common": "4.13.1" - } - }, - "node_modules/@algolia/client-account": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.13.1.tgz", - "integrity": "sha512-TFLiZ1KqMiir3FNHU+h3b0MArmyaHG+eT8Iojio6TdpeFcAQ1Aiy+2gb3SZk3+pgRJa/BxGmDkRUwE5E/lv3QQ==", - "dependencies": { - "@algolia/client-common": "4.13.1", - "@algolia/client-search": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "node_modules/@algolia/client-analytics": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.13.1.tgz", - "integrity": "sha512-iOS1JBqh7xaL5x00M5zyluZ9+9Uy9GqtYHv/2SMuzNW1qP7/0doz1lbcsP3S7KBbZANJTFHUOfuqyRLPk91iFA==", - "dependencies": { - "@algolia/client-common": "4.13.1", - "@algolia/client-search": "4.13.1", - "@algolia/requester-common": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "node_modules/@algolia/client-common": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.13.1.tgz", - "integrity": "sha512-LcDoUE0Zz3YwfXJL6lJ2OMY2soClbjrrAKB6auYVMNJcoKZZ2cbhQoFR24AYoxnGUYBER/8B+9sTBj5bj/Gqbg==", - "dependencies": { - "@algolia/requester-common": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "node_modules/@algolia/client-personalization": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.13.1.tgz", - "integrity": "sha512-1CqrOW1ypVrB4Lssh02hP//YxluoIYXAQCpg03L+/RiXJlCs+uIqlzC0ctpQPmxSlTK6h07kr50JQoYH/TIM9w==", - "dependencies": { - "@algolia/client-common": "4.13.1", - "@algolia/requester-common": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "node_modules/@algolia/client-search": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.13.1.tgz", - "integrity": "sha512-YQKYA83MNRz3FgTNM+4eRYbSmHi0WWpo019s5SeYcL3HUan/i5R09VO9dk3evELDFJYciiydSjbsmhBzbpPP2A==", - "dependencies": { - "@algolia/client-common": "4.13.1", - "@algolia/requester-common": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "node_modules/@algolia/events": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", - "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" - }, - "node_modules/@algolia/logger-common": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.13.1.tgz", - "integrity": "sha512-L6slbL/OyZaAXNtS/1A8SAbOJeEXD5JcZeDCPYDqSTYScfHu+2ePRTDMgUTY4gQ7HsYZ39N1LujOd8WBTmM2Aw==" - }, - "node_modules/@algolia/logger-console": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.13.1.tgz", - "integrity": "sha512-7jQOTftfeeLlnb3YqF8bNgA2GZht7rdKkJ31OCeSH2/61haO0tWPoNRjZq9XLlgMQZH276pPo0NdiArcYPHjCA==", - "dependencies": { - "@algolia/logger-common": "4.13.1" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.13.1.tgz", - "integrity": "sha512-oa0CKr1iH6Nc7CmU6RE7TnXMjHnlyp7S80pP/LvZVABeJHX3p/BcSCKovNYWWltgTxUg0U1o+2uuy8BpMKljwA==", - "dependencies": { - "@algolia/requester-common": "4.13.1" - } - }, - "node_modules/@algolia/requester-common": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.13.1.tgz", - "integrity": "sha512-eGVf0ID84apfFEuXsaoSgIxbU3oFsIbz4XiotU3VS8qGCJAaLVUC5BUJEkiFENZIhon7hIB4d0RI13HY4RSA+w==" - }, - "node_modules/@algolia/requester-node-http": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.13.1.tgz", - "integrity": "sha512-7C0skwtLdCz5heKTVe/vjvrqgL/eJxmiEjHqXdtypcE5GCQCYI15cb+wC4ytYioZDMiuDGeVYmCYImPoEgUGPw==", - "dependencies": { - "@algolia/requester-common": "4.13.1" - } - }, - "node_modules/@algolia/transporter": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.13.1.tgz", - "integrity": "sha512-pICnNQN7TtrcYJqqPEXByV8rJ8ZRU2hCiIKLTLRyNpghtQG3VAFk6fVtdzlNfdUGZcehSKGarPIZEHlQXnKjgw==", - "dependencies": { - "@algolia/cache-common": "4.13.1", - "@algolia/logger-common": "4.13.1", - "@algolia/requester-common": "4.13.1" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.5.tgz", - "integrity": "sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", - "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helpers": "^7.18.2", - "@babel/parser": "^7.18.5", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.5", - "@babel/types": "^7.18.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", - "dependencies": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", - "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", - "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", - "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", - "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "dependencies": { - "@babel/types": "^7.17.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", - "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", - "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", - "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", - "dependencies": { - "@babel/types": "^7.18.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dependencies": { - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", - "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", - "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/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==" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", - "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", - "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", - "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", - "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", - "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", - "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", - "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", - "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", - "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", - "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", - "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", - "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", - "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", - "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", - "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", - "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", - "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", - "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", - "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", - "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", - "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", - "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-replace-supers": "^7.18.2", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", - "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", - "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", - "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", - "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", - "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", - "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", - "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", - "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", - "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.18.2", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz", - "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==", - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", - "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", - "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", - "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz", - "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", - "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.12.tgz", - "integrity": "sha512-maEkX2xs2STuv2Px8QuqxqjhV2LsFobT1elCgyU5704fcyTu9DyD/bJXxD/mrRiVyhpHweOQ00OJ5FKhHq9oEw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", - "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-jsx": "^7.17.12", - "@babel/types": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz", - "integrity": "sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", - "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "regenerator-transform": "^0.15.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", - "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz", - "integrity": "sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==", - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", - "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", - "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", - "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", - "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-typescript": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", - "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", - "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-async-generator-functions": "^7.17.12", - "@babel/plugin-proposal-class-properties": "^7.17.12", - "@babel/plugin-proposal-class-static-block": "^7.18.0", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.17.12", - "@babel/plugin-proposal-json-strings": "^7.17.12", - "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.18.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-private-methods": "^7.17.12", - "@babel/plugin-proposal-private-property-in-object": "^7.17.12", - "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.17.12", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.17.12", - "@babel/plugin-transform-async-to-generator": "^7.17.12", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.17.12", - "@babel/plugin-transform-classes": "^7.17.12", - "@babel/plugin-transform-computed-properties": "^7.17.12", - "@babel/plugin-transform-destructuring": "^7.18.0", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.17.12", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.18.1", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.17.12", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.18.0", - "@babel/plugin-transform-modules-commonjs": "^7.18.2", - "@babel/plugin-transform-modules-systemjs": "^7.18.0", - "@babel/plugin-transform-modules-umd": "^7.18.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", - "@babel/plugin-transform-new-target": "^7.17.12", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.17.12", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.18.0", - "@babel/plugin-transform-reserved-words": "^7.17.12", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.17.12", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.18.2", - "@babel/plugin-transform-typeof-symbol": "^7.17.12", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.2", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz", - "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.17.12", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", - "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.17.12" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz", - "integrity": "sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==", - "dependencies": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", - "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.18.5", - "@babel/types": "^7.18.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@braintree/sanitize-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz", - "integrity": "sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==", - "deprecated": "Potential XSS vulnerability patched in v6.0.0." - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@docsearch/css": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.1.0.tgz", - "integrity": "sha512-bh5IskwkkodbvC0FzSg1AxMykfDl95hebEKwxNoq4e5QaGzOXSBgW8+jnMFZ7JU4sTBiB04vZWoUSzNrPboLZA==" - }, - "node_modules/@docsearch/react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.1.0.tgz", - "integrity": "sha512-bjB6ExnZzf++5B7Tfoi6UXgNwoUnNOfZ1NyvnvPhWgCMy5V/biAtLL4o7owmZSYdAKeFSvZ5Lxm0is4su/dBWg==", - "dependencies": { - "@algolia/autocomplete-core": "1.6.3", - "@docsearch/css": "3.1.0", - "algoliasearch": "^4.0.0" - }, - "peerDependencies": { - "@types/react": ">= 16.8.0 < 19.0.0", - "react": ">= 16.8.0 < 19.0.0", - "react-dom": ">= 16.8.0 < 19.0.0" - } - }, - "node_modules/@docusaurus/core": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.21.tgz", - "integrity": "sha512-qysDMVp1M5UozK3u/qOxsEZsHF7jeBvJDS+5ItMPYmNKvMbNKeYZGA0g6S7F9hRDwjIlEbvo7BaX0UMDcmTAWA==", - "dependencies": { - "@babel/core": "^7.18.2", - "@babel/generator": "^7.18.2", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.18.2", - "@babel/preset-env": "^7.18.2", - "@babel/preset-react": "^7.17.12", - "@babel/preset-typescript": "^7.17.12", - "@babel/runtime": "^7.18.3", - "@babel/runtime-corejs3": "^7.18.3", - "@babel/traverse": "^7.18.2", - "@docusaurus/cssnano-preset": "2.0.0-beta.21", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/mdx-loader": "2.0.0-beta.21", - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-common": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "@slorber/static-site-generator-webpack-plugin": "^4.0.4", - "@svgr/webpack": "^6.2.1", - "autoprefixer": "^10.4.7", - "babel-loader": "^8.2.5", - "babel-plugin-dynamic-import-node": "^2.3.3", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "clean-css": "^5.3.0", - "cli-table3": "^0.6.2", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "copy-webpack-plugin": "^11.0.0", - "core-js": "^3.22.7", - "css-loader": "^6.7.1", - "css-minimizer-webpack-plugin": "^4.0.0", - "cssnano": "^5.1.9", - "del": "^6.1.1", - "detect-port": "^1.3.0", - "escape-html": "^1.0.3", - "eta": "^1.12.3", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "html-minifier-terser": "^6.1.0", - "html-tags": "^3.2.0", - "html-webpack-plugin": "^5.5.0", - "import-fresh": "^3.3.0", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.6.0", - "postcss": "^8.4.14", - "postcss-loader": "^7.0.0", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.3", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.3", - "remark-admonitions": "^1.2.1", - "rtl-detect": "^1.0.4", - "semver": "^7.3.7", - "serve-handler": "^6.1.3", - "shelljs": "^0.8.5", - "terser-webpack-plugin": "^5.3.1", - "tslib": "^2.4.0", - "update-notifier": "^5.1.0", - "url-loader": "^4.1.1", - "wait-on": "^6.0.1", - "webpack": "^5.72.1", - "webpack-bundle-analyzer": "^4.5.0", - "webpack-dev-server": "^4.9.0", - "webpack-merge": "^5.8.0", - "webpackbar": "^5.0.2" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/core/node_modules/react-loadable": { - "name": "@docusaurus/react-loadable", - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/@docusaurus/cssnano-preset": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.21.tgz", - "integrity": "sha512-fhTZrg1vc6zYYZIIMXpe1TnEVGEjqscBo0s1uomSwKjjtMgu7wkzc1KKJYY7BndsSA+fVVkZ+OmL/kAsmK7xxw==", - "dependencies": { - "cssnano-preset-advanced": "^5.3.5", - "postcss": "^8.4.14", - "postcss-sort-media-queries": "^4.2.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@docusaurus/logger": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.0.0-beta.21.tgz", - "integrity": "sha512-HTFp8FsSMrAj7Uxl5p72U+P7rjYU/LRRBazEoJbs9RaqoKEdtZuhv8MYPOCh46K9TekaoquRYqag2o23Qt4ggA==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@docusaurus/mdx-loader": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.21.tgz", - "integrity": "sha512-AI+4obJnpOaBOAYV6df2ux5Y1YJCBS+MhXFf0yhED12sVLJi2vffZgdamYd/d/FwvWDw6QLs/VD2jebd7P50yQ==", - "dependencies": { - "@babel/parser": "^7.18.3", - "@babel/traverse": "^7.18.2", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@mdx-js/mdx": "^1.6.22", - "escape-html": "^1.0.3", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "image-size": "^1.0.1", - "mdast-util-to-string": "^2.0.0", - "remark-emoji": "^2.2.0", - "stringify-object": "^3.3.0", - "tslib": "^2.4.0", - "unist-util-visit": "^2.0.3", - "url-loader": "^4.1.1", - "webpack": "^5.72.1" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/module-type-aliases": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.21.tgz", - "integrity": "sha512-gRkWICgQZiqSJgrwRKWjXm5gAB+9IcfYdUbCG0PRPP/G8sNs9zBIOY4uT4Z5ox2CWFEm44U3RTTxj7BiLVMBXw==", - "dependencies": { - "@docusaurus/types": "2.0.0-beta.21", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/plugin-content-blog": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.21.tgz", - "integrity": "sha512-IP21yJViP3oBmgsWBU5LhrG1MZXV4mYCQSoCAboimESmy1Z11RCNP2tXaqizE3iTmXOwZZL+SNBk06ajKCEzWg==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/mdx-loader": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-common": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "cheerio": "^1.0.0-rc.11", - "feed": "^4.2.2", - "fs-extra": "^10.1.0", - "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "remark-admonitions": "^1.2.1", - "tslib": "^2.4.0", - "unist-util-visit": "^2.0.3", - "utility-types": "^3.10.0", - "webpack": "^5.72.1" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.21.tgz", - "integrity": "sha512-aa4vrzJy4xRy81wNskyhE3wzRf3AgcESZ1nfKh8xgHUkT7fDTZ1UWlg50Jb3LBCQFFyQG2XQB9N6llskI/KUnw==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/mdx-loader": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "combine-promises": "^1.1.0", - "fs-extra": "^10.1.0", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "remark-admonitions": "^1.2.1", - "tslib": "^2.4.0", - "utility-types": "^3.10.0", - "webpack": "^5.72.1" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/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==" - }, - "node_modules/@docusaurus/plugin-content-docs/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==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@docusaurus/plugin-content-pages": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.21.tgz", - "integrity": "sha512-DmXOXjqNI+7X5hISzCvt54QIK6XBugu2MOxjxzuqI7q92Lk/EVdraEj5mthlH8IaEH/VlpWYJ1O9TzLqX5vH2g==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/mdx-loader": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "fs-extra": "^10.1.0", - "remark-admonitions": "^1.2.1", - "tslib": "^2.4.0", - "webpack": "^5.72.1" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-debug": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.21.tgz", - "integrity": "sha512-P54J4q4ecsyWW0Jy4zbimSIHna999AfbxpXGmF1IjyHrjoA3PtuakV1Ai51XrGEAaIq9q6qMQkEhbUd3CffGAw==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "fs-extra": "^10.1.0", - "react-json-view": "^1.21.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-analytics": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.21.tgz", - "integrity": "sha512-+5MS0PeGaJRgPuNZlbd/WMdQSpOACaxEz7A81HAxm6kE+tIASTW3l8jgj1eWFy/PGPzaLnQrEjxI1McAfnYmQw==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.21.tgz", - "integrity": "sha512-4zxKZOnf0rfh6myXLG7a6YZfQcxYDMBsWqANEjCX77H5gPdK+GHZuDrxK6sjFvRBv4liYCrNjo7HJ4DpPoT0zA==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/plugin-sitemap": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.21.tgz", - "integrity": "sha512-/ynWbcXZXcYZ6sT2X6vAJbnfqcPxwdGEybd0rcRZi4gBHq6adMofYI25AqELmnbBDxt0If+vlAeUHFRG5ueP7Q==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-common": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "fs-extra": "^10.1.0", - "sitemap": "^7.1.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/preset-classic": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.21.tgz", - "integrity": "sha512-KvBnIUu7y69pNTJ9UhX6SdNlK6prR//J3L4rhN897tb8xx04xHHILlPXko2Il+C3Xzgh3OCgyvkoz9K6YlFTDw==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/plugin-content-blog": "2.0.0-beta.21", - "@docusaurus/plugin-content-docs": "2.0.0-beta.21", - "@docusaurus/plugin-content-pages": "2.0.0-beta.21", - "@docusaurus/plugin-debug": "2.0.0-beta.21", - "@docusaurus/plugin-google-analytics": "2.0.0-beta.21", - "@docusaurus/plugin-google-gtag": "2.0.0-beta.21", - "@docusaurus/plugin-sitemap": "2.0.0-beta.21", - "@docusaurus/theme-classic": "2.0.0-beta.21", - "@docusaurus/theme-common": "2.0.0-beta.21", - "@docusaurus/theme-search-algolia": "2.0.0-beta.21" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/react-loadable": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/@docusaurus/theme-classic": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.21.tgz", - "integrity": "sha512-Ge0WNdTefD0VDQfaIMRRWa8tWMG9+8/OlBRd5MK88/TZfqdBq7b/gnCSaalQlvZwwkj6notkKhHx72+MKwWUJA==", - "dependencies": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/plugin-content-blog": "2.0.0-beta.21", - "@docusaurus/plugin-content-docs": "2.0.0-beta.21", - "@docusaurus/plugin-content-pages": "2.0.0-beta.21", - "@docusaurus/theme-common": "2.0.0-beta.21", - "@docusaurus/theme-translations": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-common": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "@mdx-js/react": "^1.6.22", - "clsx": "^1.1.1", - "copy-text-to-clipboard": "^3.0.1", - "infima": "0.2.0-alpha.39", - "lodash": "^4.17.21", - "nprogress": "^0.2.0", - "postcss": "^8.4.14", - "prism-react-renderer": "^1.3.3", - "prismjs": "^1.28.0", - "react-router-dom": "^5.3.3", - "rtlcss": "^3.5.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/theme-common": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-beta.21.tgz", - "integrity": "sha512-fTKoTLRfjuFG6c3iwnVjIIOensxWMgdBKLfyE5iih3Lq7tQgkE7NyTGG9BKLrnTJ7cAD2UXdXM9xbB7tBf1qzg==", - "dependencies": { - "@docusaurus/module-type-aliases": "2.0.0-beta.21", - "@docusaurus/plugin-content-blog": "2.0.0-beta.21", - "@docusaurus/plugin-content-docs": "2.0.0-beta.21", - "@docusaurus/plugin-content-pages": "2.0.0-beta.21", - "clsx": "^1.1.1", - "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^1.3.3", - "tslib": "^2.4.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/theme-search-algolia": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.21.tgz", - "integrity": "sha512-T1jKT8MVSSfnztSqeebUOpWHPoHKtwDXtKYE0xC99JWoZ+mMfv8AFhVSoSddn54jLJjV36mxg841eHQIySMCpQ==", - "dependencies": { - "@docsearch/react": "^3.1.0", - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/plugin-content-docs": "2.0.0-beta.21", - "@docusaurus/theme-common": "2.0.0-beta.21", - "@docusaurus/theme-translations": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "algoliasearch": "^4.13.1", - "algoliasearch-helper": "^3.8.2", - "clsx": "^1.1.1", - "eta": "^1.12.3", - "fs-extra": "^10.1.0", - "lodash": "^4.17.21", - "tslib": "^2.4.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=16.14" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/theme-translations": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.21.tgz", - "integrity": "sha512-dLVT9OIIBs6MpzMb1bAy+C0DPJK3e3DNctG+ES0EP45gzEqQxzs4IsghpT+QDaOsuhNnAlosgJpFWX3rqxF9xA==", - "dependencies": { - "fs-extra": "^10.1.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@docusaurus/types": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-beta.21.tgz", - "integrity": "sha512-/GH6Npmq81eQfMC/ikS00QSv9jNyO1RXEpNSx5GLA3sFX8Iib26g2YI2zqNplM8nyxzZ2jVBuvUoeODTIbTchQ==", - "dependencies": { - "commander": "^5.1.0", - "history": "^4.9.0", - "joi": "^17.6.0", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.72.1", - "webpack-merge": "^5.8.0" - }, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/@docusaurus/utils": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-beta.21.tgz", - "integrity": "sha512-M/BrVCDmmUPZLxtiStBgzpQ4I5hqkggcpnQmEN+LbvbohjbtVnnnZQ0vptIziv1w8jry/woY+ePsyOO7O/yeLQ==", - "dependencies": { - "@docusaurus/logger": "2.0.0-beta.21", - "@svgr/webpack": "^6.2.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "github-slugger": "^1.4.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.4.0", - "url-loader": "^4.1.1", - "webpack": "^5.72.1" - }, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@docusaurus/utils-common": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.0.0-beta.21.tgz", - "integrity": "sha512-5w+6KQuJb6pUR2M8xyVuTMvO5NFQm/p8TOTDFTx60wt3p0P1rRX00v6FYsD4PK6pgmuoKjt2+Ls8dtSXc4qFpQ==", - "dependencies": { - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@docusaurus/utils-validation": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.21.tgz", - "integrity": "sha512-6NG1FHTRjv1MFzqW//292z7uCs77vntpWEbZBHk3n67aB1HoMn5SOwjLPtRDjbCgn6HCHFmdiJr6euCbjhYolg==", - "dependencies": { - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "joi": "^17.6.0", - "js-yaml": "^4.1.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.14" - } - }, - "node_modules/@docusaurus/utils-validation/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==" - }, - "node_modules/@docusaurus/utils-validation/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==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@docusaurus/utils/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==" - }, - "node_modules/@docusaurus/utils/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==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@kiwicopple/prism-react-renderer": { - "version": "1.0.2", - "resolved": "git+ssh://git@github.com/kiwicopple/prism-react-renderer.git#4a09100a587bce2d94d7ac8ed3564a61c6e70781", - "license": "MIT", - "dependencies": { - "prismjs": "^1.22.0" - }, - "peerDependencies": { - "react": ">=0.14.9" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" - }, - "node_modules/@mdx-js/mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", - "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", - "dependencies": { - "@babel/core": "7.12.9", - "@babel/plugin-syntax-jsx": "7.12.1", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "1.6.22", - "babel-plugin-apply-mdx-type-prop": "1.6.22", - "babel-plugin-extract-import-names": "1.6.22", - "camelcase-css": "2.0.1", - "detab": "2.0.4", - "hast-util-raw": "6.0.1", - "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "10.0.1", - "remark-footnotes": "2.0.0", - "remark-mdx": "1.6.22", - "remark-parse": "8.0.3", - "remark-squeeze-paragraphs": "4.0.0", - "style-to-object": "0.3.0", - "unified": "9.2.0", - "unist-builder": "2.0.3", - "unist-util-visit": "2.0.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/mdx/node_modules/@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@mdx-js/mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@mdx-js/mdx/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@mdx-js/react": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0" - } - }, - "node_modules/@mdx-js/util": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", - "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", - "dependencies": { - "@octokit/types": "^6.0.3" - } - }, - "node_modules/@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", - "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", - "dependencies": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", - "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.1.0.tgz", - "integrity": "sha512-kQzJh3ZUv3lDpi6M+uekMRHULvf9DlWoI1XgKN6nPeGDzkSgtkhVq1MMz3bFKQ6H6GbdC3ZqG/a6VzKhIx0VeA==" - }, - "node_modules/@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", - "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "dependencies": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "node_modules/@octokit/types": { - "version": "6.35.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.35.0.tgz", - "integrity": "sha512-DhLfdUuv3H37u6jBDfkwamypx3HflHg29b26nbA6iVFYkAlZ5cMEtu/9pQoihGnQE5M7jJFnNo25Rr1UwQNF8Q==", - "dependencies": { - "@octokit/openapi-types": "^12.1.0" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@slorber/static-site-generator-webpack-plugin": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", - "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", - "dependencies": { - "eval": "^0.1.8", - "p-map": "^4.0.0", - "webpack-sources": "^3.2.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz", - "integrity": "sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz", - "integrity": "sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz", - "integrity": "sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz", - "integrity": "sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz", - "integrity": "sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz", - "integrity": "sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz", - "integrity": "sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.2.0.tgz", - "integrity": "sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg==", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.2.0.tgz", - "integrity": "sha512-4WQNY0J71JIaL03DRn0vLiz87JXx0b9dYm2aA8XHlQJQoixMl4r/soYHm8dsaJZ3jWtkCiOYy48dp9izvXhDkQ==", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^6.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^6.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "^6.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "^6.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "^6.0.0", - "@svgr/babel-plugin-transform-svg-component": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/core": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.2.1.tgz", - "integrity": "sha512-NWufjGI2WUyrg46mKuySfviEJ6IxHUOm/8a3Ph38VCWSp+83HBraCQrpEM3F3dB6LBs5x8OElS8h3C0oOJaJAA==", - "dependencies": { - "@svgr/plugin-jsx": "^6.2.1", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.2.1.tgz", - "integrity": "sha512-pt7MMkQFDlWJVy9ULJ1h+hZBDGFfSCwlBNW1HkLnVi7jUhyEXUaGYWi1x6bM2IXuAR9l265khBT4Av4lPmaNLQ==", - "dependencies": { - "@babel/types": "^7.15.6", - "entities": "^3.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.2.1.tgz", - "integrity": "sha512-u+MpjTsLaKo6r3pHeeSVsh9hmGRag2L7VzApWIaS8imNguqoUwDq/u6U/NDmYs/KAsrmtBjOEaAAPbwNGXXp1g==", - "dependencies": { - "@babel/core": "^7.15.5", - "@svgr/babel-preset": "^6.2.0", - "@svgr/hast-util-to-babel-ast": "^6.2.1", - "svg-parser": "^2.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "^6.0.0" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.2.0.tgz", - "integrity": "sha512-oDdMQONKOJEbuKwuy4Np6VdV6qoaLLvoY86hjvQEgU82Vx1MSWRyYms6Sl0f+NtqxLI/rDVufATbP/ev996k3Q==", - "dependencies": { - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "svgo": "^2.5.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "^6.0.0" - } - }, - "node_modules/@svgr/webpack": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.2.1.tgz", - "integrity": "sha512-h09ngMNd13hnePwgXa+Y5CgOjzlCvfWLHg+MBnydEedAnuLRzUHUJmGS3o2OsrhxTOOqEsPOFt5v/f6C5Qulcw==", - "dependencies": { - "@babel/core": "^7.15.5", - "@babel/plugin-transform-react-constant-elements": "^7.14.5", - "@babel/preset-env": "^7.15.6", - "@babel/preset-react": "^7.14.5", - "@babel/preset-typescript": "^7.15.0", - "@svgr/core": "^6.2.1", - "@svgr/plugin-jsx": "^6.2.1", - "@svgr/plugin-svgo": "^6.2.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.3.tgz", - "integrity": "sha512-YP1S7YJRMPs+7KZKDb9G63n8YejIwW9BALq7a5j2+H4yl6iOv9CB29edho+cuFRrvmJbbaH2yiVChKLJVysDGw==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.29", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", - "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "node_modules/@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - }, - "node_modules/@types/node": { - "version": "14.18.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", - "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==" - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "node_modules/@types/parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "node_modules/@types/react": { - "version": "17.0.46", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.46.tgz", - "integrity": "sha512-zNAJVEO9dBEQLPa/OuedGfx92/UlD+1rNxSv2qVWUQZ+orEtLUWFgZ08xfyI9TAZLnmWzZDtssAsgtbXT7Ew0g==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-router": { - "version": "5.1.18", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz", - "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-config": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.6.tgz", - "integrity": "sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "node_modules/@types/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "node_modules/@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.0.tgz", - "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/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==" - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/algoliasearch": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.13.1.tgz", - "integrity": "sha512-dtHUSE0caWTCE7liE1xaL+19AFf6kWEcyn76uhcitWpntqvicFHXKFoZe5JJcv9whQOTRM6+B8qJz6sFj+rDJA==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.13.1", - "@algolia/cache-common": "4.13.1", - "@algolia/cache-in-memory": "4.13.1", - "@algolia/client-account": "4.13.1", - "@algolia/client-analytics": "4.13.1", - "@algolia/client-common": "4.13.1", - "@algolia/client-personalization": "4.13.1", - "@algolia/client-search": "4.13.1", - "@algolia/logger-common": "4.13.1", - "@algolia/logger-console": "4.13.1", - "@algolia/requester-browser-xhr": "4.13.1", - "@algolia/requester-common": "4.13.1", - "@algolia/requester-node-http": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "node_modules/algoliasearch-helper": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.8.3.tgz", - "integrity": "sha512-J0H08fQoyhZ2qLi7Uy8EvUeN/NJ4Trtt7NWB8mF1CGLuYpdXPyjZu9+Uoya2eayxQ20RP+QGF9Om/LddPv49vw==", - "dependencies": { - "@algolia/events": "^4.0.1" - }, - "peerDependencies": { - "algoliasearch": ">= 3.1 < 5" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - } - ], - "dependencies": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-plugin-apply-mdx-type-prop": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", - "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4", - "@mdx-js/util": "1.6.22" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@babel/core": "^7.11.6" - } - }, - "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "node_modules/babel-plugin-css-modules-transform": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-css-modules-transform/-/babel-plugin-css-modules-transform-1.6.2.tgz", - "integrity": "sha512-zBsI54N5n979vfYpqFzQ6oRwEiVcmLH5REyaincNW+Ecl52nvRsQPYIbDcJzHePrXI20YSRUw6G/qbPwZZDgfg==", - "dev": true, - "dependencies": { - "css-modules-require-hook": "^4.0.6", - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-extract-import-names": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", - "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", - "dependencies": { - "@babel/helper-plugin-utils": "7.10.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base16": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", - "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==" - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" - }, - "node_modules/before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/bonjour-service": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", - "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, - "node_modules/boxen": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", - "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^6.2.0", - "chalk": "^4.1.2", - "cli-boxes": "^3.0.0", - "string-width": "^5.0.1", - "type-fest": "^2.5.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.20.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz", - "integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001349", - "electron-to-chromium": "^1.4.147", - "escalade": "^3.1.1", - "node-releases": "^2.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001355", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001355.tgz", - "integrity": "sha512-Sd6pjJHF27LzCB7pT7qs+kuX2ndurzCzkpJl6Qct7LPSZ9jn0bkOA8mdgMgmqnQAWLVOOGjLpc+66V57eLtb1g==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/ccount": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.11", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.11.tgz", - "integrity": "sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/clean-css": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", - "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/cli-table3/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" - }, - "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" - }, - "node_modules/combine-promises": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.1.0.tgz", - "integrity": "sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compressible/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" - }, - "node_modules/content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/copy-text-to-clipboard": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz", - "integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "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" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/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==" - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/core-js": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.23.1.tgz", - "integrity": "sha512-wfMYHWi1WQjpgZNC9kAlN4ut04TM9fUTdi7CqIoTVM7yaiOUQTklOzfb+oWH3r9edQcT3F887swuVmxrV+CC8w==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.1.tgz", - "integrity": "sha512-KeYrEc8t6FJsKYB2qnDwRHWaC0cJNaqlHfCpMe5q3j/W1nje3moib/txNklddLPCtGb+etcBIyJ8zuMa/LN5/A==", - "dependencies": { - "browserslist": "^4.20.4", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-js-pure": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.1.tgz", - "integrity": "sha512-3qNgf6TqI3U1uhuSYRzJZGfFd4T+YlbyVPl+jgRiKjdZopvG4keZQwWZDAWpu1UH9nCgTpUzIV3GFawC7cJsqg==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", - "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.7", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-7ZXXRzRHvofv3Uac5Y+RkWRNo0ZMlcg8e9/OtrqUYmwDWJo+qs67GvdeFrXLsFb7czKNwjQhPkM0avlIYl+1nA==", - "dependencies": { - "cssnano": "^5.1.8", - "jest-worker": "^27.5.1", - "postcss": "^8.4.13", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/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==" - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/css-modules-require-hook": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/css-modules-require-hook/-/css-modules-require-hook-4.2.3.tgz", - "integrity": "sha512-y3eGHAqmDl8JQdr1LYTwBkMxy7CSHCMy9YwpSjDqtGqCCEy9lKq/x/nmHVs+G7C1+xXmyIXjRu0q/MMn8w01mg==", - "dev": true, - "dependencies": { - "debug": "^2.2.0", - "generic-names": "^1.0.1", - "glob-to-regexp": "^0.3.0", - "icss-replace-symbols": "^1.0.2", - "lodash": "^4.3.0", - "postcss": "^6.0.1", - "postcss-modules-extract-imports": "^1.0.0", - "postcss-modules-local-by-default": "^1.0.1", - "postcss-modules-resolve-imports": "^1.3.0", - "postcss-modules-scope": "^1.0.0", - "postcss-modules-values": "^1.1.1", - "seekout": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/css-modules-require-hook/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-modules-require-hook/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-modules-require-hook/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==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/css-modules-require-hook/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==", - "dev": true - }, - "node_modules/css-modules-require-hook/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/css-modules-require-hook/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/css-modules-require-hook/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-modules-require-hook/node_modules/icss-utils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-3.0.1.tgz", - "integrity": "sha512-ANhVLoEfe0KoC9+z4yiTaXOneB49K6JIXdS+yAgH0NERELpdIT7kkj2XxUPuHafeHnn8umXnECSpsfk1RTaUew==", - "dev": true, - "dependencies": { - "postcss": "^6.0.2" - } - }, - "node_modules/css-modules-require-hook/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/css-modules-require-hook/node_modules/postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/css-modules-require-hook/node_modules/postcss-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", - "dev": true, - "dependencies": { - "postcss": "^6.0.1" - } - }, - "node_modules/css-modules-require-hook/node_modules/postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==", - "dev": true, - "dependencies": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "node_modules/css-modules-require-hook/node_modules/postcss-modules-resolve-imports": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-resolve-imports/-/postcss-modules-resolve-imports-1.3.0.tgz", - "integrity": "sha512-9xECsLcuR1DRu7mVhK6GIkdEeg4sdZXbLEcuEkDh9mKiz+uxDBfDREYiVehINdW0UPF9gbHnb64ZQMuRsqqkDA==", - "dev": true, - "dependencies": { - "css-selector-tokenizer": "^0.7.0", - "icss-utils": "^3.0.1", - "minimist": "^1.2.0" - }, - "engines": { - "node": ">= 4" - }, - "peerDependencies": { - "postcss": "^6.0.0" - } - }, - "node_modules/css-modules-require-hook/node_modules/postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==", - "dev": true, - "dependencies": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "node_modules/css-modules-require-hook/node_modules/postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==", - "dev": true, - "dependencies": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - } - }, - "node_modules/css-modules-require-hook/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.11", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.11.tgz", - "integrity": "sha512-2nx+O6LvewPo5EBtYrKc8762mMkZRk9cMGIOP4UlkmxHm7ObxH+zvsJJ+qLwPkUc4/yumL/qJkavYi9NlodWIQ==", - "dependencies": { - "cssnano-preset-default": "^5.2.11", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-advanced": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.7.tgz", - "integrity": "sha512-VNOdTMRA60KhaURZhnkTGeluHQBHWDMwY7TIDu1Qydf88X6k8xZbV2I+Wlm8JRaj2oi18xvoIOAW17JneoZzEg==", - "dependencies": { - "autoprefixer": "^10.3.7", - "cssnano-preset-default": "^5.2.11", - "postcss-discard-unused": "^5.1.0", - "postcss-merge-idents": "^5.1.1", - "postcss-reduce-idents": "^5.2.0", - "postcss-zindex": "^5.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.11", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.11.tgz", - "integrity": "sha512-4PadR1NtuaIK8MvLNuY7MznK4WJteldGlzCiMaaTiOUP+apeiIvUDIXykzUOoqgOOUAHrU64ncdD90NfZR3LSQ==", - "dependencies": { - "css-declaration-sorter": "^6.2.2", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.2", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.5", - "postcss-merge-rules": "^5.1.2", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.3", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.0", - "postcss-normalize-repeat-style": "^5.1.0", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.2", - "postcss-reduce-initial": "^5.1.0", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" - }, - "node_modules/d3": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.4.4.tgz", - "integrity": "sha512-97FE+MYdAlV3R9P74+R3Uar7wUKkIFu89UWMjEaDhiJ9VxKvqaMxauImy8PC2DdBkdM2BxJOIoLxPrcZUyrKoQ==", - "dependencies": { - "d3-array": "3", - "d3-axis": "3", - "d3-brush": "3", - "d3-chord": "3", - "d3-color": "3", - "d3-contour": "3", - "d3-delaunay": "6", - "d3-dispatch": "3", - "d3-drag": "3", - "d3-dsv": "3", - "d3-ease": "3", - "d3-fetch": "3", - "d3-force": "3", - "d3-format": "3", - "d3-geo": "3", - "d3-hierarchy": "3", - "d3-interpolate": "3", - "d3-path": "3", - "d3-polygon": "3", - "d3-quadtree": "3", - "d3-random": "3", - "d3-scale": "4", - "d3-scale-chromatic": "3", - "d3-selection": "3", - "d3-shape": "3", - "d3-time": "3", - "d3-time-format": "4", - "d3-timer": "3", - "d3-transition": "3", - "d3-zoom": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-array": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.1.6.tgz", - "integrity": "sha512-DCbBBNuKOeiR9h04ySRBMW52TFVc91O9wJziuyXw6Ztmy8D3oZbmCkOO3UHKC7ceNJsN2Mavo9+vwV8EAEUXzA==", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-axis": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", - "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-brush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", - "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-chord": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", - "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", - "dependencies": { - "d3-path": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-contour": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-3.0.1.tgz", - "integrity": "sha512-0Oc4D0KyhwhM7ZL0RMnfGycLN7hxHB8CMmwZ3+H26PWAG0ozNuYG5hXSDNgmP1SgJkQMrlG6cP20HoaSbvcJTQ==", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-delaunay": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", - "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", - "dependencies": { - "delaunator": "5" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "dependencies": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json.js", - "csv2tsv": "bin/dsv2dsv.js", - "dsv2dsv": "bin/dsv2dsv.js", - "dsv2json": "bin/dsv2json.js", - "json2csv": "bin/json2dsv.js", - "json2dsv": "bin/json2dsv.js", - "json2tsv": "bin/json2dsv.js", - "tsv2csv": "bin/dsv2dsv.js", - "tsv2json": "bin/dsv2json.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dsv/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", - "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", - "dependencies": { - "d3-dsv": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-geo": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", - "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", - "dependencies": { - "d3-array": "2.5.0 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", - "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-polygon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", - "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-random": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", - "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", - "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", - "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", - "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", - "dependencies": { - "d3-path": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", - "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "d3-selection": "2 - 3" - } - }, - "node_modules/d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" - }, - "node_modules/d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/dagre": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", - "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", - "dependencies": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - } - }, - "node_modules/dagre-d3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz", - "integrity": "sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==", - "dependencies": { - "d3": "^5.14", - "dagre": "^0.8.5", - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - } - }, - "node_modules/dagre-d3/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/dagre-d3/node_modules/d3": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", - "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", - "dependencies": { - "d3-array": "1", - "d3-axis": "1", - "d3-brush": "1", - "d3-chord": "1", - "d3-collection": "1", - "d3-color": "1", - "d3-contour": "1", - "d3-dispatch": "1", - "d3-drag": "1", - "d3-dsv": "1", - "d3-ease": "1", - "d3-fetch": "1", - "d3-force": "1", - "d3-format": "1", - "d3-geo": "1", - "d3-hierarchy": "1", - "d3-interpolate": "1", - "d3-path": "1", - "d3-polygon": "1", - "d3-quadtree": "1", - "d3-random": "1", - "d3-scale": "2", - "d3-scale-chromatic": "1", - "d3-selection": "1", - "d3-shape": "1", - "d3-time": "1", - "d3-time-format": "2", - "d3-timer": "1", - "d3-transition": "1", - "d3-voronoi": "1", - "d3-zoom": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "node_modules/dagre-d3/node_modules/d3-axis": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", - "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" - }, - "node_modules/dagre-d3/node_modules/d3-brush": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", - "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", - "dependencies": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-chord": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", - "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", - "dependencies": { - "d3-array": "1", - "d3-path": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" - }, - "node_modules/dagre-d3/node_modules/d3-contour": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", - "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", - "dependencies": { - "d3-array": "^1.1.1" - } - }, - "node_modules/dagre-d3/node_modules/d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "node_modules/dagre-d3/node_modules/d3-drag": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", - "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", - "dependencies": { - "d3-dispatch": "1", - "d3-selection": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-dsv": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", - "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", - "dependencies": { - "commander": "2", - "iconv-lite": "0.4", - "rw": "1" - }, - "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" - } - }, - "node_modules/dagre-d3/node_modules/d3-ease": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", - "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" - }, - "node_modules/dagre-d3/node_modules/d3-fetch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", - "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", - "dependencies": { - "d3-dsv": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "dependencies": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "node_modules/dagre-d3/node_modules/d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "dependencies": { - "d3-array": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "node_modules/dagre-d3/node_modules/d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", - "dependencies": { - "d3-color": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "node_modules/dagre-d3/node_modules/d3-polygon": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", - "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" - }, - "node_modules/dagre-d3/node_modules/d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "node_modules/dagre-d3/node_modules/d3-random": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", - "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" - }, - "node_modules/dagre-d3/node_modules/d3-scale": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", - "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", - "dependencies": { - "d3-array": "^1.2.0", - "d3-collection": "1", - "d3-format": "1", - "d3-interpolate": "1", - "d3-time": "1", - "d3-time-format": "2" - } - }, - "node_modules/dagre-d3/node_modules/d3-scale-chromatic": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", - "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", - "dependencies": { - "d3-color": "1", - "d3-interpolate": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-selection": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", - "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" - }, - "node_modules/dagre-d3/node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "dependencies": { - "d3-path": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "node_modules/dagre-d3/node_modules/d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "dependencies": { - "d3-time": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "node_modules/dagre-d3/node_modules/d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", - "dependencies": { - "d3-color": "1", - "d3-dispatch": "1", - "d3-ease": "1", - "d3-interpolate": "1", - "d3-selection": "^1.1.0", - "d3-timer": "1" - } - }, - "node_modules/dagre-d3/node_modules/d3-zoom": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", - "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", - "dependencies": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, - "node_modules/dagre-d3/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delaunator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", - "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", - "dependencies": { - "robust-predicates": "^3.0.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", - "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", - "dependencies": { - "repeat-string": "^1.5.4" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "node_modules/detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/detect-port/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" - }, - "node_modules/dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/docusaurus-theme-search-typesense": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/docusaurus-theme-search-typesense/-/docusaurus-theme-search-typesense-0.4.0.tgz", - "integrity": "sha512-isjl36BzF9WUHxZNITUmpqHoZxU4b9MO+7lDXf2NmUdNKXLvRX8zNX/ajh1N95z4yZarsVWihI42RKSaLqVIbg==", - "dependencies": { - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "algoliasearch-helper": "^3.7.0", - "clsx": "^1.1.1", - "eta": "^1.12.1", - "lodash": "^4.17.20", - "typesense": "^1.2.2", - "typesense-docsearch-react": "^0.1.0", - "typesense-instantsearch-adapter": "^2.4.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/theme-common": "2.0.0-beta.21", - "react": "^16.8.4 || ^17.0.0", - "react-dom": "^16.8.4 || ^17.0.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", - "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/dompurify": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.5.tgz", - "integrity": "sha512-kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ==" - }, - "node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dot-prop/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.158", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.158.tgz", - "integrity": "sha512-gppO3/+Y6sP432HtvwvuU8S+YYYLH4PmAYvQwqUtt9HDOmEsBwQfLnK9T8+1NIKwAS1BEygIjTaATC4H5EzvxQ==" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/emoticon": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", - "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eta": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/eta/-/eta-1.12.3.tgz", - "integrity": "sha512-qHixwbDLtekO/d51Yr4glcaUJCIjGVJyTzuqV4GPlgZo1YpgOKG+avQynErZIYrfM6JIJdtiG2Kox8tbb+DoGg==", - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "url": "https://github.com/eta-dev/eta?sponsor=1" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eval": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", - "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", - "dependencies": { - "@types/node": "*", - "require-like": ">= 0.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" - }, - "node_modules/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/express/node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/express/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/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" - } - ] - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "dependencies": { - "punycode": "^1.3.2" - } - }, - "node_modules/fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fbemitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", - "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", - "dependencies": { - "fbjs": "^3.0.0" - } - }, - "node_modules/fbjs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", - "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", - "dependencies": { - "cross-fetch": "^3.1.5", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - } - }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, - "node_modules/feed": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", - "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", - "dependencies": { - "xml-js": "^1.6.11" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flux": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.3.tgz", - "integrity": "sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==", - "dependencies": { - "fbemitter": "^3.0.0", - "fbjs": "^3.0.1" - }, - "peerDependencies": { - "react": "^15.0.2 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", - "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://www.patreon.com/infusion" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/generic-names": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-1.0.3.tgz", - "integrity": "sha512-b6OHfQuKasIKM9b6YPkX+KUj/TLBTx3B/1aT1T5F12FEuEqyFMdr59OMS53aoaSw8eVtapdqieX6lbg5opaOhA==", - "dev": true, - "dependencies": { - "loader-utils": "^0.2.16" - } - }, - "node_modules/generic-names/node_modules/big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/generic-names/node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/generic-names/node_modules/json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/generic-names/node_modules/loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", - "dev": true, - "dependencies": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/github-slugger": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", - "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "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" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", - "dev": true - }, - "node_modules/global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", - "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "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" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/hast-to-hyperscript": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", - "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", - "dependencies": { - "@types/unist": "^2.0.3", - "comma-separated-tokens": "^1.0.0", - "property-information": "^5.3.0", - "space-separated-tokens": "^1.0.0", - "style-to-object": "^0.3.0", - "unist-util-is": "^4.0.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", - "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", - "dependencies": { - "@types/parse5": "^5.0.0", - "hastscript": "^6.0.0", - "property-information": "^5.0.0", - "vfile": "^4.0.0", - "vfile-location": "^3.2.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", - "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", - "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-from-parse5": "^6.0.0", - "hast-util-to-parse5": "^6.0.0", - "html-void-elements": "^1.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^3.0.0", - "vfile": "^4.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/hast-util-to-parse5": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", - "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", - "dependencies": { - "hast-to-hyperscript": "^9.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "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" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "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" - } - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "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" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/html-void-elements": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "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" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "webpack": "^5.20.0" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - } - }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", - "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "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" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", - "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "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" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", - "dev": true - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.1.tgz", - "integrity": "sha512-VAwkvNSNGClRw9mDHhc5Efax8PLlsOGcUTh0T/LIriC8vPA3U5PdqXWqkz406MoYHMKW8Uf9gWr05T/rYB44kQ==", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/immer": { - "version": "9.0.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", - "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/infima": { - "version": "0.2.0-alpha.39", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.39.tgz", - "integrity": "sha512-UyYiwD3nwHakGhuOUfpe3baJ8gkiPpRVx4a4sE/Ag+932+Y6swtLsdPoRR8ezhwqGnduzxmFkjumV9roz6QoLw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "engines": { - "node": ">=6" - } - }, - "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==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsrsasign": { - "version": "10.5.25", - "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-10.5.25.tgz", - "integrity": "sha512-N7zxHaCwYvFlXsybq4p4RxRwn4AbEq3cEiyjbCrWmwA7g8aS4LTKDJ9AJmsXxwtYesYx0imJ+ITtkyyxLCgeIg==", - "funding": { - "url": "https://github.com/kjur/jsrsasign#donations" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/khroma": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/khroma/-/khroma-1.4.1.tgz", - "integrity": "sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==" - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.curry": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", - "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "node_modules/lodash.flow": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", - "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" - }, - "node_modules/loglevel": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", - "dependencies": { - "unist-util-remove": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-definitions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", - "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "mdast-util-definitions": "^4.0.0", - "mdurl": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz", - "integrity": "sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==", - "dependencies": { - "fs-monkey": "1.0.3" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/mermaid": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-8.14.0.tgz", - "integrity": "sha512-ITSHjwVaby1Li738sxhF48sLTxcNyUAoWfoqyztL1f7J6JOLpHOuQPNLBb6lxGPUA0u7xP9IRULgvod0dKu35A==", - "dependencies": { - "@braintree/sanitize-url": "^3.1.0", - "d3": "^7.0.0", - "dagre": "^0.8.5", - "dagre-d3": "^0.6.4", - "dompurify": "2.3.5", - "graphlib": "^2.1.8", - "khroma": "^1.4.1", - "moment-mini": "^2.24.0", - "stylis": "^4.0.10" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", - "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "dependencies": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - }, - "peerDependencies": { - "prop-types": "^15.0.0", - "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", - "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/mini-css-extract-plugin/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==" - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/moment-mini": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment-mini/-/moment-mini-2.24.0.tgz", - "integrity": "sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==" - }, - "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "dependencies": { - "lodash": "^4.17.21" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-numeric-range": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" - }, - "node_modules/parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", - "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", - "dependencies": { - "entities": "^4.3.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5/node_modules/entities": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", - "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - } - ], - "dependencies": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", - "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", - "dependencies": { - "browserslist": "^4.20.3", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-unused": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", - "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-loader": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.0.tgz", - "integrity": "sha512-IDyttebFzTSY6DI24KuHUcBjbAev1i+RyICoPEWcAstZsj03r533uMXtDn506l6/wlsRYiS5XBdx7TpccCsyUg==", - "dependencies": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.7" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-merge-idents": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", - "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz", - "integrity": "sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", - "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", - "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", - "dependencies": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", - "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", - "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", - "dependencies": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.2.tgz", - "integrity": "sha512-wr2avRbW4HS2XE2ZCqpfp4N/tDC6GZKZ+SVP8UBTOVS8QWrc4TD8MYrebJrvVVlGPKszmiSCzue43NDiVtgDmg==", - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-idents": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", - "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-sort-media-queries": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.2.1.tgz", - "integrity": "sha512-9VYekQalFZ3sdgcTjXMa0dDjsfBVHXlraYJEMiOJ/2iMmI2JGCMavP16z3kWOaRu8NSaJCTgVpB/IVpH5yT9YQ==", - "dependencies": { - "sort-css-media-queries": "2.0.4" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "postcss": "^8.4.4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/postcss-zindex": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", - "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/prism-react-renderer": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.3.tgz", - "integrity": "sha512-Viur/7tBTCH2HmYzwCHmt2rEFn+rdIWNIINXyg0StiISbDiIhHKhrFuEK8eMkKgvsIYSjgGqy/hNyucHp6FpoQ==", - "peerDependencies": { - "react": ">=0.14.9" - } - }, - "node_modules/prismjs": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz", - "integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pure-color": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", - "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==" - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-base16-styling": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", - "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==", - "dependencies": { - "base16": "^1.0.0", - "lodash.curry": "^4.0.1", - "lodash.flow": "^3.3.0", - "pure-color": "^1.2.0" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" - }, - "node_modules/react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" - }, - "node_modules/react-from-dom": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.6.2.tgz", - "integrity": "sha512-qvWWTL/4xw4k/Dywd41RBpLQUSq97csuv15qrxN+izNeLYlD9wn5W8LspbfYe5CWbaSdkZ72BsaYBPQf2x4VbQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-helmet-async": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", - "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" - }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-inlinesvg": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-2.3.0.tgz", - "integrity": "sha512-fEGOdDf4k4bcveArbEpj01pJcH8pOCKLxmSj2POFdGvEk5YK0NZVnH6BXpW/PzACHPRsuh1YKAhNZyFnD28oxg==", - "dependencies": { - "exenv": "^1.2.2", - "react-from-dom": "^0.6.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/react-json-view": { - "version": "1.21.3", - "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz", - "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==", - "dependencies": { - "flux": "^4.0.1", - "react-base16-styling": "^0.6.0", - "react-lifecycles-compat": "^3.0.4", - "react-textarea-autosize": "^8.3.2" - }, - "peerDependencies": { - "react": "^17.0.0 || ^16.3.0 || ^15.5.4", - "react-dom": "^17.0.0 || ^16.3.0 || ^15.5.4" - } - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "node_modules/react-loadable": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/react-loadable/-/react-loadable-5.5.0.tgz", - "integrity": "sha512-C8Aui0ZpMd4KokxRdVAm2bQtI03k2RMRNzOB+IipV3yxFTSVICv7WoUr5L9ALB5BmKO1iHgZtWM8EvYG83otdg==", - "dependencies": { - "prop-types": "^15.5.0" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-loadable-ssr-addon-v5-slorber": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", - "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", - "dependencies": { - "@babel/runtime": "^7.10.3" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "react-loadable": "*", - "webpack": ">=4.41.1 || 5.x" - } - }, - "node_modules/react-router": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.3.tgz", - "integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "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" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-config": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", - "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", - "dependencies": { - "@babel/runtime": "^7.1.2" - }, - "peerDependencies": { - "react": ">=15", - "react-router": ">=5" - } - }, - "node_modules/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.3", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-textarea-autosize": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz", - "integrity": "sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==", - "dependencies": { - "@babel/runtime": "^7.10.2", - "use-composed-ref": "^1.3.0", - "use-latest": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reading-time": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "dependencies": { - "minimatch": "3.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/recursive-readdir/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", - "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/rehype-parse": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz", - "integrity": "sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==", - "dependencies": { - "hast-util-from-parse5": "^5.0.0", - "parse5": "^5.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-parse/node_modules/hast-util-from-parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz", - "integrity": "sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==", - "dependencies": { - "ccount": "^1.0.3", - "hastscript": "^5.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.1.2", - "xtend": "^4.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-parse/node_modules/hastscript": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", - "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", - "dependencies": { - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-parse/node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remark-admonitions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/remark-admonitions/-/remark-admonitions-1.2.1.tgz", - "integrity": "sha512-Ji6p68VDvD+H1oS95Fdx9Ar5WA2wcDA4kwrrhVU7fGctC6+d3uiMICu7w7/2Xld+lnU7/gi+432+rRbup5S8ow==", - "dependencies": { - "rehype-parse": "^6.0.2", - "unified": "^8.4.2", - "unist-util-visit": "^2.0.1" - } - }, - "node_modules/remark-admonitions/node_modules/unified": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz", - "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-emoji": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz", - "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==", - "dependencies": { - "emoticon": "^3.2.0", - "node-emoji": "^1.10.0", - "unist-util-visit": "^2.0.3" - } - }, - "node_modules/remark-footnotes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", - "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", - "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", - "dependencies": { - "@babel/core": "7.12.9", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-syntax-jsx": "7.12.1", - "@mdx-js/util": "1.6.22", - "is-alphabetical": "1.0.4", - "remark-parse": "8.0.3", - "unified": "9.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx/node_modules/@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/remark-mdx/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/remark-mdx/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remark-parse": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", - "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", - "dependencies": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", - "dependencies": { - "mdast-squeeze-paragraphs": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "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" - } - }, - "node_modules/renderkid/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "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" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "engines": { - "node": ">=0.10" - } - }, - "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==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", - "engines": { - "node": "*" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/robust-predicates": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", - "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" - }, - "node_modules/rtl-detect": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.4.tgz", - "integrity": "sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==" - }, - "node_modules/rtlcss": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", - "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", - "dependencies": { - "find-up": "^5.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.3.11", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "rtlcss": "bin/rtlcss.js" - } - }, - "node_modules/rtlcss/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rtlcss/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rtlcss/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/rtlcss/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" - }, - "node_modules/rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/seekout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/seekout/-/seekout-1.0.2.tgz", - "integrity": "sha512-eB4fRqHZCE8gmwFOVHC9tHzLkZJ2Y12qJvAJQox8kWjGObA++tgVeXHACsDCPajfNGnDaK2Juv+WzNlMuO43wQ==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" - }, - "node_modules/selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/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==" - }, - "node_modules/send/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-handler": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", - "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", - "dependencies": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", - "mime-types": "2.1.18", - "minimatch": "3.0.4", - "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", - "range-parser": "1.2.0" - } - }, - "node_modules/serve-handler/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/serve-handler/node_modules/path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/sirv": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", - "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", - "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^1.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/sitemap": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", - "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", - "dependencies": { - "@types/node": "^17.0.5", - "@types/sax": "^1.2.1", - "arg": "^5.0.0", - "sax": "^1.2.4" - }, - "bin": { - "sitemap": "dist/cli.js" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=5.6.0" - } - }, - "node_modules/sitemap/node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sort-css-media-queries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.0.4.tgz", - "integrity": "sha512-PAIsEK/XupCQwitjv7XxoMvYhT7EAfyzI3hsy/MyDgTvc+Ft55ctdkctJLOy6cQejaIC+zjpUL4djFVm2ivOOw==", - "engines": { - "node": ">= 6.3.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "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" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "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" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "node_modules/state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/std-env": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.1.1.tgz", - "integrity": "sha512-/c645XdExBypL01TpFKiG/3RAa/Qmu+zRi0MwAmrdEkwHNuN0ebo8ccAXBBDa5Z0QOJgBskUIbuCK91x0sCVEw==" - }, - "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==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/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" - } - ] - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", - "dependencies": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/stylis": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.1.tgz", - "integrity": "sha512-lVrM/bNdhVX2OgBFNa2YJ9Lxj7kPzylieHd3TNjuGE0Re9JB7joL5VUKOVH1kdNNJTgGPpT8hmwIAPLaSyEVFQ==" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/svgo/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "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" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/svgo/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.7", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "node_modules/tiny-invariant": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz", - "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==" - }, - "node_modules/trim-trailing-lines": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", - "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-node": { - "version": "10.8.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", - "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/type-fest": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.13.1.tgz", - "integrity": "sha512-hXYyrPFwETT2swFLHeoKtJrvSF/ftG/sA15/8nGaLuaDGfVAaq8DYFpu4yOyV4tzp082WqnTEoMsm3flKMI2FQ==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/type-is/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", - "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/typesense": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/typesense/-/typesense-1.3.0.tgz", - "integrity": "sha512-2QZT0WazFQwN5oCRsb9LjiDerMq4kVyarxSGy+38OqFJZfOAfGM6t+T57sN7Ml/Cd2ifQfBps8a+yBqgB+fLzw==", - "dependencies": { - "axios": "^0.26.0", - "loglevel": "^1.8.0" - }, - "peerDependencies": { - "@babel/runtime": "^7.17.2" - } - }, - "node_modules/typesense-docsearch-react": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/typesense-docsearch-react/-/typesense-docsearch-react-0.1.0.tgz", - "integrity": "sha512-NavWvAylFR1k03kZ8M00ZQwB5s52g3iqr2C2IzHLFjqicD4mt5cYxO/eKZJHBcva2FnG1jnjY01mBEn3z6c+eQ==", - "dependencies": { - "@algolia/autocomplete-core": "1.2.1", - "@algolia/autocomplete-preset-algolia": "1.2.1", - "@docsearch/css": "3.0.0-alpha.39", - "typesense": "^0.14.0", - "typesense-instantsearch-adapter": "^2.0.1" - }, - "peerDependencies": { - "@types/react": ">= 16.8.0 < 18.0.0", - "react": ">= 16.8.0 < 18.0.0", - "react-dom": ">= 16.8.0 < 18.0.0" - } - }, - "node_modules/typesense-docsearch-react/node_modules/@algolia/autocomplete-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.2.1.tgz", - "integrity": "sha512-/SLS6636Wpl7eFiX7eEy0E3wBo60sUm1qRYybJBDt1fs8reiJ1+OSy+dZgrLBfLL4mSFqRIIUHXbVp25QdZ+iw==", - "dependencies": { - "@algolia/autocomplete-shared": "1.2.1" - } - }, - "node_modules/typesense-docsearch-react/node_modules/@algolia/autocomplete-shared": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.2.1.tgz", - "integrity": "sha512-RHCwcXAYFwDXTlomstjWRFIzOfyxtQ9KmViacPE5P5hxUSSjkmG3dAb77xdydift1PaZNbho5TNTCi5UZe0RpA==" - }, - "node_modules/typesense-docsearch-react/node_modules/@docsearch/css": { - "version": "3.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.0.0-alpha.39.tgz", - "integrity": "sha512-lr10MFTgcR3NRea/FtJ7uNtIpQz0XVwYxbpO5wxykgfHu1sxZTr6zwkuPquRgFYXnccxsTvfoIiK3rMH0fLr/w==" - }, - "node_modules/typesense-docsearch-react/node_modules/typesense": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/typesense/-/typesense-0.14.0.tgz", - "integrity": "sha512-9ZLkjwhCYXCZuYmvS6En5hJm3AMhFZMbZ7hRMVFJlyK3essNqd8MSWEt2bpAvbvTN+1FgGLBQPJnpYdsbkVsKg==", - "dependencies": { - "axios": "^0.21.1", - "loglevel": "^1.7.1" - }, - "peerDependencies": { - "@babel/runtime": "^7.14.6" - } - }, - "node_modules/typesense-instantsearch-adapter": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/typesense-instantsearch-adapter/-/typesense-instantsearch-adapter-2.4.1.tgz", - "integrity": "sha512-WkqmywsKFQF96qvUyRkQx54ximV5jS/KJfEjxK178jWkoWyIkul7j7VOnlRNQU18n46SeV+PWt4AzboifsmbzQ==", - "hasInstallScript": true, - "dependencies": { - "typesense": "^1.3.0-6" - }, - "peerDependencies": { - "@babel/runtime": "^7.17.2" - } - }, - "node_modules/typesense/node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "dependencies": { - "follow-redirects": "^1.14.8" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - } - ], - "engines": { - "node": "*" - } - }, - "node_modules/unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "dependencies": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "dependencies": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/unist-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", - "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-generated": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", - "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", - "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", - "dependencies": { - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "dependencies": { - "@types/unist": "^2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "dependencies": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/update-notifier/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "file-loader": "*", - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "file-loader": { - "optional": true - } - } - }, - "node_modules/url-loader/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/use-composed-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", - "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/use-isomorphic-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-latest": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", - "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", - "dependencies": { - "use-isomorphic-layout-effect": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "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==" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" - }, - "node_modules/utility-types": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", - "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/wait-on": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", - "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", - "dependencies": { - "axios": "^0.25.0", - "joi": "^17.6.0", - "lodash": "^4.17.21", - "minimist": "^1.2.5", - "rxjs": "^7.5.4" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/wait-on/node_modules/axios": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", - "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", - "dependencies": { - "follow-redirects": "^1.14.7" - } - }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/watchpack/node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "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": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz", - "integrity": "sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==", - "dependencies": { - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", - "commander": "^7.2.0", - "gzip-size": "^6.0.0", - "lodash": "^4.17.20", - "opener": "^1.5.2", - "sirv": "^1.0.7", - "ws": "^7.3.1" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/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==" - }, - "node_modules/webpack-dev-middleware/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz", - "integrity": "sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==", - "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.1", - "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": "^1.6.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", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/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==" - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "node_modules/webpack/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpackbar": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", - "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", - "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.3", - "pretty-time": "^1.1.0", - "std-env": "^3.0.1" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "webpack": "3 || 4 || 5" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "dependencies": { - "string-width": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==" - }, - "node_modules/wrap-ansi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", - "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "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" - } - }, - "node_modules/ws": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", - "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "dependencies": { - "sax": "^1.2.4" - }, - "bin": { - "xml-js": "bin/cli.js" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - }, - "dependencies": { - "@algolia/autocomplete-core": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.6.3.tgz", - "integrity": "sha512-dqQqRt01fX3YuVFrkceHsoCnzX0bLhrrg8itJI1NM68KjrPYQPYsE+kY8EZTCM4y8VDnhqJErR73xe/ZsV+qAA==", - "requires": { - "@algolia/autocomplete-shared": "1.6.3" - } - }, - "@algolia/autocomplete-preset-algolia": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.2.1.tgz", - "integrity": "sha512-Lf4PpPVgHNXm1ytrnVdrZYV7hAYSCpAI/TrebF8UC6xflPY6sKb1RL/2OfrO9On7SDjPBtNd+6MArSar5JmK0g==", - "requires": { - "@algolia/autocomplete-shared": "1.2.1" - }, - "dependencies": { - "@algolia/autocomplete-shared": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.2.1.tgz", - "integrity": "sha512-RHCwcXAYFwDXTlomstjWRFIzOfyxtQ9KmViacPE5P5hxUSSjkmG3dAb77xdydift1PaZNbho5TNTCi5UZe0RpA==" - } - } - }, - "@algolia/autocomplete-shared": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.6.3.tgz", - "integrity": "sha512-UV46bnkTztyADFaETfzFC5ryIdGVb2zpAoYgu0tfcuYWjhg1KbLXveFffZIrGVoboqmAk1b+jMrl6iCja1i3lg==" - }, - "@algolia/cache-browser-local-storage": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.13.1.tgz", - "integrity": "sha512-UAUVG2PEfwd/FfudsZtYnidJ9eSCpS+LW9cQiesePQLz41NAcddKxBak6eP2GErqyFagSlnVXe/w2E9h2m2ttg==", - "requires": { - "@algolia/cache-common": "4.13.1" - } - }, - "@algolia/cache-common": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.13.1.tgz", - "integrity": "sha512-7Vaf6IM4L0Jkl3sYXbwK+2beQOgVJ0mKFbz/4qSxKd1iy2Sp77uTAazcX+Dlexekg1fqGUOSO7HS4Sx47ZJmjA==" - }, - "@algolia/cache-in-memory": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.13.1.tgz", - "integrity": "sha512-pZzybCDGApfA/nutsFK1P0Sbsq6fYJU3DwIvyKg4pURerlJM4qZbB9bfLRef0FkzfQu7W11E4cVLCIOWmyZeuQ==", - "requires": { - "@algolia/cache-common": "4.13.1" - } - }, - "@algolia/client-account": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.13.1.tgz", - "integrity": "sha512-TFLiZ1KqMiir3FNHU+h3b0MArmyaHG+eT8Iojio6TdpeFcAQ1Aiy+2gb3SZk3+pgRJa/BxGmDkRUwE5E/lv3QQ==", - "requires": { - "@algolia/client-common": "4.13.1", - "@algolia/client-search": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "@algolia/client-analytics": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.13.1.tgz", - "integrity": "sha512-iOS1JBqh7xaL5x00M5zyluZ9+9Uy9GqtYHv/2SMuzNW1qP7/0doz1lbcsP3S7KBbZANJTFHUOfuqyRLPk91iFA==", - "requires": { - "@algolia/client-common": "4.13.1", - "@algolia/client-search": "4.13.1", - "@algolia/requester-common": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "@algolia/client-common": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.13.1.tgz", - "integrity": "sha512-LcDoUE0Zz3YwfXJL6lJ2OMY2soClbjrrAKB6auYVMNJcoKZZ2cbhQoFR24AYoxnGUYBER/8B+9sTBj5bj/Gqbg==", - "requires": { - "@algolia/requester-common": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "@algolia/client-personalization": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.13.1.tgz", - "integrity": "sha512-1CqrOW1ypVrB4Lssh02hP//YxluoIYXAQCpg03L+/RiXJlCs+uIqlzC0ctpQPmxSlTK6h07kr50JQoYH/TIM9w==", - "requires": { - "@algolia/client-common": "4.13.1", - "@algolia/requester-common": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "@algolia/client-search": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.13.1.tgz", - "integrity": "sha512-YQKYA83MNRz3FgTNM+4eRYbSmHi0WWpo019s5SeYcL3HUan/i5R09VO9dk3evELDFJYciiydSjbsmhBzbpPP2A==", - "requires": { - "@algolia/client-common": "4.13.1", - "@algolia/requester-common": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "@algolia/events": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", - "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" - }, - "@algolia/logger-common": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.13.1.tgz", - "integrity": "sha512-L6slbL/OyZaAXNtS/1A8SAbOJeEXD5JcZeDCPYDqSTYScfHu+2ePRTDMgUTY4gQ7HsYZ39N1LujOd8WBTmM2Aw==" - }, - "@algolia/logger-console": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.13.1.tgz", - "integrity": "sha512-7jQOTftfeeLlnb3YqF8bNgA2GZht7rdKkJ31OCeSH2/61haO0tWPoNRjZq9XLlgMQZH276pPo0NdiArcYPHjCA==", - "requires": { - "@algolia/logger-common": "4.13.1" - } - }, - "@algolia/requester-browser-xhr": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.13.1.tgz", - "integrity": "sha512-oa0CKr1iH6Nc7CmU6RE7TnXMjHnlyp7S80pP/LvZVABeJHX3p/BcSCKovNYWWltgTxUg0U1o+2uuy8BpMKljwA==", - "requires": { - "@algolia/requester-common": "4.13.1" - } - }, - "@algolia/requester-common": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.13.1.tgz", - "integrity": "sha512-eGVf0ID84apfFEuXsaoSgIxbU3oFsIbz4XiotU3VS8qGCJAaLVUC5BUJEkiFENZIhon7hIB4d0RI13HY4RSA+w==" - }, - "@algolia/requester-node-http": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.13.1.tgz", - "integrity": "sha512-7C0skwtLdCz5heKTVe/vjvrqgL/eJxmiEjHqXdtypcE5GCQCYI15cb+wC4ytYioZDMiuDGeVYmCYImPoEgUGPw==", - "requires": { - "@algolia/requester-common": "4.13.1" - } - }, - "@algolia/transporter": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.13.1.tgz", - "integrity": "sha512-pICnNQN7TtrcYJqqPEXByV8rJ8ZRU2hCiIKLTLRyNpghtQG3VAFk6fVtdzlNfdUGZcehSKGarPIZEHlQXnKjgw==", - "requires": { - "@algolia/cache-common": "4.13.1", - "@algolia/logger-common": "4.13.1", - "@algolia/requester-common": "4.13.1" - } - }, - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.5.tgz", - "integrity": "sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg==" - }, - "@babel/core": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", - "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helpers": "^7.18.2", - "@babel/parser": "^7.18.5", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.5", - "@babel/types": "^7.18.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", - "requires": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", - "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", - "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", - "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", - "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", - "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==" - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "requires": { - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", - "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", - "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", - "requires": { - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" - } - }, - "@babel/helper-simple-access": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", - "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", - "requires": { - "@babel/types": "^7.18.2" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helpers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", - "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" - } - }, - "@babel/highlight": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", - "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", - "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", - "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", - "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.17.12" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", - "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", - "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", - "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", - "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", - "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", - "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", - "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", - "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", - "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.17.12" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", - "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", - "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", - "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", - "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", - "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", - "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.12.tgz", - "integrity": "sha512-TYY0SXFiO31YXtNg3HtFwNJHjLsAyIIhAhNWkQ5whPPS7HWUFlg9z0Ta4qAQNjQbP1wsSt/oKkmZ/4/WWdMUpw==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", - "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", - "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", - "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", - "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-replace-supers": "^7.18.2", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", - "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", - "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", - "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", - "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", - "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", - "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", - "requires": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", - "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", - "requires": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.18.2", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz", - "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==", - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", - "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", - "requires": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", - "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz", - "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", - "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.12.tgz", - "integrity": "sha512-maEkX2xs2STuv2Px8QuqxqjhV2LsFobT1elCgyU5704fcyTu9DyD/bJXxD/mrRiVyhpHweOQ00OJ5FKhHq9oEw==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", - "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-jsx": "^7.17.12", - "@babel/types": "^7.17.12" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", - "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz", - "integrity": "sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", - "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "regenerator-transform": "^0.15.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", - "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz", - "integrity": "sha512-Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", - "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", - "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", - "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.4.tgz", - "integrity": "sha512-l4vHuSLUajptpHNEOUDEGsnpl9pfRLsN1XUoDQDD/YBuXTM+v37SHGS+c6n4jdcZy96QtuUuSvZYMLSSsjH8Mw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-typescript": "^7.17.12" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", - "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", - "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-async-generator-functions": "^7.17.12", - "@babel/plugin-proposal-class-properties": "^7.17.12", - "@babel/plugin-proposal-class-static-block": "^7.18.0", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.17.12", - "@babel/plugin-proposal-json-strings": "^7.17.12", - "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.18.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-private-methods": "^7.17.12", - "@babel/plugin-proposal-private-property-in-object": "^7.17.12", - "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.17.12", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.17.12", - "@babel/plugin-transform-async-to-generator": "^7.17.12", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.17.12", - "@babel/plugin-transform-classes": "^7.17.12", - "@babel/plugin-transform-computed-properties": "^7.17.12", - "@babel/plugin-transform-destructuring": "^7.18.0", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.17.12", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.18.1", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.17.12", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.18.0", - "@babel/plugin-transform-modules-commonjs": "^7.18.2", - "@babel/plugin-transform-modules-systemjs": "^7.18.0", - "@babel/plugin-transform-modules-umd": "^7.18.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", - "@babel/plugin-transform-new-target": "^7.17.12", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.17.12", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.18.0", - "@babel/plugin-transform-reserved-words": "^7.17.12", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.17.12", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.18.2", - "@babel/plugin-transform-typeof-symbol": "^7.17.12", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.2", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz", - "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.17.12", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - } - }, - "@babel/preset-typescript": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.17.12.tgz", - "integrity": "sha512-S1ViF8W2QwAKUGJXxP9NAfNaqGDdEBJKpYkxHf5Yy2C4NPPzXGeR3Lhk7G8xJaaLcFTRfNjVbtbVtm8Gb0mqvg==", - "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-typescript": "^7.17.12" - } - }, - "@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz", - "integrity": "sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==", - "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", - "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-environment-visitor": "^7.18.2", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.18.5", - "@babel/types": "^7.18.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@braintree/sanitize-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz", - "integrity": "sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==" - }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "optional": true - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@docsearch/css": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.1.0.tgz", - "integrity": "sha512-bh5IskwkkodbvC0FzSg1AxMykfDl95hebEKwxNoq4e5QaGzOXSBgW8+jnMFZ7JU4sTBiB04vZWoUSzNrPboLZA==" - }, - "@docsearch/react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.1.0.tgz", - "integrity": "sha512-bjB6ExnZzf++5B7Tfoi6UXgNwoUnNOfZ1NyvnvPhWgCMy5V/biAtLL4o7owmZSYdAKeFSvZ5Lxm0is4su/dBWg==", - "requires": { - "@algolia/autocomplete-core": "1.6.3", - "@docsearch/css": "3.1.0", - "algoliasearch": "^4.0.0" - } - }, - "@docusaurus/core": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.0.0-beta.21.tgz", - "integrity": "sha512-qysDMVp1M5UozK3u/qOxsEZsHF7jeBvJDS+5ItMPYmNKvMbNKeYZGA0g6S7F9hRDwjIlEbvo7BaX0UMDcmTAWA==", - "requires": { - "@babel/core": "^7.18.2", - "@babel/generator": "^7.18.2", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.18.2", - "@babel/preset-env": "^7.18.2", - "@babel/preset-react": "^7.17.12", - "@babel/preset-typescript": "^7.17.12", - "@babel/runtime": "^7.18.3", - "@babel/runtime-corejs3": "^7.18.3", - "@babel/traverse": "^7.18.2", - "@docusaurus/cssnano-preset": "2.0.0-beta.21", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/mdx-loader": "2.0.0-beta.21", - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-common": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "@slorber/static-site-generator-webpack-plugin": "^4.0.4", - "@svgr/webpack": "^6.2.1", - "autoprefixer": "^10.4.7", - "babel-loader": "^8.2.5", - "babel-plugin-dynamic-import-node": "^2.3.3", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "clean-css": "^5.3.0", - "cli-table3": "^0.6.2", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "copy-webpack-plugin": "^11.0.0", - "core-js": "^3.22.7", - "css-loader": "^6.7.1", - "css-minimizer-webpack-plugin": "^4.0.0", - "cssnano": "^5.1.9", - "del": "^6.1.1", - "detect-port": "^1.3.0", - "escape-html": "^1.0.3", - "eta": "^1.12.3", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "html-minifier-terser": "^6.1.0", - "html-tags": "^3.2.0", - "html-webpack-plugin": "^5.5.0", - "import-fresh": "^3.3.0", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.6.0", - "postcss": "^8.4.14", - "postcss-loader": "^7.0.0", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.3", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.3", - "remark-admonitions": "^1.2.1", - "rtl-detect": "^1.0.4", - "semver": "^7.3.7", - "serve-handler": "^6.1.3", - "shelljs": "^0.8.5", - "terser-webpack-plugin": "^5.3.1", - "tslib": "^2.4.0", - "update-notifier": "^5.1.0", - "url-loader": "^4.1.1", - "wait-on": "^6.0.1", - "webpack": "^5.72.1", - "webpack-bundle-analyzer": "^4.5.0", - "webpack-dev-server": "^4.9.0", - "webpack-merge": "^5.8.0", - "webpackbar": "^5.0.2" - }, - "dependencies": { - "react-loadable": { - "version": "npm:@docusaurus/react-loadable@5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "requires": { - "@types/react": "*", - "prop-types": "^15.6.2" - } - } - } - }, - "@docusaurus/cssnano-preset": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.21.tgz", - "integrity": "sha512-fhTZrg1vc6zYYZIIMXpe1TnEVGEjqscBo0s1uomSwKjjtMgu7wkzc1KKJYY7BndsSA+fVVkZ+OmL/kAsmK7xxw==", - "requires": { - "cssnano-preset-advanced": "^5.3.5", - "postcss": "^8.4.14", - "postcss-sort-media-queries": "^4.2.1", - "tslib": "^2.4.0" - } - }, - "@docusaurus/logger": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.0.0-beta.21.tgz", - "integrity": "sha512-HTFp8FsSMrAj7Uxl5p72U+P7rjYU/LRRBazEoJbs9RaqoKEdtZuhv8MYPOCh46K9TekaoquRYqag2o23Qt4ggA==", - "requires": { - "chalk": "^4.1.2", - "tslib": "^2.4.0" - } - }, - "@docusaurus/mdx-loader": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.21.tgz", - "integrity": "sha512-AI+4obJnpOaBOAYV6df2ux5Y1YJCBS+MhXFf0yhED12sVLJi2vffZgdamYd/d/FwvWDw6QLs/VD2jebd7P50yQ==", - "requires": { - "@babel/parser": "^7.18.3", - "@babel/traverse": "^7.18.2", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@mdx-js/mdx": "^1.6.22", - "escape-html": "^1.0.3", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "image-size": "^1.0.1", - "mdast-util-to-string": "^2.0.0", - "remark-emoji": "^2.2.0", - "stringify-object": "^3.3.0", - "tslib": "^2.4.0", - "unist-util-visit": "^2.0.3", - "url-loader": "^4.1.1", - "webpack": "^5.72.1" - } - }, - "@docusaurus/module-type-aliases": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.21.tgz", - "integrity": "sha512-gRkWICgQZiqSJgrwRKWjXm5gAB+9IcfYdUbCG0PRPP/G8sNs9zBIOY4uT4Z5ox2CWFEm44U3RTTxj7BiLVMBXw==", - "requires": { - "@docusaurus/types": "2.0.0-beta.21", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "*" - } - }, - "@docusaurus/plugin-content-blog": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.21.tgz", - "integrity": "sha512-IP21yJViP3oBmgsWBU5LhrG1MZXV4mYCQSoCAboimESmy1Z11RCNP2tXaqizE3iTmXOwZZL+SNBk06ajKCEzWg==", - "requires": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/mdx-loader": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-common": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "cheerio": "^1.0.0-rc.11", - "feed": "^4.2.2", - "fs-extra": "^10.1.0", - "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "remark-admonitions": "^1.2.1", - "tslib": "^2.4.0", - "unist-util-visit": "^2.0.3", - "utility-types": "^3.10.0", - "webpack": "^5.72.1" - } - }, - "@docusaurus/plugin-content-docs": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.21.tgz", - "integrity": "sha512-aa4vrzJy4xRy81wNskyhE3wzRf3AgcESZ1nfKh8xgHUkT7fDTZ1UWlg50Jb3LBCQFFyQG2XQB9N6llskI/KUnw==", - "requires": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/mdx-loader": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "combine-promises": "^1.1.0", - "fs-extra": "^10.1.0", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "remark-admonitions": "^1.2.1", - "tslib": "^2.4.0", - "utility-types": "^3.10.0", - "webpack": "^5.72.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "@docusaurus/plugin-content-pages": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.21.tgz", - "integrity": "sha512-DmXOXjqNI+7X5hISzCvt54QIK6XBugu2MOxjxzuqI7q92Lk/EVdraEj5mthlH8IaEH/VlpWYJ1O9TzLqX5vH2g==", - "requires": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/mdx-loader": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "fs-extra": "^10.1.0", - "remark-admonitions": "^1.2.1", - "tslib": "^2.4.0", - "webpack": "^5.72.1" - } - }, - "@docusaurus/plugin-debug": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.21.tgz", - "integrity": "sha512-P54J4q4ecsyWW0Jy4zbimSIHna999AfbxpXGmF1IjyHrjoA3PtuakV1Ai51XrGEAaIq9q6qMQkEhbUd3CffGAw==", - "requires": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "fs-extra": "^10.1.0", - "react-json-view": "^1.21.3", - "tslib": "^2.4.0" - } - }, - "@docusaurus/plugin-google-analytics": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.21.tgz", - "integrity": "sha512-+5MS0PeGaJRgPuNZlbd/WMdQSpOACaxEz7A81HAxm6kE+tIASTW3l8jgj1eWFy/PGPzaLnQrEjxI1McAfnYmQw==", - "requires": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "tslib": "^2.4.0" - } - }, - "@docusaurus/plugin-google-gtag": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.21.tgz", - "integrity": "sha512-4zxKZOnf0rfh6myXLG7a6YZfQcxYDMBsWqANEjCX77H5gPdK+GHZuDrxK6sjFvRBv4liYCrNjo7HJ4DpPoT0zA==", - "requires": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "tslib": "^2.4.0" - } - }, - "@docusaurus/plugin-sitemap": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.21.tgz", - "integrity": "sha512-/ynWbcXZXcYZ6sT2X6vAJbnfqcPxwdGEybd0rcRZi4gBHq6adMofYI25AqELmnbBDxt0If+vlAeUHFRG5ueP7Q==", - "requires": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-common": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "fs-extra": "^10.1.0", - "sitemap": "^7.1.1", - "tslib": "^2.4.0" - } - }, - "@docusaurus/preset-classic": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.21.tgz", - "integrity": "sha512-KvBnIUu7y69pNTJ9UhX6SdNlK6prR//J3L4rhN897tb8xx04xHHILlPXko2Il+C3Xzgh3OCgyvkoz9K6YlFTDw==", - "requires": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/plugin-content-blog": "2.0.0-beta.21", - "@docusaurus/plugin-content-docs": "2.0.0-beta.21", - "@docusaurus/plugin-content-pages": "2.0.0-beta.21", - "@docusaurus/plugin-debug": "2.0.0-beta.21", - "@docusaurus/plugin-google-analytics": "2.0.0-beta.21", - "@docusaurus/plugin-google-gtag": "2.0.0-beta.21", - "@docusaurus/plugin-sitemap": "2.0.0-beta.21", - "@docusaurus/theme-classic": "2.0.0-beta.21", - "@docusaurus/theme-common": "2.0.0-beta.21", - "@docusaurus/theme-search-algolia": "2.0.0-beta.21" - } - }, - "@docusaurus/react-loadable": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "requires": { - "@types/react": "*", - "prop-types": "^15.6.2" - } - }, - "@docusaurus/theme-classic": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.21.tgz", - "integrity": "sha512-Ge0WNdTefD0VDQfaIMRRWa8tWMG9+8/OlBRd5MK88/TZfqdBq7b/gnCSaalQlvZwwkj6notkKhHx72+MKwWUJA==", - "requires": { - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/plugin-content-blog": "2.0.0-beta.21", - "@docusaurus/plugin-content-docs": "2.0.0-beta.21", - "@docusaurus/plugin-content-pages": "2.0.0-beta.21", - "@docusaurus/theme-common": "2.0.0-beta.21", - "@docusaurus/theme-translations": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-common": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "@mdx-js/react": "^1.6.22", - "clsx": "^1.1.1", - "copy-text-to-clipboard": "^3.0.1", - "infima": "0.2.0-alpha.39", - "lodash": "^4.17.21", - "nprogress": "^0.2.0", - "postcss": "^8.4.14", - "prism-react-renderer": "^1.3.3", - "prismjs": "^1.28.0", - "react-router-dom": "^5.3.3", - "rtlcss": "^3.5.0", - "tslib": "^2.4.0" - } - }, - "@docusaurus/theme-common": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.0.0-beta.21.tgz", - "integrity": "sha512-fTKoTLRfjuFG6c3iwnVjIIOensxWMgdBKLfyE5iih3Lq7tQgkE7NyTGG9BKLrnTJ7cAD2UXdXM9xbB7tBf1qzg==", - "requires": { - "@docusaurus/module-type-aliases": "2.0.0-beta.21", - "@docusaurus/plugin-content-blog": "2.0.0-beta.21", - "@docusaurus/plugin-content-docs": "2.0.0-beta.21", - "@docusaurus/plugin-content-pages": "2.0.0-beta.21", - "clsx": "^1.1.1", - "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^1.3.3", - "tslib": "^2.4.0", - "utility-types": "^3.10.0" - } - }, - "@docusaurus/theme-search-algolia": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.21.tgz", - "integrity": "sha512-T1jKT8MVSSfnztSqeebUOpWHPoHKtwDXtKYE0xC99JWoZ+mMfv8AFhVSoSddn54jLJjV36mxg841eHQIySMCpQ==", - "requires": { - "@docsearch/react": "^3.1.0", - "@docusaurus/core": "2.0.0-beta.21", - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/plugin-content-docs": "2.0.0-beta.21", - "@docusaurus/theme-common": "2.0.0-beta.21", - "@docusaurus/theme-translations": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "algoliasearch": "^4.13.1", - "algoliasearch-helper": "^3.8.2", - "clsx": "^1.1.1", - "eta": "^1.12.3", - "fs-extra": "^10.1.0", - "lodash": "^4.17.21", - "tslib": "^2.4.0", - "utility-types": "^3.10.0" - } - }, - "@docusaurus/theme-translations": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.21.tgz", - "integrity": "sha512-dLVT9OIIBs6MpzMb1bAy+C0DPJK3e3DNctG+ES0EP45gzEqQxzs4IsghpT+QDaOsuhNnAlosgJpFWX3rqxF9xA==", - "requires": { - "fs-extra": "^10.1.0", - "tslib": "^2.4.0" - } - }, - "@docusaurus/types": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.0.0-beta.21.tgz", - "integrity": "sha512-/GH6Npmq81eQfMC/ikS00QSv9jNyO1RXEpNSx5GLA3sFX8Iib26g2YI2zqNplM8nyxzZ2jVBuvUoeODTIbTchQ==", - "requires": { - "commander": "^5.1.0", - "history": "^4.9.0", - "joi": "^17.6.0", - "react-helmet-async": "^1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.72.1", - "webpack-merge": "^5.8.0" - } - }, - "@docusaurus/utils": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.0.0-beta.21.tgz", - "integrity": "sha512-M/BrVCDmmUPZLxtiStBgzpQ4I5hqkggcpnQmEN+LbvbohjbtVnnnZQ0vptIziv1w8jry/woY+ePsyOO7O/yeLQ==", - "requires": { - "@docusaurus/logger": "2.0.0-beta.21", - "@svgr/webpack": "^6.2.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.1.0", - "github-slugger": "^1.4.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.4.0", - "url-loader": "^4.1.1", - "webpack": "^5.72.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "@docusaurus/utils-common": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.0.0-beta.21.tgz", - "integrity": "sha512-5w+6KQuJb6pUR2M8xyVuTMvO5NFQm/p8TOTDFTx60wt3p0P1rRX00v6FYsD4PK6pgmuoKjt2+Ls8dtSXc4qFpQ==", - "requires": { - "tslib": "^2.4.0" - } - }, - "@docusaurus/utils-validation": { - "version": "2.0.0-beta.21", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.21.tgz", - "integrity": "sha512-6NG1FHTRjv1MFzqW//292z7uCs77vntpWEbZBHk3n67aB1HoMn5SOwjLPtRDjbCgn6HCHFmdiJr6euCbjhYolg==", - "requires": { - "@docusaurus/logger": "2.0.0-beta.21", - "@docusaurus/utils": "2.0.0-beta.21", - "joi": "^17.6.0", - "js-yaml": "^4.1.0", - "tslib": "^2.4.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - } - } - }, - "@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==" - }, - "@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==" - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@kiwicopple/prism-react-renderer": { - "version": "git+ssh://git@github.com/kiwicopple/prism-react-renderer.git#4a09100a587bce2d94d7ac8ed3564a61c6e70781", - "from": "@kiwicopple/prism-react-renderer@https://github.com/kiwicopple/prism-react-renderer.git", - "requires": { - "prismjs": "^1.22.0" - } - }, - "@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" - }, - "@mdx-js/mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", - "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", - "requires": { - "@babel/core": "7.12.9", - "@babel/plugin-syntax-jsx": "7.12.1", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "1.6.22", - "babel-plugin-apply-mdx-type-prop": "1.6.22", - "babel-plugin-extract-import-names": "1.6.22", - "camelcase-css": "2.0.1", - "detab": "2.0.4", - "hast-util-raw": "6.0.1", - "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "10.0.1", - "remark-footnotes": "2.0.0", - "remark-mdx": "1.6.22", - "remark-parse": "8.0.3", - "remark-squeeze-paragraphs": "4.0.0", - "style-to-object": "0.3.0", - "unified": "9.2.0", - "unist-builder": "2.0.3", - "unist-util-visit": "2.0.3" - }, - "dependencies": { - "@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" - } - } - }, - "@mdx-js/react": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", - "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", - "requires": {} - }, - "@mdx-js/util": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", - "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==" - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", - "requires": { - "@octokit/types": "^6.0.3" - } - }, - "@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", - "requires": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", - "requires": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", - "requires": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/openapi-types": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.1.0.tgz", - "integrity": "sha512-kQzJh3ZUv3lDpi6M+uekMRHULvf9DlWoI1XgKN6nPeGDzkSgtkhVq1MMz3bFKQ6H6GbdC3ZqG/a6VzKhIx0VeA==" - }, - "@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", - "requires": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "requires": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "@octokit/types": { - "version": "6.35.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.35.0.tgz", - "integrity": "sha512-DhLfdUuv3H37u6jBDfkwamypx3HflHg29b26nbA6iVFYkAlZ5cMEtu/9pQoihGnQE5M7jJFnNo25Rr1UwQNF8Q==", - "requires": { - "@octokit/openapi-types": "^12.1.0" - } - }, - "@polka/url": { - "version": "1.0.0-next.21", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", - "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" - }, - "@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@sideway/formula": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", - "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@slorber/static-site-generator-webpack-plugin": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", - "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", - "requires": { - "eval": "^0.1.8", - "p-map": "^4.0.0", - "webpack-sources": "^3.2.2" - } - }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz", - "integrity": "sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA==", - "requires": {} - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz", - "integrity": "sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw==", - "requires": {} - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz", - "integrity": "sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA==", - "requires": {} - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz", - "integrity": "sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ==", - "requires": {} - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz", - "integrity": "sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg==", - "requires": {} - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz", - "integrity": "sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA==", - "requires": {} - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz", - "integrity": "sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ==", - "requires": {} - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.2.0.tgz", - "integrity": "sha512-bhYIpsORb++wpsp91fymbFkf09Z/YEKR0DnFjxvN+8JHeCUD2unnh18jIMKnDJTWtvpTaGYPXELVe4OOzFI0xg==", - "requires": {} - }, - "@svgr/babel-preset": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.2.0.tgz", - "integrity": "sha512-4WQNY0J71JIaL03DRn0vLiz87JXx0b9dYm2aA8XHlQJQoixMl4r/soYHm8dsaJZ3jWtkCiOYy48dp9izvXhDkQ==", - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^6.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^6.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "^6.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "^6.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "^6.0.0", - "@svgr/babel-plugin-transform-svg-component": "^6.2.0" - } - }, - "@svgr/core": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.2.1.tgz", - "integrity": "sha512-NWufjGI2WUyrg46mKuySfviEJ6IxHUOm/8a3Ph38VCWSp+83HBraCQrpEM3F3dB6LBs5x8OElS8h3C0oOJaJAA==", - "requires": { - "@svgr/plugin-jsx": "^6.2.1", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.2.1.tgz", - "integrity": "sha512-pt7MMkQFDlWJVy9ULJ1h+hZBDGFfSCwlBNW1HkLnVi7jUhyEXUaGYWi1x6bM2IXuAR9l265khBT4Av4lPmaNLQ==", - "requires": { - "@babel/types": "^7.15.6", - "entities": "^3.0.1" - } - }, - "@svgr/plugin-jsx": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.2.1.tgz", - "integrity": "sha512-u+MpjTsLaKo6r3pHeeSVsh9hmGRag2L7VzApWIaS8imNguqoUwDq/u6U/NDmYs/KAsrmtBjOEaAAPbwNGXXp1g==", - "requires": { - "@babel/core": "^7.15.5", - "@svgr/babel-preset": "^6.2.0", - "@svgr/hast-util-to-babel-ast": "^6.2.1", - "svg-parser": "^2.0.2" - } - }, - "@svgr/plugin-svgo": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.2.0.tgz", - "integrity": "sha512-oDdMQONKOJEbuKwuy4Np6VdV6qoaLLvoY86hjvQEgU82Vx1MSWRyYms6Sl0f+NtqxLI/rDVufATbP/ev996k3Q==", - "requires": { - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "svgo": "^2.5.0" - } - }, - "@svgr/webpack": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.2.1.tgz", - "integrity": "sha512-h09ngMNd13hnePwgXa+Y5CgOjzlCvfWLHg+MBnydEedAnuLRzUHUJmGS3o2OsrhxTOOqEsPOFt5v/f6C5Qulcw==", - "requires": { - "@babel/core": "^7.15.5", - "@babel/plugin-transform-react-constant-elements": "^7.14.5", - "@babel/preset-env": "^7.15.6", - "@babel/preset-react": "^7.14.5", - "@babel/preset-typescript": "^7.15.0", - "@svgr/core": "^6.2.1", - "@svgr/plugin-jsx": "^6.2.1", - "@svgr/plugin-svgo": "^6.2.0" - } - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "requires": { - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/eslint": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.3.tgz", - "integrity": "sha512-YP1S7YJRMPs+7KZKDb9G63n8YejIwW9BALq7a5j2+H4yl6iOv9CB29edho+cuFRrvmJbbaH2yiVChKLJVysDGw==", - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.29", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", - "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", - "requires": { - "@types/unist": "*" - } - }, - "@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" - }, - "@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", - "requires": { - "@types/node": "*" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "requires": { - "@types/unist": "*" - } - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - }, - "@types/node": { - "version": "14.18.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.21.tgz", - "integrity": "sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==" - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "@types/parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", - "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" - }, - "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "@types/react": { - "version": "17.0.46", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.46.tgz", - "integrity": "sha512-zNAJVEO9dBEQLPa/OuedGfx92/UlD+1rNxSv2qVWUQZ+orEtLUWFgZ08xfyI9TAZLnmWzZDtssAsgtbXT7Ew0g==", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-router": { - "version": "5.1.18", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz", - "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==", - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "@types/react-router-config": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.6.tgz", - "integrity": "sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==", - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "@types/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==", - "requires": { - "@types/node": "*" - } - }, - "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "requires": { - "@types/express": "*" - } - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "requires": { - "@types/node": "*" - } - }, - "@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "requires": { - "@types/node": "*" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "dependencies": { - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - } - } - }, - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==" - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - }, - "address": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.0.tgz", - "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==" - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "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==" - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "requires": {} - }, - "algoliasearch": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.13.1.tgz", - "integrity": "sha512-dtHUSE0caWTCE7liE1xaL+19AFf6kWEcyn76uhcitWpntqvicFHXKFoZe5JJcv9whQOTRM6+B8qJz6sFj+rDJA==", - "requires": { - "@algolia/cache-browser-local-storage": "4.13.1", - "@algolia/cache-common": "4.13.1", - "@algolia/cache-in-memory": "4.13.1", - "@algolia/client-account": "4.13.1", - "@algolia/client-analytics": "4.13.1", - "@algolia/client-common": "4.13.1", - "@algolia/client-personalization": "4.13.1", - "@algolia/client-search": "4.13.1", - "@algolia/logger-common": "4.13.1", - "@algolia/logger-console": "4.13.1", - "@algolia/requester-browser-xhr": "4.13.1", - "@algolia/requester-common": "4.13.1", - "@algolia/requester-node-http": "4.13.1", - "@algolia/transporter": "4.13.1" - } - }, - "algoliasearch-helper": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.8.3.tgz", - "integrity": "sha512-J0H08fQoyhZ2qLi7Uy8EvUeN/NJ4Trtt7NWB8mF1CGLuYpdXPyjZu9+Uoya2eayxQ20RP+QGF9Om/LddPv49vw==", - "requires": { - "@algolia/events": "^4.0.1" - } - }, - "ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "requires": { - "string-width": "^4.1.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "autoprefixer": { - "version": "10.4.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", - "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", - "requires": { - "browserslist": "^4.20.3", - "caniuse-lite": "^1.0.30001335", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - } - }, - "babel-plugin-apply-mdx-type-prop": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", - "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4", - "@mdx-js/util": "1.6.22" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - } - } - }, - "babel-plugin-css-modules-transform": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-css-modules-transform/-/babel-plugin-css-modules-transform-1.6.2.tgz", - "integrity": "sha512-zBsI54N5n979vfYpqFzQ6oRwEiVcmLH5REyaincNW+Ecl52nvRsQPYIbDcJzHePrXI20YSRUw6G/qbPwZZDgfg==", - "dev": true, - "requires": { - "css-modules-require-hook": "^4.0.6", - "mkdirp": "^0.5.1" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-extract-import-names": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", - "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", - "requires": { - "@babel/helper-plugin-utils": "7.10.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - } - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base16": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", - "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" - }, - "before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "bonjour-service": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", - "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", - "requires": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, - "boxen": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", - "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", - "requires": { - "ansi-align": "^3.0.1", - "camelcase": "^6.2.0", - "chalk": "^4.1.2", - "cli-boxes": "^3.0.0", - "string-width": "^5.0.1", - "type-fest": "^2.5.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.0.1" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.20.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz", - "integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==", - "requires": { - "caniuse-lite": "^1.0.30001349", - "electron-to-chromium": "^1.4.147", - "escalade": "^3.1.1", - "node-releases": "^2.0.5", - "picocolors": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001355", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001355.tgz", - "integrity": "sha512-Sd6pjJHF27LzCB7pT7qs+kuX2ndurzCzkpJl6Qct7LPSZ9jn0bkOA8mdgMgmqnQAWLVOOGjLpc+66V57eLtb1g==" - }, - "ccount": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", - "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" - }, - "cheerio": { - "version": "1.0.0-rc.11", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.11.tgz", - "integrity": "sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==", - "requires": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0", - "tslib": "^2.4.0" - } - }, - "cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "requires": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "clean-css": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.0.tgz", - "integrity": "sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==", - "requires": { - "source-map": "~0.6.0" - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==" - }, - "cli-table3": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", - "requires": { - "@colors/colors": "1.5.0", - "string-width": "^4.2.0" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" - }, - "collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" - }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" - }, - "combine-promises": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.1.0.tgz", - "integrity": "sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==" - }, - "comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" - }, - "commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - }, - "dependencies": { - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - } - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" - }, - "consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==" - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "copy-text-to-clipboard": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz", - "integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==" - }, - "copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "requires": { - "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" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "requires": { - "is-glob": "^4.0.3" - } - }, - "globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "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==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" - } - } - }, - "core-js": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.23.1.tgz", - "integrity": "sha512-wfMYHWi1WQjpgZNC9kAlN4ut04TM9fUTdi7CqIoTVM7yaiOUQTklOzfb+oWH3r9edQcT3F887swuVmxrV+CC8w==" - }, - "core-js-compat": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.1.tgz", - "integrity": "sha512-KeYrEc8t6FJsKYB2qnDwRHWaC0cJNaqlHfCpMe5q3j/W1nje3moib/txNklddLPCtGb+etcBIyJ8zuMa/LN5/A==", - "requires": { - "browserslist": "^4.20.4", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-js-pure": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.1.tgz", - "integrity": "sha512-3qNgf6TqI3U1uhuSYRzJZGfFd4T+YlbyVPl+jgRiKjdZopvG4keZQwWZDAWpu1UH9nCgTpUzIV3GFawC7cJsqg==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "requires": { - "@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" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "css-declaration-sorter": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz", - "integrity": "sha512-OGT677UGHJTAVMRhPO+HJ4oKln3wkBTwtDFH0ojbqm+MJm6xuDMHp2nkhh/ThaBqq20IbraBQSWKfSLNHQO9Og==", - "requires": {} - }, - "css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.7", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" - } - }, - "css-minimizer-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-7ZXXRzRHvofv3Uac5Y+RkWRNo0ZMlcg8e9/OtrqUYmwDWJo+qs67GvdeFrXLsFb7czKNwjQhPkM0avlIYl+1nA==", - "requires": { - "cssnano": "^5.1.8", - "jest-worker": "^27.5.1", - "postcss": "^8.4.13", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "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==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "css-modules-require-hook": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/css-modules-require-hook/-/css-modules-require-hook-4.2.3.tgz", - "integrity": "sha512-y3eGHAqmDl8JQdr1LYTwBkMxy7CSHCMy9YwpSjDqtGqCCEy9lKq/x/nmHVs+G7C1+xXmyIXjRu0q/MMn8w01mg==", - "dev": true, - "requires": { - "debug": "^2.2.0", - "generic-names": "^1.0.1", - "glob-to-regexp": "^0.3.0", - "icss-replace-symbols": "^1.0.2", - "lodash": "^4.3.0", - "postcss": "^6.0.1", - "postcss-modules-extract-imports": "^1.0.0", - "postcss-modules-local-by-default": "^1.0.1", - "postcss-modules-resolve-imports": "^1.3.0", - "postcss-modules-scope": "^1.0.0", - "postcss-modules-values": "^1.1.1", - "seekout": "^1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "icss-utils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-3.0.1.tgz", - "integrity": "sha512-ANhVLoEfe0KoC9+z4yiTaXOneB49K6JIXdS+yAgH0NERELpdIT7kkj2XxUPuHafeHnn8umXnECSpsfk1RTaUew==", - "dev": true, - "requires": { - "postcss": "^6.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", - "dev": true, - "requires": { - "postcss": "^6.0.1" - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-resolve-imports": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-resolve-imports/-/postcss-modules-resolve-imports-1.3.0.tgz", - "integrity": "sha512-9xECsLcuR1DRu7mVhK6GIkdEeg4sdZXbLEcuEkDh9mKiz+uxDBfDREYiVehINdW0UPF9gbHnb64ZQMuRsqqkDA==", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "icss-utils": "^3.0.1", - "minimist": "^1.2.0" - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==", - "dev": true, - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - } - }, - "css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "5.1.11", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.11.tgz", - "integrity": "sha512-2nx+O6LvewPo5EBtYrKc8762mMkZRk9cMGIOP4UlkmxHm7ObxH+zvsJJ+qLwPkUc4/yumL/qJkavYi9NlodWIQ==", - "requires": { - "cssnano-preset-default": "^5.2.11", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "cssnano-preset-advanced": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.7.tgz", - "integrity": "sha512-VNOdTMRA60KhaURZhnkTGeluHQBHWDMwY7TIDu1Qydf88X6k8xZbV2I+Wlm8JRaj2oi18xvoIOAW17JneoZzEg==", - "requires": { - "autoprefixer": "^10.3.7", - "cssnano-preset-default": "^5.2.11", - "postcss-discard-unused": "^5.1.0", - "postcss-merge-idents": "^5.1.1", - "postcss-reduce-idents": "^5.2.0", - "postcss-zindex": "^5.1.0" - } - }, - "cssnano-preset-default": { - "version": "5.2.11", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.11.tgz", - "integrity": "sha512-4PadR1NtuaIK8MvLNuY7MznK4WJteldGlzCiMaaTiOUP+apeiIvUDIXykzUOoqgOOUAHrU64ncdD90NfZR3LSQ==", - "requires": { - "css-declaration-sorter": "^6.2.2", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.2", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.5", - "postcss-merge-rules": "^5.1.2", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.3", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.0", - "postcss-normalize-repeat-style": "^5.1.0", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.2", - "postcss-reduce-initial": "^5.1.0", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - } - }, - "cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "requires": {} - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "requires": { - "css-tree": "^1.1.2" - } - }, - "csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" - }, - "d3": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/d3/-/d3-7.4.4.tgz", - "integrity": "sha512-97FE+MYdAlV3R9P74+R3Uar7wUKkIFu89UWMjEaDhiJ9VxKvqaMxauImy8PC2DdBkdM2BxJOIoLxPrcZUyrKoQ==", - "requires": { - "d3-array": "3", - "d3-axis": "3", - "d3-brush": "3", - "d3-chord": "3", - "d3-color": "3", - "d3-contour": "3", - "d3-delaunay": "6", - "d3-dispatch": "3", - "d3-drag": "3", - "d3-dsv": "3", - "d3-ease": "3", - "d3-fetch": "3", - "d3-force": "3", - "d3-format": "3", - "d3-geo": "3", - "d3-hierarchy": "3", - "d3-interpolate": "3", - "d3-path": "3", - "d3-polygon": "3", - "d3-quadtree": "3", - "d3-random": "3", - "d3-scale": "4", - "d3-scale-chromatic": "3", - "d3-selection": "3", - "d3-shape": "3", - "d3-time": "3", - "d3-time-format": "4", - "d3-timer": "3", - "d3-transition": "3", - "d3-zoom": "3" - } - }, - "d3-array": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.1.6.tgz", - "integrity": "sha512-DCbBBNuKOeiR9h04ySRBMW52TFVc91O9wJziuyXw6Ztmy8D3oZbmCkOO3UHKC7ceNJsN2Mavo9+vwV8EAEUXzA==", - "requires": { - "internmap": "1 - 2" - } - }, - "d3-axis": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", - "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==" - }, - "d3-brush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", - "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "requires": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" - } - }, - "d3-chord": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", - "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", - "requires": { - "d3-path": "1 - 3" - } - }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" - }, - "d3-contour": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-3.0.1.tgz", - "integrity": "sha512-0Oc4D0KyhwhM7ZL0RMnfGycLN7hxHB8CMmwZ3+H26PWAG0ozNuYG5hXSDNgmP1SgJkQMrlG6cP20HoaSbvcJTQ==", - "requires": { - "d3-array": "2 - 3" - } - }, - "d3-delaunay": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", - "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", - "requires": { - "delaunator": "5" - } - }, - "d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==" - }, - "d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "requires": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - } - }, - "d3-dsv": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", - "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", - "requires": { - "commander": "7", - "iconv-lite": "0.6", - "rw": "1" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - } - } - }, - "d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==" - }, - "d3-fetch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", - "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", - "requires": { - "d3-dsv": "1 - 3" - } - }, - "d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "requires": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - } - }, - "d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" - }, - "d3-geo": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", - "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", - "requires": { - "d3-array": "2.5.0 - 3" - } - }, - "d3-hierarchy": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", - "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==" - }, - "d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "requires": { - "d3-color": "1 - 3" - } - }, - "d3-path": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", - "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==" - }, - "d3-polygon": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", - "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==" - }, - "d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==" - }, - "d3-random": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", - "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==" - }, - "d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "requires": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - } - }, - "d3-scale-chromatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", - "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", - "requires": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - } - }, - "d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==" - }, - "d3-shape": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", - "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", - "requires": { - "d3-path": "1 - 3" - } - }, - "d3-time": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", - "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", - "requires": { - "d3-array": "2 - 3" - } - }, - "d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "requires": { - "d3-time": "1 - 3" - } - }, - "d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" - }, - "d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "requires": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - } - }, - "d3-voronoi": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", - "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" - }, - "d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "requires": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - } - }, - "dagre": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", - "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", - "requires": { - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - } - }, - "dagre-d3": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/dagre-d3/-/dagre-d3-0.6.4.tgz", - "integrity": "sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==", - "requires": { - "d3": "^5.14", - "dagre": "^0.8.5", - "graphlib": "^2.1.8", - "lodash": "^4.17.15" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "d3": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", - "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", - "requires": { - "d3-array": "1", - "d3-axis": "1", - "d3-brush": "1", - "d3-chord": "1", - "d3-collection": "1", - "d3-color": "1", - "d3-contour": "1", - "d3-dispatch": "1", - "d3-drag": "1", - "d3-dsv": "1", - "d3-ease": "1", - "d3-fetch": "1", - "d3-force": "1", - "d3-format": "1", - "d3-geo": "1", - "d3-hierarchy": "1", - "d3-interpolate": "1", - "d3-path": "1", - "d3-polygon": "1", - "d3-quadtree": "1", - "d3-random": "1", - "d3-scale": "2", - "d3-scale-chromatic": "1", - "d3-selection": "1", - "d3-shape": "1", - "d3-time": "1", - "d3-time-format": "2", - "d3-timer": "1", - "d3-transition": "1", - "d3-voronoi": "1", - "d3-zoom": "1" - } - }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-axis": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", - "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==" - }, - "d3-brush": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", - "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", - "requires": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, - "d3-chord": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", - "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", - "requires": { - "d3-array": "1", - "d3-path": "1" - } - }, - "d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" - }, - "d3-contour": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", - "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", - "requires": { - "d3-array": "^1.1.1" - } - }, - "d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "d3-drag": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", - "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", - "requires": { - "d3-dispatch": "1", - "d3-selection": "1" - } - }, - "d3-dsv": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", - "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", - "requires": { - "commander": "2", - "iconv-lite": "0.4", - "rw": "1" - } - }, - "d3-ease": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", - "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" - }, - "d3-fetch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", - "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", - "requires": { - "d3-dsv": "1" - } - }, - "d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "requires": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "d3-geo": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", - "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", - "requires": { - "d3-array": "1" - } - }, - "d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", - "requires": { - "d3-color": "1" - } - }, - "d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "d3-polygon": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", - "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==" - }, - "d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "d3-random": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", - "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==" - }, - "d3-scale": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", - "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", - "requires": { - "d3-array": "^1.2.0", - "d3-collection": "1", - "d3-format": "1", - "d3-interpolate": "1", - "d3-time": "1", - "d3-time-format": "2" - } - }, - "d3-scale-chromatic": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", - "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", - "requires": { - "d3-color": "1", - "d3-interpolate": "1" - } - }, - "d3-selection": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", - "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" - }, - "d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "requires": { - "d3-path": "1" - } - }, - "d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "requires": { - "d3-time": "1" - } - }, - "d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "d3-transition": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", - "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", - "requires": { - "d3-color": "1", - "d3-dispatch": "1", - "d3-ease": "1", - "d3-interpolate": "1", - "d3-selection": "^1.1.0", - "d3-timer": "1" - } - }, - "d3-zoom": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", - "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", - "requires": { - "d3-dispatch": "1", - "d3-drag": "1", - "d3-interpolate": "1", - "d3-selection": "1", - "d3-transition": "1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "requires": { - "execa": "^5.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, - "delaunator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", - "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", - "requires": { - "robust-predicates": "^3.0.0" - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "detab": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", - "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", - "requires": { - "repeat-string": "^1.5.4" - } - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" - }, - "dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", - "requires": { - "@leichtgewicht/ip-codec": "^2.0.1" - } - }, - "docusaurus-theme-search-typesense": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/docusaurus-theme-search-typesense/-/docusaurus-theme-search-typesense-0.4.0.tgz", - "integrity": "sha512-isjl36BzF9WUHxZNITUmpqHoZxU4b9MO+7lDXf2NmUdNKXLvRX8zNX/ajh1N95z4yZarsVWihI42RKSaLqVIbg==", - "requires": { - "@docusaurus/utils": "2.0.0-beta.21", - "@docusaurus/utils-validation": "2.0.0-beta.21", - "algoliasearch-helper": "^3.7.0", - "clsx": "^1.1.1", - "eta": "^1.12.1", - "lodash": "^4.17.20", - "typesense": "^1.2.2", - "typesense-docsearch-react": "^0.1.0", - "typesense-instantsearch-adapter": "^2.4.0" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "dependencies": { - "entities": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", - "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==" - } - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - }, - "domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "requires": { - "domelementtype": "^2.3.0" - } - }, - "dompurify": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.5.tgz", - "integrity": "sha512-kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ==" - }, - "domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "requires": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "requires": { - "is-obj": "^2.0.0" - }, - "dependencies": { - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - } - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "dev": true - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha512-CEj8FwwNA4cVH2uFCoHUrmojhYh1vmCdOaneKJXwkeY1i9jnlslVo9dx+hQ5Hl9GnH/Bwy/IjxAyOePyPKYnzA==" - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "electron-to-chromium": { - "version": "1.4.158", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.158.tgz", - "integrity": "sha512-gppO3/+Y6sP432HtvwvuU8S+YYYLH4PmAYvQwqUtt9HDOmEsBwQfLnK9T8+1NIKwAS1BEygIjTaATC4H5EzvxQ==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "emoticon": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", - "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "eta": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/eta/-/eta-1.12.3.tgz", - "integrity": "sha512-qHixwbDLtekO/d51Yr4glcaUJCIjGVJyTzuqV4GPlgZo1YpgOKG+avQynErZIYrfM6JIJdtiG2Kox8tbb+DoGg==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "eval": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", - "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", - "requires": { - "@types/node": "*", - "require-like": ">= 0.1.1" - } - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "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" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - } - } - }, - "exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" - }, - "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "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==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "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==" - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "requires": { - "punycode": "^1.3.2" - } - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fbemitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", - "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", - "requires": { - "fbjs": "^3.0.0" - } - }, - "fbjs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", - "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", - "requires": { - "cross-fetch": "^3.1.5", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - } - }, - "fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, - "feed": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", - "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", - "requires": { - "xml-js": "^1.6.11" - } - }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flux": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.3.tgz", - "integrity": "sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==", - "requires": { - "fbemitter": "^3.0.0", - "fbjs": "^3.0.1" - } - }, - "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" - }, - "fork-ts-checker-webpack-plugin": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", - "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - } - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "generic-names": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-1.0.3.tgz", - "integrity": "sha512-b6OHfQuKasIKM9b6YPkX+KUj/TLBTx3B/1aT1T5F12FEuEqyFMdr59OMS53aoaSw8eVtapdqieX6lbg5opaOhA==", - "dev": true, - "requires": { - "loader-utils": "^0.2.16" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - } - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - }, - "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "github-slugger": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.4.0.tgz", - "integrity": "sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==" - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "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" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==", - "dev": true - }, - "global-dirs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", - "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", - "requires": { - "ini": "2.0.0" - }, - "dependencies": { - "ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" - } - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "requires": { - "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" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "graphlib": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", - "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", - "requires": { - "lodash": "^4.17.15" - } - }, - "gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "requires": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - } - }, - "gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "requires": { - "duplexer": "^0.1.2" - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - }, - "hast-to-hyperscript": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", - "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", - "requires": { - "@types/unist": "^2.0.3", - "comma-separated-tokens": "^1.0.0", - "property-information": "^5.3.0", - "space-separated-tokens": "^1.0.0", - "style-to-object": "^0.3.0", - "unist-util-is": "^4.0.0", - "web-namespaces": "^1.0.0" - } - }, - "hast-util-from-parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", - "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", - "requires": { - "@types/parse5": "^5.0.0", - "hastscript": "^6.0.0", - "property-information": "^5.0.0", - "vfile": "^4.0.0", - "vfile-location": "^3.2.0", - "web-namespaces": "^1.0.0" - } - }, - "hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" - }, - "hast-util-raw": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", - "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", - "requires": { - "@types/hast": "^2.0.0", - "hast-util-from-parse5": "^6.0.0", - "hast-util-to-parse5": "^6.0.0", - "html-void-elements": "^1.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^3.0.0", - "vfile": "^4.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - } - } - }, - "hast-util-to-parse5": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", - "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", - "requires": { - "hast-to-hyperscript": "^9.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - } - }, - "hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "requires": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "requires": { - "@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": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "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" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" - }, - "html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "requires": { - "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" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - } - } - }, - "html-tags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", - "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==" - }, - "html-void-elements": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==" - }, - "html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "requires": { - "@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": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - }, - "dependencies": { - "entities": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", - "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==" - } - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-parser-js": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", - "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==" - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "requires": { - "@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" - }, - "dependencies": { - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" - } - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==", - "dev": true - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "requires": {} - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, - "image-size": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.1.tgz", - "integrity": "sha512-VAwkvNSNGClRw9mDHhc5Efax8PLlsOGcUTh0T/LIriC8vPA3U5PdqXWqkz406MoYHMKW8Uf9gWr05T/rYB44kQ==", - "requires": { - "queue": "6.0.2" - } - }, - "immer": { - "version": "9.0.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", - "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==" - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "infima": { - "version": "0.2.0-alpha.39", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.39.tgz", - "integrity": "sha512-UyYiwD3nwHakGhuOUfpe3baJ8gkiPpRVx4a4sE/Ag+932+Y6swtLsdPoRR8ezhwqGnduzxmFkjumV9roz6QoLw==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" - }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "requires": { - "has": "^1.0.3" - } - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" - }, - "is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "requires": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - } - }, - "is-npm": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", - "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==" - }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" - }, - "is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "joi": { - "version": "17.6.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", - "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.0", - "@sideway/pinpoint": "^2.0.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsrsasign": { - "version": "10.5.25", - "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-10.5.25.tgz", - "integrity": "sha512-N7zxHaCwYvFlXsybq4p4RxRwn4AbEq3cEiyjbCrWmwA7g8aS4LTKDJ9AJmsXxwtYesYx0imJ+ITtkyyxLCgeIg==" - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "khroma": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/khroma/-/khroma-1.4.1.tgz", - "integrity": "sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==" - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==" - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { - "package-json": "^6.3.0" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==" - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.curry": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", - "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" - }, - "lodash.flow": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", - "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" - }, - "loglevel": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" - }, - "mdast-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", - "requires": { - "unist-util-remove": "^2.0.0" - } - }, - "mdast-util-definitions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", - "requires": { - "unist-util-visit": "^2.0.0" - } - }, - "mdast-util-to-hast": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", - "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", - "requires": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "mdast-util-definitions": "^4.0.0", - "mdurl": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "mdast-util-to-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", - "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "memfs": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz", - "integrity": "sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==", - "requires": { - "fs-monkey": "1.0.3" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "mermaid": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-8.14.0.tgz", - "integrity": "sha512-ITSHjwVaby1Li738sxhF48sLTxcNyUAoWfoqyztL1f7J6JOLpHOuQPNLBb6lxGPUA0u7xP9IRULgvod0dKu35A==", - "requires": { - "@braintree/sanitize-url": "^3.1.0", - "d3": "^7.0.0", - "dagre": "^0.8.5", - "dagre-d3": "^0.6.4", - "dompurify": "2.3.5", - "graphlib": "^2.1.8", - "khroma": "^1.4.1", - "moment-mini": "^2.24.0", - "stylis": "^4.0.10" - } - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "requires": { - "mime-db": "~1.33.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "mini-create-react-context": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", - "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "requires": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - } - }, - "mini-css-extract-plugin": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", - "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", - "requires": { - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "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==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "moment-mini": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment-mini/-/moment-mini-2.24.0.tgz", - "integrity": "sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==" - }, - "mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "requires": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - } - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-emoji": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", - "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", - "requires": { - "lodash": "^4.17.21" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" - }, - "node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { - "boolbase": "^1.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "requires": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@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": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" - }, - "parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", - "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", - "requires": { - "entities": "^4.3.0" - }, - "dependencies": { - "entities": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", - "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==" - } - } - }, - "parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "requires": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "requires": { - "find-up": "^4.0.0" - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" - } - } - }, - "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "requires": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-convert-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", - "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", - "requires": { - "browserslist": "^4.20.3", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "requires": {} - }, - "postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "requires": {} - }, - "postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "requires": {} - }, - "postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "requires": {} - }, - "postcss-discard-unused": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", - "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-loader": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.0.tgz", - "integrity": "sha512-IDyttebFzTSY6DI24KuHUcBjbAev1i+RyICoPEWcAstZsj03r533uMXtDn506l6/wlsRYiS5XBdx7TpccCsyUg==", - "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.7" - } - }, - "postcss-merge-idents": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", - "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", - "requires": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-merge-longhand": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz", - "integrity": "sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w==", - "requires": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" - } - }, - "postcss-merge-rules": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", - "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "requires": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-params": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", - "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", - "requires": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "requires": {} - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "requires": {} - }, - "postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-positions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", - "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", - "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", - "requires": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "requires": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-ordered-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.2.tgz", - "integrity": "sha512-wr2avRbW4HS2XE2ZCqpfp4N/tDC6GZKZ+SVP8UBTOVS8QWrc4TD8MYrebJrvVVlGPKszmiSCzue43NDiVtgDmg==", - "requires": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-reduce-idents": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", - "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-sort-media-queries": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.2.1.tgz", - "integrity": "sha512-9VYekQalFZ3sdgcTjXMa0dDjsfBVHXlraYJEMiOJ/2iMmI2JGCMavP16z3kWOaRu8NSaJCTgVpB/IVpH5yT9YQ==", - "requires": { - "sort-css-media-queries": "2.0.4" - } - }, - "postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "requires": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - } - }, - "postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "postcss-zindex": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", - "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", - "requires": {} - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" - }, - "pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "requires": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==" - }, - "prism-react-renderer": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.3.tgz", - "integrity": "sha512-Viur/7tBTCH2HmYzwCHmt2rEFn+rdIWNIINXyg0StiISbDiIhHKhrFuEK8eMkKgvsIYSjgGqy/hNyucHp6FpoQ==", - "requires": {} - }, - "prismjs": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz", - "integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "requires": { - "xtend": "^4.0.0" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - } - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" - }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "requires": { - "escape-goat": "^2.0.0" - } - }, - "pure-color": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", - "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==" - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "requires": { - "inherits": "~2.0.3" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" - } - } - }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-base16-styling": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", - "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==", - "requires": { - "base16": "^1.0.0", - "lodash.curry": "^4.0.1", - "lodash.flow": "^3.3.0", - "pure-color": "^1.2.0" - } - }, - "react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "requires": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, - "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - } - }, - "react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" - }, - "react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" - }, - "react-from-dom": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/react-from-dom/-/react-from-dom-0.6.2.tgz", - "integrity": "sha512-qvWWTL/4xw4k/Dywd41RBpLQUSq97csuv15qrxN+izNeLYlD9wn5W8LspbfYe5CWbaSdkZ72BsaYBPQf2x4VbQ==", - "requires": {} - }, - "react-helmet-async": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", - "requires": { - "@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-inlinesvg": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-inlinesvg/-/react-inlinesvg-2.3.0.tgz", - "integrity": "sha512-fEGOdDf4k4bcveArbEpj01pJcH8pOCKLxmSj2POFdGvEk5YK0NZVnH6BXpW/PzACHPRsuh1YKAhNZyFnD28oxg==", - "requires": { - "exenv": "^1.2.2", - "react-from-dom": "^0.6.0" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "react-json-view": { - "version": "1.21.3", - "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz", - "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==", - "requires": { - "flux": "^4.0.1", - "react-base16-styling": "^0.6.0", - "react-lifecycles-compat": "^3.0.4", - "react-textarea-autosize": "^8.3.2" - } - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-loadable": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/react-loadable/-/react-loadable-5.5.0.tgz", - "integrity": "sha512-C8Aui0ZpMd4KokxRdVAm2bQtI03k2RMRNzOB+IipV3yxFTSVICv7WoUr5L9ALB5BmKO1iHgZtWM8EvYG83otdg==", - "requires": { - "prop-types": "^15.5.0" - } - }, - "react-loadable-ssr-addon-v5-slorber": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", - "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", - "requires": { - "@babel/runtime": "^7.10.3" - } - }, - "react-router": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.3.tgz", - "integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "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-router-config": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", - "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", - "requires": { - "@babel/runtime": "^7.1.2" - } - }, - "react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.3", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "react-textarea-autosize": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz", - "integrity": "sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==", - "requires": { - "@babel/runtime": "^7.10.2", - "use-composed-ref": "^1.3.0", - "use-latest": "^1.2.1" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "reading-time": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "requires": { - "resolve": "^1.1.6" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "requires": { - "minimatch": "3.0.4" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "registry-auth-token": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", - "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", - "requires": { - "rc": "1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "requires": { - "rc": "^1.2.8" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" - } - } - }, - "rehype-parse": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz", - "integrity": "sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==", - "requires": { - "hast-util-from-parse5": "^5.0.0", - "parse5": "^5.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "hast-util-from-parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz", - "integrity": "sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==", - "requires": { - "ccount": "^1.0.3", - "hastscript": "^5.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.1.2", - "xtend": "^4.0.1" - } - }, - "hastscript": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", - "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", - "requires": { - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==" - }, - "remark-admonitions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/remark-admonitions/-/remark-admonitions-1.2.1.tgz", - "integrity": "sha512-Ji6p68VDvD+H1oS95Fdx9Ar5WA2wcDA4kwrrhVU7fGctC6+d3uiMICu7w7/2Xld+lnU7/gi+432+rRbup5S8ow==", - "requires": { - "rehype-parse": "^6.0.2", - "unified": "^8.4.2", - "unist-util-visit": "^2.0.1" - }, - "dependencies": { - "unified": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz", - "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==", - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - } - } - } - }, - "remark-emoji": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz", - "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==", - "requires": { - "emoticon": "^3.2.0", - "node-emoji": "^1.10.0", - "unist-util-visit": "^2.0.3" - } - }, - "remark-footnotes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", - "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==" - }, - "remark-mdx": { - "version": "1.6.22", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", - "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", - "requires": { - "@babel/core": "7.12.9", - "@babel/helper-plugin-utils": "7.10.4", - "@babel/plugin-proposal-object-rest-spread": "7.12.1", - "@babel/plugin-syntax-jsx": "7.12.1", - "@mdx-js/util": "1.6.22", - "is-alphabetical": "1.0.4", - "remark-parse": "8.0.3", - "unified": "9.2.0" - }, - "dependencies": { - "@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" - } - } - }, - "remark-parse": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", - "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", - "requires": { - "ccount": "^1.0.0", - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^2.0.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^2.0.0", - "vfile-location": "^3.0.0", - "xtend": "^4.0.1" - } - }, - "remark-squeeze-paragraphs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", - "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", - "requires": { - "mdast-squeeze-paragraphs": "^4.0.0" - } - }, - "renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - } - } - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" - }, - "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==" - }, - "require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "robust-predicates": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", - "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" - }, - "rtl-detect": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.4.tgz", - "integrity": "sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==" - }, - "rtlcss": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", - "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", - "requires": { - "find-up": "^5.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.3.11", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - } - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" - }, - "rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "requires": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - } - }, - "seekout": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/seekout/-/seekout-1.0.2.tgz", - "integrity": "sha512-eB4fRqHZCE8gmwFOVHC9tHzLkZJ2Y12qJvAJQox8kWjGObA++tgVeXHACsDCPajfNGnDaK2Juv+WzNlMuO43wQ==", - "dev": true - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" - }, - "selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", - "requires": { - "node-forge": "^1" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - } - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-handler": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.3.tgz", - "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==", - "requires": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", - "mime-types": "2.1.18", - "minimatch": "3.0.4", - "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", - "range-parser": "1.2.0" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" - } - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "requires": { - "kind-of": "^6.0.2" - } - }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" - }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "sirv": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", - "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", - "requires": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^1.0.0" - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "sitemap": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", - "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", - "requires": { - "@types/node": "^17.0.5", - "@types/sax": "^1.2.1", - "arg": "^5.0.0", - "sax": "^1.2.4" - }, - "dependencies": { - "@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" - } - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "sort-css-media-queries": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.0.4.tgz", - "integrity": "sha512-PAIsEK/XupCQwitjv7XxoMvYhT7EAfyzI3hsy/MyDgTvc+Ft55ctdkctJLOy6cQejaIC+zjpUL4djFVm2ivOOw==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "requires": { - "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" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "std-env": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.1.1.tgz", - "integrity": "sha512-/c645XdExBypL01TpFKiG/3RAa/Qmu+zRi0MwAmrdEkwHNuN0ebo8ccAXBBDa5Z0QOJgBskUIbuCK91x0sCVEw==" - }, - "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==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "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==" - } - } - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==" - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "requires": { - "inline-style-parser": "0.1.1" - } - }, - "stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", - "requires": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - } - }, - "stylis": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.1.tgz", - "integrity": "sha512-lVrM/bNdhVX2OgBFNa2YJ9Lxj7kPzylieHd3TNjuGE0Re9JB7joL5VUKOVH1kdNNJTgGPpT8hmwIAPLaSyEVFQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - }, - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - } - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" - }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", - "requires": { - "@jridgewell/trace-mapping": "^0.3.7", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "tiny-invariant": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz", - "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==" - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "totalist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==" - }, - "trim-trailing-lines": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", - "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==" - }, - "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" - }, - "ts-node": { - "version": "10.8.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", - "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - } - } - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "type-fest": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.13.1.tgz", - "integrity": "sha512-hXYyrPFwETT2swFLHeoKtJrvSF/ftG/sA15/8nGaLuaDGfVAaq8DYFpu4yOyV4tzp082WqnTEoMsm3flKMI2FQ==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "dependencies": { - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - } - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", - "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==" - }, - "typesense": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/typesense/-/typesense-1.3.0.tgz", - "integrity": "sha512-2QZT0WazFQwN5oCRsb9LjiDerMq4kVyarxSGy+38OqFJZfOAfGM6t+T57sN7Ml/Cd2ifQfBps8a+yBqgB+fLzw==", - "requires": { - "axios": "^0.26.0", - "loglevel": "^1.8.0" - }, - "dependencies": { - "axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "requires": { - "follow-redirects": "^1.14.8" - } - } - } - }, - "typesense-docsearch-react": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/typesense-docsearch-react/-/typesense-docsearch-react-0.1.0.tgz", - "integrity": "sha512-NavWvAylFR1k03kZ8M00ZQwB5s52g3iqr2C2IzHLFjqicD4mt5cYxO/eKZJHBcva2FnG1jnjY01mBEn3z6c+eQ==", - "requires": { - "@algolia/autocomplete-core": "1.2.1", - "@algolia/autocomplete-preset-algolia": "1.2.1", - "@docsearch/css": "3.0.0-alpha.39", - "typesense": "^0.14.0", - "typesense-instantsearch-adapter": "^2.0.1" - }, - "dependencies": { - "@algolia/autocomplete-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.2.1.tgz", - "integrity": "sha512-/SLS6636Wpl7eFiX7eEy0E3wBo60sUm1qRYybJBDt1fs8reiJ1+OSy+dZgrLBfLL4mSFqRIIUHXbVp25QdZ+iw==", - "requires": { - "@algolia/autocomplete-shared": "1.2.1" - } - }, - "@algolia/autocomplete-shared": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.2.1.tgz", - "integrity": "sha512-RHCwcXAYFwDXTlomstjWRFIzOfyxtQ9KmViacPE5P5hxUSSjkmG3dAb77xdydift1PaZNbho5TNTCi5UZe0RpA==" - }, - "@docsearch/css": { - "version": "3.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.0.0-alpha.39.tgz", - "integrity": "sha512-lr10MFTgcR3NRea/FtJ7uNtIpQz0XVwYxbpO5wxykgfHu1sxZTr6zwkuPquRgFYXnccxsTvfoIiK3rMH0fLr/w==" - }, - "typesense": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/typesense/-/typesense-0.14.0.tgz", - "integrity": "sha512-9ZLkjwhCYXCZuYmvS6En5hJm3AMhFZMbZ7hRMVFJlyK3essNqd8MSWEt2bpAvbvTN+1FgGLBQPJnpYdsbkVsKg==", - "requires": { - "axios": "^0.21.1", - "loglevel": "^1.7.1" - } - } - } - }, - "typesense-instantsearch-adapter": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/typesense-instantsearch-adapter/-/typesense-instantsearch-adapter-2.4.1.tgz", - "integrity": "sha512-WkqmywsKFQF96qvUyRkQx54ximV5jS/KJfEjxK178jWkoWyIkul7j7VOnlRNQU18n46SeV+PWt4AzboifsmbzQ==", - "requires": { - "typesense": "^1.3.0-6" - } - }, - "ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==" - }, - "unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "requires": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" - }, - "unified": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", - "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "unist-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", - "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==" - }, - "unist-util-generated": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", - "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==" - }, - "unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==" - }, - "unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" - }, - "unist-util-remove": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", - "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", - "requires": { - "unist-util-is": "^4.0.0" - } - }, - "unist-util-remove-position": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", - "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", - "requires": { - "unist-util-visit": "^2.0.0" - } - }, - "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "requires": { - "@types/unist": "^2.0.2" - } - }, - "unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - } - }, - "unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - } - }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "update-notifier": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", - "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", - "requires": { - "boxen": "^5.0.0", - "chalk": "^4.1.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.4.0", - "is-npm": "^5.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.1.0", - "pupa": "^2.1.1", - "semver": "^7.3.4", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "boxen": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", - "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^6.2.0", - "chalk": "^4.1.0", - "cli-boxes": "^2.2.1", - "string-width": "^4.2.2", - "type-fest": "^0.20.2", - "widest-line": "^3.1.0", - "wrap-ansi": "^7.0.0" - } - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - } - } - }, - "url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "requires": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "use-composed-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", - "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", - "requires": {} - }, - "use-isomorphic-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", - "requires": {} - }, - "use-latest": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", - "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", - "requires": { - "use-isomorphic-layout-effect": "^1.1.1" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" - }, - "utility-types": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", - "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - }, - "vfile": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", - "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - } - }, - "vfile-location": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", - "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==" - }, - "vfile-message": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", - "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "wait-on": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", - "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", - "requires": { - "axios": "^0.25.0", - "joi": "^17.6.0", - "lodash": "^4.17.21", - "minimist": "^1.2.5", - "rxjs": "^7.5.4" - }, - "dependencies": { - "axios": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", - "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", - "requires": { - "follow-redirects": "^1.14.7" - } - } - } - }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "dependencies": { - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - } - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "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": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "webpack-bundle-analyzer": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz", - "integrity": "sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==", - "requires": { - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", - "commander": "^7.2.0", - "gzip-size": "^6.0.0", - "lodash": "^4.17.20", - "opener": "^1.5.2", - "sirv": "^1.0.7", - "ws": "^7.3.1" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - } - } - }, - "webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "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==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "webpack-dev-server": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz", - "integrity": "sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==", - "requires": { - "@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.1", - "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": "^1.6.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", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "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==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "ws": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", - "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", - "requires": {} - } - } - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" - }, - "webpackbar": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", - "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", - "requires": { - "chalk": "^4.1.0", - "consola": "^2.15.3", - "pretty-time": "^1.1.0", - "std-env": "^3.0.1" - } - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "requires": { - "string-width": "^5.0.1" - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==" - }, - "wrap-ansi": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", - "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz", - "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==" - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", - "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", - "requires": {} - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, - "xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "requires": { - "sax": "^1.2.4" - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - }, - "zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" - } - } -} diff --git a/web/package.json b/web/package.json deleted file mode 100644 index 3d31012929a..00000000000 --- a/web/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "supabase", - "version": "0.0.3", - "private": true, - "scripts": { - "serve": "npm run start", - "start": "docusaurus start --port 3006", - "build": "npm run gen:all && docusaurus build", - "swizzle": "docusaurus swizzle", - "traction": "node traction.js", - "gen:all": "npm run gen:supabase && npm run gen:dart && npm run gen:cli", - "gen:supabase": "ts-node ReferenceGenerator.ts -o docs/reference/javascript spec/supabase_js_v1_ref.yml", - "gen:supabase:new": "ts-node ReferenceGenerator.ts -o ../apps/reference/_supabase_js_versioned_docs/version-v1 spec/supabase_js_v1_ref.yml", - "gen:supabase:v2": "ts-node ReferenceGenerator.ts -o ../apps/reference/_supabase_js/sdk spec/supabase_js_v2_ref.yml", - "gen:cli": "ts-node ReferenceGenerator.ts -o docs/reference/cli spec/cli.yml", - "gen:dart": "ts-node ReferenceGenerator.ts -o docs/reference/dart spec/supabase_dart_v1_ref.yml", - "gen:dart:new": "ts-node ReferenceGenerator.ts -o ../apps/reference/_supabase_dart/generated spec/supabase_dart_v1_ref.yml", - "gen:postgres": "ts-node ReferenceGenerator.ts -o docs/reference/postgres spec/postgres.yml" - }, - "dependencies": { - "@docusaurus/core": "^2.0.0-beta.18", - "@docusaurus/preset-classic": "^2.0.0-beta.18", - "@kiwicopple/prism-react-renderer": "https://github.com/kiwicopple/prism-react-renderer.git", - "@octokit/core": "^3.5.1", - "docusaurus-theme-search-typesense": "^0.4.0", - "jsrsasign": "^10.5.25", - "mermaid": "^8.13.8", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "react-inlinesvg": "^2.0.1", - "react-loadable": "^5.5.0" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "devDependencies": { - "@types/node": "^14.17.34", - "axios": "^0.21.1", - "babel-plugin-css-modules-transform": "^1.6.2", - "clsx": "^1.1.1", - "dotenv": "^10.0.0", - "js-yaml": "^3.14.0", - "minimist": "^1.2.5", - "ts-node": "^10.8.0", - "typescript": "^4.7.2" - } -} diff --git a/web/sidebar_realtime_server.js b/web/sidebar_realtime_server.js deleted file mode 100644 index 97ad7069bd9..00000000000 --- a/web/sidebar_realtime_server.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - docs: [ - { - type: 'category', - label: 'Realtime', - collapsed: false, - items: ['about', 'docker', 'aws', 'digitalocean', 'source'], - }, - ], -} diff --git a/web/sidebar_spec_cli.js b/web/sidebar_spec_cli.js deleted file mode 100644 index 3d193c022b2..00000000000 --- a/web/sidebar_spec_cli.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - docs: [ - { - type: 'category', - label: 'Getting Started', - items: ['reference/cli/index', 'reference/cli/installing-and-updating', 'reference/cli/config-reference'], - collapsed: true, - }, - { - type: 'category', - label: 'Command Reference', - items: ['reference/cli/supabase-help', 'reference/cli/supabase-login', 'reference/cli/supabase-link', 'reference/cli/supabase-init', 'reference/cli/supabase-start', 'reference/cli/supabase-stop', 'reference/cli/supabase-db-branch-list', 'reference/cli/supabase-db-branch-create', 'reference/cli/supabase-db-branch-delete', 'reference/cli/supabase-db-switch', 'reference/cli/supabase-db-changes', 'reference/cli/supabase-db-commit', 'reference/cli/supabase-db-reset', 'reference/cli/supabase-db-remote-set', 'reference/cli/supabase-db-remote-commit', 'reference/cli/supabase-db-push', 'reference/cli/supabase-functions-delete', 'reference/cli/supabase-functions-deploy', 'reference/cli/supabase-functions-new', 'reference/cli/supabase-functions-serve', 'reference/cli/supabase-migration-new', 'reference/cli/supabase-orgs-list', 'reference/cli/supabase-projects-list', 'reference/cli/supabase-projects-create', 'reference/cli/supabase-secrets-list', 'reference/cli/supabase-secrets-set', 'reference/cli/supabase-secrets-unset'], - collapsed: true, - } - ], -} \ No newline at end of file diff --git a/web/sidebar_spec_dart.js b/web/sidebar_spec_dart.js deleted file mode 100644 index 40216a8f2e2..00000000000 --- a/web/sidebar_spec_dart.js +++ /dev/null @@ -1,52 +0,0 @@ -module.exports = { - docs: [ - { - type: 'category', - label: 'Getting Started', - items: ['reference/dart/installing', 'reference/dart/initializing'], - collapsed: true, - }, - { - type: 'category', - label: 'Auth', - items: ['reference/dart/auth-signup', 'reference/dart/auth-signin', 'reference/dart/auth-signinwithprovider', 'reference/dart/auth-signout', 'reference/dart/auth-session', 'reference/dart/auth-user', 'reference/dart/auth-update', 'reference/dart/auth-onauthstatechange', 'reference/dart/reset-password-email'], - collapsed: true, - }, - { - type: 'category', - label: 'Functions', - items: ['reference/dart/invoke'], - collapsed: true, - }, - { - type: 'category', - label: 'Database', - items: ['reference/dart/select', 'reference/dart/insert', 'reference/dart/update', 'reference/dart/upsert', 'reference/dart/delete', 'reference/dart/rpc'], - collapsed: true, - }, - { - type: 'category', - label: 'Realtime', - items: ['reference/dart/subscribe', 'reference/dart/removesubscription', 'reference/dart/getsubscriptions', 'reference/dart/stream'], - collapsed: true, - }, - { - type: 'category', - label: 'Storage', - items: ['reference/dart/storage-createbucket', 'reference/dart/storage-getbucket', 'reference/dart/storage-listbuckets', 'reference/dart/storage-updatebucket', 'reference/dart/storage-deletebucket', 'reference/dart/storage-emptybucket', 'reference/dart/storage-from-upload', 'reference/dart/storage-from-download', 'reference/dart/storage-from-list', 'reference/dart/storage-from-update', 'reference/dart/storage-from-move', 'reference/dart/storage-from-remove', 'reference/dart/storage-from-createsignedurl', 'reference/dart/storage-from-getpublicurl'], - collapsed: true, - }, - { - type: 'category', - label: 'Modifiers', - items: ['reference/dart/using-modifiers', 'reference/dart/limit', 'reference/dart/order', 'reference/dart/range', 'reference/dart/single'], - collapsed: true, - }, - { - type: 'category', - label: 'Filters', - items: ['reference/dart/using-filters', 'reference/dart/or', 'reference/dart/not', 'reference/dart/match', 'reference/dart/eq', 'reference/dart/neq', 'reference/dart/gt', 'reference/dart/gte', 'reference/dart/lt', 'reference/dart/lte', 'reference/dart/like', 'reference/dart/ilike', 'reference/dart/is_', 'reference/dart/in_', 'reference/dart/contains', 'reference/dart/containedby', 'reference/dart/rangelt', 'reference/dart/rangegt', 'reference/dart/rangegte', 'reference/dart/rangelte', 'reference/dart/rangeadjacent', 'reference/dart/overlaps', 'reference/dart/textsearch', 'reference/dart/filter'], - collapsed: true, - } - ], -} \ No newline at end of file diff --git a/web/sidebar_spec_postgres.js b/web/sidebar_spec_postgres.js deleted file mode 100644 index 5023e9aa72c..00000000000 --- a/web/sidebar_spec_postgres.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - docs: [ - { - type: 'category', - label: 'About', - items: ['reference/postgres/index', 'reference/postgres/connection-strings'], - collapsed: true, - }, - { - type: 'category', - label: 'Managing Tables', - items: ['reference/postgres/schemas', 'reference/postgres/tables'], - collapsed: true, - } - ], -} \ No newline at end of file diff --git a/web/sidebar_spec_supabase_dart_v1_ref.js b/web/sidebar_spec_supabase_dart_v1_ref.js deleted file mode 100644 index 40216a8f2e2..00000000000 --- a/web/sidebar_spec_supabase_dart_v1_ref.js +++ /dev/null @@ -1,52 +0,0 @@ -module.exports = { - docs: [ - { - type: 'category', - label: 'Getting Started', - items: ['reference/dart/installing', 'reference/dart/initializing'], - collapsed: true, - }, - { - type: 'category', - label: 'Auth', - items: ['reference/dart/auth-signup', 'reference/dart/auth-signin', 'reference/dart/auth-signinwithprovider', 'reference/dart/auth-signout', 'reference/dart/auth-session', 'reference/dart/auth-user', 'reference/dart/auth-update', 'reference/dart/auth-onauthstatechange', 'reference/dart/reset-password-email'], - collapsed: true, - }, - { - type: 'category', - label: 'Functions', - items: ['reference/dart/invoke'], - collapsed: true, - }, - { - type: 'category', - label: 'Database', - items: ['reference/dart/select', 'reference/dart/insert', 'reference/dart/update', 'reference/dart/upsert', 'reference/dart/delete', 'reference/dart/rpc'], - collapsed: true, - }, - { - type: 'category', - label: 'Realtime', - items: ['reference/dart/subscribe', 'reference/dart/removesubscription', 'reference/dart/getsubscriptions', 'reference/dart/stream'], - collapsed: true, - }, - { - type: 'category', - label: 'Storage', - items: ['reference/dart/storage-createbucket', 'reference/dart/storage-getbucket', 'reference/dart/storage-listbuckets', 'reference/dart/storage-updatebucket', 'reference/dart/storage-deletebucket', 'reference/dart/storage-emptybucket', 'reference/dart/storage-from-upload', 'reference/dart/storage-from-download', 'reference/dart/storage-from-list', 'reference/dart/storage-from-update', 'reference/dart/storage-from-move', 'reference/dart/storage-from-remove', 'reference/dart/storage-from-createsignedurl', 'reference/dart/storage-from-getpublicurl'], - collapsed: true, - }, - { - type: 'category', - label: 'Modifiers', - items: ['reference/dart/using-modifiers', 'reference/dart/limit', 'reference/dart/order', 'reference/dart/range', 'reference/dart/single'], - collapsed: true, - }, - { - type: 'category', - label: 'Filters', - items: ['reference/dart/using-filters', 'reference/dart/or', 'reference/dart/not', 'reference/dart/match', 'reference/dart/eq', 'reference/dart/neq', 'reference/dart/gt', 'reference/dart/gte', 'reference/dart/lt', 'reference/dart/lte', 'reference/dart/like', 'reference/dart/ilike', 'reference/dart/is_', 'reference/dart/in_', 'reference/dart/contains', 'reference/dart/containedby', 'reference/dart/rangelt', 'reference/dart/rangegt', 'reference/dart/rangegte', 'reference/dart/rangelte', 'reference/dart/rangeadjacent', 'reference/dart/overlaps', 'reference/dart/textsearch', 'reference/dart/filter'], - collapsed: true, - } - ], -} \ No newline at end of file diff --git a/web/sidebar_spec_supabase_js_v1_ref.js b/web/sidebar_spec_supabase_js_v1_ref.js deleted file mode 100644 index 3d7a3ec031d..00000000000 --- a/web/sidebar_spec_supabase_js_v1_ref.js +++ /dev/null @@ -1,58 +0,0 @@ -module.exports = { - docs: [ - { - type: 'category', - label: 'Getting Started', - items: ['reference/javascript/installing', 'reference/javascript/initializing', 'reference/javascript/generating-types'], - collapsed: true, - }, - { - type: 'category', - label: 'Auth', - items: ['reference/javascript/auth-signup', 'reference/javascript/auth-signin', 'reference/javascript/auth-signout', 'reference/javascript/auth-session', 'reference/javascript/auth-user', 'reference/javascript/auth-update', 'reference/javascript/auth-setauth', 'reference/javascript/auth-onauthstatechange', 'reference/javascript/auth-api-getuser', 'reference/javascript/auth-api-resetpasswordforemail'], - collapsed: true, - }, - { - type: 'category', - label: 'Auth (Server Only)', - items: ['reference/javascript/auth-api-listusers', 'reference/javascript/auth-api-createuser', 'reference/javascript/auth-api-deleteuser', 'reference/javascript/auth-api-generatelink', 'reference/javascript/auth-api-inviteuserbyemail', 'reference/javascript/auth-api-sendmobileotp', 'reference/javascript/auth-api-updateuserbyid'], - collapsed: true, - }, - { - type: 'category', - label: 'Functions', - items: ['reference/javascript/invoke'], - collapsed: true, - }, - { - type: 'category', - label: 'Database', - items: ['reference/javascript/select', 'reference/javascript/insert', 'reference/javascript/update', 'reference/javascript/upsert', 'reference/javascript/delete', 'reference/javascript/rpc'], - collapsed: true, - }, - { - type: 'category', - label: 'Realtime', - items: ['reference/javascript/subscribe', 'reference/javascript/removesubscription', 'reference/javascript/removeallsubscriptions', 'reference/javascript/getsubscriptions'], - collapsed: true, - }, - { - type: 'category', - label: 'Storage', - items: ['reference/javascript/storage-createbucket', 'reference/javascript/storage-getbucket', 'reference/javascript/storage-listbuckets', 'reference/javascript/storage-updatebucket', 'reference/javascript/storage-deletebucket', 'reference/javascript/storage-emptybucket', 'reference/javascript/storage-from-upload', 'reference/javascript/storage-from-download', 'reference/javascript/storage-from-list', 'reference/javascript/storage-from-update', 'reference/javascript/storage-from-move', 'reference/javascript/storage-from-copy', 'reference/javascript/storage-from-remove', 'reference/javascript/storage-from-createsignedurl', 'reference/javascript/storage-from-createsignedurls', 'reference/javascript/storage-from-getpublicurl'], - collapsed: true, - }, - { - type: 'category', - label: 'Modifiers', - items: ['reference/javascript/using-modifiers', 'reference/javascript/limit', 'reference/javascript/order', 'reference/javascript/range', 'reference/javascript/single', 'reference/javascript/maybesingle'], - collapsed: true, - }, - { - type: 'category', - label: 'Filters', - items: ['reference/javascript/using-filters', 'reference/javascript/or', 'reference/javascript/not', 'reference/javascript/match', 'reference/javascript/eq', 'reference/javascript/neq', 'reference/javascript/gt', 'reference/javascript/gte', 'reference/javascript/lt', 'reference/javascript/lte', 'reference/javascript/like', 'reference/javascript/ilike', 'reference/javascript/is', 'reference/javascript/in', 'reference/javascript/contains', 'reference/javascript/containedby', 'reference/javascript/rangelt', 'reference/javascript/rangegt', 'reference/javascript/rangegte', 'reference/javascript/rangelte', 'reference/javascript/rangeadjacent', 'reference/javascript/overlaps', 'reference/javascript/textsearch', 'reference/javascript/filter'], - collapsed: true, - } - ], -} \ No newline at end of file diff --git a/web/sidebar_spec_supabase_js_v2_ref.js b/web/sidebar_spec_supabase_js_v2_ref.js deleted file mode 100644 index 6340607151f..00000000000 --- a/web/sidebar_spec_supabase_js_v2_ref.js +++ /dev/null @@ -1,52 +0,0 @@ -module.exports = { - docs: [ - { - type: 'category', - label: 'Auth', - items: ['sdk/auth-signup', 'sdk/auth-signin', 'sdk/auth-signout', 'sdk/auth-session', 'sdk/auth-user', 'sdk/auth-update', 'sdk/auth-setauth', 'sdk/auth-onauthstatechange', 'sdk/auth-api-getuser', 'sdk/auth-api-resetpasswordforemail'], - collapsed: true, - }, - { - type: 'category', - label: 'Auth (Server Only)', - items: ['sdk/auth-api-listusers', 'sdk/auth-api-createuser', 'sdk/auth-api-deleteuser', 'sdk/auth-api-generatelink', 'sdk/auth-api-inviteuserbyemail', 'sdk/auth-api-sendmobileotp', 'sdk/auth-api-updateuserbyid'], - collapsed: true, - }, - { - type: 'category', - label: 'Functions', - items: ['sdk/invoke'], - collapsed: true, - }, - { - type: 'category', - label: 'Database', - items: ['sdk/select', 'sdk/insert', 'sdk/update', 'sdk/upsert', 'sdk/delete', 'sdk/rpc'], - collapsed: true, - }, - { - type: 'category', - label: 'Realtime', - items: ['sdk/subscribe', 'sdk/removesubscription', 'sdk/removeallsubscriptions', 'sdk/getsubscriptions'], - collapsed: true, - }, - { - type: 'category', - label: 'Storage', - items: ['sdk/storage-createbucket', 'sdk/storage-getbucket', 'sdk/storage-listbuckets', 'sdk/storage-updatebucket', 'sdk/storage-deletebucket', 'sdk/storage-emptybucket', 'sdk/storage-from-upload', 'sdk/storage-from-download', 'sdk/storage-from-list', 'sdk/storage-from-update', 'sdk/storage-from-move', 'sdk/storage-from-copy', 'sdk/storage-from-remove', 'sdk/storage-from-createsignedurl', 'sdk/storage-from-createsignedurls', 'sdk/storage-from-getpublicurl'], - collapsed: true, - }, - { - type: 'category', - label: 'Modifiers', - items: ['sdk/using-modifiers', 'sdk/limit', 'sdk/order', 'sdk/range', 'sdk/single', 'sdk/maybesingle'], - collapsed: true, - }, - { - type: 'category', - label: 'Filters', - items: ['sdk/using-filters', 'sdk/or', 'sdk/not', 'sdk/match', 'sdk/eq', 'sdk/neq', 'sdk/gt', 'sdk/gte', 'sdk/lt', 'sdk/lte', 'sdk/like', 'sdk/ilike', 'sdk/is', 'sdk/in', 'sdk/contains', 'sdk/containedby', 'sdk/rangelt', 'sdk/rangegt', 'sdk/rangegte', 'sdk/rangelte', 'sdk/rangeadjacent', 'sdk/overlaps', 'sdk/textsearch', 'sdk/filter'], - collapsed: true, - } - ], -} \ No newline at end of file diff --git a/web/sidebars.js b/web/sidebars.js deleted file mode 100755 index 98972245f0e..00000000000 --- a/web/sidebars.js +++ /dev/null @@ -1,266 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -const supabaseClient = require('./sidebar_spec_supabase_js_v1_ref') -const supabaseCli = require('./sidebar_spec_cli') -const dart = require('./sidebar_spec_dart') - -module.exports = { - supabaseClient: [ - 'reference', - { - type: 'category', - label: 'JavaScript', - collapsed: false, - items: supabaseClient.docs, - }, - // { - // type: 'category', - // label: 'Postgres', - // collapsed: false, - // items: postgres.docs, - // }, - { - type: 'category', - label: 'Dart', - collapsed: false, - items: dart.docs, - }, - { - type: 'category', - label: 'CLI', - collapsed: false, - items: supabaseCli.docs, - }, - { - type: 'category', - label: 'Tools', - collapsed: false, - items: ['reference/tools/reference-auth'], - }, - ], - docs: [ - { - type: 'category', - label: 'Overview', - items: [ - 'about', - 'architecture', - 'guides/hosting/platform', - 'guides/local-development', - 'guides/examples', - ], - collapsed: true, - }, - { - type: 'category', - label: 'Quickstarts', - collapsed: true, - items: [ - 'guides/with-angular', - 'guides/with-expo', - 'guides/with-flutter', - 'guides/with-ionic-angular', - 'guides/with-ionic-react', - 'guides/with-ionic-vue', - 'guides/with-nextjs', - 'guides/with-nuxt-3', - 'guides/with-react', - 'guides/with-redwoodjs', - 'guides/with-solidjs', - 'guides/with-svelte', - 'guides/with-sveltekit', - 'guides/with-vue-3', - ], - }, - { - type: 'category', - label: 'Database', - collapsed: true, - items: [ - 'guides/database', - 'guides/database/connecting-to-postgres', - 'guides/database/tables', - 'guides/database/functions', - 'guides/database/full-text-search', - // 'guides/database/json', - // 'guides/database/arrays', - // 'guides/database/sql-to-api', - { - type: 'category', - label: 'Extensions', - collapsed: true, - items: [ - 'guides/database/extensions', - // 'guides/database/extensions/pgtap', - 'guides/database/extensions/plv8', - 'guides/database/extensions/http', - 'guides/database/extensions/uuid-ossp', - ], - }, - { - type: 'category', - label: 'Configuration', - collapsed: true, - items: [ - 'guides/database/timeouts', - 'guides/database/replication', - 'guides/database/managing-passwords', - 'guides/database/managing-timezones', - ], - }, - ], - }, - { - type: 'category', - label: 'APIs', - collapsed: true, - items: ['guides/api', 'guides/api/generating-types'], - }, - { - type: 'category', - label: 'Functions', - collapsed: true, - items: ['guides/functions'], - }, - { - type: 'category', - label: 'Auth', - collapsed: true, - items: [ - 'guides/auth', - { - type: 'category', - label: 'Authentication', - collapsed: true, - items: [ - 'guides/auth/auth-email', - 'guides/auth/auth-magic-link', - 'guides/auth/auth-apple', - 'guides/auth/auth-azure', - 'guides/auth/auth-bitbucket', - 'guides/auth/auth-discord', - 'guides/auth/auth-facebook', - 'guides/auth/auth-github', - 'guides/auth/auth-gitlab', - 'guides/auth/auth-google', - 'guides/auth/auth-keycloak', - 'guides/auth/auth-linkedin', - 'guides/auth/auth-notion', - 'guides/auth/auth-slack', - 'guides/auth/auth-spotify', - 'guides/auth/auth-twitch', - 'guides/auth/auth-twitter', - 'guides/auth/auth-workos', - 'guides/auth/auth-zoom', - 'guides/auth/auth-twilio', - 'guides/auth/auth-vonage', - 'guides/auth/auth-messagebird', - ], - }, - { - type: 'category', - label: 'Authorization', - collapsed: true, - items: ['guides/auth/row-level-security', 'guides/auth/managing-user-data'], - }, - { - type: 'category', - label: 'Deep Dive', - collapsed: true, - items: [ - 'learn/auth-deep-dive/auth-deep-dive-jwts', - 'learn/auth-deep-dive/auth-row-level-security', - 'learn/auth-deep-dive/auth-policies', - 'learn/auth-deep-dive/auth-gotrue', - 'learn/auth-deep-dive/auth-google-oauth', - ], - }, - ], - }, - { - type: 'category', - label: 'Storage', - collapsed: true, - items: ['guides/storage'], - }, - { - type: 'category', - label: 'Platform', - collapsed: true, - items: [ - 'guides/platform/logs', - 'guides/platform/metrics', - 'going-into-prod', - 'guides/platform/performance', - 'guides/platform/permissions', - ], - }, - { - type: 'category', - label: 'Self Hosting', - collapsed: true, - items: ['guides/hosting/overview', 'guides/hosting/docker'], - }, - { - type: 'category', - label: 'Integrations', - collapsed: true, - items: [ - 'guides/integrations/appsmith', - 'guides/integrations/auth0', - 'guides/integrations/clerk', - 'guides/integrations/dashibase', - 'guides/integrations/directus', - 'guides/integrations/draftbit', - 'guides/integrations/pgmustard', - 'guides/integrations/plasmic', - 'guides/integrations/prisma', - 'guides/integrations/snaplet', - 'guides/integrations/stytch', - 'guides/integrations/supertokens', - 'guides/integrations/vercel', - ], - }, - { - type: 'category', - label: 'See Also', - collapsed: true, - items: [ - 'faq', - 'handbook/contributing', - 'handbook/supasquad', - 'company/terms', - 'company/privacy', - 'company/aup', - 'company/sla', - ], - }, - ], - postgresServer: [ - { - type: 'category', - label: 'Postgres', - collapsed: false, - items: ['postgres/server/about'], - }, - { - type: 'category', - label: 'Self hosting', - collapsed: false, - items: ['postgres/server/docker', 'postgres/server/aws', 'postgres/server/digitalocean'], - }, - ], - postgresApi: [ - { - type: 'category', - label: 'Postgres API', - collapsed: false, - items: ['postgres/api/about'], - }, - ], -} diff --git a/web/spec/Makefile b/web/spec/Makefile deleted file mode 100644 index d135cb5d436..00000000000 --- a/web/spec/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -REPO_DIR=$(shell pwd) - -run: download.tsdoc.v1 combine.tsdoc.v1 - -download.tsdoc.v1: - curl -sS https://supabase.github.io/supabase-js/spec.json \ - > $(REPO_DIR)/tsdoc_v1/supabase.json - - curl -sS https://supabase.github.io/gotrue-js/spec.json \ - > $(REPO_DIR)/tsdoc_v1/gotrue.json - - curl -sS https://supabase.github.io/postgrest-js/spec.json \ - > $(REPO_DIR)/tsdoc_v1/postgrest.json - - curl -sS https://supabase.github.io/realtime-js/spec.json \ - > $(REPO_DIR)/tsdoc_v1/realtime.json - - curl -sS https://supabase.github.io/storage-js/spec.json \ - > $(REPO_DIR)/tsdoc_v1/storage.json - - curl -sS https://supabase.github.io/functions-js/spec.json \ - > $(REPO_DIR)/tsdoc_v1/functions.json - -combine.tsdoc.v1: - jq -s '{ name: "Combined Specs", children: [.[0], .[1], .[2], .[3], .[4], .[5]] }' \ - $(REPO_DIR)/tsdoc_v1/supabase.json \ - $(REPO_DIR)/tsdoc_v1/gotrue.json \ - $(REPO_DIR)/tsdoc_v1/postgrest.json \ - $(REPO_DIR)/tsdoc_v1/realtime.json \ - $(REPO_DIR)/tsdoc_v1/storage.json \ - $(REPO_DIR)/tsdoc_v1/functions.json \ - > $(REPO_DIR)/tsdoc_v1/combined.json diff --git a/web/spec/cli.yml b/web/spec/cli.yml deleted file mode 100644 index 24d6b4c2a69..00000000000 --- a/web/spec/cli.yml +++ /dev/null @@ -1,619 +0,0 @@ -openref: 0.1 - -info: - id: reference/cli - title: About - slugPrefix: '' - description: | - The Supabase CLI can be found in our [CLI](https://github.com/supabase/cli) repository. - - - [x] Running Supabase locally - - [x] Managing database migrations - - [x] Creating and developing Edge Functions - - [x] Pushing your local changes to production - - [ ] Manage your Supabase Account - - [ ] Manage your Supabase Projects - - [ ] Generating types directly from your database schema - - [ ] Generating API and validation schemas from your database - - ## Getting started - - ```bash - supabase help - ``` - - Follow the [Local Development guide](/docs/guides/local-development) for a quick overview of the CLI functionality. - - ## Support - - Report issues to our [issue tracker](https://github.com/supabase/cli/issues). - - libraries: - - name: 'sh' - id: 'sh' - version: '0.0.1' - docs: - path: reference/cli/ - sidebar: - - name: 'Getting Started' - items: - - index - - Installing and Updating - - Config Reference - - name: 'Command Reference' - items: - - supabase help - - supabase login - - supabase link - - supabase init - - supabase start - - supabase stop - - supabase db branch list - - supabase db branch create - - supabase db branch delete - - supabase db switch - - supabase db changes - - supabase db commit - - supabase db reset - - supabase db remote set - - supabase db remote commit - - supabase db push - - supabase functions delete - - supabase functions deploy - - supabase functions new - - supabase functions serve - - supabase migration new - - supabase orgs list - - supabase projects list - - supabase projects create - - supabase secrets list - - supabase secrets set - - supabase secrets unset - -pages: - supabase help: - description: | - Help provides help for any command in the application. - Simply type supabase help `[path to command]` for full details. - examples: - - name: Usage - sh: | - ```sh - supabase help [command] - ``` - - supabase login: - description: | - Authenticate using an access token. - - ### Generating a new access token - - - Navigate to https://app.supabase.com/account/tokens - - Generate New Token - - Copy newly created token and paste - - examples: - - name: Usage - sh: | - ```sh - supabase login - ``` - - supabase link: - description: | - Link to a Supabase project. - - Flags: - - `--project-ref`: Project ref of the Supabase project. - examples: - - name: Usage - sh: | - ```sh - supabase link --project-ref abcdefghijklmnopqrst - ``` - - supabase init: - description: | - Initialize a project to use Supabase CLI. - examples: - - name: Usage - sh: | - ```sh - supabase init - ``` - - supabase start: - description: | - Start the Supabase local development setup. - examples: - - name: Usage - sh: | - ```sh - supabase start - ``` - - supabase stop: - description: | - Stop the Supabase local development setup. - examples: - - name: Usage - sh: | - ```sh - supabase stop - ``` - - supabase db branch list: - description: | - List branches. - examples: - - name: Usage - sh: | - ```sh - supabase db branch list - ``` - - supabase db branch create: - description: | - Create a branch. - examples: - - name: Usage - sh: | - ```sh - supabase db branch create - ``` - - supabase db branch delete: - description: | - Delete a branch. - examples: - - name: Usage - sh: | - ```sh - supabase db branch delete - ``` - - supabase db switch: - description: | - Switch branches. - examples: - - name: Usage - sh: | - ```sh - supabase db switch - ``` - - supabase db changes: - description: | - Diffs the local database with current migrations, then print the diff to standard output. - examples: - - name: Usage - sh: | - ```sh - supabase db changes - ``` - - supabase db commit: - description: | - Diffs the local database with current migrations, writing it as a new migration. - examples: - - name: Usage - sh: | - ```sh - supabase db commit - ``` - - supabase db reset: - description: | - Resets the local database to reflect current migrations. Any changes on the local database that is not committed will be lost. - examples: - - name: Usage - sh: | - ```sh - supabase db reset - ``` - - supabase db remote set: - description: | - Set the remote database to push migrations to. - examples: - - name: Usage - sh: | - ```sh - supabase db remote set - ``` - - name: Connection string format - sh: | - ```sh - supabase db remote set postgresql://postgres:[YOUR-PASSWORD]@db.azeazeiqsdiqswdsqdxc.supabase.co:5432/postgres - ``` - - supabase db remote commit: - description: | - Commit changes on the remote database since the last pushed migration. - examples: - - name: Usage - sh: | - ```sh - supabase db remote commit - ``` - - supabase db push: - description: | - Push new migrations to the remote database. - - Flags: - - `--dry-run`: Print the migrations that would be applied, but don't actually apply them. - examples: - - name: Usage - sh: | - ```sh - supabase db push [--dry-run] - ``` - - supabase functions delete: - description: | - Delete a Function from the linked Supabase project. This does NOT remove the Function locally. - - Flags: - - `--project-ref`: Project ref of the Supabase project. - examples: - - name: Usage - sh: | - ```sh - supabase functions delete - ``` - - supabase functions deploy: - description: | - Deploy a Function to the linked Supabase project. - - Flags: - - `--no-verify-jwt`: Disable JWT verification for the Function. - - `--project-ref`: Project ref of the Supabase project. - examples: - - name: Usage - sh: | - ```sh - supabase functions deploy - ``` - - supabase functions new: - description: | - Create a new Function locally. - examples: - - name: Usage - sh: | - ```sh - supabase functions new - ``` - - supabase functions serve: - description: | - Serve a Function locally. - - Flags: - - `--env-file`: Path to an env file to be populated to the Function environment. - - `--no-verify-jwt`: Disable JWT verification for the Function. - examples: - - name: Usage - sh: | - ```sh - supabase functions serve - ``` - - supabase migration new: - description: | - Create an empty migration. - examples: - - name: Usage - sh: | - ```sh - supabase migration new - ``` - - supabase orgs list: - description: | - List all organizations. - examples: - - name: Usage - sh: | - ```sh - supabase orgs list - ``` - - supabase projects list: - description: | - List all projects. - examples: - - name: Usage - sh: | - ```sh - supabase projects list - ``` - - supabase projects create: - description: | - Create a new project. - - Flags: - - `--org-id`: Organization ID to create the project in. - - `--db-password`: Database password of the project. - - `--region`: Select a region close to you for the best performance. Allowed values: - - `ap-northeast-1` - - `ap-northeast-2` - - `ap-south-1` - - `ap-southeast-1` - - `ap-southeast-2` - - `ca-central-1` - - `eu-central-1` - - `eu-west-1` - - `eu-west-2` - - `sa-east-1` - - `us-east-1` - - `us-west-1` - - `--plan`: Select a plan that suits your needs. Allowed values: `free`, `pro`. - examples: - - name: Usage - sh: | - ```sh - supabase projects create my-project --org-id cool-green-pqdr0qc --db-password ******** --region us-east-1 - ``` - - supabase secrets list: - description: | - List all secrets in the linked project. - examples: - - name: Usage - sh: | - ```sh - supabase secrets list - ``` - - supabase secrets set: - description: | - Set a secret(s) to the linked Supabase project. - - Flags: - - `--env-file`: Read secrets from a .env file. - examples: - - name: Usage - sh: | - ```sh - supabase secrets set [flags] ... - ``` - - supabase secrets unset: - description: | - Unset a secret(s) from the linked Supabase project. - examples: - - name: Usage - sh: | - ```sh - supabase secrets unset ... - ``` - - Installing and Updating: - description: | - ## macOS - - ### Installing - - Available via [Homebrew](https://brew.sh). To install: - - ```sh - brew install supabase/tap/supabase - ``` - - ### Upgrading - - To upgrade: - - ```sh - brew upgrade supabase - ``` - - ## Windows - - ### Installing - - Available via [Scoop](https://scoop.sh). To install: - - ```powershell - scoop bucket add supabase https://github.com/supabase/scoop-bucket.git - scoop install supabase - ``` - - ### Upgrading - - To upgrade: - - ```powershell - scoop update supabase - ``` - - ## Linux - - ### Homebrew - - Available via [Homebrew](https://brew.sh) and Linux packages. - - To install: - - ```sh - brew install supabase/tap/supabase - ``` - - To upgrade: - - ```sh - brew upgrade supabase - ``` - - ### Linux packages - - Linux packages are provided in [Releases](https://github.com/supabase/cli/releases). - To install, download the `.apk`/`.deb`/`.rpm` file depending on your package manager - and run one of the following: - - - `sudo apk add --allow-untrusted <...>.apk` - - `sudo dpkg -i <...>.deb` - - `sudo rpm -i <...>.rpm` - - Config Reference: - description: | - A `config.toml` file is generated after running `supabase init`. - - This file is located in the `supabase` folder under `supabase/config.toml`. - - ## General - - ### `project_id` - - `required` - - A string used to distinguish different Supabase projects on the same host. Defaults to the working directory name when running `supabase init`. - - ## API - - ### `api.port` - - `required | default: 54321` - - Port to use for the API URL. - - ### `api.schemas` - - `required | default: []` - - Schemas to expose in your API. Tables, views and stored procedures in this schema will get API endpoints. `public` and `storage` are always included. - - ### `api.extra_search_path` - - `required | default: ["extensions"]` - - Extra schemas to add to the search_path of every request. - - ### `api.max_rows` - - `required | default: 1000` - - The maximum number of rows returned from a view, table, or stored procedure. Limits payload size for accidental or malicious requests. - - ## Database - - ### `db.port` - - `required | default: 54322` - - Port to use for the local database URL. - - ### `db.major_version` - - `required | default: 14` - - The database major version to use. This has to be the same as your remote database's. Run `SHOW server_version;` on the remote database to check. - - ## Dashboard - - ### `studio.port` - - `required | default: 54323` - - Port to use for Supabase Studio. - - ## Local Development - - ### `inbucket.port` - - `required | default: 54324` - - Port to use for the email testing server web interface. - - Emails sent with the local dev setup are not actually sent - rather, they are monitored, and you can view the emails that would have been sent from the web interface. - - ## Auth - - ### `auth.site_url` - - `required | default: "http://localhost:3000"` - - The base URL of your website. Used as an allow-list for redirects and for constructing URLs used in emails. - - ### `auth.additional_redirect_urls` - - `required | default: ["https://localhost:3000"]` - - A list of *exact* URLs that auth providers are permitted to redirect to post authentication. - - ### `auth.jwt_expiry` - - `required | default: 3600` - - How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 seconds (one week). - - ### `auth.enable_signup` - - `required | default: true` - - Allow/disallow new user signups to your project. - - ### `auth.email.enable_signup` - - `required | default: true` - - Allow/disallow new user signups via email to your project. - - ### `auth.email.double_confirm_changes` - - `required | default: true` - - If enabled, a user will be required to confirm any email change on both the old, and new email addresses. If disabled, only the new email is required to confirm. - - ### `auth.email.enable_confirmations` - - `required | default: true` - - If enabled, users need to confirm their email address before signing in. - - ### `auth.external..enabled` - - `required | default: false` - - Use an external OAuth provider. The full list of providers are: - - - `apple` - - `azure` - - `bitbucket` - - `discord` - - `facebook` - - `github` - - `gitlab` - - `google` - - `twitch` - - `twitter` - - `slack` - - `spotify` - - ### `auth.external..client_id` - - `required | default: ""` - - Client ID for the external OAuth provider. - - ### `auth.external..secret` - - `required | default: ""` - - Client secret for the external OAuth provider. diff --git a/web/spec/gen/components/Example.ts b/web/spec/gen/components/Example.ts deleted file mode 100644 index c77a743a269..00000000000 --- a/web/spec/gen/components/Example.ts +++ /dev/null @@ -1,24 +0,0 @@ -type params = { name: string; description: string; tabs: string; note: string; } - -const Example = ({name, description = '', tabs = '', note = ''}: params) => { - if (note !== '') { - const [noteTitle, ...noteText] = note.split('\n'); - console.log(noteText); - note = ` -:::note ${noteTitle} - ${noteText.join('\n')} -::: -`; - } - return ` -### ${name} - -${description} - -${tabs} - -${note} -`.trim() -} - -export default Example diff --git a/web/spec/gen/components/Sidebar.ts b/web/spec/gen/components/Sidebar.ts deleted file mode 100644 index 4f756eae09b..00000000000 --- a/web/spec/gen/components/Sidebar.ts +++ /dev/null @@ -1,10 +0,0 @@ -const Sidebar = (categories) => - ` -module.exports = { - docs: [ - ${categories.map((x) => x).join(',\n ')} - ], -} -`.trim() - -export default Sidebar diff --git a/web/spec/gen/components/SidebarCategory.ts b/web/spec/gen/components/SidebarCategory.ts deleted file mode 100644 index bc1826e0d69..00000000000 --- a/web/spec/gen/components/SidebarCategory.ts +++ /dev/null @@ -1,8 +0,0 @@ -export default function SidebarCategory(name, items) { - return `{ - type: 'category', - label: '${name}', - items: [${items.join(', ')}], - collapsed: true, - }` -} diff --git a/web/spec/gen/components/Tab.ts b/web/spec/gen/components/Tab.ts deleted file mode 100644 index 9395cd0515e..00000000000 --- a/web/spec/gen/components/Tab.ts +++ /dev/null @@ -1,10 +0,0 @@ -const Tab = (library, exampleText) => - ` - - -${exampleText} - - -`.trim() - -export default Tab diff --git a/web/spec/gen/components/Tabs.ts b/web/spec/gen/components/Tabs.ts deleted file mode 100644 index 9e78f07d8b2..00000000000 --- a/web/spec/gen/components/Tabs.ts +++ /dev/null @@ -1,13 +0,0 @@ -const Tabs = (id, libraries = [], examples = []) => - ` - `{ label: '${x.name}', value: '${x.id}' }`).toString()}]}> - -${examples} - - -`.trim() - -export default Tabs diff --git a/web/spec/gen/lib/helpers.ts b/web/spec/gen/lib/helpers.ts deleted file mode 100644 index 9df412e7708..00000000000 --- a/web/spec/gen/lib/helpers.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { TsDoc } from '../definitions' - -const fs = require('fs') - -/** - * tsDocCommentToMdParams() - */ -export const tsDocCommentToMdParams = (tags?: TsDoc.CommentTag[]) => - tags - .filter((x) => x.tag == 'param') - .map((x) => - ` -tag - -`.trim() - ) - .join('\n') - -/** - * tsDocCommentToMarkdown() - */ -export const tsDocCommentToMdComment = (commentObject: TsDoc.DocComment) => - ` -${commentObject?.shortText || ''} - -${commentObject?.text || ''} - -`.trim() - -/** - * slugify() - */ -export const slugify = (text) => { - return text - .toString() - .toLowerCase() - .replace(/[. )(]/g, '-') // Replace spaces and brackets - - .replace(/[^\w\-]+/g, '') // Remove all non-word chars - .replace(/\-\-+/g, '-') // Replace multiple - with single - - .replace(/^-+/, '') // Trim - from start of text - .replace(/-+$/, '') // Trim - from end of text -} - -/** - * writeToDisk() - */ -export const writeToDisk = (fileName: string, content: any) => { - return new Promise((resolve, reject) => { - fs.writeFile(fileName, content, (err) => { - if (err) return reject(err) - else return resolve(true) - }) - }) -} diff --git a/web/spec/postgres.yml b/web/spec/postgres.yml deleted file mode 100644 index 742cdca670f..00000000000 --- a/web/spec/postgres.yml +++ /dev/null @@ -1,163 +0,0 @@ -openref: 0.1 - -info: - id: reference/postgres - title: Getting started - description: | - - PostgreSQL, also known as Postgres, is a free and open-source relational - database management system emphasizing extensibility and SQL compliance. - It was originally named POSTGRES, referring to its origins as a successor - to the Ingres database developed at the University of California, Berkeley. - - definition: spec/combined.json - slugPrefix: '' - libraries: - - name: 'SQL' - id: 'sql' - version: '0.0.1' - docs: - path: reference/postgres/ - sidebar: - - name: 'About' - items: - - index - - Connection Strings - - name: 'Managing Tables' - items: - - Schemas - - Tables - # - name: 'Columns' - # items: - # - Creating columns - # - Column types - -pages: - Schemas: - description: | - Schemas are like "folders". They help to keep your database organized. - - Schemas are particularly useful for security. You can set different permissions on each schema. - For example, you might want to use a `public` schema for user-facing data, and an `auth` schema for all logins and secured data. - - notes: | - - Schemas contain [tables](/docs/reference/postgres/tables), columns, triggers, functions, etc. - - Postgres comes with a `public` schema set up by default. - - It is best practice to use lowercase and underscores when naming schemas. For example: `schema_name`, not `Schema Name`. - - examples: - - name: Creating a schema - isSpotlight: true - sql: | - ```sql - create schema schema_name; - ``` - - name: Removing a schema - sql: | - ```sql - drop schema if exists schema_name; - ``` - - name: Using special characters - description: | - Although it's not recommended, you can use uppercase and spaces when naming your schema by wrapping the name with double-quotes. - As a result, you will always need to use double-quotes when referencing your schema. - sql: | - ```sql - create schema "Schema Name"; - ``` - Tables: - description: | - Tables are similar to excel spreadsheets. They contain columns & rows of data. There are a few key differences from a spreadsheet however: - - - Every column is a strict type of data. When you set up a column, you must define what "data type" it is. - - Tables can be joined together through relationships. For example you can have a "users" table, which is joined to a "teams" table. - - notes: | - - Tables contain columns, rows, triggers, comments, - - It is best practice to use lowercase and underscores when naming tables. For example: `table_name`, not `Table Name`. - - Tables belong to [schemas](/docs/reference/postgres/schemas). If you don't explicitly pass the schema, Postgres will assume that you want to create the table in the `public` schema. - - examples: - - name: Create table - isSpotlight: true - sql: | - ```sql - create table table_name ( - id integer primary key, - data jsonb, - name text - ); - - # with schema - create table schema_name.table_name ( - id integer primary key, - data jsonb, - name text - ); - ``` - - name: Primary keys using multiple columns - sql: | - ```sql - create table table_name ( - column_1 data_type, - column_2 data_type, - -- Constraints: - primary key (column_1, column_2) - ); - ``` - - name: Multiple foreign keys to the same table - sql: | - ```sql - alter table table_name - add constraint constraint_name_1 foreign key (column_1) references foreign_table(id), - add constraint constraint_name_2 foreign key (column_2) references foreign_table(id); - ``` - - name: Delete a table - sql: | - ```sql - delete table if exists table_name; - ``` - Columns: - description: | - Creating columns. - - examples: - - name: During table creation - isSpotlight: true - sql: | - ```sql - create table table_name ( - id integer primary key, - data jsonb, - name text - ); - ``` - - name: Create column - sql: | - ```sql - alter table new_table - add new_column text; - ``` - # Data types: - # description: | - # Data types. - - # examples: - # - name: Create columns and data types - # sql: | - # ```sql - # alter table new_table - # add new_column text; - # ``` - - Database Users: - description: | - Users and Roles are almost interchangeable. - - examples: - - name: Create New User - sql: | - ```sql - create user new_user - with password 'hello'; - ``` diff --git a/web/spec/supabase_dart_v1_ref.yml b/web/spec/supabase_dart_v1_ref.yml deleted file mode 100644 index 80cb6eb9c1c..00000000000 --- a/web/spec/supabase_dart_v1_ref.yml +++ /dev/null @@ -1,2265 +0,0 @@ -openref: 0.1 - -info: - id: reference/dart - title: Getting started - description: | - - Supabase Dart. - - definition: spec/tsdoc_v1/combined.json - slugPrefix: '/' - libraries: - - name: 'Dart' - id: 'dart' - version: '0.0.1' - docs: - path: reference/dart/ - sidebar: - - name: 'Getting Started' - items: - - Installing - - Initializing - - name: 'Auth' - items: - - auth.signUp() - - auth.signIn() - - auth.signInWithProvider() - - auth.signOut() - - auth.session() - - auth.user() - - auth.update() - - auth.onAuthStateChange() - - Reset Password (Email) - - name: 'Functions' - items: - - invoke() - - name: 'Database' - items: - - select() - - insert() - - update() - - upsert() - - delete() - - rpc() - - name: 'Realtime' - items: - - subscribe() - - removeSubscription() - - getSubscriptions() - - stream() - - name: 'Storage' - items: - - storage.createBucket() - - storage.getBucket() - - storage.listBuckets() - - storage.updateBucket() - - storage.deleteBucket() - - storage.emptyBucket() - - storage.from.upload() - - storage.from.download() - - storage.from.list() - - storage.from.update() - - storage.from.move() - - storage.from.remove() - - storage.from.createSignedUrl() - - storage.from.getPublicUrl() - - name: 'Modifiers' - items: - - Using Modifiers - - limit() - - order() - - range() - - single() - - name: 'Filters' - items: - - Using Filters - - .or() - - .not() - - .match() - - .eq() - - .neq() - - .gt() - - .gte() - - .lt() - - .lte() - - .like() - - .ilike() - - .is_() - - .in_() - - .contains() - - .containedBy() - - .rangeLt() - - .rangeGt() - - .rangeGte() - - .rangeLte() - - .rangeAdjacent() - - .overlaps() - - .textSearch() - - .filter() -pages: - Installing: - description: | - ## Dart - - Dart libraries are built and supported by the community. - - ```bash - dart pub add supabase - ``` - - Find the source code on [GitHub](https://github.com/supabase/supabase-dart). - - ## Flutter - - For Flutter project, you can use [supabase_flutter](https://github.com/supabase/supabase-flutter). - - ```bash - flutter pub add supabase_flutter - ``` - - `supabase_flutter` plugin uses `supabase` plugin internally, and it adds some Flutter specific functionality such as handling deeplinks coming back from magic link verifications. - If you are creating a Flutter application, we recommend using `supabase_flutter` instead of `supabase`. - - For the most part `supabase_flutter` shares the same API as `supabase` with few exceptions such as initialization or OAuth sign in. - - Initializing: - description: | - ## Dart - You can initialize a new Supabase client using the `SupabaseClient()` method. - - The Supabase client is your entrypoint to the rest of the Supabase functionality - and is the easiest way to interact with everything we offer within the Supabase ecosystem. - - - ## Flutter - - For `supabase_flutter`, you will be using the static `initialize()` method on `Supabase` class. - - examples: - - name: Dart SupabaseClient() - dart: | - ```dart - final supabase = SupabaseClient('https://xyzcompany.supabase.co', 'public-anon-key'); - ``` - - name: Flutter initialize() - dart: | - ```dart title="main.dart" - Future main() async { - await Supabase.initialize(url: 'https://xyzcompany.supabase.co', anonKey: 'public-anon-key'); - runApp(MyApp()); - } - ``` - - auth.signUp(): - description: | - Creates a new user. - notes: | - - By default, the user will need to verify their email address before logging in. If you would like to change this, you can disable "Email Confirmations" by going to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) - - If "Email Confirmations" is turned on, a user is returned but session will be null - - If "Email Confirmations" is turned off, both a `user` and a `session` will be returned - - When the user confirms their email address, they will be redirected to localhost:3000 by default. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) - examples: - - name: Sign up. - isSpotlight: true - dart: | - ```dart - final res = await supabase.auth.signUp('example@email.com', 'example-password'); - - final user = res.data?.user; - final error = res.error; - ``` - - name: Sign up with third-party providers. - hideCodeBlock: true - description: | - If you are using Flutter, you can sign up with OAuth providers using the [`signInWithProvider()`](/docs/reference/dart/auth-signinwithprovider) method available on `supabase_flutter`. - - auth.signIn(): - description: | - Log in an existing user, or login via a third-party provider. - notes: | - - A user can sign up via email, phone number. - - If you provide `email` without a `password`, the user will be sent a magic link. - - The magic link's destination URL is determined by the SITE_URL config variable. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) - - Similarly, if you provide `phone` without a `password`, the user will be sent a one time password. - - If you are looking to sign users in with OAuth in Flutter apps, go to [`signInWithProvider()`](/docs/reference/dart/auth-signinwithprovider). - examples: - - name: Sign in with email. - isSpotlight: true - dart: | - ```dart - final res = await supabase.auth.signIn(email: 'example@email.com', password: 'example-password'); - - final user = res.data?.user; - final error = res.error; - ``` - - name: Sign in with magic link. - description: If email is provided, but no password is provided, the user will be sent a "magic link" to their email address, which they can click to open your application with a valid session. By default, a given user can only request a Magic Link once every 60 seconds. - dart: | - ```dart - final res = await supabase.auth.signIn(email: 'example@email.com'); - - final error = res.error; - ``` - - name: Get OAuth sign in URL. - description: | - Passing provider parameter to `signIn()` will return a URL to sign your user in via OAuth. - If you are looking to sign in a user via OAuth on Flutter app, go to [`signInWithProvider()`](/docs/reference/dart/auth-signinwithprovider). - dart: | - ```dart - final res = await supabase.auth.signIn(provider: Provider.github); - - final url = res.data?.url; - final error = res.error; - ``` - auth.signInWithProvider(): - description: | - Signs the user in using third party OAuth providers. - notes: | - - `auth.signInWithProvider()` is only available on `supabase_flutter` - - It will open the browser to the relevant login page. - examples: - - name: Sign in with provider. - isSpotlight: true - dart: | - ```dart - final res = await supabase.auth.signInWithProvider(Provider.github); - - final error = res.error; - ``` - - name: With `redirectTo` - description: | - Specify the redirect link to bring back the user via deeplink. - Note that `redirectTo` should be null for Flutter Web. - dart: | - ```dart - final res = await supabase.auth.signInWithProvider( - Provider.github, - options: AuthOptions( - redirectTo: kIsWeb - ? null - : 'io.supabase.flutter://reset-callback/'), - ); - - final error = res.error; - ``` - - name: With scopes - description: | - If you need additional data from an OAuth provider, you can include a space-separated list of scopes in your request to get back an OAuth provider token. - You may also need to specify the scopes in the provider's OAuth app settings, depending on the provider. - dart: | - ```dart - const { user, session, error } = await supabase.auth.signIn({ - provider: 'github' - }, { - scopes: 'repo gist notifications' - }) - const oAuthToken = session.provider_token // use to access provider API - ``` - auth.signOut(): - description: | - Signs out the current user, if there is a logged in user. - examples: - - name: Sign out - isSpotlight: true - dart: | - ```dart - final res = await supabase.auth.signOut(); - - final error = res.error; - ``` - - auth.session(): - description: | - Returns the session data, if there is an active session. - examples: - - name: Get the session data - isSpotlight: true - dart: | - ```dart - final session = supabase.auth.session(); - ``` - - auth.user(): - description: | - Returns the user data, if there is a logged in user. - examples: - - name: Get the logged in user - isSpotlight: true - dart: | - ```dart - final user = supabase.auth.user(); - ``` - - auth.update(): - description: | - Updates user data, if there is a logged in user. - notes: | - It's generally better to store user data in a table inside your public schema (i.e. `public.users`). - Use the `update()` method if you have data which rarely changes or is specific only to the logged in user. - examples: - - name: Update a user's metadata. - isSpotlight: true - dart: | - ```dart - final res = await supabase.auth.update( - UserAttributes(data: {'hello': 'world'}) - ); - - final error = res.error; - ``` - - auth.onAuthStateChange(): - description: | - Receive a notification every time an auth event happens. - examples: - - name: Listen to auth changes - isSpotlight: true - dart: | - ```dart - final subscription = supabase.auth.onAuthStateChange((event, session) { - print(session?.user?.id); - // handle auth state change - }); - ``` - - Reset Password (Email): - description: | - Sends a reset request to an email address. - notes: | - Sends a reset request to an email address. - - When the user clicks the reset link in the email they will be forwarded to: - - `#access_token=x&refresh_token=y&expires_in=z&token_type=bearer&type=recovery` - - Your app must detect `type=recovery` in the fragment and display a password reset form to the user. - - You should then use the access_token in the url and new password to update the user as follows: - - ```dart - final res = await supabase.auth.api.updateUser( - accessToken, - UserAttributes(password: 'NEW_PASSWORD'), - ); - ``` - examples: - - name: Reset password - isSpotlight: true - dart: | - ```dart - final res = await supabase.auth.api.resetPasswordForEmail('user@example.com'); - - final error = res.error; - ``` - - name: Reset password for Flutter - isSpotlight: true - dart: | - You can pass `redirectTo` to open the app via deeplink when user opens the password reset email. - ```dart - final res = await supabase.auth.api.resetPasswordForEmail( - 'user@example.com', - options: AuthOptions(redirectTo: kIsWeb - ? null - : 'io.supabase.flutter://reset-callback/'), - ); - - final error = res.error; - ``` - invoke(): - title: 'invoke()' - description: | - Invokes a Supabase Function. See the [guide](/docs/guides/functions) for details on writing Functions. - notes: | - - Requires an Authorization header. - - Invoke params generally match the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) spec. - examples: - - name: Basic invocation. - isSpotlight: true - dart: | - ```dart - final res = await supabaseClient.functions.invoke('hello', body: {'foo': 'baa'}); - final data = res.data; - final error = res.error; - ``` - - name: Specifying response type. - description: | - By default, `invoke()` will parse the response as JSON. You can parse the response in the following formats: `json`, `blob`, `text`, and `arrayBuffer`. - isSpotlight: true - dart: | - ```dart - final res = await supabaseClient.functions.invoke( - 'hello', - body: {'foo': 'baa'}, - responseType: ResponseType.text, - ); - final data = res.data; - final error = res.error; - ``` - - name: Parsing custom headers. - description: | - Any `headers` will be passed through to the function. A common pattern is to pass a logged-in user's JWT token as an Authorization header. - isSpotlight: true - dart: | - ```dart - final res = await supabaseClient.functions.invoke( - 'hello', - body: {'foo': 'baa'}, - headers: { - 'Authorization': 'Bearer ${supabase.auth.session()?.access_token}' - }, - ); - ``` - select(): - description: | - Performs vertical filtering with SELECT. - title: 'Fetch data: select()' - notes: | - - By default, Supabase projects will return a maximum of 1,000 rows. This setting can be changed in Project API Settings. It's recommended that you keep it low to limit the payload size of accidental or malicious requests. You can use `range()` queries to paginate through your data. - - `select()` can be combined with [Modifiers](/docs/reference/dart/using-modifiers) - - `select()` can be combined with [Filters](/docs/reference/dart/using-filters) - - If using the Supabase hosted platform `apikey` is technically a reserved keyword, since the API gateway will pluck it out for authentication. [It should be avoided as a column name](https://github.com/supabase/supabase/issues/5465). - examples: - - name: Getting your data - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select() - .execute(); - - final data = res.data; - final error = res.error; - ``` - - name: Selecting specific columns - description: You can select specific fields from your tables. - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name') - .execute(); - ``` - - name: Query foreign tables - description: If your database has relationships, you can query related tables too. - dart: | - ```dart - final res = await supabase - .from('countries') - .select(''' - name, - cities ( - name - ) - ''') - .execute(); - ``` - - name: Query the same foreign table multiple times - description: | - Sometimes you will need to query the same foreign table twice. - In this case, you can use the name of the joined column to identify - which join you intend to use. For convenience, you can also give an - alias for each column. For example, if we had a shop of products, - and we wanted to get the supplier and the purchaser at the same time - (both in the users) table: - dart: | - ```dart - final res = await supabase - .from('products') - .select(''' - id, - supplier:supplier_id ( name ), - purchaser:purchaser_id ( name ) - ''') - .execute(); - ``` - - name: Filtering with inner joins - description: | - If you want to filter a table based on a child table's values you can use the `!inner()` function. For example, if you wanted - to select all rows in a `message` table which belong to a user with the `username` "Jane": - dart: | - ```dart - final res = await supabase - .from('messages') - .select('*, users!inner(*)') - .eq('users.username', 'Jane') - .execute(); - ``` - - name: Querying with count option - description: | - You can get the number of rows by using the count option. - Allowed values for count option are [exact](https://postgrest.org/en/stable/api.html#exact-count), [planned](https://postgrest.org/en/stable/api.html#planned-count) and [estimated](https://postgrest.org/en/stable/api.html#estimated-count). - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name') - .execute(count: CountOption.exact); - - final count = res.count; - ``` - - name: Querying JSON data - description: | - If you have data inside of a JSONB column, you can apply select - and query filters to the data values. Postgres offers a - [number of operators](https://www.postgresql.org/docs/current/functions-json.html) - for querying JSON data. Also see - [PostgREST docs](http://postgrest.org/en/v7.0.0/api.html#json-columns) for more details. - dart: | - ```dart - final res = await supabase - .from('users') - .select(''' - id, name, - address->street - ''') - .eq('address->postcode', 90210) - .execute(); - ``` - - name: Return data as CSV - description: | - By default the data is returned in JSON format, however you can also request for it to be returned as Comma Separated Values. - dart: | - ```dart - final res = await supabase - .from('users') - .select() - .csv() - .execute(); - ``` - - insert(): - description: | - Performs an INSERT into the table. - title: 'Create data: insert()' - notes: | - - By default, every time you run `insert()`, the client library will make a `select` to return the full record. - This is convenient, but it can also cause problems if your Policies are not configured to allow the `select` operation. - If you are using Row Level Security and you are encountering problems, try setting the `returning` param to `minimal`. - examples: - - name: Create a record - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .insert([ - {'name': 'The Shire', 'country_id': 554} - ]).execute(); - ``` - - name: Bulk create - dart: | - ```dart - final res = await supabase - .from('cities') - .insert([ - {'name': 'The Shire', 'country_id': 554}, - {'name': 'Rohan', 'country_id': 555}, - ]).execute(); - ``` - - update(): - description: | - Performs an UPDATE on the table. - title: 'Modify data: update()' - notes: | - - `update()` should always be combined with [Filters](/docs/reference/dart/using-filters) to target the item(s) you wish to update. - examples: - - name: Updating your data - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Middle Earth' }) - .match({ 'name': 'Auckland' }) - .execute(); - ``` - - name: Updating JSON data - description: | - Postgres offers a - [number of operators](https://www.postgresql.org/docs/current/functions-json.html) - for working with JSON data. Right now it is only possible to update an entire JSON document, - but we are [working on ideas](https://github.com/PostgREST/postgrest/issues/465) for updating individual keys. - dart: | - ```dart - final res = await supabase - .from('users') - .update({ - 'address': { - 'street': 'Melrose Place', - 'postcode': 90210 - } - }) - .eq('address->postcode', 90210) - .execute(); - ``` - - upsert(): - description: | - Performs an UPSERT into the table. - title: 'Upsert data: upsert()' - notes: | - - Primary keys should be included in the data payload in order for an update to work correctly. - - Primary keys must be natural, not surrogate. There are however, [workarounds](https://github.com/PostgREST/postgrest/issues/1118) for surrogate primary keys. - examples: - - name: Upsert your data - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('messages') - .upsert({ 'id': 3, 'message': 'foo', 'username': 'supabot' }) - .execute(); - ``` - - name: Upserting into tables with constraints - description: | - Running the following will cause supabase to upsert data into the `users` table. - If the username 'supabot' already exists, the `onConflict` argument tells supabase to overwrite that row - based on the column passed into `onConflict`. - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('users') - .upsert({ 'username': 'supabot' }, { 'onConflict': 'username' }) - .execute(); - ``` - - name: Return the exact number of rows - description: | - Allowed values for count option are `exact`, `planned` and `estimated`. - dart: | - ```dart - final res = await supabase - .from('users') - .upsert({ - 'id': 3, - 'message': 'foo', - 'username': 'supabot' - }) - .execute(count: CountOption.exact); - ``` - - delete(): - description: | - Performs a DELETE on the table. - title: 'Delete data: delete()' - notes: | - - `delete()` should always be combined with [Filters](/docs/reference/dart/using-filters) to target the item(s) you wish to delete. - examples: - - name: Delete records - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .match({ 'id': 666 }) - .execute(); - ``` - - rpc(): - title: 'Stored Procedures: rpc()' - description: | - You can call stored procedures as a "Remote Procedure Call". - - That's a fancy way of saying that you can put some logic into your database then call it from anywhere. - It's especially useful when the logic rarely changes - like password resets and updates. - examples: - - name: Call a stored procedure - isSpotlight: true - description: This is an example invoking a stored procedure. - dart: | - ```dart - final res = await supabase - .rpc('hello_world') - .execute(); - ``` - - name: With Parameters - dart: | - ```dart - final res = await supabase - .rpc('echo_city', params: { 'name': 'The Shire' }) - .execute(); - ``` - - name: With count option - description: | - You can specify a count option to get the row count along with your data. - Allowed values for count option are `exact`, `planned` and `estimated`. - dart: | - ```dart - final res = await supabase - .rpc('hello_world') - .execute(count: CountOption.exact); - ``` - - subscribe(): - description: | - Subscribe to realtime changes in your database. - title: 'on().subscribe()' - notes: | - - Realtime is disabled by default for new Projects for better database performance and security. You can turn it on by [managing replication](/docs/guides/api#managing-realtime). - - If you want to receive the "previous" data for updates and deletes, you will need to set `REPLICA IDENTITY` to `FULL`, like this: `ALTER TABLE your_table REPLICA IDENTITY FULL;` - examples: - - name: Listen to all database changes - isSpotlight: true - dart: | - ```dart - final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.all, (payload) { - // Handle realtime payload - }) - .subscribe(); - ``` - - name: Listening to a specific table - dart: | - ```dart - final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.all, (payload) { - // Handle realtime payload - }) - .subscribe(); - ``` - - name: Listening to inserts - dart: | - ```dart - final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.insert, (payload) { - // Handle realtime payload - }) - .subscribe(); - ``` - - name: Listening to updates - description: | - By default, Supabase will send only the updated record. If you want to receive the previous values as well you can - enable full replication for the table you are listening too: - - ```sql - alter table "your_table" replica identity full; - ``` - dart: | - ```dart - final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.update, (payload) { - // Handle realtime payload - }) - .subscribe(); - ``` - - name: Listening to deletes - description: | - By default, Supabase does not send deleted records. If you want to receive the deleted record you can - enable full replication for the table you are listening too: - - ```sql - alter table "your_table" replica identity full; - ``` - dart: | - ```dart - final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.delete, (payload) { - // Handle realtime payload - }) - .subscribe(); - ``` - - name: Listening to multiple events - description: You can chain listeners if you want to listen to multiple events for each table. - dart: | - ```dart - final mySubscription = supabase - .from('countries') - .on(SupabaseEventTypes.insert, handleInsert) - .on(SupabaseEventTypes.delete, handleDelete) - .subscribe(); - ``` - - name: Listening to row level changes - description: You can listen to individual rows using the format `{table}:{col}=eq.{val}` - where `{col}` is the column name, and `{val}` is the value which you want to match. - dart: | - ```dart - final mySubscription = supabase - .from('countries:id=eq.200') - .on(SupabaseEventTypes.update, handleRecordUpdated) - .subscribe(); - ``` - - removeSubscription(): - description: | - Removes an active subscription and returns the number of open connections. - title: 'removeSubscription()' - notes: | - - Removing subscriptions is a great way to maintain the performance of your project's database. Supabase will automatically handle cleanup 30 seconds after a user is disconnected, but unused subscriptions may cause degradation as more users are simultaneously subscribed. - examples: - - name: Remove a subscription - isSpotlight: true - dart: | - ```dart - supabase.removeSubscription(mySubscription); - ``` - - getSubscriptions(): - description: | - Returns an array of all your subscriptions. - title: 'getSubscriptions()' - examples: - - name: Get all subscriptions - isSpotlight: true - dart: | - ```dart - final subscriptions = supabase.getSubscriptions(); - ``` - - stream(): - description: | - Notifies of data at the queried table. - title: 'stream()' - notes: | - - `stream()` will emit the initial data as well as any further change on the database as `Stream` of `List>` by combining Postgrest and Realtime. - - Takes a list of primary key columns as its argument. - examples: - - name: Listening to a specific table - isSpotlight: true - dart: | - ```dart - supabase - .from('countries') - .stream(['id']) - .execute(); - ``` - - name: Listening to a specific rows within a table - description: | - You can listen to individual rows using the format `{table}:{col}=eq.{val}` - where `{col}` is the column name, and `{val}` is the value which you want to match. - This syntax is the as how you can filter data in Realtime - dart: | - ```dart - supabase - .from('countries:id=eq.120') - .stream(['id']) - .execute(); - ``` - - name: With `order()` - dart: | - ```dart - supabase - .from('countries') - .stream(['id']) - .order('name', ascending: false) - .execute(); - ``` - - name: With `limit()` - dart: | - ```dart - supabase - .from('countries') - .stream(['id']) - .order('name', ascending: false) - .limit(10) - .execute(); - ``` - - storage.listBuckets(): - description: | - Retrieves the details of all Storage buckets within an existing product. - title: 'listBuckets()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.listBuckets' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - examples: - - name: List buckets - isSpotlight: true - dart: | - ```dart - final res = await supabase - .storage - .listBuckets() - ``` - - storage.getBucket(): - description: | - Retrieves the details of an existing Storage bucket. - title: 'getBucket()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.getBucket' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - examples: - - name: Get bucket - isSpotlight: true - dart: | - ```dart - final res = await supabase - .storage - .getBucket('avatars') - ``` - - storage.createBucket(): - description: | - Creates a new Storage bucket - title: 'createBucket()' - notes: | - - Policy permissions required: - - `buckets` permissions: `insert` - - `objects` permissions: none - examples: - - name: Create bucket - isSpotlight: true - dart: | - ```dart - final res = await supabase - .storage - .createBucket('avatars'); - ``` - - storage.emptyBucket(): - description: | - Removes all objects inside a single bucket. - title: 'emptyBucket()' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: `select` and `delete` - examples: - - name: Empty bucket - isSpotlight: true - dart: | - ```dart - final res = await supabase - .storage - .emptyBucket('avatars'); - ``` - storage.updateBucket(): - description: | - Updates a new Storage bucket - title: 'updateBucket()' - notes: | - - Policy permissions required: - - `buckets` permissions: `update` - - `objects` permissions: none - examples: - - name: Update bucket - isSpotlight: true - dart: | - ```dart - final res = await supabase - .storage - .updateBucket('avatars', { public: false }); - ``` - - storage.deleteBucket(): - description: | - Deletes an existing bucket. A bucket can't be deleted with existing objects inside it. You must first `empty()` the bucket. - title: 'deleteBucket()' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` and `delete` - - `objects` permissions: none - examples: - - name: Delete bucket - isSpotlight: true - dart: | - ```dart - final res = await supabase - .storage - .deleteBucket('avatars'); - ``` - - storage.from.upload(): - description: | - Uploads a file to an existing bucket. - title: 'from.upload()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.upload' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `insert` - examples: - - name: Upload file - isSpotlight: true - dart: | - ```dart - final avatarFile = File('path/to/file'); - final res = await supabase - .storage - .from('avatars') - .upload('public/avatar1.png', avatarFile, fileOptions: FileOptions( - cacheControl: '3600', - upsert: false - )); - ``` - - storage.from.update(): - description: | - Replaces an existing file at the specified path with a new one. - title: 'from.update()' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - examples: - - name: Update file - isSpotlight: true - dart: | - ```dart - final avatarFile = File('path/to/file'); - final res = await supabase - .storage - .from('avatars') - .update('public/avatar1.png', avatarFile, fileOptions: FileOptions( - cacheControl: '3600', - upsert: false - )); - ``` - - storage.from.move(): - description: | - Moves an existing file, optionally renaming it at the same time. - title: 'from.move()' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - examples: - - name: Move file - isSpotlight: true - dart: | - ```dart - final res = await supabase - .storage - .from('avatars') - .move('public/avatar1.png', 'private/avatar2.png'); - ``` - - storage.from.createSignedUrl(): - description: | - Create signed url to download file without requiring permissions. This URL can be valid for a set number of seconds. - title: 'from.createSignedUrl()' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - examples: - - name: Create Signed URL - isSpotlight: true - dart: | - ```dart - final res = await supabase - .storage - .from('avatars') - .createSignedUrl('avatar1.png', 60); - - final signedURL = res.data; - ``` - - storage.from.getPublicUrl(): - description: | - Retrieve URLs for assets in public buckets - title: 'from.getPublicUrl()' - notes: | - - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://app.supabase.com), clicking the overflow menu on a bucket and choosing "Make public" - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: none - examples: - - name: Returns the URL for an asset in a public bucket - isSpotlight: true - dart: | - ```dart - final res = supabase - .storage - .from('public-bucket') - .getPublicUrl('avatar1.png'); - - final publicURL = res.data; - ``` - - storage.from.download(): - description: | - Downloads a file. - title: 'from.download()' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - examples: - - name: Download file - isSpotlight: true - dart: | - ```dart - final res = await supabase - .storage - .from('avatars') - .download('avatar1.png'); - ``` - - storage.from.remove(): - description: | - Deletes files within the same bucket - title: 'from.remove()' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `delete` and `select` - examples: - - name: Delete file - isSpotlight: true - dart: | - ```dart - final res = await supabase - .storage - .from('avatars') - .remove(['avatar1.png']); - ``` - - storage.from.list(): - description: | - Lists all the files within a bucket. - title: 'from.list()' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - examples: - - name: List files in a bucket - isSpotlight: true - dart: | - ```dart - final res = await supabase - .storage - .from('avatars') - .list(); - ``` - Using Modifiers: - description: | - Modifiers can be used on `select()` queries. - - If a Stored Procedure returns a table response, you can also apply modifiers to the `rpc()` function. - - limit(): - description: | - Limits the result with the specified count. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .limit(1) - .execute(); - ``` - - name: With embedded resources - dart: | - ```dart - final res = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .limit(1, foreignTable: 'cities' ) - .execute(); - ``` - - order(): - description: | - Orders the result with the specified column. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .order('id', ascending: false ) - .execute(); - ``` - - name: With embedded resources - dart: | - ```dart - final res = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .order('name', foreignTable: 'cities') - .execute(); - ``` - - range(): - description: | - Limits the result to rows within the specified range, inclusive. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .range(0,3) - .execute(); - ``` - - single(): - description: | - Retrieves only one row from the result. Result must be one row (e.g. using limit), otherwise this will result in an error. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .single() - .execute(); - ``` - - Using Filters: - description: | - Filters can be used on `select()`, `update()`, and `delete()` queries. - - If a Stored Procedure returns a table response, you can also apply filters. - - ### Applying Filters - - You must apply your filters to the end of your query. For example: - - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The Shire') // Correct - .execute(); - - final res = await supabase - .from('cities') - .eq('name', 'The Shire') // Incorrect - .select('name, country_id') - .execute(); - ``` - - ### Chaining - - Filters can be chained together to produce advanced queries. For example: - - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .gte('population', 1000) - .lt('population', 10000) - .execute(); - ``` - - .or(): - description: | - Finds all rows satisfying at least one of the filters. - notes: | - - `.or()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```dart - .or('id.in.(6,7),arraycol.cs.{"a","b"}') // Use Postgres list () and 'in' for in_ filter. Array {} and 'cs' for contains. - .or('id.in.(${mylist.join(',')}),arraycol.cs.{${mylistArray.join(',')}}') // You can insert a Dart list for list or array column. - .or('id.in.(${mylist.join(',')}),rangecol.cs.(${mylistRange.join(',')}]') // You can insert a Dart list for list or range column. - ``` - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .or('id.eq.20,id.eq.30') - .execute(); - ``` - - name: Use `or` with `and` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .or('id.gt.20,and(name.eq.New Zealand,name.eq.France)') - .execute(); - ``` - # TODO Not available at the moment, so would have to fix the bug on postgrest-dart first - # - name: Use `or` on foreign tables - # isSpotlight: true - # dart: | - # ```dart - # final res = await supabase - # .from('countries') - # .select('id, cities(*)') - # .or('name.eq.Wellington,name.eq.Paris', { foreignTable: "cities" }) - # ``` - - .not(): - description: | - Finds all rows which doesn't satisfy the filter. - notes: | - - `.not()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```dart - .not('name','eq','Paris') - .not('arraycol','cs','{"a","b"}') // Use Postgres array {} for array column and 'cs' for contains. - .not('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .not('id','in','(6,7)') // Use Postgres list () and 'in' for in_ filter. - .not('id','in','(${mylist.join(',')})') // You can insert a Dart list array. - ``` - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .not('name', 'eq', 'Paris') - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .not('name', 'eq', 'Paris') - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .not('name', 'eq', 'Paris') - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities) - .not('name', 'eq', 'Paris') - .execute(); - ``` - - .match(): - description: | - Finds all rows whose columns match the specified `query` object. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .match({'name': 'Beijing', 'country_id': 156}) - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .match({'name': 'Beijing', 'country_id': 156}) - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .match({'name': 'Beijing', 'country_id': 156}) - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .match({'name': 'Beijing', 'country_id': 156}) - .execute(); - ``` - - .eq(): - description: | - Finds all rows whose value on the stated `column` exactly matches the specified `value`. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The shire') - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .eq('name', 'San Francisco') - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .eq('name', 'Mordor') - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .eq('name', 'San Francisco') - .execute(); - ``` - - .neq(): - description: | - Finds all rows whose value on the stated `column` doesn't match the specified `value`. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .neq('name', 'The shire') - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .neq('name', 'San Francisco') - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .neq('name', 'Mordor') - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .neq('name', 'Lagos') - .execute(); - ``` - - .gt(): - description: | - Finds all rows whose value on the stated `column` is greater than the specified `value`. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .gt('country_id', 250) - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .gt('country_id', 250) - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .gt('country_id', 250) - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .gt('country_id', 250) - .execute(); - ``` - - .gte(): - description: | - Finds all rows whose value on the stated `column` is greater than or equal to the specified `value`. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .gte('country_id', 250) - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .gte('country_id', 250) - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .gte('country_id', 250) - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .gte('country_id', 250) - .execute(); - ``` - - .lt(): - description: | - Finds all rows whose value on the stated `column` is less than the specified `value`. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .lt('country_id', 250) - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .lt('country_id', 250) - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .lt('country_id', 250) - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .lt('country_id', 250) - .execute(); - ``` - - .lte(): - description: | - Finds all rows whose value on the stated `column` is less than or equal to the specified `value`. - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.lte' - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .lte('country_id', 250) - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .lte('country_id', 250) - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .lte('country_id', 250) - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .lte('country_id', 250) - .execute(); - ``` - - .like(): - description: | - Finds all rows whose value in the stated `column` matches the supplied `pattern` (case sensitive). - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.like' - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .like('name', '%la%') - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .like('name', '%la%') - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .like('name', '%la%') - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .like('name', '%la%') - .execute(); - ``` - - .ilike(): - description: | - Finds all rows whose value in the stated `column` matches the supplied `pattern` (case insensitive). - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .ilike('name', '%la%') - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .ilike('name', '%la%') - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .ilike('name', '%la%') - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .ilike('name', '%la%') - .execute(); - ``` - - .is_(): - description: | - A check for exact equality (null, true, false), finds all rows whose value on the stated `column` exactly match the specified `value`. - - `is_` and `in_` filter methods are suffixed with `_` to avoid collisions with reserved keywords. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .is_('name', null) - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .is_('name', null) - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .is_('name', null) - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .is_('name', null) - .execute(); - ``` - - .in_(): - description: | - Finds all rows whose value on the stated `column` is found on the specified `values`. - - `is_` and `in_` filter methods are suffixed with `_` to avoid collisions with reserved keywords. - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .in_('name', ['Rio de Janeiro', 'San Francisco']) - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .in_('name', ['Rio de Janeiro', 'San Francisco']) - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .in_('name', ['Rio de Janeiro', 'San Francisco']) - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .in_('name', ['Rio de Janeiro', 'San Francisco']) - .execute(); - ``` - - .contains(): - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('countries') - .select('name, id, main_exports') - .contains('main_exports', ['oil']) - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .contains('main_exports', ['oil']) - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('countries') - .delete() - .contains('main_exports', ['oil']) - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_countries') - .contains('main_exports', ['oil']) - .execute(); - ``` - - .containedBy(): - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('countries') - .select('name, id, main_exports') - .containedBy('main_exports', ['cars', 'food', 'machine']) - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .containedBy('main_exports', ['orks', 'surveillance', 'evil']) - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('countries') - .delete() - .containedBy('main_exports', ['cars', 'food', 'machine']) - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_countries') - .containedBy('main_exports', ['cars', 'food', 'machine']) - .execute(); - ``` - - .rangeLt(): - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLt('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .rangeLt('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('countries') - .delete() - .rangeLt('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_countries') - .rangeLt('population_range_millions', '[150, 250]') - .execute(); - ``` - - .rangeGt(): - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGt('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .rangeGt('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('countries') - .delete() - .rangeGt('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_countries') - .rangeGt('population_range_millions', '[150, 250]') - .execute(); - ``` - - .rangeGte(): - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGte('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .rangeGte('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('countries') - .delete() - .rangeGte('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_countries') - .rangeGte('population_range_millions', '[150, 250]') - .execute(); - ``` - - .rangeLte(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.nxr' - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLte('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .rangeLte('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('countries') - .delete() - .rangeLte('population_range_millions', '[150, 250]') - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_countries') - .rangeLte('population_range_millions', [150, 250]) - .execute(); - ``` - - .rangeAdjacent(): - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeAdjacent('population_range_millions', '[70, 185]') - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .rangeAdjacent('population_range_millions', '[70, 185]') - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('countries') - .delete() - .rangeAdjacent('population_range_millions', '[70, 185]') - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_countries') - .rangeAdjacent('population_range_millions', '[70, 185]') - .execute(); - ``` - - .overlaps(): - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('countries') - .select('name, id, main_exports') - .overlaps('main_exports', ['computers', 'minerals']) - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('countries') - .update({ 'name': 'Mordor' }) - .overlaps('main_exports', ['computers', 'minerals']) - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('countries') - .delete() - .overlaps('main_exports', ['computers', 'minerals']) - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_countries') - .overlaps('main_exports', ['computers', 'minerals']) - .execute(); - ``` - - .textSearch(): - description: | - Finds all rows whose tsvector value on the stated `column` matches to_tsquery(query). - examples: - - name: Text search - dart: | - ```dart - final res = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', "'fat' & 'cat'", - config: 'english' - ) - .execute(); - ``` - - name: Basic normalization - description: Uses PostgreSQL's `plainto_tsquery` function. - dart: | - ```dart - final res = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', "'fat' & 'cat'", - type: TextSearchType.plain, - config: 'english' - ) - .execute(); - ``` - - name: Full normalization - description: Uses PostgreSQL's `phraseto_tsquery` function. - dart: | - ```dart - final res = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', "'fat' & 'cat'", - type: TextSearchType.phrase, - config: 'english' - ) - .execute(); - ``` - - name: Full normalization - description: | - Uses PostgreSQL's `websearch_to_tsquery` function. - This function will never raise syntax errors, which makes it possible to use raw user-supplied input for search, and can be used - with advanced operators. - - - `unquoted text`: text not inside quote marks will be converted to terms separated by & operators, as if processed by plainto_tsquery. - - `"quoted text"`: text inside quote marks will be converted to terms separated by <-> operators, as if processed by phraseto_tsquery. - - `OR`: the word “or” will be converted to the | operator. - - `-`: a dash will be converted to the ! operator. - - dart: | - ```dart - final res = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', "'fat or cat'", - type: TextSearchType.websearch, - config: 'english' - ) - .execute(); - ``` - - .filter(): - description: | - Finds all rows whose `column` satisfies the filter. - notes: | - - `.filter()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values, so it should only be used as an escape hatch in case other filters don't work. - ```dart - .filter('arraycol','cs','{"a","b"}') // Use Postgres array {} and 'cs' for contains. - .filter('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .filter('id','in','(6,7)') // Use Postgres list () and 'in' for in_ filter. - .filter('id','cs','{${mylist.join(',')}}') // You can insert a Dart array list. - ``` - examples: - - name: With `select()` - isSpotlight: true - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, country_id') - .filter('name', 'in', '("Paris","Tokyo")') - .execute(); - ``` - - name: With `update()` - dart: | - ```dart - final res = await supabase - .from('cities') - .update({ 'name': 'Mordor' }) - .filter('name', 'in', '("Paris","Tokyo")') - .execute(); - ``` - - name: With `delete()` - dart: | - ```dart - final res = await supabase - .from('cities') - .delete() - .filter('name', 'in', '("Paris","Tokyo")') - .execute(); - ``` - - name: With `rpc()` - dart: | - ```dart - // Only valid if the Stored Procedure returns a table type. - final res = await supabase - .rpc('echo_all_cities') - .filter('name', 'in', '("Paris","Tokyo")') - ``` - - name: Filter embedded resources - dart: | - ```dart - final res = await supabase - .from('cities') - .select('name, countries ( name )') - .filter('countries.name', 'in', '("France","Japan")') - .execute(); - ``` diff --git a/web/spec/supabase_js_v1_ref.yml b/web/spec/supabase_js_v1_ref.yml deleted file mode 100644 index 9abd0708c11..00000000000 --- a/web/spec/supabase_js_v1_ref.yml +++ /dev/null @@ -1,2730 +0,0 @@ -openref: 0.1 - -info: - id: reference/supabase-js - title: Supabase Client - description: | - - Supabase JavaScript. - - definition: spec/tsdoc_v1/combined.json - slugPrefix: '' - libraries: - - name: 'JavaScript' - id: 'js' - version: '0.0.1' - docs: - path: reference/javascript/ - sidebar: - - name: 'Getting Started' - items: - - Installing - - Initializing - - Generating Types - - name: 'Auth' - items: - - auth.signUp() - - auth.signIn() - - auth.signOut() - - auth.session() - - auth.user() - - auth.update() - - auth.setAuth() - - auth.onAuthStateChange() - - auth.api.getUser() - - auth.api.resetPasswordForEmail() - - name: 'Auth (Server Only)' - items: - - auth.api.listUsers() - - auth.api.createUser() - - auth.api.deleteUser() - - auth.api.generateLink() - - auth.api.inviteUserByEmail() - - auth.api.sendMobileOTP() - - auth.api.updateUserById() - - name: 'Functions' - items: - - invoke() - - name: 'Database' - items: - - select() - - insert() - - update() - - upsert() - - delete() - - rpc() - - name: 'Realtime' - items: - - subscribe() - - removeSubscription() - - removeAllSubscriptions() - - getSubscriptions() - - name: 'Storage' - items: - - storage.createBucket() - - storage.getBucket() - - storage.listBuckets() - - storage.updateBucket() - - storage.deleteBucket() - - storage.emptyBucket() - - storage.from.upload() - - storage.from.download() - - storage.from.list() - - storage.from.update() - - storage.from.move() - - storage.from.copy() - - storage.from.remove() - - storage.from.createSignedUrl() - - storage.from.createSignedUrls() - - storage.from.getPublicUrl() - - name: 'Modifiers' - items: - - Using Modifiers - - limit() - - order() - - range() - - single() - - maybeSingle() - - name: 'Filters' - items: - - Using Filters - - .or() - - .not() - - .match() - - .eq() - - .neq() - - .gt() - - .gte() - - .lt() - - .lte() - - .like() - - .ilike() - - .is() - - .in() - - .contains() - - .containedBy() - - .rangeLt() - - .rangeGt() - - .rangeGte() - - .rangeLte() - - .rangeAdjacent() - - .overlaps() - - .textSearch() - - .filter() - -pages: - Installing: - description: | - All JavaScript libraries are built directly by the Supabase team. - - Other languages are built by the community and supported by Supabase. - - ## JavaScript - - Via NPM - ```bash - npm install @supabase/supabase-js - ``` - - Via Yarn - ```bash - yarn add @supabase/supabase-js - ``` - - Find the source code on [GitHub](https://github.com/supabase/supabase-js). - - Or via CDN - ```js - - //or - - ``` - - Initializing: - $ref: '@supabase/supabase-js.index.SupabaseClient.constructor' - description: | - You can initialize a new Supabase client using the `createClient()` method. - - The Supabase client is your entrypoint to the rest of the Supabase functionality - and is the easiest way to interact with everything we offer within the Supabase ecosystem. - - examples: - - name: createClient() - js: | - ```js - import { createClient } from '@supabase/supabase-js' - - // Create a single supabase client for interacting with your database - const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key') - ``` - - name: With additional parameters - js: | - ```js - import { createClient } from '@supabase/supabase-js' - - const options = { - schema: 'public', - headers: { 'x-my-custom-header': 'my-app-name' }, - autoRefreshToken: true, - persistSession: true, - detectSessionInUrl: true - } - const supabase = createClient("https://xyzcompany.supabase.co", "public-anon-key", options) - ``` - - name: API schemas - js: | - ```js - import { createClient } from '@supabase/supabase-js' - - // Provide a custom schema. Defaults to "public". - const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key', { - schema: 'other_schema' - }) - ``` - - By default the API server points to the `public` schema. You can enable other database schemas within the Dashboard. - Go to `Settings > API > Schema` and add the schema which you want to expose to the API. - - Note: each client connection can only access a single schema, so the code above can access the `other_schema` schema but cannot access the `public` schema. - - name: Custom `fetch` implementation - js: | - ```js - import { createClient } from '@supabase/supabase-js' - - const supabase = createClient('https://xyzcompany.supabase.co', 'public-anon-key', { - fetch: fetch.bind(globalThis) - }) - ``` - - `supabase-js` uses the [`cross-fetch`](https://www.npmjs.com/package/cross-fetch) library to make HTTP requests, - but an alternative `fetch` implementation can be provided as an option. - This is most useful in environments where `cross-fetch` is not compatible (for instance Cloudflare Workers). - - Generating Types: - description: | - Supabase will soon release native type generators that dump your database types for various languages. For now, we support TypeScript [through third-party tools](/docs/guides/api/generating-types). - - ## Usage with TypeScript - - `supabase-js` ships with type definitions for usage with TypeScript and for convenient IntelliSense auto-complete and documentation in your editor. - - When using TypeScript, you can pass the type of database row as a type parameter to the `from` method to get better auto-completion support down the chain. - If you don't provide a type for the row you need to explicitly pass `from('tableName')`. - - ```ts - type Message = { - id: number; - inserted_at: string; - message: string; - user_id: string; - channel_id: number; - author: { username: string }; - } - - const response = await supabase - .from('messages') // Message maps to the type of the row in your database. - .select('*, author:user_id(username)') - .match({ channel_id: 2 }) // Your IDE will be able to help with auto-completion. - response.data // Response data will be of type Array. - - // If you don't provide a type for the row you need to explicitly pass `from('tableName')`. - const response = await supabase - .from('messages') - .select('*, author:user_id(username)') - .match({ channel_id: 2 }) - response.data // Response data will be of type Array. - ``` - - auth.signUp(): - title: 'signUp()' - $ref: '@supabase/gotrue-js.GoTrueClient.signUp' - notes: | - - By default, the user will need to verify their email address before logging in. If you would like to change this, you can disable "Email Confirmations" by going to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) - - If "Email Confirmations" is turned on, a `user` is returned but `session` will be null - - If "Email Confirmations" is turned off, both a `user` and a `session` will be returned - - When the user confirms their email address, they will be redirected to localhost:3000 by default. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) - - If signUp() is called for an existing confirmed user: - - If "Enable email confirmations" is enabled on the "Authentication" -> "Settings" page, an obfuscated / fake user object will be returned. - - If "Enable email confirmations" is disabled, an error with a message "User already registered" will be returned. - - To check if a user already exists, refer to getUser(). - examples: - - name: Sign up. - isSpotlight: true - js: | - ```js - const { user, session, error } = await supabase.auth.signUp({ - email: 'example@email.com', - password: 'example-password', - }) - ``` - - name: Sign up with additional user meta data. - isSpotlight: true - js: | - ```js - const { user, session, error } = await supabase.auth.signUp( - { - email: 'example@email.com', - password: 'example-password', - }, - { - data: { - first_name: 'John', - age: 27, - } - } - ) - ``` - - name: Sign up with third-party providers. - hideCodeBlock: true - description: | - You can sign up with OAuth providers using the [`signIn()`](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) method. - - name: Sign up with Phone. - description: | - Supabase supports Phone Auth. After a user has verified their number, they can use the [`signIn()`](/docs/reference/javascript/auth-signin#sign-in-using-phone) method. - js: | - ```js - const { user, session, error } = await supabase.auth.signUp({ - phone: '+13334445555', - password: 'some-password', - }) - - // After receiving an SMS with One Time Password. - let { session, error } = await supabase.auth.verifyOTP({ - phone: '+13334445555', - token: '123456', - }) - ``` - - auth.signIn(): - title: 'signIn()' - $ref: '@supabase/gotrue-js.GoTrueClient.signIn' - notes: | - - A user can sign up either via email or OAuth. - - If you provide `email` without a `password`, the user will be sent a magic link. - - The magic link's destination URL is determined by the SITE_URL config variable. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) - - Specifying a `provider` will open the browser to the relevant login page. - examples: - - name: Sign in with email. - isSpotlight: true - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - email: 'example@email.com', - password: 'example-password', - }) - ``` - - name: Sign in with magic link. - description: If no password is provided, the user will be sent a "magic link" to their email address, which they can click to open your application with a valid session. By default, a given user can only request a Magic Link once every 60 seconds. - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - email: 'example@email.com' - }) - ``` - - name: Sign in using third-party providers. - description: Supabase supports many different [third-party providers](https://supabase.com/docs/guides/auth#providers). - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - // provider can be 'github', 'google', 'gitlab', and more - provider: 'github' - }) - ``` - - name: Sign in with Phone. - description: Supabase supports Phone Auth. - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - phone: '+13334445555', - password: 'some-password', - }) - ``` - - name: Sign in with redirect. - description: | - Note that the `redirectTo` param is only relevant for OAuth logins, where the login flow is managed by - the Auth server. If you are using email/phone logins you should set up your own redirects (within the email/sms template). - - Sometimes you want to control where the user is redirected to after they are logged in. Supabase supports this for - any URL path on your website (the URL must either be on the same domain as your Site URL [see Auth>Settings in dashboard], or must match one of the Additional Redirect URLs [also in Auth>Settings]). - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - provider: 'github' - }, { - redirectTo: 'https://example.com/welcome' - }) - ``` - - name: Sign in with scopes. - description: | - If you need additional data from an OAuth provider, you can include a space-separated list of scopes in your request to get back an OAuth provider token. - You may also need to specify the scopes in the provider's OAuth app settings, depending on the provider. - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - provider: 'github' - }, { - scopes: 'repo gist notifications' - }) - const oAuthToken = session.provider_token // use to access provider API - ``` - - name: Sign in using a refresh token (e.g. in React Native). - description: | - If you are completing a sign up or login in a React Native app you can pass the refresh token obtained from the provider to obtain a session. - js: | - ```js - // An example using Expo's `AuthSession` - const redirectUri = AuthSession.makeRedirectUri({ useProxy: false }); - const provider = 'google'; - - AuthSession.startAsync({ - authUrl: `https://MYSUPABASEAPP.supabase.co/auth/v1/authorize?provider=${provider}&redirect_to=${redirectUri}`, - returnUrl: redirectUri, - }).then(async (response: any) => { - if (!response) return; - const { user, session, error } = await supabase.auth.signIn({ - refreshToken: response.params?.refresh_token, - }); - }); - ``` - - auth.signOut(): - title: 'signOut()' - $ref: '@supabase/gotrue-js.GoTrueClient.signOut' - examples: - - name: Sign out - isSpotlight: true - js: | - ```js - const { error } = await supabase.auth.signOut() - ``` - - auth.session(): - title: 'session()' - $ref: '@supabase/gotrue-js.GoTrueClient.session' - examples: - - name: Get the session data - isSpotlight: true - js: | - ```js - const session = supabase.auth.session() - ``` - - auth.user(): - title: 'user()' - $ref: '@supabase/gotrue-js.GoTrueClient.user' - notes: | - This method gets the user object from memory. - examples: - - name: Get the logged in user - isSpotlight: true - js: | - ```js - const user = supabase.auth.user() - ``` - - auth.update(): - title: 'update()' - $ref: '@supabase/gotrue-js.GoTrueClient.update' - notes: | - User email: Email updates will send an email to both the user's current and new email with a confirmation link by default. - To toggle this behavior off and only send a single confirmation link to the new email, toggle "Double confirm email changes" under "Authentication" -> "Settings" off. - - - User metadata: It's generally better to store user data in a table inside your public schema (i.e. `public.users`). - Use the `update()` method if you have data which rarely changes or is specific only to the logged in user. - examples: - - name: Update email for authenticated user. - description: Sends a "Confirm Email Change" email to the new email address. - isSpotlight: true - js: | - ```js - const { user, error } = await supabase.auth.update({email: 'new@email.com'}) - ``` - - name: Update password for authenticated user. - isSpotlight: true - js: | - ```js - const { user, error } = await supabase.auth.update({password: 'new password'}) - ``` - - name: Update a user's metadata. - isSpotlight: true - js: | - ```js - const { user, error } = await supabase.auth.update({ - data: { hello: 'world' } - }) - ``` - - auth.setAuth(): - title: 'setAuth()' - $ref: '@supabase/gotrue-js.GoTrueClient.setAuth' - examples: - - name: Basic example. - description: This is most useful on server-side functions where you cannot log the user in, but have access to the user's access token. - isSpotlight: true - js: | - ```js - function apiFunction(req, res) { - // Assuming the access token was sent as a header "X-Supabase-Auth" - const { access_token } = req.get('X-Supabase-Auth') - - // You can now use it within a Supabase Client - const supabase = createClient("https://xyzcompany.supabase.co", "public-anon-key") - const { user, error } = supabase.auth.setAuth(access_token) - - // This client will now send requests as this user - const { data } = await supabase.from('your_table').select() - } - ``` - - name: With Express. - isSpotlight: true - js: | - ```js - - /** - * Make a request from the client to your server function - */ - async function makeApiRequest() { - const token = newClient.session()?.access_token - - await fetch('https://example.com/withAuth', { - method: 'GET', - withCredentials: true, - credentials: 'include', - headers: { - 'Content-Type': 'application/json', - 'Authorization': bearer, // Your own auth - 'X-Supabase-Auth': token, // Set the Supabase user - } - }) - } - - /** - * Use the Auth token in your server-side function. - */ - async function apiFunction(req, res) { - const { access_token } = req.get('X-Supabase-Auth') - - // You can now use it within a Supabase Client - const supabase = createClient("https://xyzcompany.supabase.co", "public-anon-key") - const { user, error } = supabase.auth.setAuth(access_token) - - // This client will now send requests as this user - const { data } = await supabase.from('your_table').select() - } - ``` - - auth.onAuthStateChange(): - title: 'onAuthStateChange()' - $ref: '@supabase/gotrue-js.GoTrueClient.onAuthStateChange' - examples: - - name: Listen to auth changes - isSpotlight: true - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - console.log(event, session) - }) - ``` - - name: Listen to sign in - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'SIGNED_IN') console.log('SIGNED_IN', session) - }) - ``` - - name: Listen to sign out - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'SIGNED_OUT') console.log('SIGNED_OUT', session) - }) - ``` - - name: Listen to token refresh - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'TOKEN_REFRESHED') console.log('TOKEN_REFRESHED', session) - }) - ``` - - name: Listen to user updates - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'USER_UPDATED') console.log('USER_UPDATED', session) - }) - ``` - - name: Listen to user deleted - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'USER_DELETED') console.log('USER_DELETED', session) - }) - ``` - - name: Listen to password recovery events - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'PASSWORD_RECOVERY') console.log('PASSWORD_RECOVERY', session) - }) - ``` - auth.api.getUser(): - title: 'getUser()' - $ref: '@supabase/gotrue-js.GoTrueApi.getUser' - notes: | - - Fetches the user object from the database instead of local storage. - - Note that user() fetches the user object from local storage which might not be the most updated. - - Requires the user's access_token. - examples: - - name: Fetch the user object using the access_token jwt. - isSpotlight: true - js: | - ```js - const { user, error } = await supabase.auth.api.getUser( - 'ACCESS_TOKEN_JWT', - ) - ``` - - auth.api.listUsers(): - title: 'listUsers()' - $ref: '@supabase/gotrue-js.GoTrueApi.listUsers' - notes: | - - Requires a `service_role` key. - - This function should be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Get a full list of users. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.listUsers() - ``` - - auth.api.createUser(): - title: 'createUser()' - $ref: '@supabase/gotrue-js.GoTrueApi.createUser' - notes: | - - Requires a `service_role` key. - - This function should be called on a server. Never expose your `service_role` key in the browser. - - If you do not provide the `email_confirm` and `phone_confirm` options to this function, both will default to false. - examples: - - name: Create a new user. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.createUser({ - email: 'user@email.com', - password: 'password', - user_metadata: { name: 'Yoda' } - }) - ``` - - name: Auto-confirm email. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.createUser({ - email: 'user@email.com', - email_confirm: true - }) - ``` - - name: Auto-confirm phone. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.createUser({ - phone: '1234567890', - phone_confirm: true - }) - ``` - - auth.api.deleteUser(): - title: 'deleteUser()' - $ref: '@supabase/gotrue-js.GoTrueApi.deleteUser' - notes: | - - Requires a `service_role` key. - - This function should be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Remove a user completely. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.deleteUser( - '715ed5db-f090-4b8c-a067-640ecee36aa0' - ) - ``` - - auth.api.inviteUserByEmail(): - title: 'inviteUserByEmail()' - $ref: '@supabase/gotrue-js.GoTrueApi.inviteUserByEmail' - notes: | - - Requires a `service_role` key. - - This function should only be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Basic example. - isSpotlight: false - js: | - ```js - const { data: user, error } = await supabase.auth - .api - .inviteUserByEmail('email@example.com') - ``` - - auth.api.sendMobileOTP(): - title: 'sendMobileOTP()' - $ref: '@supabase/gotrue-js.GoTrueApi.sendMobileOTP' - notes: | - - Requires a `service_role` key. - - This function should only be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Basic example. - isSpotlight: false - js: | - ```js - const { data: user, error } = await supabase.auth - .api - .sendMobileOTP('12345879') - ``` - - auth.api.resetPasswordForEmail(): - title: 'resetPasswordForEmail()' - $ref: '@supabase/gotrue-js.GoTrueApi.resetPasswordForEmail' - notes: | - Sends a reset request to an email address. - - When the user clicks the reset link in the email they will be forwarded to: - - `#access_token=x&refresh_token=y&expires_in=z&token_type=bearer&type=recovery` - - Your app must detect `type=recovery` in the fragment and display a password reset form to the user. - - You should then use the access_token in the url and new password to update the user as follows: - - ```js - const { error, data } = await supabase.auth.api - .updateUser(access_token, { password : new_password }) - ``` - examples: - - name: Reset password - isSpotlight: true - js: | - ```js - const { data, error } = await supabase.auth.api - .resetPasswordForEmail('user@email.com') - ``` - - auth.api.generateLink(): - title: 'generateLink()' - $ref: '@supabase/gotrue-js.GoTrueApi.generateLink' - notes: | - - Requires a `service_role` key. - - This function should only be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Generate invite link. - isSpotlight: false - js: | - ```js - const { data: user, error } = await supabase.auth.api.generateLink( - 'invite', - 'email@example.com' - ) - ``` - - auth.api.updateUserById(): - title: 'updateUserById()' - $ref: '@supabase/gotrue-js.GoTrueApi.updateUserById' - notes: | - - Requires a `service_role` key. - - This function should only be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Updates a user's email. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { email: 'new@email.com' } - ) - ``` - - name: Updates a user's password. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { password: 'new_password' } - ) - ``` - - name: Updates a user's metadata. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { user_metadata: { hello: 'world' } } - ) - ``` - - name: Updates a user's app_metadata. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { app_metadata: { plan: 'trial' } } - ) - ``` - - name: Confirms a user's email address. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { email_confirm: true } - ) - ``` - - name: Confirms a user's phone number. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { phone_confirm: true } - ) - ``` - invoke(): - title: 'invoke()' - description: | - Invokes a Supabase Function. - $ref: '@supabase/functions-js.FunctionsClient.invoke' - notes: | - - Requires an Authorization header. - - Invoke params generally match the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) spec. - examples: - - name: Basic invocation. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.functions.invoke('hello', { - body: JSON.stringify({ foo: 'bar' }) - }) - ``` - - name: Specifying response type. - description: | - By default, `invoke()` will parse the response as JSON. You can parse the response in the following formats: `json`, `blob`, `text`, and `arrayBuffer`. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.functions.invoke('hello', { - responseType: 'text', - body: JSON.stringify({ foo: 'bar' }) - }) - ``` - - name: Parsing custom headers. - description: | - You can pass custom headers to your function. Note: supabase-js automatically passes the `Authorization` header with the signed in user's JWT. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.functions.invoke('hello', { - headers: { - "my-custom-header": 'my-custom-header-value' - }, - body: JSON.stringify({ foo: 'bar' }) - }) - ``` - - select(): - title: 'Fetch data: select()' - $ref: '@supabase/postgrest-js."lib/PostgrestQueryBuilder".PostgrestQueryBuilder.select' - notes: | - - By default, Supabase projects will return a maximum of 1,000 rows. This setting can be changed in Project API Settings. It's recommended that you keep it low to limit the payload size of accidental or malicious requests. You can use `range()` queries to paginate through your data. - - `select()` can be combined with [Modifiers](/docs/reference/javascript/using-modifiers) - - `select()` can be combined with [Filters](/docs/reference/javascript/using-filters) - - If using the Supabase hosted platform `apikey` is technically a reserved keyword, since the API gateway will pluck it out for authentication. [It should be avoided as a column name](https://github.com/supabase/supabase/issues/5465). - examples: - - name: Getting your data - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select() - ``` - - name: Selecting specific columns - description: You can select specific fields from your tables. - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name') - ``` - - name: Query foreign tables - description: If your database has foreign key relationships, you can query related tables too. - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select(` - name, - cities ( - name - ) - `) - ``` - note: | - What about join tables - If you're in a situation where your tables are **NOT** directly related, but instead are joined by a _join table_, - you can still use the `select()` method to query the related data. The PostgREST engine detects the relationship automatically. - For more details, [follow the link](https://postgrest.org/en/latest/api.html#embedding-through-join-tables). - - name: Query the same foreign table multiple times - description: | - Sometimes you will need to query the same foreign table twice. - In this case, you can use the name of the joined column to identify - which join you intend to use. For convenience, you can also give an - alias for each column. For example, if we had a shop of products, - and we wanted to get the supplier and the purchaser at the same time - (both in the users) table: - js: | - ```js - const { data, error } = await supabase - .from('products') - .select(` - id, - supplier:supplier_id ( name ), - purchaser:purchaser_id ( name ) - `) - ``` - - name: Filtering with inner joins - description: | - If you want to filter a table based on a child table's values you can use the `!inner()` function. For example, if you wanted - to select all rows in a `message` table which belong to a user with the `username` "Jane": - js: | - ```js - const { data, error } = await supabase - .from('messages') - .select('*, users!inner(*)') - .eq('users.username', 'Jane') - ``` - - name: Querying with count option - description: | - You can get the number of rows by using the count option. - Allowed values for count option are `null`, [exact](https://postgrest.org/en/stable/api.html#exact-count), [planned](https://postgrest.org/en/stable/api.html#planned-count) and [estimated](https://postgrest.org/en/stable/api.html#estimated-count). - js: | - ```js - const { data, error, count } = await supabase - .from('cities') - .select('name', { count: 'exact' }) // if you don't want to return any rows, you can use { count: 'exact', head: true } - ``` - - name: Querying JSON data - description: | - If you have data inside of a JSONB column, you can apply select - and query filters to the data values. Postgres offers a - [number of operators](https://www.postgresql.org/docs/current/functions-json.html) - for querying JSON data. Also see - [PostgREST docs](http://postgrest.org/en/v7.0.0/api.html#json-columns) for more details. - js: | - ```js - const { data, error } = await supabase - .from('users') - .select(` - id, name, - address->street - `) - .eq('address->postcode', 90210) - ``` - - name: Return data as CSV - description: | - By default the data is returned in JSON format, however you can also request for it to be returned as Comma Separated Values. - js: | - ```js - const { data, error } = await supabase - .from('users') - .select() - .csv() - ``` - - name: Aborting requests in-flight - description: | - You can use an [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) to abort requests. Note that `status` and `statusText` doesn't mean anything for aborted requests, since the request wasn't actually fulfilled. - js: | - ```js - const ac = new AbortController() - supabase - .from('very_big_table') - .select() - .abortSignal(ac.signal) - .then(console.log) - ac.abort() - // { - // error: { - // message: 'FetchError: The user aborted a request.', - // details: '', - // hint: '', - // code: '' - // }, - // data: null, - // body: null, - // count: null, - // status: 400, - // statusText: 'Bad Request' - // } - ``` - - insert(): - title: 'Create data: insert()' - $ref: '@supabase/postgrest-js."lib/PostgrestQueryBuilder".PostgrestQueryBuilder.insert' - notes: | - - By default, every time you run `insert()`, the client library will make a `select` to return the full record. - This is convenient, but it can also cause problems if your Policies are not configured to allow the `select` operation. - If you are using Row Level Security and you are encountering problems, try setting the `returning` param to `minimal`. - examples: - - name: Create a record - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .insert([ - { name: 'The Shire', country_id: 554 } - ]) - ``` - - name: Bulk create - description: | - When running a bulk create, the operation is handled in a single transaction. If any of the inserts fail, all other operations are - rolled back. - js: | - ```js - const { data, error } = await supabase - .from('cities') - .insert([ - { name: 'The Shire', country_id: 554 }, - { name: 'Rohan', country_id: 555 }, - ]) - ``` - - name: Upsert - description: | - For upsert, if set to true, primary key columns would need to be included - in the data parameter in order for an update to properly happen. Also, primary keys - used must be natural, not surrogate. There are however, - [workarounds](https://github.com/PostgREST/postgrest/issues/1118) - for surrogate primary keys. - js: | - ```js - const { data, error } = await supabase - .from('cities') - .insert( - [ - { name: 'The Shire', country_id: 554 }, - { name: 'Rohan', country_id: 555 }, - { name: 'City by the Bay', country_id:840} - ], - { upsert: true }) - ``` - - update(): - title: 'Modify data: update()' - $ref: '@supabase/postgrest-js."lib/PostgrestQueryBuilder".PostgrestQueryBuilder.update' - notes: | - - `update()` should always be combined with [Filters](/docs/reference/javascript/using-filters) to target the item(s) you wish to update. - examples: - - name: Updating your data - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Middle Earth' }) - .match({ name: 'Auckland' }) - ``` - - name: Updating JSON data - description: | - Postgres offers a - [number of operators](https://www.postgresql.org/docs/current/functions-json.html) - for working with JSON data. Right now it is only possible to update an entire JSON document, - but we are [working on ideas](https://github.com/PostgREST/postgrest/issues/465) for updating individual keys. - js: | - ```js - const { data, error } = await supabase - .from('users') - .update(` - address: { - street: 'Melrose Place', - postcode: 90210 - } - `) - .eq('address->postcode', 90210) - ``` - - upsert(): - title: 'Upsert data: upsert()' - $ref: '@supabase/postgrest-js."lib/PostgrestQueryBuilder".PostgrestQueryBuilder.upsert' - notes: | - - Primary keys should be included in the data payload in order for an update to work correctly. - - Primary keys must be natural, not surrogate. There are however, [workarounds](https://github.com/PostgREST/postgrest/issues/1118) for surrogate primary keys. - examples: - - name: Upsert your data - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('messages') - .upsert({ id: 3, message: 'foo', username: 'supabot' }) - ``` - - name: Bulk Upsert your data - isSpotlight: false - js: | - ```js - const { data, error } = await supabase - .from('messages') - .upsert([ - { id: 3, message: 'foo', username: 'supabot' }, - { id: 4, message: 'bar', username: 'supabot' } - ]) - ``` - - name: Upserting into tables with constraints - description: | - Running the following will cause supabase to upsert data into the `users` table. - If the username 'supabot' already exists, the `onConflict` argument tells supabase to overwrite that row - based on the column passed into `onConflict`. - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('users') - .upsert({ username: 'supabot' }, { onConflict: 'username' }) - ``` - - name: Return the exact number of rows - isSpotlight: true - js: | - ```js - const { data, error, count } = await supabase - .from('users') - .upsert({ - id: 3, message: 'foo', - username: 'supabot' - }, { - count: 'exact' - }) - ``` - - delete(): - title: 'Delete data: delete()' - $ref: '@supabase/postgrest-js."lib/PostgrestQueryBuilder".PostgrestQueryBuilder.delete' - notes: | - - `delete()` should always be combined with [filters](/docs/reference/javascript/using-filters) to target the item(s) you wish to delete. - - If you use `delete()` with filters and you have - [RLS](/docs/learn/auth-deep-dive/auth-row-level-security) enabled, only - rows visible through `SELECT` policies are deleted. Note that by default - no rows are visible, so you need at least one `SELECT`/`ALL` policy that - makes the rows visible. - examples: - - name: Delete records - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .match({ id: 666 }) - ``` - - rpc(): - title: 'Postgres functions: rpc()' - description: | - You can call Postgres functions as a "Remote Procedure Call". - - That's a fancy way of saying that you can put some logic into your database then call it from anywhere. - It's especially useful when the logic rarely changes - like password resets and updates. - - ```sql - create or replace function hello_world() returns text as $$ - select 'Hello world'; - $$ language sql; - ``` - $ref: '@supabase/postgrest-js."PostgrestClient".PostgrestClient.rpc' - examples: - - name: Call a Postgres function - isSpotlight: true - description: This is an example of invoking a Postgres function with no parameters. - js: | - ```js - const { data, error } = await supabase - .rpc('hello_world') - ``` - - name: With Parameters - js: | - ```js - const { data, error } = await supabase - .rpc('echo_city', { name: 'The Shire' }) - ``` - - name: Bulk processing - description: You can process large payloads at once using [array parameters](https://postgrest.org/en/stable/api.html#calling-functions-with-array-parameters). - js: | - ```js - const { data, error } = await postgrest - .rpc('echo_cities', { names: ['The Shire', 'Mordor'] }) - ``` - - name: With filters - description: | - Postgres functions that return tables can also be combined with - [Modifiers](/docs/reference/javascript/using-modifiers) and - [Filters](/docs/reference/javascript/using-filters). - js: | - ```js - const { data, error } = await supabase - .rpc('echo_all_cities') - .select('name, population') - .eq('name', 'The Shire') - ``` - - name: With count option - description: | - You can specify a count option to get the row count along with your data. - Allowed values for count option are `null`, `exact`, `planned` and `estimated`. - js: | - ```js - const { data, error, count } = await supabase - .rpc('hello_world', {}, { count: 'exact' }) - ``` - - subscribe(): - title: 'on().subscribe()' - $ref: '@supabase/supabase-js.lib/SupabaseQueryBuilder.SupabaseQueryBuilder.on' - notes: | - - Realtime is disabled by default for new Projects for better database performance and security. You can turn it on by [managing replication](/docs/guides/api#managing-realtime). - - If you want to receive the "previous" data for updates and deletes, you will need to set `REPLICA IDENTITY` to `FULL`, like this: `ALTER TABLE your_table REPLICA IDENTITY FULL;` - examples: - - name: Listen to all database changes - isSpotlight: true - js: | - ```js - const mySubscription = supabase - .from('*') - .on('*', payload => { - console.log('Change received!', payload) - }) - .subscribe() - ``` - - name: Listening to a specific table - js: | - ```js - const mySubscription = supabase - .from('countries') - .on('*', payload => { - console.log('Change received!', payload) - }) - .subscribe() - ``` - - name: Listening to inserts - js: | - ```js - const mySubscription = supabase - .from('countries') - .on('INSERT', payload => { - console.log('Change received!', payload) - }) - .subscribe() - ``` - - name: Listening to updates - description: | - By default, Supabase will send only the updated record. If you want to receive the previous values as well you can - enable full replication for the table you are listening too: - - ```sql - alter table "your_table" replica identity full; - ``` - js: | - ```js - const mySubscription = supabase - .from('countries') - .on('UPDATE', payload => { - console.log('Change received!', payload) - }) - .subscribe() - ``` - - name: Listening to deletes - description: | - By default, Supabase does not send deleted records. If you want to receive the deleted record you can - enable full replication for the table you are listening too: - - ```sql - alter table "your_table" replica identity full; - ``` - js: | - ```js - const mySubscription = supabase - .from('countries') - .on('DELETE', payload => { - console.log('Change received!', payload) - }) - .subscribe() - ``` - - name: Listening to multiple events - description: You can chain listeners if you want to listen to multiple events for each table. - js: | - ```js - const mySubscription = supabase - .from('countries') - .on('INSERT', handleRecordInserted) - .on('DELETE', handleRecordDeleted) - .subscribe() - ``` - - name: Listening to row level changes - description: You can listen to individual rows using the format `{table}:{col}=eq.{val}` - where `{col}` is the column name, and `{val}` is the value which you want to match. - notes: | - - ``eq`` filter works with all database types as under the hood, it's casting both the filter value and the database value to the correct type and then comparing them. - js: | - ```js - const mySubscription = supabase - .from('countries:id=eq.200') - .on('UPDATE', handleRecordUpdated) - .subscribe() - ``` - - removeSubscription(): - title: 'removeSubscription()' - $ref: '@supabase/supabase-js.index.SupabaseClient.removeSubscription' - notes: | - - Removing subscriptions is a great way to maintain the performance of your project's database. Supabase will automatically handle cleanup 30 seconds after a user is disconnected, but unused subscriptions may cause degradation as more users are simultaneously subscribed. - examples: - - name: Remove a subscription - isSpotlight: true - js: | - ```js - supabase.removeSubscription(mySubscription) - ``` - - removeAllSubscriptions(): - title: 'removeAllSubscriptions()' - $ref: '@supabase/supabase-js.index.SupabaseClient.removeAllSubscriptions' - notes: | - - Removing subscriptions is a great way to maintain the performance of your project's database. Supabase will automatically handle cleanup 30 seconds after a user is disconnected, but unused subscriptions may cause degradation as more users are simultaneously subscribed. - examples: - - name: Removes all subscriptions - isSpotlight: true - js: | - ```js - supabase.removeAllSubscriptions() - ``` - - getSubscriptions(): - title: 'getSubscriptions()' - $ref: '@supabase/supabase-js.index.SupabaseClient.getSubscriptions' - examples: - - name: Get all subscriptions - isSpotlight: true - js: | - ```js - const subscriptions = supabase.getSubscriptions() - ``` - - storage.listBuckets(): - title: 'listBuckets()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.listBuckets' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - examples: - - name: List buckets - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .listBuckets() - ``` - - storage.getBucket(): - title: 'getBucket()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.getBucket' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - examples: - - name: Get bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .getBucket('avatars') - ``` - - storage.createBucket(): - title: 'createBucket()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.createBucket' - notes: | - - Policy permissions required: - - `buckets` permissions: `insert` - - `objects` permissions: none - examples: - - name: Create bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .createBucket('avatars', { public: false }) - ``` - - storage.emptyBucket(): - title: 'emptyBucket()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.emptyBucket' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: `select` and `delete` - examples: - - name: Empty bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .emptyBucket('avatars') - ``` - storage.updateBucket(): - title: 'updateBucket()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.updateBucket' - notes: | - - Policy permissions required: - - `buckets` permissions: `update` - - `objects` permissions: none - examples: - - name: Update bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .updateBucket('avatars', { public: false }) - ``` - - storage.deleteBucket(): - title: 'deleteBucket()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.deleteBucket' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` and `delete` - - `objects` permissions: none - examples: - - name: Delete bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .deleteBucket('avatars') - ``` - - storage.from.upload(): - title: 'from.upload()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.upload' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `insert` - - For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Upload file using `ArrayBuffer` from base64 file data instead, see example below. - examples: - - name: Upload file - isSpotlight: true - js: | - ```js - const avatarFile = event.target.files[0] - const { data, error } = await supabase - .storage - .from('avatars') - .upload('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false - }) - ``` - - name: Upload file using `ArrayBuffer` from base64 file data - js: | - ```js - import { decode } from 'base64-arraybuffer' - - const { data, error } = await supabase - .storage - .from('avatars') - .upload('public/avatar1.png', decode('base64FileData'), { - contentType: 'image/png' - }) - ``` - - storage.from.update(): - title: 'from.update()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.update' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - - For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Update file using `ArrayBuffer` from base64 file data instead, see example below. - examples: - - name: Update file - isSpotlight: true - js: | - ```js - const avatarFile = event.target.files[0] - const { data, error } = await supabase - .storage - .from('avatars') - .update('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false - }) - ``` - - name: Update file using `ArrayBuffer` from base64 file data - js: | - ```js - import {decode} from 'base64-arraybuffer' - - const { data, error } = await supabase - .storage - .from('avatars') - .update('public/avatar1.png', decode('base64FileData'), { - contentType: 'image/png' - }) - ``` - - storage.from.move(): - title: 'from.move()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.move' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - examples: - - name: Move file - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .move('public/avatar1.png', 'private/avatar2.png') - ``` - - storage.from.copy(): - title: 'from.copy()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.copy' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - examples: - - name: Copy file - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .copy('public/avatar1.png', 'private/avatar2.png') - ``` - - storage.from.createSignedUrl(): - title: 'from.createSignedUrl()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.createSignedUrl' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - examples: - - name: Create Signed URL - isSpotlight: true - js: | - ```js - const { signedURL, error } = await supabase - .storage - .from('avatars') - .createSignedUrl('folder/avatar1.png', 60) - ``` - - storage.from.createSignedUrls(): - title: 'from.createSignedUrls()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.createSignedUrls' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - examples: - - name: Create Signed URLs - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .createSignedUrls(['folder/avatar1.png', 'folder/avatar2.png'], 60) - ``` - - storage.from.getPublicUrl(): - title: 'from.getPublicUrl()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.getPublicUrl' - notes: | - - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://app.supabase.com), clicking the overflow menu on a bucket and choosing "Make public" - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: none - examples: - - name: Returns the URL for an asset in a public bucket - isSpotlight: true - js: | - ```js - const { publicURL, error } = supabase - .storage - .from('public-bucket') - .getPublicUrl('folder/avatar1.png') - ``` - - storage.from.download(): - title: 'from.download()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.download' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - examples: - - name: Download file - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .download('folder/avatar1.png') - ``` - - storage.from.remove(): - title: 'from.remove()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.remove' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `delete` and `select` - examples: - - name: Delete file - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .remove(['folder/avatar1.png']) - ``` - - storage.from.list(): - title: 'from.list()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.list' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - examples: - - name: List files in a bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .list('folder', { - limit: 100, - offset: 0, - sortBy: { column: 'name', order: 'asc' }, - }) - ``` - - name: Search files in a bucket - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .list('folder', { - limit: 100, - offset: 0, - sortBy: { column: 'name', order: 'asc' }, - search: 'jon' - }) - ``` - - Using Modifiers: - description: | - Modifiers can be used on `select()` queries. - - If a Postgres function returns a table response, you can also apply modifiers to the `rpc()` function. - - limit(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.limit' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) - ``` - - name: With embedded resources - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .limit(1, { foreignTable: 'cities' }) - ``` - - order(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.order' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .order('id', { ascending: false }) - ``` - - name: With embedded resources - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .order('name', {foreignTable: 'cities'}) - ``` - - name: Ordering multiple columns - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name', 'country_id') - .order('country_id', { ascending: false }) - .order('name', { ascending: false }) - ``` - range(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.range' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .range(0,3) - ``` - - single(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.single' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) - .single() - ``` - - maybeSingle(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.maybeSingle' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'Singapore') - .maybeSingle() - ``` - - Using Filters: - description: | - Filters can be used on `select()`, `update()`, and `delete()` queries. - - If a Postgres function returns a table response, you can also apply filters. - - ### Applying Filters - - You must apply your filters to the end of your query. For example: - - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The Shire') // Correct - - const { data, error } = await supabase - .from('cities') - .eq('name', 'The Shire') // Incorrect - .select('name, country_id') - ``` - - ### Chaining - - Filters can be chained together to produce advanced queries. For example: - - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gte('population', 1000) - .lt('population', 10000) - ``` - - ### Conditional Chaining - - Filters can be built up one step at a time and then executed. For example: - - ```js - const filterByName = null - const filterPopLow = 1000 - const filterPopHigh = 10000 - - let query = supabase - .from('cities') - .select('name, country_id') - - if (filterByName) { query = query.eq('name', filterByName) } - if (filterPopLow) { query = query.gte('population', filterPopLow) } - if (filterPopHigh) { query = query.lt('population', filterPopHigh) } - - const { data, error } = await query - ``` - - .or(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.or' - notes: | - - `.or()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```js - .or('id.in.(6,7), arraycol.cs.{"a","b"}') // Use Postgres list () for in filter. Array {} for array column and 'cs' for contains. - .or(`id.in.(${arrList}),arraycol.cs.{${arr}}`) // You can insert a javascipt array for list or array on array column. - .or(`id.in.(${arrList}),rangecol.cs.[${arrRange})`) // You can insert a javascipt array for list or range on a range column. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .or('id.eq.20,id.eq.30') - ``` - - name: Use `or` with `and` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .or('id.gt.20,and(name.eq.New Zealand,name.eq.France)') - ``` - - name: Use `or` on foreign tables - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('id, cities(*)') - .or('name.eq.Wellington,name.eq.Paris', { foreignTable: "cities" }) - ``` - - .not(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.not' - notes: | - - `.not()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```js - .not('name','eq','Paris') - .not('arraycol','cs','{"a","b"}') // Use Postgres array {} for array column and 'cs' for contains. - .not('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .not('id','in','(6,7)') // Use Postgres list () for in filter. - .not('id','in',`(${arr})`) // You can insert a javascript array. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .not('name', 'eq', 'Paris') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .not('name', 'eq', 'Paris') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .not('name', 'eq', 'Paris') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .not('name', 'eq', 'Paris') - ``` - - .match(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.match' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .match({name: 'Beijing', country_id: 156}) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .match({name: 'Beijing', country_id: 156}) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .match({name: 'Beijing', country_id: 156}) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .match({name: 'Beijing', country_id: 156}) - ``` - - .eq(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.eq' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The shire') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .eq('name', 'San Francisco') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .eq('name', 'Mordor') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .eq('name', 'San Francisco') - ``` - - .neq(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.neq' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .neq('name', 'The shire') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .neq('name', 'San Francisco') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .neq('name', 'Mordor') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .neq('name', 'Lagos') - ``` - - .gt(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.gt' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gt('country_id', 250) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .gt('country_id', 250) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .gt('country_id', 250) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .gt('country_id', 250) - ``` - - .gte(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.gte' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gte('country_id', 250) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .gte('country_id', 250) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .gte('country_id', 250) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .gte('country_id', 250) - ``` - - .lt(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.lt' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lt('country_id', 250) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .lt('country_id', 250) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .lt('country_id', 250) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .lt('country_id', 250) - ``` - - .lte(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.lte' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lte('country_id', 250) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .lte('country_id', 250) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .lte('country_id', 250) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .lte('country_id', 250) - ``` - - .like(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.like' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .like('name', '%la%') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .like('name', '%la%') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .like('name', '%la%') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .like('name', '%la%') - ``` - - .ilike(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.ilike' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .ilike('name', '%la%') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .ilike('name', '%la%') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .ilike('name', '%la%') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .ilike('name', '%la%') - ``` - - .is(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.is' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .is('name', null) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .is('name', null) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .is('name', null) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .is('name', null) - ``` - - .in(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.in' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .in('name', ['Rio de Janeiro', 'San Francisco']) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .in('name', ['Rio de Janeiro', 'San Francisco']) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .in('name', ['Rio de Janeiro', 'San Francisco']) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .in('name', ['Rio de Janeiro', 'San Francisco']) - ``` - - .contains(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.cs' - notes: | - - `.contains()` can work on array columns or range columns. - It is very useful for finding rows where a tag array contains all the values in the filter array. - - ```js - .contains('arraycol',["a","b"]) // You can use a javascript array for an array column - .contains('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .contains('rangecol','(1,2]') // Use Postgres range syntax for range column. - .contains('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .contains('main_exports', ['oil']) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .contains('main_exports', ['oil']) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .contains('main_exports', ['oil']) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .contains('main_exports', ['oil']) - ``` - - .containedBy(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.cd' - notes: | - - `.containedBy()` can work on array columns or range columns. - - ```js - .containedBy('arraycol',["a","b"]) // You can use a javascript array for an array column - .containedBy('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .containedBy('rangecol','(1,2]') // Use Postgres range syntax for range column. - .containedBy('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .containedBy('main_exports', ['cars', 'food', 'machine']) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .containedBy('main_exports', ['orks', 'surveillance', 'evil']) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .containedBy('main_exports', ['cars', 'food', 'machine']) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .containedBy('main_exports', ['cars', 'food', 'machine']) - ``` - - .rangeLt(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.sl' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLt('population_range_millions', '[150, 250]') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeLt('population_range_millions', '[150, 250]') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .rangeLt('population_range_millions', '[150, 250]') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeLt('population_range_millions', '[150, 250]') - ``` - - .rangeGt(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.sr' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGt('population_range_millions', '[150, 250]') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeGt('population_range_millions', '[150, 250]') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .rangeGt('population_range_millions', '[150, 250]') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeGt('population_range_millions', '[150, 250]') - ``` - - .rangeGte(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.nxl' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGte('population_range_millions', '[150, 250]') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeGte('population_range_millions', '[150, 250]') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .rangeGte('population_range_millions', '[150, 250]') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeGte('population_range_millions', '[150, 250]') - ``` - - .rangeLte(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.nxr' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLte('population_range_millions', '[150, 250]') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeLte('population_range_millions', '[150, 250]') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .rangeLte('population_range_millions', '[150, 250]') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeLte('population_range_millions', '[150, 250]') - ``` - - .rangeAdjacent(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.adj' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeAdjacent('population_range_millions', '[70, 185]') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeAdjacent('population_range_millions', '[70, 185]') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .rangeAdjacent('population_range_millions', '[70, 185]') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeAdjacent('population_range_millions', '[70, 185]') - ``` - - .overlaps(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.ov' - notes: | - - `.overlaps()` can work on array columns or range columns. - - ```js - .overlaps('arraycol',["a","b"]) // You can use a javascript array for an array column - .overlaps('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .overlaps('rangecol','(1,2]') // Use Postgres range syntax for range column. - .overlaps('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .overlaps('main_exports', ['computers', 'minerals']) - ``` - - name: With `update()` - js: | - ```js - let countries = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .overlaps('main_exports', ['computers', 'minerals']) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .overlaps('main_exports', ['computers', 'minerals']) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .overlaps('main_exports', ['computers', 'minerals']) - ``` - - .textSearch(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.fts' - examples: - - name: Text search - js: | - ```js - const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - config: 'english' - }) - ``` - - name: Basic normalization - description: Uses PostgreSQL's `plainto_tsquery` function. - js: | - ```js - const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - type: 'plain', - config: 'english' - }) - ``` - - name: Full normalization - description: Uses PostgreSQL's `phraseto_tsquery` function. - js: | - ```js - const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - type: 'phrase', - config: 'english' - }) - ``` - - name: Websearch - description: | - Uses PostgreSQL's `websearch_to_tsquery` function. - This function will never raise syntax errors, which makes it possible to use raw user-supplied input for search, and can be used - with advanced operators. - - - `unquoted text`: text not inside quote marks will be converted to terms separated by & operators, as if processed by plainto_tsquery. - - `"quoted text"`: text inside quote marks will be converted to terms separated by <-> operators, as if processed by phraseto_tsquery. - - `OR`: the word “or” will be converted to the | operator. - - `-`: a dash will be converted to the ! operator. - - js: | - ```js - const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat or cat'`, { - type: 'websearch', - config: 'english' - }) - ``` - - .filter(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.filter' - notes: | - - `.filter()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values, so it should only be used as an escape hatch in case other filters don't work. - ```js - .filter('arraycol','cs','{"a","b"}') // Use Postgres array {} for array column and 'cs' for contains. - .filter('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .filter('id','in','(6,7)') // Use Postgres list () for in filter. - .filter('id','in',`(${arr})`) // You can insert a javascript array. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .filter('name', 'in', '("Paris","Tokyo")') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .filter('name', 'in', '("Paris","Tokyo")') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .filter('name', 'in', '("Paris","Tokyo")') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .filter('name', 'in', '("Paris","Tokyo")') - ``` - - name: Filter embedded resources - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, countries ( name )') - .filter('countries.name', 'in', '("France","Japan")') - ``` diff --git a/web/spec/supabase_js_v2_ref.yml b/web/spec/supabase_js_v2_ref.yml deleted file mode 100644 index 4de801016e3..00000000000 --- a/web/spec/supabase_js_v2_ref.yml +++ /dev/null @@ -1,2595 +0,0 @@ -openref: 0.1 - -info: - id: reference/supabase-js - title: Supabase Client - description: | - - Supabase JavaScript. - - definition: spec/tsdoc_v1/combined.json - slugPrefix: '/' - libraries: - - name: 'JavaScript' - id: 'js' - version: '0.0.1' - docs: - path: sdk/ - sidebar: - - name: 'Auth' - items: - - auth.signUp() - - auth.signIn() - - auth.signOut() - - auth.session() - - auth.user() - - auth.update() - - auth.setAuth() - - auth.onAuthStateChange() - - auth.api.getUser() - - auth.api.resetPasswordForEmail() - - name: 'Auth (Server Only)' - items: - - auth.api.listUsers() - - auth.api.createUser() - - auth.api.deleteUser() - - auth.api.generateLink() - - auth.api.inviteUserByEmail() - - auth.api.sendMobileOTP() - - auth.api.updateUserById() - - name: 'Functions' - items: - - invoke() - - name: 'Database' - items: - - select() - - insert() - - update() - - upsert() - - delete() - - rpc() - - name: 'Realtime' - items: - - subscribe() - - removeSubscription() - - removeAllSubscriptions() - - getSubscriptions() - - name: 'Storage' - items: - - storage.createBucket() - - storage.getBucket() - - storage.listBuckets() - - storage.updateBucket() - - storage.deleteBucket() - - storage.emptyBucket() - - storage.from.upload() - - storage.from.download() - - storage.from.list() - - storage.from.update() - - storage.from.move() - - storage.from.copy() - - storage.from.remove() - - storage.from.createSignedUrl() - - storage.from.createSignedUrls() - - storage.from.getPublicUrl() - - name: 'Modifiers' - items: - - Using Modifiers - - limit() - - order() - - range() - - single() - - maybeSingle() - - name: 'Filters' - items: - - Using Filters - - .or() - - .not() - - .match() - - .eq() - - .neq() - - .gt() - - .gte() - - .lt() - - .lte() - - .like() - - .ilike() - - .is() - - .in() - - .contains() - - .containedBy() - - .rangeLt() - - .rangeGt() - - .rangeGte() - - .rangeLte() - - .rangeAdjacent() - - .overlaps() - - .textSearch() - - .filter() - -pages: - auth.signUp(): - title: 'signUp()' - $ref: '@supabase/gotrue-js.GoTrueClient.signUp' - notes: | - - By default, the user will need to verify their email address before logging in. If you would like to change this, you can disable "Email Confirmations" by going to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) - - If "Email Confirmations" is turned on, a `user` is returned but `session` will be null - - If "Email Confirmations" is turned off, both a `user` and a `session` will be returned - - When the user confirms their email address, they will be redirected to localhost:3000 by default. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) - - If signUp() is called for an existing confirmed user: - - If "Enable email confirmations" is enabled on the "Authentication" -> "Settings" page, an obfuscated / fake user object will be returned. - - If "Enable email confirmations" is disabled, an error with a message "User already registered" will be returned. - - To check if a user already exists, refer to getUser(). - examples: - - name: Sign up. - isSpotlight: true - js: | - ```js - const { user, session, error } = await supabase.auth.signUp({ - email: 'example@email.com', - password: 'example-password', - }) - ``` - - name: Sign up with additional user meta data. - isSpotlight: true - js: | - ```js - const { user, session, error } = await supabase.auth.signUp( - { - email: 'example@email.com', - password: 'example-password', - }, - { - data: { - first_name: 'John', - age: 27, - } - } - ) - ``` - - name: Sign up with third-party providers. - hideCodeBlock: true - description: | - You can sign up with OAuth providers using the [`signIn()`](/docs/reference/javascript/auth-signin#sign-in-using-third-party-providers) method. - - name: Sign up with Phone. - description: | - Supabase supports Phone Auth. After a user has verified their number, they can use the [`signIn()`](/docs/reference/javascript/auth-signin#sign-in-using-phone) method. - js: | - ```js - const { user, session, error } = await supabase.auth.signUp({ - phone: '+13334445555', - password: 'some-password', - }) - - // After receiving an SMS with One Time Password. - let { session, error } = await supabase.auth.verifyOTP({ - phone: '+13334445555', - token: '123456', - }) - ``` - - auth.signIn(): - title: 'signIn()' - $ref: '@supabase/gotrue-js.GoTrueClient.signIn' - notes: | - - A user can sign up either via email or OAuth. - - If you provide `email` without a `password`, the user will be sent a magic link. - - The magic link's destination URL is determined by the SITE_URL config variable. To change this, you can go to Authentication -> Settings on [app.supabase.com](https://app.supabase.com) - - Specifying a `provider` will open the browser to the relevant login page. - examples: - - name: Sign in with email. - isSpotlight: true - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - email: 'example@email.com', - password: 'example-password', - }) - ``` - - name: Sign in with magic link. - description: If no password is provided, the user will be sent a "magic link" to their email address, which they can click to open your application with a valid session. By default, a given user can only request a Magic Link once every 60 seconds. - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - email: 'example@email.com' - }) - ``` - - name: Sign in using third-party providers. - description: Supabase supports many different [third-party providers](https://supabase.com/docs/guides/auth#providers). - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - // provider can be 'github', 'google', 'gitlab', and more - provider: 'github' - }) - ``` - - name: Sign in with Phone. - description: Supabase supports Phone Auth. - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - phone: '+13334445555', - password: 'some-password', - }) - ``` - - name: Sign in with redirect. - description: | - Note that the `redirectTo` param is only relevant for OAuth logins, where the login flow is managed by - the Auth server. If you are using email/phone logins you should set up your own redirects (within the email/sms template). - - Sometimes you want to control where the user is redirected to after they are logged in. Supabase supports this for - any URL path on your website (the URL must either be on the same domain as your Site URL [see Auth>Settings in dashboard], or must match one of the Additional Redirect URLs [also in Auth>Settings]). - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - provider: 'github' - }, { - redirectTo: 'https://example.com/welcome' - }) - ``` - - name: Sign in with scopes. - description: | - If you need additional data from an OAuth provider, you can include a space-separated list of scopes in your request to get back an OAuth provider token. - You may also need to specify the scopes in the provider's OAuth app settings, depending on the provider. - js: | - ```js - const { user, session, error } = await supabase.auth.signIn({ - provider: 'github' - }, { - scopes: 'repo gist notifications' - }) - const oAuthToken = session.provider_token // use to access provider API - ``` - - name: Sign in using a refresh token (e.g. in React Native). - description: | - If you are completing a sign up or login in a React Native app you can pass the refresh token obtained from the provider to obtain a session. - js: | - ```js - // An example using Expo's `AuthSession` - const redirectUri = AuthSession.makeRedirectUri({ useProxy: false }); - const provider = 'google'; - - AuthSession.startAsync({ - authUrl: `https://MYSUPABASEAPP.supabase.co/auth/v1/authorize?provider=${provider}&redirect_to=${redirectUri}`, - returnUrl: redirectUri, - }).then(async (response: any) => { - if (!response) return; - const { user, session, error } = await supabase.auth.signIn({ - refreshToken: response.params?.refresh_token, - }); - }); - ``` - - auth.signOut(): - title: 'signOut()' - $ref: '@supabase/gotrue-js.GoTrueClient.signOut' - examples: - - name: Sign out - isSpotlight: true - js: | - ```js - const { error } = await supabase.auth.signOut() - ``` - - auth.session(): - title: 'session()' - $ref: '@supabase/gotrue-js.GoTrueClient.session' - examples: - - name: Get the session data - isSpotlight: true - js: | - ```js - const session = supabase.auth.session() - ``` - - auth.user(): - title: 'user()' - $ref: '@supabase/gotrue-js.GoTrueClient.user' - notes: | - This method gets the user object from memory. - examples: - - name: Get the logged in user - isSpotlight: true - js: | - ```js - const user = supabase.auth.user() - ``` - - auth.update(): - title: 'update()' - $ref: '@supabase/gotrue-js.GoTrueClient.update' - notes: | - User email: Email updates will send an email to both the user's current and new email with a confirmation link by default. - To toggle this behavior off and only send a single confirmation link to the new email, toggle "Double confirm email changes" under "Authentication" -> "Settings" off. - - - User metadata: It's generally better to store user data in a table inside your public schema (i.e. `public.users`). - Use the `update()` method if you have data which rarely changes or is specific only to the logged in user. - examples: - - name: Update email for authenticated user. - description: Sends a "Confirm Email Change" email to the new email address. - isSpotlight: true - js: | - ```js - const { user, error } = await supabase.auth.update({email: 'new@email.com'}) - ``` - - name: Update password for authenticated user. - isSpotlight: true - js: | - ```js - const { user, error } = await supabase.auth.update({password: 'new password'}) - ``` - - name: Update a user's metadata. - isSpotlight: true - js: | - ```js - const { user, error } = await supabase.auth.update({ - data: { hello: 'world' } - }) - ``` - - auth.setAuth(): - title: 'setAuth()' - $ref: '@supabase/gotrue-js.GoTrueClient.setAuth' - examples: - - name: Basic example. - description: This is most useful on server-side functions where you cannot log the user in, but have access to the user's access token. - isSpotlight: true - js: | - ```js - function apiFunction(req, res) { - // Assuming the access token was sent as a header "X-Supabase-Auth" - const { access_token } = req.get('X-Supabase-Auth') - - // You can now use it within a Supabase Client - const supabase = createClient("https://xyzcompany.supabase.co", "public-anon-key") - const { user, error } = supabase.auth.setAuth(access_token) - - // This client will now send requests as this user - const { data } = await supabase.from('your_table').select() - } - ``` - - name: With Express. - isSpotlight: true - js: | - ```js - - /** - * Make a request from the client to your server function - */ - async function makeApiRequest() { - const token = newClient.session()?.access_token - - await fetch('https://example.com/withAuth', { - method: 'GET', - withCredentials: true, - credentials: 'include', - headers: { - 'Content-Type': 'application/json', - 'Authorization': bearer, // Your own auth - 'X-Supabase-Auth': token, // Set the Supabase user - } - }) - } - - /** - * Use the Auth token in your server-side function. - */ - async function apiFunction(req, res) { - const { access_token } = req.get('X-Supabase-Auth') - - // You can now use it within a Supabase Client - const supabase = createClient("https://xyzcompany.supabase.co", "public-anon-key") - const { user, error } = supabase.auth.setAuth(access_token) - - // This client will now send requests as this user - const { data } = await supabase.from('your_table').select() - } - ``` - - auth.onAuthStateChange(): - title: 'onAuthStateChange()' - $ref: '@supabase/gotrue-js.GoTrueClient.onAuthStateChange' - examples: - - name: Listen to auth changes - isSpotlight: true - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - console.log(event, session) - }) - ``` - - name: Listen to sign in - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'SIGNED_IN') console.log('SIGNED_IN', session) - }) - ``` - - name: Listen to sign out - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'SIGNED_OUT') console.log('SIGNED_OUT', session) - }) - ``` - - name: Listen to token refresh - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'TOKEN_REFRESHED') console.log('TOKEN_REFRESHED', session) - }) - ``` - - name: Listen to user updates - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'USER_UPDATED') console.log('USER_UPDATED', session) - }) - ``` - - name: Listen to user deleted - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'USER_DELETED') console.log('USER_DELETED', session) - }) - ``` - - name: Listen to password recovery events - js: | - ```js - supabase.auth.onAuthStateChange((event, session) => { - if (event == 'PASSWORD_RECOVERY') console.log('PASSWORD_RECOVERY', session) - }) - ``` - auth.api.getUser(): - title: 'getUser()' - $ref: '@supabase/gotrue-js.GoTrueApi.getUser' - notes: | - - Fetches the user object from the database instead of local storage. - - Note that user() fetches the user object from local storage which might not be the most updated. - - Requires the user's access_token. - examples: - - name: Fetch the user object using the access_token jwt. - isSpotlight: true - js: | - ```js - const { user, error } = await supabase.auth.api.getUser( - 'ACCESS_TOKEN_JWT', - ) - ``` - - auth.api.listUsers(): - title: 'listUsers()' - $ref: '@supabase/gotrue-js.GoTrueApi.listUsers' - notes: | - - Requires a `service_role` key. - - This function should be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Get a full list of users. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.listUsers() - ``` - - auth.api.createUser(): - title: 'createUser()' - $ref: '@supabase/gotrue-js.GoTrueApi.createUser' - notes: | - - Requires a `service_role` key. - - This function should be called on a server. Never expose your `service_role` key in the browser. - - If you do not provide the `email_confirm` and `phone_confirm` options to this function, both will default to false. - examples: - - name: Create a new user. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.createUser({ - email: 'user@email.com', - password: 'password', - user_metadata: { name: 'Yoda' } - }) - ``` - - name: Auto-confirm email. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.createUser({ - email: 'user@email.com', - email_confirm: true - }) - ``` - - name: Auto-confirm phone. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.createUser({ - phone: '1234567890', - phone_confirm: true - }) - ``` - - auth.api.deleteUser(): - title: 'deleteUser()' - $ref: '@supabase/gotrue-js.GoTrueApi.deleteUser' - notes: | - - Requires a `service_role` key. - - This function should be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Remove a user completely. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.deleteUser( - '715ed5db-f090-4b8c-a067-640ecee36aa0' - ) - ``` - - auth.api.inviteUserByEmail(): - title: 'inviteUserByEmail()' - $ref: '@supabase/gotrue-js.GoTrueApi.inviteUserByEmail' - notes: | - - Requires a `service_role` key. - - This function should only be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Basic example. - isSpotlight: false - js: | - ```js - const { data: user, error } = await supabase.auth - .api - .inviteUserByEmail('email@example.com') - ``` - - auth.api.sendMobileOTP(): - title: 'sendMobileOTP()' - $ref: '@supabase/gotrue-js.GoTrueApi.sendMobileOTP' - notes: | - - Requires a `service_role` key. - - This function should only be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Basic example. - isSpotlight: false - js: | - ```js - const { data: user, error } = await supabase.auth - .api - .sendMobileOTP('12345879') - ``` - - auth.api.resetPasswordForEmail(): - title: 'resetPasswordForEmail()' - $ref: '@supabase/gotrue-js.GoTrueApi.resetPasswordForEmail' - notes: | - Sends a reset request to an email address. - - When the user clicks the reset link in the email they will be forwarded to: - - `#access_token=x&refresh_token=y&expires_in=z&token_type=bearer&type=recovery` - - Your app must detect `type=recovery` in the fragment and display a password reset form to the user. - - You should then use the access_token in the url and new password to update the user as follows: - - ```js - const { error, data } = await supabase.auth.api - .updateUser(access_token, { password : new_password }) - ``` - examples: - - name: Reset password - isSpotlight: true - js: | - ```js - const { data, error } = await supabase.auth.api - .resetPasswordForEmail('user@email.com') - ``` - - auth.api.generateLink(): - title: 'generateLink()' - $ref: '@supabase/gotrue-js.GoTrueApi.generateLink' - notes: | - - Requires a `service_role` key. - - This function should only be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Generate invite link. - isSpotlight: false - js: | - ```js - const { data: user, error } = await supabase.auth.api.generateLink( - 'invite', - 'email@example.com' - ) - ``` - - auth.api.updateUserById(): - title: 'updateUserById()' - $ref: '@supabase/gotrue-js.GoTrueApi.updateUserById' - notes: | - - Requires a `service_role` key. - - This function should only be called on a server. Never expose your `service_role` key in the browser. - examples: - - name: Updates a user's email. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { email: 'new@email.com' } - ) - ``` - - name: Updates a user's password. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { password: 'new_password' } - ) - ``` - - name: Updates a user's metadata. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { user_metadata: { hello: 'world' } } - ) - ``` - - name: Updates a user's app_metadata. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { app_metadata: { plan: 'trial' } } - ) - ``` - - name: Confirms a user's email address. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { email_confirm: true } - ) - ``` - - name: Confirms a user's phone number. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.auth.api.updateUserById( - '6aa5d0d4-2a9f-4483-b6c8-0cf4c6c98ac4', - { phone_confirm: true } - ) - ``` - invoke(): - title: 'invoke()' - description: | - Invokes a Supabase Function. - $ref: '@supabase/functions-js.FunctionsClient.invoke' - notes: | - - Requires an Authorization header. - - Invoke params generally match the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) spec. - examples: - - name: Basic invocation. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.functions.invoke('hello', { - body: JSON.stringify({ foo: 'bar' }) - }) - ``` - - name: Specifying response type. - description: | - By default, `invoke()` will parse the response as JSON. You can parse the response in the following formats: `json`, `blob`, `text`, and `arrayBuffer`. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.functions.invoke('hello', { - responseType: 'text', - body: JSON.stringify({ foo: 'bar' }) - }) - ``` - - name: Parsing custom headers. - description: | - You can pass custom headers to your function. Note: supabase-js automatically passes the `Authorization` header with the signed in user's JWT. - isSpotlight: true - js: | - ```js - const { data: user, error } = await supabase.functions.invoke('hello', { - headers: { - "my-custom-header": 'my-custom-header-value' - }, - body: JSON.stringify({ foo: 'bar' }) - }) - ``` - - select(): - title: 'Fetch data: select()' - $ref: '@supabase/postgrest-js."lib/PostgrestQueryBuilder".PostgrestQueryBuilder.select' - notes: | - - By default, Supabase projects will return a maximum of 1,000 rows. This setting can be changed in Project API Settings. It's recommended that you keep it low to limit the payload size of accidental or malicious requests. You can use `range()` queries to paginate through your data. - - `select()` can be combined with [Modifiers](/docs/reference/javascript/using-modifiers) - - `select()` can be combined with [Filters](/docs/reference/javascript/using-filters) - - If using the Supabase hosted platform `apikey` is technically a reserved keyword, since the API gateway will pluck it out for authentication. [It should be avoided as a column name](https://github.com/supabase/supabase/issues/5465). - examples: - - name: Getting your data - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select() - ``` - - name: Selecting specific columns - description: You can select specific fields from your tables. - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name') - ``` - - name: Query foreign tables - description: If your database has foreign key relationships, you can query related tables too. - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select(` - name, - cities ( - name - ) - `) - ``` - note: | - What about join tables - If you're in a situation where your tables are **NOT** directly related, but instead are joined by a _join table_, - you can still use the `select()` method to query the related data. The PostgREST engine detects the relationship automatically. - For more details, [follow the link](https://postgrest.org/en/latest/api.html#embedding-through-join-tables). - - name: Query the same foreign table multiple times - description: | - Sometimes you will need to query the same foreign table twice. - In this case, you can use the name of the joined column to identify - which join you intend to use. For convenience, you can also give an - alias for each column. For example, if we had a shop of products, - and we wanted to get the supplier and the purchaser at the same time - (both in the users) table: - js: | - ```js - const { data, error } = await supabase - .from('products') - .select(` - id, - supplier:supplier_id ( name ), - purchaser:purchaser_id ( name ) - `) - ``` - - name: Filtering with inner joins - description: | - If you want to filter a table based on a child table's values you can use the `!inner()` function. For example, if you wanted - to select all rows in a `message` table which belong to a user with the `username` "Jane": - js: | - ```js - const { data, error } = await supabase - .from('messages') - .select('*, users!inner(*)') - .eq('users.username', 'Jane') - ``` - - name: Querying with count option - description: | - You can get the number of rows by using the count option. - Allowed values for count option are `null`, [exact](https://postgrest.org/en/stable/api.html#exact-count), [planned](https://postgrest.org/en/stable/api.html#planned-count) and [estimated](https://postgrest.org/en/stable/api.html#estimated-count). - js: | - ```js - const { data, error, count } = await supabase - .from('cities') - .select('name', { count: 'exact' }) // if you don't want to return any rows, you can use { count: 'exact', head: true } - ``` - - name: Querying JSON data - description: | - If you have data inside of a JSONB column, you can apply select - and query filters to the data values. Postgres offers a - [number of operators](https://www.postgresql.org/docs/current/functions-json.html) - for querying JSON data. Also see - [PostgREST docs](http://postgrest.org/en/v7.0.0/api.html#json-columns) for more details. - js: | - ```js - const { data, error } = await supabase - .from('users') - .select(` - id, name, - address->street - `) - .eq('address->postcode', 90210) - ``` - - name: Return data as CSV - description: | - By default the data is returned in JSON format, however you can also request for it to be returned as Comma Separated Values. - js: | - ```js - const { data, error } = await supabase - .from('users') - .select() - .csv() - ``` - - name: Aborting requests in-flight - description: | - You can use an [`AbortController`](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) to abort requests. Note that `status` and `statusText` doesn't mean anything for aborted requests, since the request wasn't actually fulfilled. - js: | - ```js - const ac = new AbortController() - supabase - .from('very_big_table') - .select() - .abortSignal(ac.signal) - .then(console.log) - ac.abort() - // { - // error: { - // message: 'FetchError: The user aborted a request.', - // details: '', - // hint: '', - // code: '' - // }, - // data: null, - // body: null, - // count: null, - // status: 400, - // statusText: 'Bad Request' - // } - ``` - - insert(): - title: 'Create data: insert()' - $ref: '@supabase/postgrest-js."lib/PostgrestQueryBuilder".PostgrestQueryBuilder.insert' - notes: | - - By default, every time you run `insert()`, the client library will make a `select` to return the full record. - This is convenient, but it can also cause problems if your Policies are not configured to allow the `select` operation. - If you are using Row Level Security and you are encountering problems, try setting the `returning` param to `minimal`. - examples: - - name: Create a record - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .insert([ - { name: 'The Shire', country_id: 554 } - ]) - ``` - - name: Bulk create - description: | - When running a bulk create, the operation is handled in a single transaction. If any of the inserts fail, all other operations are - rolled back. - js: | - ```js - const { data, error } = await supabase - .from('cities') - .insert([ - { name: 'The Shire', country_id: 554 }, - { name: 'Rohan', country_id: 555 }, - ]) - ``` - - name: Upsert - description: | - For upsert, if set to true, primary key columns would need to be included - in the data parameter in order for an update to properly happen. Also, primary keys - used must be natural, not surrogate. There are however, - [workarounds](https://github.com/PostgREST/postgrest/issues/1118) - for surrogate primary keys. - js: | - ```js - const { data, error } = await supabase - .from('cities') - .insert( - [ - { name: 'The Shire', country_id: 554 }, - { name: 'Rohan', country_id: 555 }, - { name: 'City by the Bay', country_id:840} - ], - { upsert: true }) - ``` - - update(): - title: 'Modify data: update()' - $ref: '@supabase/postgrest-js."lib/PostgrestQueryBuilder".PostgrestQueryBuilder.update' - notes: | - - `update()` should always be combined with [Filters](/docs/reference/javascript/using-filters) to target the item(s) you wish to update. - examples: - - name: Updating your data - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Middle Earth' }) - .match({ name: 'Auckland' }) - ``` - - name: Updating JSON data - description: | - Postgres offers a - [number of operators](https://www.postgresql.org/docs/current/functions-json.html) - for working with JSON data. Right now it is only possible to update an entire JSON document, - but we are [working on ideas](https://github.com/PostgREST/postgrest/issues/465) for updating individual keys. - js: | - ```js - const { data, error } = await supabase - .from('users') - .update(` - address: { - street: 'Melrose Place', - postcode: 90210 - } - `) - .eq('address->postcode', 90210) - ``` - - upsert(): - title: 'Upsert data: upsert()' - $ref: '@supabase/postgrest-js."lib/PostgrestQueryBuilder".PostgrestQueryBuilder.upsert' - notes: | - - Primary keys should be included in the data payload in order for an update to work correctly. - - Primary keys must be natural, not surrogate. There are however, [workarounds](https://github.com/PostgREST/postgrest/issues/1118) for surrogate primary keys. - examples: - - name: Upsert your data - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('messages') - .upsert({ id: 3, message: 'foo', username: 'supabot' }) - ``` - - name: Bulk Upsert your data - isSpotlight: false - js: | - ```js - const { data, error } = await supabase - .from('messages') - .upsert([ - { id: 3, message: 'foo', username: 'supabot' }, - { id: 4, message: 'bar', username: 'supabot' } - ]) - ``` - - name: Upserting into tables with constraints - description: | - Running the following will cause supabase to upsert data into the `users` table. - If the username 'supabot' already exists, the `onConflict` argument tells supabase to overwrite that row - based on the column passed into `onConflict`. - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('users') - .upsert({ username: 'supabot' }, { onConflict: 'username' }) - ``` - - name: Return the exact number of rows - isSpotlight: true - js: | - ```js - const { data, error, count } = await supabase - .from('users') - .upsert({ - id: 3, message: 'foo', - username: 'supabot' - }, { - count: 'exact' - }) - ``` - - delete(): - title: 'Delete data: delete()' - $ref: '@supabase/postgrest-js."lib/PostgrestQueryBuilder".PostgrestQueryBuilder.delete' - notes: | - - `delete()` should always be combined with [filters](/docs/reference/javascript/using-filters) to target the item(s) you wish to delete. - - If you use `delete()` with filters and you have - [RLS](/docs/learn/auth-deep-dive/auth-row-level-security) enabled, only - rows visible through `SELECT` policies are deleted. Note that by default - no rows are visible, so you need at least one `SELECT`/`ALL` policy that - makes the rows visible. - examples: - - name: Delete records - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .match({ id: 666 }) - ``` - - rpc(): - title: 'Postgres functions: rpc()' - description: | - You can call Postgres functions as a "Remote Procedure Call". - - That's a fancy way of saying that you can put some logic into your database then call it from anywhere. - It's especially useful when the logic rarely changes - like password resets and updates. - - ```sql - create or replace function hello_world() returns text as $$ - select 'Hello world'; - $$ language sql; - ``` - $ref: '@supabase/postgrest-js."PostgrestClient".PostgrestClient.rpc' - examples: - - name: Call a Postgres function - isSpotlight: true - description: This is an example of invoking a Postgres function with no parameters. - js: | - ```js - const { data, error } = await supabase - .rpc('hello_world') - ``` - - name: With Parameters - js: | - ```js - const { data, error } = await supabase - .rpc('echo_city', { name: 'The Shire' }) - ``` - - name: Bulk processing - description: You can process large payloads at once using [array parameters](https://postgrest.org/en/stable/api.html#calling-functions-with-array-parameters). - js: | - ```js - const { data, error } = await postgrest - .rpc('echo_cities', { names: ['The Shire', 'Mordor'] }) - ``` - - name: With filters - description: | - Postgres functions that return tables can also be combined with - [Modifiers](/docs/reference/javascript/using-modifiers) and - [Filters](/docs/reference/javascript/using-filters). - js: | - ```js - const { data, error } = await supabase - .rpc('echo_all_cities') - .select('name, population') - .eq('name', 'The Shire') - ``` - - name: With count option - description: | - You can specify a count option to get the row count along with your data. - Allowed values for count option are `null`, `exact`, `planned` and `estimated`. - js: | - ```js - const { data, error, count } = await supabase - .rpc('hello_world', {}, { count: 'exact' }) - ``` - - subscribe(): - title: 'on().subscribe()' - $ref: '@supabase/supabase-js.lib/SupabaseQueryBuilder.SupabaseQueryBuilder.on' - notes: | - - Realtime is disabled by default for new Projects for better database performance and security. You can turn it on by [managing replication](/docs/guides/api#managing-realtime). - - If you want to receive the "previous" data for updates and deletes, you will need to set `REPLICA IDENTITY` to `FULL`, like this: `ALTER TABLE your_table REPLICA IDENTITY FULL;` - examples: - - name: Listen to all database changes - isSpotlight: true - js: | - ```js - const mySubscription = supabase - .from('*') - .on('*', payload => { - console.log('Change received!', payload) - }) - .subscribe() - ``` - - name: Listening to a specific table - js: | - ```js - const mySubscription = supabase - .from('countries') - .on('*', payload => { - console.log('Change received!', payload) - }) - .subscribe() - ``` - - name: Listening to inserts - js: | - ```js - const mySubscription = supabase - .from('countries') - .on('INSERT', payload => { - console.log('Change received!', payload) - }) - .subscribe() - ``` - - name: Listening to updates - description: | - By default, Supabase will send only the updated record. If you want to receive the previous values as well you can - enable full replication for the table you are listening too: - - ```sql - alter table "your_table" replica identity full; - ``` - js: | - ```js - const mySubscription = supabase - .from('countries') - .on('UPDATE', payload => { - console.log('Change received!', payload) - }) - .subscribe() - ``` - - name: Listening to deletes - description: | - By default, Supabase does not send deleted records. If you want to receive the deleted record you can - enable full replication for the table you are listening too: - - ```sql - alter table "your_table" replica identity full; - ``` - js: | - ```js - const mySubscription = supabase - .from('countries') - .on('DELETE', payload => { - console.log('Change received!', payload) - }) - .subscribe() - ``` - - name: Listening to multiple events - description: You can chain listeners if you want to listen to multiple events for each table. - js: | - ```js - const mySubscription = supabase - .from('countries') - .on('INSERT', handleRecordInserted) - .on('DELETE', handleRecordDeleted) - .subscribe() - ``` - - name: Listening to row level changes - description: You can listen to individual rows using the format `{table}:{col}=eq.{val}` - where `{col}` is the column name, and `{val}` is the value which you want to match. - notes: | - - ``eq`` filter works with all database types as under the hood, it's casting both the filter value and the database value to the correct type and then comparing them. - js: | - ```js - const mySubscription = supabase - .from('countries:id=eq.200') - .on('UPDATE', handleRecordUpdated) - .subscribe() - ``` - - removeSubscription(): - title: 'removeSubscription()' - $ref: '@supabase/supabase-js.index.SupabaseClient.removeSubscription' - notes: | - - Removing subscriptions is a great way to maintain the performance of your project's database. Supabase will automatically handle cleanup 30 seconds after a user is disconnected, but unused subscriptions may cause degradation as more users are simultaneously subscribed. - examples: - - name: Remove a subscription - isSpotlight: true - js: | - ```js - supabase.removeSubscription(mySubscription) - ``` - - removeAllSubscriptions(): - title: 'removeAllSubscriptions()' - $ref: '@supabase/supabase-js.index.SupabaseClient.removeAllSubscriptions' - notes: | - - Removing subscriptions is a great way to maintain the performance of your project's database. Supabase will automatically handle cleanup 30 seconds after a user is disconnected, but unused subscriptions may cause degradation as more users are simultaneously subscribed. - examples: - - name: Removes all subscriptions - isSpotlight: true - js: | - ```js - supabase.removeAllSubscriptions() - ``` - - getSubscriptions(): - title: 'getSubscriptions()' - $ref: '@supabase/supabase-js.index.SupabaseClient.getSubscriptions' - examples: - - name: Get all subscriptions - isSpotlight: true - js: | - ```js - const subscriptions = supabase.getSubscriptions() - ``` - - storage.listBuckets(): - title: 'listBuckets()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.listBuckets' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - examples: - - name: List buckets - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .listBuckets() - ``` - - storage.getBucket(): - title: 'getBucket()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.getBucket' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: none - examples: - - name: Get bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .getBucket('avatars') - ``` - - storage.createBucket(): - title: 'createBucket()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.createBucket' - notes: | - - Policy permissions required: - - `buckets` permissions: `insert` - - `objects` permissions: none - examples: - - name: Create bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .createBucket('avatars', { public: false }) - ``` - - storage.emptyBucket(): - title: 'emptyBucket()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.emptyBucket' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` - - `objects` permissions: `select` and `delete` - examples: - - name: Empty bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .emptyBucket('avatars') - ``` - storage.updateBucket(): - title: 'updateBucket()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.updateBucket' - notes: | - - Policy permissions required: - - `buckets` permissions: `update` - - `objects` permissions: none - examples: - - name: Update bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .updateBucket('avatars', { public: false }) - ``` - - storage.deleteBucket(): - title: 'deleteBucket()' - $ref: '@supabase/storage-js."lib/StorageBucketApi".StorageBucketApi.deleteBucket' - notes: | - - Policy permissions required: - - `buckets` permissions: `select` and `delete` - - `objects` permissions: none - examples: - - name: Delete bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .deleteBucket('avatars') - ``` - - storage.from.upload(): - title: 'from.upload()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.upload' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `insert` - - For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Upload file using `ArrayBuffer` from base64 file data instead, see example below. - examples: - - name: Upload file - isSpotlight: true - js: | - ```js - const avatarFile = event.target.files[0] - const { data, error } = await supabase - .storage - .from('avatars') - .upload('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false - }) - ``` - - name: Upload file using `ArrayBuffer` from base64 file data - js: | - ```js - import { decode } from 'base64-arraybuffer' - - const { data, error } = await supabase - .storage - .from('avatars') - .upload('public/avatar1.png', decode('base64FileData'), { - contentType: 'image/png' - }) - ``` - - storage.from.update(): - title: 'from.update()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.update' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - - For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Update file using `ArrayBuffer` from base64 file data instead, see example below. - examples: - - name: Update file - isSpotlight: true - js: | - ```js - const avatarFile = event.target.files[0] - const { data, error } = await supabase - .storage - .from('avatars') - .update('public/avatar1.png', avatarFile, { - cacheControl: '3600', - upsert: false - }) - ``` - - name: Update file using `ArrayBuffer` from base64 file data - js: | - ```js - import {decode} from 'base64-arraybuffer' - - const { data, error } = await supabase - .storage - .from('avatars') - .update('public/avatar1.png', decode('base64FileData'), { - contentType: 'image/png' - }) - ``` - - storage.from.move(): - title: 'from.move()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.move' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - examples: - - name: Move file - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .move('public/avatar1.png', 'private/avatar2.png') - ``` - - storage.from.copy(): - title: 'from.copy()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.copy' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `update` and `select` - examples: - - name: Copy file - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .copy('public/avatar1.png', 'private/avatar2.png') - ``` - - storage.from.createSignedUrl(): - title: 'from.createSignedUrl()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.createSignedUrl' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - examples: - - name: Create Signed URL - isSpotlight: true - js: | - ```js - const { signedURL, error } = await supabase - .storage - .from('avatars') - .createSignedUrl('folder/avatar1.png', 60) - ``` - - storage.from.createSignedUrls(): - title: 'from.createSignedUrls()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.createSignedUrls' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - examples: - - name: Create Signed URLs - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .createSignedUrls(['folder/avatar1.png', 'folder/avatar2.png'], 60) - ``` - - storage.from.getPublicUrl(): - title: 'from.getPublicUrl()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.getPublicUrl' - notes: | - - The bucket needs to be set to public, either via [updateBucket()](/docs/reference/javascript/storage-updatebucket) or by going to Storage on [app.supabase.com](https://app.supabase.com), clicking the overflow menu on a bucket and choosing "Make public" - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: none - examples: - - name: Returns the URL for an asset in a public bucket - isSpotlight: true - js: | - ```js - const { publicURL, error } = supabase - .storage - .from('public-bucket') - .getPublicUrl('folder/avatar1.png') - ``` - - storage.from.download(): - title: 'from.download()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.download' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - examples: - - name: Download file - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .download('folder/avatar1.png') - ``` - - storage.from.remove(): - title: 'from.remove()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.remove' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `delete` and `select` - examples: - - name: Delete file - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .remove(['folder/avatar1.png']) - ``` - - storage.from.list(): - title: 'from.list()' - $ref: '@supabase/storage-js."lib/StorageFileApi".StorageFileApi.list' - notes: | - - Policy permissions required: - - `buckets` permissions: none - - `objects` permissions: `select` - examples: - - name: List files in a bucket - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .list('folder', { - limit: 100, - offset: 0, - sortBy: { column: 'name', order: 'asc' }, - }) - ``` - - name: Search files in a bucket - js: | - ```js - const { data, error } = await supabase - .storage - .from('avatars') - .list('folder', { - limit: 100, - offset: 0, - sortBy: { column: 'name', order: 'asc' }, - search: 'jon' - }) - ``` - - Using Modifiers: - description: | - Modifiers can be used on `select()` queries. - - If a Postgres function returns a table response, you can also apply modifiers to the `rpc()` function. - - limit(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.limit' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) - ``` - - name: With embedded resources - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .limit(1, { foreignTable: 'cities' }) - ``` - - order(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.order' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name', 'country_id') - .order('id', { ascending: false }) - ``` - - name: With embedded resources - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, cities(name)') - .eq('name', 'United States') - .order('name', {foreignTable: 'cities'}) - ``` - - range(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.range' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .range(0,3) - ``` - - single(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.single' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .limit(1) - .single() - ``` - - maybeSingle(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.maybeSingle' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'Singapore') - .maybeSingle() - ``` - - Using Filters: - description: | - Filters can be used on `select()`, `update()`, and `delete()` queries. - - If a Postgres function returns a table response, you can also apply filters. - - ### Applying Filters - - You must apply your filters to the end of your query. For example: - - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The Shire') // Correct - - const { data, error } = await supabase - .from('cities') - .eq('name', 'The Shire') // Incorrect - .select('name, country_id') - ``` - - ### Chaining - - Filters can be chained together to produce advanced queries. For example: - - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gte('population', 1000) - .lt('population', 10000) - ``` - - ### Conditional Chaining - - Filters can be built up one step at a time and then executed. For example: - - ```js - const filterByName = null - const filterPopLow = 1000 - const filterPopHigh = 10000 - - let query = supabase - .from('cities') - .select('name, country_id') - - if (filterByName) { query = query.eq('name', filterByName) } - if (filterPopLow) { query = query.gte('population', filterPopLow) } - if (filterPopHigh) { query = query.lt('population', filterPopHigh) } - - const { data, error } = await query - ``` - - .or(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.or' - notes: | - - `.or()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```js - .or('id.in.(6,7), arraycol.cs.{"a","b"}') // Use Postgres list () for in filter. Array {} for array column and 'cs' for contains. - .or(`id.in.(${arrList}),arraycol.cs.{${arr}}`) // You can insert a javascipt array for list or array on array column. - .or(`id.in.(${arrList}),rangecol.cs.[${arrRange})`) // You can insert a javascipt array for list or range on a range column. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .or('id.eq.20,id.eq.30') - ``` - - name: Use `or` with `and` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .or('id.gt.20,and(name.eq.New Zealand,name.eq.France)') - ``` - - name: Use `or` on foreign tables - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('id, cities(*)') - .or('name.eq.Wellington,name.eq.Paris', { foreignTable: "cities" }) - ``` - - .not(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.not' - notes: | - - `.not()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values. - - ```js - .not('name','eq','Paris') - .not('arraycol','cs','{"a","b"}') // Use Postgres array {} for array column and 'cs' for contains. - .not('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .not('id','in','(6,7)') // Use Postgres list () for in filter. - .not('id','in',`(${arr})`) // You can insert a javascript array. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .not('name', 'eq', 'Paris') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .not('name', 'eq', 'Paris') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .not('name', 'eq', 'Paris') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .not('name', 'eq', 'Paris') - ``` - - .match(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.match' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .match({name: 'Beijing', country_id: 156}) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .match({name: 'Beijing', country_id: 156}) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .match({name: 'Beijing', country_id: 156}) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .match({name: 'Beijing', country_id: 156}) - ``` - - .eq(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.eq' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .eq('name', 'The shire') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .eq('name', 'San Francisco') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .eq('name', 'Mordor') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .eq('name', 'San Francisco') - ``` - - .neq(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.neq' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .neq('name', 'The shire') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .neq('name', 'San Francisco') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .neq('name', 'Mordor') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .neq('name', 'Lagos') - ``` - - .gt(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.gt' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gt('country_id', 250) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .gt('country_id', 250) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .gt('country_id', 250) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .gt('country_id', 250) - ``` - - .gte(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.gte' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .gte('country_id', 250) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .gte('country_id', 250) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .gte('country_id', 250) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .gte('country_id', 250) - ``` - - .lt(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.lt' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lt('country_id', 250) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .lt('country_id', 250) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .lt('country_id', 250) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .lt('country_id', 250) - ``` - - .lte(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.lte' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .lte('country_id', 250) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .lte('country_id', 250) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .lte('country_id', 250) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .lte('country_id', 250) - ``` - - .like(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.like' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .like('name', '%la%') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .like('name', '%la%') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .like('name', '%la%') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .like('name', '%la%') - ``` - - .ilike(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.ilike' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .ilike('name', '%la%') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .ilike('name', '%la%') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .ilike('name', '%la%') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .ilike('name', '%la%') - ``` - - .is(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.is' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .is('name', null) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .is('name', null) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .is('name', null) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .is('name', null) - ``` - - .in(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.in' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .in('name', ['Rio de Janeiro', 'San Francisco']) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .in('name', ['Rio de Janeiro', 'San Francisco']) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .in('name', ['Rio de Janeiro', 'San Francisco']) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .in('name', ['Rio de Janeiro', 'San Francisco']) - ``` - - .contains(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.cs' - notes: | - - `.contains()` can work on array columns or range columns. - It is very useful for finding rows where a tag array contains all the values in the filter array. - - ```js - .contains('arraycol',["a","b"]) // You can use a javascript array for an array column - .contains('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .contains('rangecol','(1,2]') // Use Postgres range syntax for range column. - .contains('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .contains('main_exports', ['oil']) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .contains('main_exports', ['oil']) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .contains('main_exports', ['oil']) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .contains('main_exports', ['oil']) - ``` - - .containedBy(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.cd' - notes: | - - `.containedBy()` can work on array columns or range columns. - - ```js - .containedBy('arraycol',["a","b"]) // You can use a javascript array for an array column - .containedBy('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .containedBy('rangecol','(1,2]') // Use Postgres range syntax for range column. - .containedBy('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .containedBy('main_exports', ['cars', 'food', 'machine']) - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .containedBy('main_exports', ['orks', 'surveillance', 'evil']) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .containedBy('main_exports', ['cars', 'food', 'machine']) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .containedBy('main_exports', ['cars', 'food', 'machine']) - ``` - - .rangeLt(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.sl' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLt('population_range_millions', '[150, 250]') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeLt('population_range_millions', '[150, 250]') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .rangeLt('population_range_millions', '[150, 250]') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeLt('population_range_millions', '[150, 250]') - ``` - - .rangeGt(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.sr' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGt('population_range_millions', '[150, 250]') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeGt('population_range_millions', '[150, 250]') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .rangeGt('population_range_millions', '[150, 250]') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeGt('population_range_millions', '[150, 250]') - ``` - - .rangeGte(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.nxl' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeGte('population_range_millions', '[150, 250]') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeGte('population_range_millions', '[150, 250]') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .rangeGte('population_range_millions', '[150, 250]') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeGte('population_range_millions', '[150, 250]') - ``` - - .rangeLte(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.nxr' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeLte('population_range_millions', '[150, 250]') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeLte('population_range_millions', '[150, 250]') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .rangeLte('population_range_millions', '[150, 250]') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeLte('population_range_millions', '[150, 250]') - ``` - - .rangeAdjacent(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.adj' - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, population_range_millions') - .rangeAdjacent('population_range_millions', '[70, 185]') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .rangeAdjacent('population_range_millions', '[70, 185]') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .rangeAdjacent('population_range_millions', '[70, 185]') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .rangeAdjacent('population_range_millions', '[70, 185]') - ``` - - .overlaps(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.ov' - notes: | - - `.overlaps()` can work on array columns or range columns. - - ```js - .overlaps('arraycol',["a","b"]) // You can use a javascript array for an array column - .overlaps('arraycol','{"a","b"}') // You can use a string with Postgres array {} for array column. - .overlaps('rangecol','(1,2]') // Use Postgres range syntax for range column. - .overlaps('rangecol',`(${arr}]`) // You can insert an array into a string. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('countries') - .select('name, id, main_exports') - .overlaps('main_exports', ['computers', 'minerals']) - ``` - - name: With `update()` - js: | - ```js - let countries = await supabase - .from('countries') - .update({ name: 'Mordor' }) - .overlaps('main_exports', ['computers', 'minerals']) - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('countries') - .delete() - .overlaps('main_exports', ['computers', 'minerals']) - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_countries') - .overlaps('main_exports', ['computers', 'minerals']) - ``` - - .textSearch(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.fts' - examples: - - name: Text search - js: | - ```js - const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - config: 'english' - }) - ``` - - name: Basic normalization - description: Uses PostgreSQL's `plainto_tsquery` function. - js: | - ```js - const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - type: 'plain', - config: 'english' - }) - ``` - - name: Full normalization - description: Uses PostgreSQL's `phraseto_tsquery` function. - js: | - ```js - const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat' & 'cat'`, { - type: 'phrase', - config: 'english' - }) - ``` - - name: Websearch - description: | - Uses PostgreSQL's `websearch_to_tsquery` function. - This function will never raise syntax errors, which makes it possible to use raw user-supplied input for search, and can be used - with advanced operators. - - - `unquoted text`: text not inside quote marks will be converted to terms separated by & operators, as if processed by plainto_tsquery. - - `"quoted text"`: text inside quote marks will be converted to terms separated by <-> operators, as if processed by phraseto_tsquery. - - `OR`: the word “or” will be converted to the | operator. - - `-`: a dash will be converted to the ! operator. - - js: | - ```js - const { data, error } = await supabase - .from('quotes') - .select('catchphrase') - .textSearch('catchphrase', `'fat or cat'`, { - type: 'websearch', - config: 'english' - }) - ``` - - .filter(): - $ref: '@supabase/postgrest-js."lib/PostgrestFilterBuilder".PostgrestFilterBuilder.filter' - notes: | - - `.filter()` expects you to use the raw [PostgREST syntax](https://postgrest.org/en/stable/api.html#horizontal-filtering-rows) for the filter names and values, so it should only be used as an escape hatch in case other filters don't work. - ```js - .filter('arraycol','cs','{"a","b"}') // Use Postgres array {} for array column and 'cs' for contains. - .filter('rangecol','cs','(1,2]') // Use Postgres range syntax for range column. - .filter('id','in','(6,7)') // Use Postgres list () for in filter. - .filter('id','in',`(${arr})`) // You can insert a javascript array. - ``` - examples: - - name: With `select()` - isSpotlight: true - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, country_id') - .filter('name', 'in', '("Paris","Tokyo")') - ``` - - name: With `update()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .update({ name: 'Mordor' }) - .filter('name', 'in', '("Paris","Tokyo")') - ``` - - name: With `delete()` - js: | - ```js - const { data, error } = await supabase - .from('cities') - .delete() - .filter('name', 'in', '("Paris","Tokyo")') - ``` - - name: With `rpc()` - js: | - ```js - // Only valid if the Postgres function returns a table type. - const { data, error } = await supabase - .rpc('echo_all_cities') - .filter('name', 'in', '("Paris","Tokyo")') - ``` - - name: Filter embedded resources - js: | - ```js - const { data, error } = await supabase - .from('cities') - .select('name, countries ( name )') - .filter('countries.name', 'in', '("France","Japan")') - ``` diff --git a/web/spec/tsdoc_v1/combined.json b/web/spec/tsdoc_v1/combined.json deleted file mode 100644 index 8777745a57a..00000000000 --- a/web/spec/tsdoc_v1/combined.json +++ /dev/null @@ -1,64759 +0,0 @@ -{ - "name": "Combined Specs", - "children": [ - { - "id": 0, - "name": "@supabase/supabase-js", - "kind": 1, - "flags": {}, - "originalName": "", - "children": [ - { - "id": 1, - "name": "index", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 740, - "name": "Session", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "target": 335 - }, - { - "id": 305, - "name": "SupabaseClientOptions", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 27, - "character": 2 - } - ], - "target": 176 - }, - { - "id": 306, - "name": "SupabaseRealtimePayload", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 28, - "character": 2 - } - ], - "target": 189 - }, - { - "id": 752, - "name": "User", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "target": 307 - }, - { - "id": 1014, - "name": "Transformers", - "kind": 4, - "kindString": "Namespace", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 1015, - "name": "PostgresTypes", - "kind": 8, - "kindString": "Enumeration", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Helpers to convert the change Payload into native JS types." - }, - "children": [ - { - "id": 1016, - "name": "abstime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 5, - "character": 4 - } - ], - "defaultValue": "\"abstime\"" - }, - { - "id": 1017, - "name": "bool", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 6, - "character": 4 - } - ], - "defaultValue": "\"bool\"" - }, - { - "id": 1018, - "name": "date", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 7, - "character": 4 - } - ], - "defaultValue": "\"date\"" - }, - { - "id": 1019, - "name": "daterange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 8, - "character": 4 - } - ], - "defaultValue": "\"daterange\"" - }, - { - "id": 1020, - "name": "float4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 9, - "character": 4 - } - ], - "defaultValue": "\"float4\"" - }, - { - "id": 1021, - "name": "float8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 10, - "character": 4 - } - ], - "defaultValue": "\"float8\"" - }, - { - "id": 1022, - "name": "int2", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 11, - "character": 4 - } - ], - "defaultValue": "\"int2\"" - }, - { - "id": 1023, - "name": "int4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 12, - "character": 4 - } - ], - "defaultValue": "\"int4\"" - }, - { - "id": 1024, - "name": "int4range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 13, - "character": 4 - } - ], - "defaultValue": "\"int4range\"" - }, - { - "id": 1025, - "name": "int8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 14, - "character": 4 - } - ], - "defaultValue": "\"int8\"" - }, - { - "id": 1026, - "name": "int8range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 15, - "character": 4 - } - ], - "defaultValue": "\"int8range\"" - }, - { - "id": 1027, - "name": "json", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 16, - "character": 4 - } - ], - "defaultValue": "\"json\"" - }, - { - "id": 1028, - "name": "jsonb", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 17, - "character": 4 - } - ], - "defaultValue": "\"jsonb\"" - }, - { - "id": 1029, - "name": "money", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 18, - "character": 4 - } - ], - "defaultValue": "\"money\"" - }, - { - "id": 1030, - "name": "numeric", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 19, - "character": 4 - } - ], - "defaultValue": "\"numeric\"" - }, - { - "id": 1031, - "name": "oid", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 20, - "character": 4 - } - ], - "defaultValue": "\"oid\"" - }, - { - "id": 1032, - "name": "reltime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 21, - "character": 4 - } - ], - "defaultValue": "\"reltime\"" - }, - { - "id": 1033, - "name": "text", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 22, - "character": 4 - } - ], - "defaultValue": "\"text\"" - }, - { - "id": 1034, - "name": "time", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 23, - "character": 4 - } - ], - "defaultValue": "\"time\"" - }, - { - "id": 1035, - "name": "timestamp", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 24, - "character": 4 - } - ], - "defaultValue": "\"timestamp\"" - }, - { - "id": 1036, - "name": "timestamptz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 25, - "character": 4 - } - ], - "defaultValue": "\"timestamptz\"" - }, - { - "id": 1037, - "name": "timetz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 26, - "character": 4 - } - ], - "defaultValue": "\"timetz\"" - }, - { - "id": 1038, - "name": "tsrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 27, - "character": 4 - } - ], - "defaultValue": "\"tsrange\"" - }, - { - "id": 1039, - "name": "tstzrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 28, - "character": 4 - } - ], - "defaultValue": "\"tstzrange\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 4, - "character": 20 - } - ] - }, - { - "id": 1053, - "name": "convertCell", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 84, - "character": 21 - } - ], - "signatures": [ - { - "id": 1054, - "name": "convertCell", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "If the value of the cell is `null`, returns null.\nOtherwise converts the string value to the correct type.", - "tags": [ - { - "tag": "example", - "text": "convertCell('bool', 't')\n//=> true" - }, - { - "tag": "example", - "text": "convertCell('int8', '10')\n//=> 10" - }, - { - "tag": "example", - "text": "convertCell('_int4', '{1,2,3,4}')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 1055, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A postgres column type" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1056, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1040, - "name": "convertChangeData", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 53, - "character": 21 - } - ], - "signatures": [ - { - "id": 1041, - "name": "convertChangeData", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Takes an array of columns and an object of string values then converts each string value\nto its mapped type.", - "tags": [ - { - "tag": "example", - "text": "convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n//=>{ first_name: 'Paul', age: 33 }\n" - } - ] - }, - "parameters": [ - { - "id": 1042, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Columns", - "package": "@supabase/realtime-js", - "name": "Columns" - } - }, - { - "id": 1043, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": {}, - "type": { - "type": "reference", - "qualifiedName": "Record", - "package": "@supabase/realtime-js", - "name": "Record" - } - }, - { - "id": 1044, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The map of various options that can be applied to the mapper" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 1045, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 1046, - "name": "skipTypes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The array of types that should not be converted\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 54, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 1046 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Record", - "package": "@supabase/realtime-js", - "name": "Record" - } - } - ] - }, - { - "id": 1047, - "name": "convertColumn", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 70, - "character": 21 - } - ], - "signatures": [ - { - "id": 1048, - "name": "convertColumn", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Converts the value of an individual column.", - "returns": "Useless information\n", - "tags": [ - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n//=> 33" - }, - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n//=> \"33\"\n" - } - ] - }, - "parameters": [ - { - "id": 1049, - "name": "columnName", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The column that you want to convert" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1050, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Columns", - "package": "@supabase/realtime-js", - "name": "Columns" - } - }, - { - "id": 1051, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The map of string values" - }, - "type": { - "type": "reference", - "qualifiedName": "Record", - "package": "@supabase/realtime-js", - "name": "Record" - } - }, - { - "id": 1052, - "name": "skipTypes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "An array of types that should not be converted" - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1066, - "name": "toArray", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 98, - "character": 21 - } - ], - "signatures": [ - { - "id": 1067, - "name": "toArray", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Converts a Postgres Array into a native JS array", - "tags": [ - { - "tag": "example", - "text": "toArray('{}', 'int4')\n//=> []" - }, - { - "tag": "example", - "text": "toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n//=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']" - }, - { - "tag": "example", - "text": "toArray([1,2,3,4], 'int4')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 1068, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - }, - { - "id": 1069, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1057, - "name": "toBoolean", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 85, - "character": 21 - } - ], - "signatures": [ - { - "id": 1058, - "name": "toBoolean", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1059, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1063, - "name": "toJson", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 87, - "character": 21 - } - ], - "signatures": [ - { - "id": 1064, - "name": "toJson", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1065, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1060, - "name": "toNumber", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 86, - "character": 21 - } - ], - "signatures": [ - { - "id": 1061, - "name": "toNumber", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1062, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1070, - "name": "toTimestampString", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 106, - "character": 21 - } - ], - "signatures": [ - { - "id": 1071, - "name": "toTimestampString", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\nSee https://github.com/supabase/supabase/issues/18", - "tags": [ - { - "tag": "example", - "text": "toTimestampString('2019-09-10 00:00:00')\n//=> '2019-09-10T00:00:00'\n" - } - ] - }, - "parameters": [ - { - "id": 1072, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - } - ], - "groups": [ - { - "title": "Enumerations", - "kind": 8, - "children": [ - 1015 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 1053, - 1040, - 1047, - 1066, - 1057, - 1063, - 1060, - 1070 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 4, - "character": 0 - } - ] - }, - { - "id": 343, - "name": "GoTrueApi", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 344, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 11, - "character": 4 - } - ], - "signatures": [ - { - "id": 345, - "name": "new GoTrueApi", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 346, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 347, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 353, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 16, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 777, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - } - }, - { - "id": 354, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 17, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 355, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 356, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 357, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 358, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 349, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 13, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 350, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 351, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 352, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 348, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 12, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 353, - 354, - 349, - 348 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 343, - "qualifiedName": "GoTrueApi", - "package": "@supabase/gotrue-js", - "name": "default" - } - } - ] - }, - { - "id": 370, - "name": "_createRequestHeaders", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Create a temporary object with all configured headers and\nadds the Authorization token to be used on request methods", - "tags": [ - { - "tag": "param", - "text": "A valid, logged-in JWT.\n", - "param": "jwt" - } - ] - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 24, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 371, - "name": "cookieName", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 25, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 364, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 9, - "character": 14 - } - ], - "type": { - "type": "reference", - "id": 777, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - } - }, - { - "id": 365, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 10, - "character": 14 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 366, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 367, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 368, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 369, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 360, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 6, - "character": 14 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 361, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 362, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 363, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 359, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 5, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 534, - "name": "createUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 251, - "character": 4 - } - ], - "signatures": [ - { - "id": 535, - "name": "createUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Creates a new user.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 536, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The data you want to create the user with.\n" - }, - "type": { - "type": "reference", - "id": 759, - "qualifiedName": "AdminUserAttributes", - "package": "@supabase/gotrue-js", - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 537, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 539, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 253, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 540, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 254, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - }, - { - "id": 538, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 252, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 539, - 540, - 538 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 541, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 543, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 257, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - }, - { - "id": 544, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 258, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 542, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 256, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 543, - 544, - 542 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 511, - "name": "deleteAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 218, - "character": 4 - } - ], - "signatures": [ - { - "id": 512, - "name": "deleteAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Deletes the Auth Cookies and redirects to the" - }, - "parameters": [ - { - "id": 513, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 514, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 515, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Optionally specify a `redirectTo` URL in the options.\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 516, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 517, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 219, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 517 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - }, - { - "id": 579, - "name": "deleteUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 315, - "character": 4 - } - ], - "signatures": [ - { - "id": 580, - "name": "deleteUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Delete a user. Requires a `service_role` key.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 581, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user uid you want to remove.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 582, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 584, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 317, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 585, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 318, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 583, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 316, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 584, - 585, - 583 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 522, - "name": "generateLink", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 236, - "character": 4 - } - ], - "signatures": [ - { - "id": 523, - "name": "generateLink", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Generates links to be sent via email or other." - }, - "parameters": [ - { - "id": 524, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The link type (\"signup\" or \"magiclink\" or \"recovery\" or \"invite\")." - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "invite" - } - ] - } - }, - { - "id": 525, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's email." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 526, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 527, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 529, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 238, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 528, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 237, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 530, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 239, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 529, - 528, - 530 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 531, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 532, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 241, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 533, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 242, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 532, - 533 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 518, - "name": "getAuthCookieString", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 227, - "character": 4 - } - ], - "signatures": [ - { - "id": 519, - "name": "getAuthCookieString", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Helper method to generate the Auth Cookie string for you in case you can't use `setAuthCookie`.", - "returns": "The Cookie string that needs to be set as the value for the `Set-Cookie` header.\n" - }, - "parameters": [ - { - "id": 520, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 521, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ] - }, - { - "id": 372, - "name": "getUrlForProvider", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 32, - "character": 4 - } - ], - "signatures": [ - { - "id": 373, - "name": "getUrlForProvider", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Generates the relevant login URL for a third-party provider." - }, - "parameters": [ - { - "id": 374, - "name": "provider", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "One of the providers supported by GoTrue." - }, - "type": { - "type": "reference", - "id": 735, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - }, - { - "id": 375, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 376, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 379, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 35, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 380, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 381, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 382, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 377, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 33, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 378, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 34, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 379, - 377, - 378 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 586, - "name": "getUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 329, - "character": 4 - } - ], - "signatures": [ - { - "id": 587, - "name": "getUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Gets the current user details.", - "text": "This method is called by the GoTrueClient `update` where\nthe jwt is set to this.currentSession.access_token\nand therefore, acts like getting the currently authenticated user\n" - }, - "parameters": [ - { - "id": 588, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid, logged-in JWT. Typically, the access_token for the currentSession\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 589, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 591, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 331, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 592, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 332, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 590, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 330, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 591, - 592, - 590 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 562, - "name": "getUserByCookie", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 290, - "character": 4 - } - ], - "signatures": [ - { - "id": 563, - "name": "getUserByCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Get user by reading the cookie from the request.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 564, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 565, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 566, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 569, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 293, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 570, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 294, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 567, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 291, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 568, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 292, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 569, - 570, - 567, - 568 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 553, - "name": "getUserById", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 279, - "character": 4 - } - ], - "signatures": [ - { - "id": 554, - "name": "getUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Get user by id." - }, - "parameters": [ - { - "id": 555, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's unique identifier\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 556, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 557, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 280, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 558, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 281, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 557, - 558 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 559, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 560, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 283, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - }, - { - "id": 561, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 284, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 560, - 561 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 480, - "name": "inviteUserByEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 177, - "character": 4 - } - ], - "signatures": [ - { - "id": 481, - "name": "inviteUserByEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends an invite link to an email address." - }, - "parameters": [ - { - "id": 482, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 483, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 484, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 486, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 179, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 485, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 178, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 486, - 485 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 487, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 488, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 181, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 489, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 182, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 488, - 489 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 545, - "name": "listUsers", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 265, - "character": 4 - } - ], - "signatures": [ - { - "id": 546, - "name": "listUsers", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Get a list of users.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 547, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 548, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 266, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 549, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 267, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 548, - 549 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 550, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 551, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 269, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - }, - { - "id": 552, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 270, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 551, - 552 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 501, - "name": "refreshAccessToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 201, - "character": 4 - } - ], - "signatures": [ - { - "id": 502, - "name": "refreshAccessToken", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Generates a new JWT." - }, - "parameters": [ - { - "id": 503, - "name": "refreshToken", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid refresh token that was returned on login.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 504, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 505, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 202, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 506, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 203, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 505, - 506 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 490, - "name": "resetPasswordForEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 190, - "character": 4 - } - ], - "signatures": [ - { - "id": 491, - "name": "resetPasswordForEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends a reset request to an email address." - }, - "parameters": [ - { - "id": 492, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 493, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 494, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 496, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 192, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 495, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 191, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 496, - 495 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 497, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 498, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 194, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 499, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - } - } - } - ] - } - }, - { - "id": 500, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 195, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 498, - 500 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 433, - "name": "sendMagicLinkEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 117, - "character": 4 - } - ], - "signatures": [ - { - "id": 434, - "name": "sendMagicLinkEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends a magic login link to an email address." - }, - "parameters": [ - { - "id": 435, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 436, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 437, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 440, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 120, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 439, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 119, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 438, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 118, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 440, - 439, - 438 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 441, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 442, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 122, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 443, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - } - } - } - ] - } - }, - { - "id": 444, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 123, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 442, - 444 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 445, - "name": "sendMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 131, - "character": 4 - } - ], - "signatures": [ - { - "id": 446, - "name": "sendMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends a mobile OTP via SMS. Will register the account if it doesn't already exist" - }, - "parameters": [ - { - "id": 447, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 448, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 449, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 451, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 133, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 450, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 132, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 451, - 450 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 452, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 453, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 135, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 454, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - } - } - } - ] - } - }, - { - "id": 455, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 136, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 453, - 455 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 507, - "name": "setAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 211, - "character": 4 - } - ], - "signatures": [ - { - "id": 508, - "name": "setAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Set/delete the auth cookie based on the AuthChangeEvent.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 509, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 510, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The response object.\n" - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 395, - "name": "signInWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 65, - "character": 4 - } - ], - "signatures": [ - { - "id": 396, - "name": "signInWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs in an existing user using their email address." - }, - "parameters": [ - { - "id": 397, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 398, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 399, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 400, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 402, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 67, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 401, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 66, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 402, - 401 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 403, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 404, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 69, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 405, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 70, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 404, - 405 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 427, - "name": "signInWithOpenIDConnect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 106, - "character": 4 - } - ], - "signatures": [ - { - "id": 428, - "name": "signInWithOpenIDConnect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs in an OpenID Connect user using their id_token." - }, - "parameters": [ - { - "id": 429, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 803, - "qualifiedName": "OpenIDConnectCredentials", - "package": "@supabase/gotrue-js", - "name": "OpenIDConnectCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 430, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 431, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 107, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 432, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 108, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 431, - 432 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 417, - "name": "signInWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 92, - "character": 4 - } - ], - "signatures": [ - { - "id": 418, - "name": "signInWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs in an existing user using their phone number and password." - }, - "parameters": [ - { - "id": 419, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 420, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 421, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 422, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 423, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 93, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 423 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 424, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 425, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 95, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 426, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 96, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 425, - 426 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 456, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 142, - "character": 4 - } - ], - "signatures": [ - { - "id": 457, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Removes a logged-in session." - }, - "parameters": [ - { - "id": 458, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid, logged-in JWT.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 459, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 460, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 143, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 460 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 383, - "name": "signUpWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 50, - "character": 4 - } - ], - "signatures": [ - { - "id": 384, - "name": "signUpWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Creates a new user using their email address.", - "returns": "A logged-in session if the server has \"autoconfirm\" ON" - }, - "parameters": [ - { - "id": 385, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 386, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 387, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 388, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 391, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 53, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 390, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 52, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 389, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 51, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 391, - 390, - 389 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 392, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 393, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 55, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 394, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 56, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 393, - 394 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 406, - "name": "signUpWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 79, - "character": 4 - } - ], - "signatures": [ - { - "id": 407, - "name": "signUpWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Signs up a new user using their phone number and a password." - }, - "parameters": [ - { - "id": 408, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 409, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 410, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 411, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 413, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 81, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 412, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 80, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 413, - 412 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 414, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 415, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 83, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 416, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 84, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 415, - 416 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 593, - "name": "updateUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 339, - "character": 4 - } - ], - "signatures": [ - { - "id": 594, - "name": "updateUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 595, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid, logged-in JWT." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 596, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The data you want to update.\n" - }, - "type": { - "type": "reference", - "id": 753, - "qualifiedName": "UserAttributes", - "package": "@supabase/gotrue-js", - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 597, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 599, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 341, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 600, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 342, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 598, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 340, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 599, - 600, - 598 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 571, - "name": "updateUserById", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 303, - "character": 4 - } - ], - "signatures": [ - { - "id": 572, - "name": "updateUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 573, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 574, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The data you want to update.\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "id": 759, - "qualifiedName": "AdminUserAttributes", - "package": "@supabase/gotrue-js", - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 575, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 577, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 305, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 578, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 306, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 576, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 304, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 577, - 578, - 576 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 461, - "name": "verifyMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 151, - "character": 4 - } - ], - "signatures": [ - { - "id": 462, - "name": "verifyMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `verifyOTP` instead!" - } - ] - }, - "parameters": [ - { - "id": 463, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 464, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "token that user was sent to their mobile phone" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 465, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 466, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 467, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 152, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 467 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 468, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 469, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 154, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 470, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 155, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 469, - 470 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 471, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 165, - "character": 4 - } - ], - "signatures": [ - { - "id": 472, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Send User supplied Email / Mobile OTP to be verified" - }, - "parameters": [ - { - "id": 473, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 790, - "qualifiedName": "VerifyOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyOTPParams" - } - }, - { - "id": 474, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 475, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 476, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 166, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 476 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 477, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 478, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 168, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 479, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 169, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 478, - 479 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 344 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 370, - 371, - 364, - 365, - 360, - 359 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 534, - 511, - 579, - 522, - 518, - 372, - 586, - 562, - 553, - 480, - 545, - 501, - 490, - 433, - 445, - 507, - 395, - 427, - 417, - 456, - 383, - 406, - 593, - 571, - 461, - 471 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 4, - "character": 21 - } - ] - }, - { - "id": 601, - "name": "GoTrueClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 602, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 37, - "character": 4 - } - ], - "signatures": [ - { - "id": 603, - "name": "new GoTrueClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Create a new client for use in the browser." - }, - "parameters": [ - { - "id": 604, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 605, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 612, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically refresh the token before expiring." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 43, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 616, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": {}, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 47, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 777, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - } - }, - { - "id": 611, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 42, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 617, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 48, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 618, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 619, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A custom fetch implementation.\n" - }, - "parameters": [ - { - "id": 620, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 621, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 607, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Any additional headers to send to the GoTrue server." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 39, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 608, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 609, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 610, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 614, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Provide your own local storage implementation to use instead of the browser's local storage." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 45, - "character": 8 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - } - }, - { - "id": 615, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"false\" if you want to disable multi-tab/window events." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 46, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 613, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically save the user session into local storage." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 44, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 606, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The URL of the GoTrue server." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 38, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 612, - 616, - 611, - 617, - 607, - 614, - 615, - 613, - 606 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 601, - "qualifiedName": "GoTrueClient", - "package": "@supabase/gotrue-js", - "name": "default" - } - } - ] - }, - { - "id": 727, - "name": "_callRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 190, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 721, - "name": "_handleEmailSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 176, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 724, - "name": "_handleOpenIDConnectSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 179, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 722, - "name": "_handlePhoneSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 177, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 723, - "name": "_handleProviderSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 178, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 734, - "name": "_handleVisibilityChange", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 208, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 733, - "name": "_listenForMultiTabEvents", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Listens for changes to LocalStorage and updates the current session." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 207, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 728, - "name": "_notifyAllSubscribers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 191, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 730, - "name": "_persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 197, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 726, - "name": "_recoverAndRefresh", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Recovers the session from LocalStorage and refreshes\nNote: this method is async to accommodate for AsyncStorage e.g. in React native." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 189, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 725, - "name": "_recoverSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Attempts to get the session from LocalStorage\nNote: this should never be async (even for React Native), as we need it to return immediately in the constructor." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 184, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 731, - "name": "_removeSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 198, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 729, - "name": "_saveSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "set currentSession and currentUser\nprocess to _startAutoRefreshToken if possible" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 196, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 732, - "name": "_startAutoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Clear and re-create refresh token timer", - "tags": [ - { - "tag": "param", - "text": "time intervals in milliseconds\n", - "param": "value" - } - ] - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 203, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 622, - "name": "api", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Namespace for the GoTrue API methods.\nThese can be used for example to get a user from a JWT in a server environment or reset a user's password." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 9, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 343, - "qualifiedName": "GoTrueApi", - "package": "@supabase/gotrue-js", - "name": "default" - } - }, - { - "id": 625, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 18, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 624, - "name": "currentSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "comment": { - "shortText": "The session object for the currently logged in user or null." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 17, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 623, - "name": "currentUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "comment": { - "shortText": "The currently logged in user or null." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 13, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 627, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 20, - "character": 14 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - } - }, - { - "id": 628, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 21, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 631, - "name": "networkRetries", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 24, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 626, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 19, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 630, - "name": "refreshTokenTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 23, - "character": 14 - } - ], - "type": { - "type": "reference", - "qualifiedName": "global.NodeJS.Timeout", - "package": "@types/node", - "name": "Timeout" - } - }, - { - "id": 629, - "name": "stateChangeEmitters", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 22, - "character": 14 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "id": 769, - "qualifiedName": "Subscription", - "package": "@supabase/gotrue-js", - "name": "Subscription" - } - ], - "qualifiedName": "Map", - "package": "typescript", - "name": "Map" - } - }, - { - "id": 699, - "name": "getSessionFromUrl", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 153, - "character": 4 - } - ], - "signatures": [ - { - "id": 700, - "name": "getSessionFromUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Gets the session data from a URL string" - }, - "parameters": [ - { - "id": 701, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 702, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 703, - "name": "storeSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Optionally store the session in the browser\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 154, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 703 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 704, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 705, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 156, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 706, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 157, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 705, - 706 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 711, - "name": "onAuthStateChange", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 172, - "character": 4 - } - ], - "signatures": [ - { - "id": 712, - "name": "onAuthStateChange", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Receive a notification every time an auth event happens.", - "returns": "A subscription object which can be used to unsubscribe itself.\n" - }, - "parameters": [ - { - "id": 713, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 714, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 715, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 716, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 736, - "qualifiedName": "AuthChangeEvent", - "package": "@supabase/gotrue-js", - "name": "AuthChangeEvent" - } - }, - { - "id": 717, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 718, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 719, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 173, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 769, - "qualifiedName": "Subscription", - "package": "@supabase/gotrue-js", - "name": "Subscription" - } - ] - } - }, - { - "id": 720, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 174, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 719, - 720 - ] - } - ] - } - } - } - ] - }, - { - "id": 677, - "name": "refreshSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 123, - "character": 4 - } - ], - "signatures": [ - { - "id": 678, - "name": "refreshSession", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Force refreshes the session including the user data in case it was updated in a different session." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 679, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 680, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 124, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 682, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 126, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 681, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 125, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 680, - 682, - 681 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 675, - "name": "session", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 119, - "character": 4 - } - ], - "signatures": [ - { - "id": 676, - "name": "session", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns the session data, if there is an active session." - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - } - ] - }, - { - "id": 696, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 148, - "character": 4 - } - ], - "signatures": [ - { - "id": 697, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Overrides the JWT on the current client. The JWT will then be sent in all subsequent network requests." - }, - "parameters": [ - { - "id": 698, - "name": "access_token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "a jwt access token\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - } - ] - }, - { - "id": 690, - "name": "setSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 140, - "character": 4 - } - ], - "signatures": [ - { - "id": 691, - "name": "setSession", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sets the session data from refresh_token and returns current Session and Error" - }, - "parameters": [ - { - "id": 692, - "name": "refresh_token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "a JWT token\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 693, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 695, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 142, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 694, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 141, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 695, - 694 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 644, - "name": "signIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 80, - "character": 4 - } - ], - "signatures": [ - { - "id": 645, - "name": "signIn", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Log in an existing user, or login via a third-party provider." - }, - "parameters": [ - { - "id": 646, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 783, - "qualifiedName": "UserCredentials", - "package": "@supabase/gotrue-js", - "name": "UserCredentials" - } - }, - { - "id": 647, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 648, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 652, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 84, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 653, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 85, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 654, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 655, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 656, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 649, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 81, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 651, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 83, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 650, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 82, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 652, - 653, - 649, - 651, - 650 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 657, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 662, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 93, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 660, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 91, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 735, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - }, - { - "id": 658, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 89, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 661, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 92, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 659, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 90, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 662, - 660, - 658, - 661, - 659 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 707, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 165, - "character": 4 - } - ], - "signatures": [ - { - "id": 708, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Inside a browser context, `signOut()` will remove the logged in user from the browser session\nand log them out - removing all items from localstorage and then trigger a \"SIGNED_OUT\" event.", - "text": "For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`. There is no way to revoke a user's session JWT before it automatically expires\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 709, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 710, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 166, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 710 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 632, - "name": "signUp", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 59, - "character": 4 - } - ], - "signatures": [ - { - "id": 633, - "name": "signUp", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Creates a new user." - }, - "parameters": [ - { - "id": 634, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 783, - "qualifiedName": "UserCredentials", - "package": "@supabase/gotrue-js", - "name": "UserCredentials" - } - }, - { - "id": 635, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 636, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 639, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 62, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 638, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 61, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 637, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 60, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 639, - 638, - 637 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 640, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 643, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 66, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 642, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 65, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 641, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 64, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 643, - 642, - 641 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 683, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 131, - "character": 4 - } - ], - "signatures": [ - { - "id": 684, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Updates user data, if there is a logged in user." - }, - "parameters": [ - { - "id": 685, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 753, - "qualifiedName": "UserAttributes", - "package": "@supabase/gotrue-js", - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 686, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 687, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 132, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 689, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 134, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 688, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 133, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 687, - 689, - 688 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 673, - "name": "user", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 115, - "character": 4 - } - ], - "signatures": [ - { - "id": 674, - "name": "user", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Inside a browser context, `user()` will return the user data, if there is a logged in user.", - "text": "For server-side management, you can get a user through `auth.api.getUserByCookie()`\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ] - }, - { - "id": 663, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 103, - "character": 4 - } - ], - "signatures": [ - { - "id": 664, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Log in a user given a User supplied OTP received via mobile." - }, - "parameters": [ - { - "id": 665, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 790, - "qualifiedName": "VerifyOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyOTPParams" - } - }, - { - "id": 666, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 667, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 668, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 104, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 668 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 669, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 672, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 108, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 671, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 107, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 670, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 106, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 672, - 671, - 670 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 602 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 727, - 721, - 724, - 722, - 723, - 734, - 733, - 728, - 730, - 726, - 725, - 731, - 729, - 732, - 622, - 625, - 624, - 623, - 627, - 628, - 631, - 626, - 630, - 629 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 699, - 711, - 677, - 675, - 696, - 690, - 644, - 707, - 632, - 683, - 673, - 663 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 4, - "character": 21 - } - ] - }, - { - "id": 810, - "name": "RealtimeClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 811, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 77, - "character": 4 - } - ], - "signatures": [ - { - "id": 812, - "name": "new RealtimeClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Initializes the Socket." - }, - "parameters": [ - { - "id": 813, - "name": "endPoint", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 814, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 909, - "qualifiedName": "Options", - "package": "@supabase/realtime-js", - "name": "Options" - } - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 906, - "name": "_appendParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 180, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 907, - "name": "_flushSendBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 181, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 903, - "name": "_onConnClose", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 177, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 904, - "name": "_onConnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 178, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 902, - "name": "_onConnOpen", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 176, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 908, - "name": "_sendHeartbeat", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 182, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 905, - "name": "_triggerChanError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 179, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 815, - "name": "accessToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 32, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 816, - "name": "channels", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 33, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - }, - { - "id": 838, - "name": "conn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 53, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "WebSocket", - "package": "typescript", - "name": "WebSocket" - } - ] - } - }, - { - "id": 836, - "name": "decode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 51, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 835, - "name": "encode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 50, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 817, - "name": "endPoint", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 34, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 818, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 35, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 819, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 820, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 821, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 828, - "name": "heartbeatIntervalMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 43, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 830, - "name": "heartbeatTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 45, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reference", - "qualifiedName": "global.NodeJS.Timer", - "package": "@types/node", - "name": "Timer" - } - ] - } - }, - { - "id": 834, - "name": "logger", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 49, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 829, - "name": "longpollerTimeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 44, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 822, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 38, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 823, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 824, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 825, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 831, - "name": "pendingHeartbeatRef", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 46, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 837, - "name": "reconnectAfterMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 52, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 833, - "name": "reconnectTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 48, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Timer", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 832, - "name": "ref", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 47, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 839, - "name": "sendBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 54, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 840, - "name": "serializer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 55, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Serializer", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 841, - "name": "stateChangeCallbacks", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 56, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 842, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 844, - "name": "close", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 58, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 845, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 59, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 846, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 60, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 843, - "name": "open", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 57, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 844, - 845, - 846, - 843 - ] - } - ] - } - } - }, - { - "id": 826, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 41, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 827, - "name": "transport", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 42, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 880, - "name": "channel", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 148, - "character": 4 - } - ], - "signatures": [ - { - "id": 881, - "name": "channel", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 882, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 883, - "name": "chanParams", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "ChannelParams", - "package": "@supabase/realtime-js", - "name": "ChannelParams" - } - } - ], - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 847, - "name": "connect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 81, - "character": 4 - } - ], - "signatures": [ - { - "id": 848, - "name": "connect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Connects the socket, unless already connected." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 873, - "name": "connectionState", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 137, - "character": 4 - } - ], - "signatures": [ - { - "id": 874, - "name": "connectionState", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns the current state of the socket." - }, - "type": { - "type": "reference", - "qualifiedName": "CONNECTION_STATE", - "package": "@supabase/realtime-js", - "name": "CONNECTION_STATE" - } - } - ] - }, - { - "id": 849, - "name": "disconnect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 88, - "character": 4 - } - ], - "signatures": [ - { - "id": 850, - "name": "disconnect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Disconnects the socket." - }, - "parameters": [ - { - "id": 851, - "name": "code", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A numeric status code to send on disconnect." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 852, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom reason for the disconnect.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 853, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 855, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 90, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 854, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 89, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 855, - 854 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 892, - "name": "endPointURL", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 161, - "character": 4 - } - ], - "signatures": [ - { - "id": 893, - "name": "endPointURL", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns the URL of the websocket." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 875, - "name": "isConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 141, - "character": 4 - } - ], - "signatures": [ - { - "id": 876, - "name": "isConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Retuns `true` is the connection is open." - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 899, - "name": "leaveOpenTopic", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 175, - "character": 4 - } - ], - "signatures": [ - { - "id": 900, - "name": "leaveOpenTopic", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Unsubscribe from channels with the specified topic." - }, - "parameters": [ - { - "id": 901, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 856, - "name": "log", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 97, - "character": 4 - } - ], - "signatures": [ - { - "id": 857, - "name": "log", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs the message.", - "text": "For customized logging, `this.logger` can be overriden.\n" - }, - "parameters": [ - { - "id": 858, - "name": "kind", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 859, - "name": "msg", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 860, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 894, - "name": "makeRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 165, - "character": 4 - } - ], - "signatures": [ - { - "id": 895, - "name": "makeRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Return the next message ref, accounting for overflows" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 864, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 115, - "character": 4 - } - ], - "signatures": [ - { - "id": 865, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket closed.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 866, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 887, - "name": "onConnMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 155, - "character": 4 - } - ], - "signatures": [ - { - "id": 888, - "name": "onConnMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 889, - "name": "rawMessage", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 890, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 891, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 156, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 891 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 867, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 124, - "character": 4 - } - ], - "signatures": [ - { - "id": 868, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen((error) => console.log(\"An error occurred\"))\n" - } - ] - }, - "parameters": [ - { - "id": 869, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 870, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 133, - "character": 4 - } - ], - "signatures": [ - { - "id": 871, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Calls a function any time a message is received.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onMessage((message) => console.log(message))\n" - } - ] - }, - "parameters": [ - { - "id": 872, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 861, - "name": "onOpen", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 106, - "character": 4 - } - ], - "signatures": [ - { - "id": 862, - "name": "onOpen", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Registers a callback for connection state change event.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket opened.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 863, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 884, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 154, - "character": 4 - } - ], - "signatures": [ - { - "id": 885, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Push out a message if the socket is connected.", - "text": "If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.\n" - }, - "parameters": [ - { - "id": 886, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Message", - "package": "@supabase/realtime-js", - "name": "Message" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 877, - "name": "remove", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 147, - "character": 4 - } - ], - "signatures": [ - { - "id": 878, - "name": "remove", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Removes a subscription from the socket." - }, - "parameters": [ - { - "id": 879, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "An open subscription.\n" - }, - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 896, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 171, - "character": 4 - } - ], - "signatures": [ - { - "id": 897, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sets the JWT access token used for channel subscription authorization and Realtime RLS." - }, - "parameters": [ - { - "id": 898, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A JWT string.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 811 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 906, - 907, - 903, - 904, - 902, - 908, - 905, - 815, - 816, - 838, - 836, - 835, - 817, - 818, - 828, - 830, - 834, - 829, - 822, - 831, - 837, - 833, - 832, - 839, - 840, - 841, - 826, - 827 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 880, - 847, - 873, - 849, - 892, - 875, - 899, - 856, - 894, - 864, - 887, - 867, - 870, - 861, - 884, - 877, - 896 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 31, - "character": 21 - } - ] - }, - { - "id": 927, - "name": "RealtimeSubscription", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 928, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 18, - "character": 4 - } - ], - "signatures": [ - { - "id": 929, - "name": "new RealtimeSubscription", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 930, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 931, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 932, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 933, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 934, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - } - } - }, - { - "id": 935, - "name": "socket", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 942, - "name": "bindings", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 11, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "any" - } - } - }, - { - "id": 946, - "name": "joinPush", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 15, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 945, - "name": "joinedOnce", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 14, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 937, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 7, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 938, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 939, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 940, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - } - } - }, - { - "id": 948, - "name": "pushBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 17, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - }, - { - "id": 947, - "name": "rejoinTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 16, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Timer", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 941, - "name": "socket", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 10, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 944, - "name": "state", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 13, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "CHANNEL_STATES", - "package": "@supabase/realtime-js", - "name": "CHANNEL_STATES" - } - }, - { - "id": 943, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 12, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 936, - "name": "topic", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 6, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 967, - "name": "canPush", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 27, - "character": 4 - } - ], - "signatures": [ - { - "id": 968, - "name": "canPush", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1004, - "name": "isClosed", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 54, - "character": 4 - } - ], - "signatures": [ - { - "id": 1005, - "name": "isClosed", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1006, - "name": "isErrored", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 55, - "character": 4 - } - ], - "signatures": [ - { - "id": 1007, - "name": "isErrored", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1008, - "name": "isJoined", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 56, - "character": 4 - } - ], - "signatures": [ - { - "id": 1009, - "name": "isJoined", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1010, - "name": "isJoining", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 57, - "character": 4 - } - ], - "signatures": [ - { - "id": 1011, - "name": "isJoining", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1012, - "name": "isLeaving", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 58, - "character": 4 - } - ], - "signatures": [ - { - "id": 1013, - "name": "isLeaving", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 988, - "name": "isMember", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 49, - "character": 4 - } - ], - "signatures": [ - { - "id": 989, - "name": "isMember", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 990, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 991, - "name": "joinRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 50, - "character": 4 - } - ], - "signatures": [ - { - "id": 992, - "name": "joinRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 964, - "name": "off", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 26, - "character": 4 - } - ], - "signatures": [ - { - "id": 965, - "name": "off", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 966, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 960, - "name": "on", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 25, - "character": 4 - } - ], - "signatures": [ - { - "id": 961, - "name": "on", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 962, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 963, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 954, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 23, - "character": 4 - } - ], - "signatures": [ - { - "id": 955, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 956, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 957, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 24, - "character": 4 - } - ], - "signatures": [ - { - "id": 958, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 959, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 983, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 48, - "character": 4 - } - ], - "signatures": [ - { - "id": 984, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Overridable message hook", - "text": "Receives all events for specialized message handling before dispatching to the channel callbacks.\nMust return the payload, modified or unmodified.\n" - }, - "parameters": [ - { - "id": 985, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 986, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 987, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - }, - { - "id": 969, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 28, - "character": 4 - } - ], - "signatures": [ - { - "id": 970, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 971, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "CHANNEL_EVENTS", - "package": "@supabase/realtime-js", - "name": "CHANNEL_EVENTS" - } - }, - { - "id": 972, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 973, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 993, - "name": "rejoin", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 51, - "character": 4 - } - ], - "signatures": [ - { - "id": 994, - "name": "rejoin", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 995, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 949, - "name": "rejoinUntilConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 21, - "character": 4 - } - ], - "signatures": [ - { - "id": 950, - "name": "rejoinUntilConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1001, - "name": "replyEventName", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 53, - "character": 4 - } - ], - "signatures": [ - { - "id": 1002, - "name": "replyEventName", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1003, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 951, - "name": "subscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 22, - "character": 4 - } - ], - "signatures": [ - { - "id": 952, - "name": "subscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 953, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 996, - "name": "trigger", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 52, - "character": 4 - } - ], - "signatures": [ - { - "id": 997, - "name": "trigger", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 998, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 999, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1000, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 980, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 41, - "character": 4 - } - ], - "signatures": [ - { - "id": 981, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Leaves the channel", - "text": "Unsubscribes from server events, and instructs channel to terminate on server.\nTriggers onClose() hooks.\n\nTo receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:\nchannel.unsubscribe().receive(\"ok\", () => alert(\"left!\") )\n" - }, - "parameters": [ - { - "id": 982, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 974, - "name": "updateJoinPayload", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 29, - "character": 4 - } - ], - "signatures": [ - { - "id": 975, - "name": "updateJoinPayload", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 976, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 977, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 978, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 979, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 928 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 942, - 946, - 945, - 937, - 948, - 947, - 941, - 944, - 943, - 936 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 967, - 1004, - 1006, - 1008, - 1010, - 1012, - 988, - 991, - 964, - 960, - 954, - 957, - 983, - 969, - 993, - 949, - 1001, - 951, - 996, - 980, - 974 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 5, - "character": 21 - } - ] - }, - { - "id": 214, - "name": "SupabaseClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "comment": { - "shortText": "Supabase Client.", - "text": "An isomorphic Javascript client for interacting with Postgres.\n" - }, - "children": [ - { - "id": 215, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 61, - "character": 2 - } - ], - "signatures": [ - { - "id": 216, - "name": "new SupabaseClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "comment": { - "shortText": "Create a new client for use in the browser." - }, - "parameters": [ - { - "id": 217, - "name": "supabaseUrl", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The unique Supabase URL which is supplied when you create a new project in your project dashboard." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 218, - "name": "supabaseKey", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The unique Supabase Key which is supplied when you create a new project in your project dashboard." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 219, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 176, - "name": "SupabaseClientOptions" - } - } - ], - "type": { - "type": "reference", - "id": 214, - "name": "default" - } - } - ] - }, - { - "id": 220, - "name": "auth", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "Supabase Auth allows you to create and manage user sessions for access to data that is secured by access policies." - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 30, - "character": 2 - } - ], - "type": { - "type": "reference", - "name": "SupabaseAuthClient" - } - }, - { - "id": 224, - "name": "authUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 35, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 234, - "name": "changedAccessToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 41, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 229, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 40, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 230, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 231, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 232, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 233, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 226, - "name": "functionsUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 37, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 236, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 44, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 237, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 238, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 239, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 228, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 39, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 227, - "name": "realtime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 38, - "character": 12 - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 223, - "name": "realtimeUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 34, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 222, - "name": "restUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 33, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 221, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 32, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 235, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 42, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 225, - "name": "storageUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 36, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 241, - "name": "supabaseKey", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 240, - "name": "supabaseUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 242, - "name": "functions", - "kind": 262144, - "kindString": "Accessor", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 106, - "character": 6 - } - ], - "getSignature": [ - { - "id": 243, - "name": "functions", - "kind": 524288, - "kindString": "Get signature", - "flags": {}, - "comment": { - "shortText": "Supabase Functions allows you to deploy and invoke edge functions." - }, - "type": { - "type": "reference", - "qualifiedName": "FunctionsClient", - "package": "@supabase/functions-js", - "name": "FunctionsClient" - } - } - ] - }, - { - "id": 244, - "name": "storage", - "kind": 262144, - "kindString": "Accessor", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 116, - "character": 6 - } - ], - "getSignature": [ - { - "id": 245, - "name": "storage", - "kind": 524288, - "kindString": "Get signature", - "flags": {}, - "comment": { - "shortText": "Supabase Storage allows you to manage user-generated content, such as photos or videos." - }, - "type": { - "type": "reference", - "qualifiedName": "StorageClient", - "package": "@supabase/storage-js", - "name": "StorageClient" - } - } - ] - }, - { - "id": 274, - "name": "_closeSubscription", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 194, - "character": 16 - } - ], - "signatures": [ - { - "id": 275, - "name": "_closeSubscription", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 276, - "name": "subscription", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 277, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 278, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 196, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 278 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 294, - "name": "_getAuthHeaders", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 271, - "character": 10 - } - ], - "signatures": [ - { - "id": 295, - "name": "_getAuthHeaders", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reference", - "id": 171, - "name": "GenericObject" - } - } - ] - }, - { - "id": 300, - "name": "_handleTokenChanged", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 313, - "character": 10 - } - ], - "signatures": [ - { - "id": 301, - "name": "_handleTokenChanged", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 302, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 736, - "qualifiedName": "AuthChangeEvent", - "package": "@supabase/gotrue-js", - "name": "AuthChangeEvent" - } - }, - { - "id": 303, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 304, - "name": "source", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "CLIENT" - }, - { - "type": "literal", - "value": "STORAGE" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 292, - "name": "_initPostgRESTClient", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 262, - "character": 10 - } - ], - "signatures": [ - { - "id": 293, - "name": "_initPostgRESTClient", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "PostgrestClient", - "package": "@supabase/postgrest-js", - "name": "default" - } - } - ] - }, - { - "id": 289, - "name": "_initRealtimeClient", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 255, - "character": 10 - } - ], - "signatures": [ - { - "id": 290, - "name": "_initRealtimeClient", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 291, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 909, - "qualifiedName": "Options", - "package": "@supabase/realtime-js", - "name": "Options" - } - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 286, - "name": "_initSupabaseAuthClient", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 228, - "character": 10 - } - ], - "signatures": [ - { - "id": 287, - "name": "_initSupabaseAuthClient", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 288, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 176, - "name": "SupabaseClientOptions" - } - } - ], - "type": { - "type": "reference", - "name": "SupabaseAuthClient" - } - } - ] - }, - { - "id": 298, - "name": "_listenForAuthEvents", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 306, - "character": 10 - } - ], - "signatures": [ - { - "id": 299, - "name": "_listenForAuthEvents", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 769, - "qualifiedName": "Subscription", - "package": "@supabase/gotrue-js", - "name": "Subscription" - } - ] - } - } - ] - }, - { - "id": 296, - "name": "_listenForMultiTabEvents", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 279, - "character": 10 - } - ], - "signatures": [ - { - "id": 297, - "name": "_listenForMultiTabEvents", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "void" - } - ] - } - } - ] - }, - { - "id": 279, - "name": "_unsubscribeSubscription", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 209, - "character": 10 - } - ], - "signatures": [ - { - "id": 280, - "name": "_unsubscribeSubscription", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 281, - "name": "subscription", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 282, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 283, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 211, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 283 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 246, - "name": "from", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 125, - "character": 2 - } - ], - "signatures": [ - { - "id": 247, - "name": "from", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Perform a table operation." - }, - "typeParameter": [ - { - "id": 248, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "parameters": [ - { - "id": 249, - "name": "table", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The table name to operate on.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 8, - "typeArguments": [ - { - "type": "reference", - "id": 248, - "name": "T" - } - ], - "name": "SupabaseQueryBuilder" - } - } - ] - }, - { - "id": 284, - "name": "getSubscriptions", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 224, - "character": 2 - } - ], - "signatures": [ - { - "id": 285, - "name": "getSubscriptions", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Returns an array of all your subscriptions." - }, - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - } - ] - }, - { - "id": 259, - "name": "removeAllSubscriptions", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 162, - "character": 8 - } - ], - "signatures": [ - { - "id": 260, - "name": "removeAllSubscriptions", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Closes and removes all subscriptions and returns a list of removed\nsubscriptions and their errors." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 261, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 262, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 163, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 263, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 264, - "name": "subscription", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 163, - "character": 14 - } - ], - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 264 - ] - } - ] - } - } - }, - { - "id": 265, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 163, - "character": 52 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 262, - 265 - ] - } - ] - } - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 266, - "name": "removeSubscription", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 182, - "character": 8 - } - ], - "signatures": [ - { - "id": 267, - "name": "removeSubscription", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Closes and removes a subscription and returns the number of open subscriptions." - }, - "parameters": [ - { - "id": 268, - "name": "subscription", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The subscription you want to close and remove.\n" - }, - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 269, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 270, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 184, - "character": 15 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 271, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 272, - "name": "openSubscriptions", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 184, - "character": 23 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 272 - ] - } - ] - } - } - }, - { - "id": 273, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 184, - "character": 52 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 270, - 273 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 250, - "name": "rpc", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 146, - "character": 2 - } - ], - "signatures": [ - { - "id": 251, - "name": "rpc", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Perform a function call." - }, - "typeParameter": [ - { - "id": 252, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "parameters": [ - { - "id": 253, - "name": "fn", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The function name to call." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 254, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The parameters to pass to the function call." - }, - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 255, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 256, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 258, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 152, - "character": 25 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 257, - "name": "head", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 152, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 258, - 257 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 252, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 215 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 220, - 224, - 234, - 229, - 226, - 236, - 228, - 227, - 223, - 222, - 221, - 235, - 225, - 241, - 240 - ] - }, - { - "title": "Accessors", - "kind": 262144, - "children": [ - 242, - 244 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 274, - 294, - 300, - 292, - 289, - 286, - 298, - 296, - 279, - 246, - 284, - 259, - 266, - 250 - ] - } - ], - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 26, - "character": 21 - } - ] - }, - { - "id": 759, - "name": "AdminUserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 761, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for app_metadata that.", - "text": "Only a service role can modify.\n\nCan be any JSON that includes app-specific info, such as identity providers, roles, and other\naccess control information.\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 103, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 768, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 80, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - }, - "inheritedFrom": { - "type": "reference", - "id": 758, - "name": "UserAttributes.data" - } - }, - { - "id": 764, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 64, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 754, - "name": "UserAttributes.email" - } - }, - { - "id": 767, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 76, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 757, - "name": "UserAttributes.email_change_token" - } - }, - { - "id": 762, - "name": "email_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their email address.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 109, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 766, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 72, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 756, - "name": "UserAttributes.password" - } - }, - { - "id": 765, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 68, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 755, - "name": "UserAttributes.phone" - } - }, - { - "id": 763, - "name": "phone_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their phone number.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 115, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 760, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata.", - "text": "Can be any JSON.\n\nOnly a service role can modify.\n\nNote: When using the GoTrueAdminApi and wanting to modify a user's user_metadata,\nthis attribute is used instead of UserAttributes data.\n\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 94, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 761, - 768, - 764, - 767, - 762, - 766, - 765, - 763, - 760 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 82, - "character": 17 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 753, - "qualifiedName": "UserAttributes", - "package": "@supabase/gotrue-js", - "name": "UserAttributes" - } - ] - }, - { - "id": 737, - "name": "ApiError", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 738, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 4, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 739, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 5, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 738, - 739 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 3, - "character": 17 - } - ] - }, - { - "id": 335, - "name": "AuthSession", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 337, - "name": "access_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 9, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 339, - "name": "expires_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A timestamp of when the token will expire. Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 17, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 338, - "name": "expires_in", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The number of seconds until the token expires (since it was issued). Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 13, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 336, - "name": "provider_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 8, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 340, - "name": "refresh_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 18, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 341, - "name": "token_type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 19, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 342, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 20, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 337, - 339, - 338, - 336, - 340, - 341, - 342 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 7, - "character": 17 - } - ] - }, - { - "id": 307, - "name": "AuthUser", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 324, - "name": "action_link", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 48, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 309, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 35, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 310, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 311, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 36, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 311 - ] - } - ], - "indexSignature": { - "id": 312, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 313, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 318, - "name": "aud", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 42, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 319, - "name": "confirmation_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 43, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 328, - "name": "confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 52, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 327, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 51, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 325, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 49, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 321, - "name": "email_change_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 45, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 329, - "name": "email_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 53, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 308, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 34, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 334, - "name": "identities", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 58, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 741, - "qualifiedName": "UserIdentity", - "package": "@supabase/gotrue-js", - "name": "UserIdentity" - } - } - }, - { - "id": 323, - "name": "invited_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 47, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 331, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 55, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 322, - "name": "new_email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 46, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 326, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 50, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 330, - "name": "phone_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 54, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 320, - "name": "recovery_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 44, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 332, - "name": "role", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 56, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 333, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 57, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 314, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 39, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 315, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 316, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 317, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 324, - 309, - 318, - 319, - 328, - 327, - 325, - 321, - 329, - 308, - 334, - 323, - 331, - 322, - 326, - 330, - 320, - 332, - 333, - 314 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 33, - "character": 17 - } - ] - }, - { - "id": 777, - "name": "CookieOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 780, - "name": "domain", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 134, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 779, - "name": "lifetime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 133, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 778, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 132, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 781, - "name": "path", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 135, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 782, - "name": "sameSite", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 136, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 780, - 779, - 778, - 781, - 782 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 131, - "character": 17 - } - ] - }, - { - "id": 803, - "name": "OpenIDConnectCredentials", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 807, - "name": "client_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 165, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 804, - "name": "id_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 162, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 808, - "name": "issuer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 166, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 805, - "name": "nonce", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 163, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 806, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 164, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 735, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 807, - 804, - 808, - 805, - 806 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 161, - "character": 17 - } - ] - }, - { - "id": 769, - "name": "Subscription", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 770, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The subscriber UUID. This will be set by the client." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 121, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 771, - "name": "callback", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 125, - "character": 4 - } - ], - "signatures": [ - { - "id": 772, - "name": "callback", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The function to call every time there is an event. eg: (eventName) => {}" - }, - "parameters": [ - { - "id": 773, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 736, - "qualifiedName": "AuthChangeEvent", - "package": "@supabase/gotrue-js", - "name": "AuthChangeEvent" - } - }, - { - "id": 774, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 775, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 129, - "character": 4 - } - ], - "signatures": [ - { - "id": 776, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Call this to remove the listener." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 770 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 771, - 775 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 117, - "character": 17 - } - ] - }, - { - "id": 753, - "name": "UserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 758, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 80, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 754, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 64, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 757, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 76, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 756, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 72, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 755, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 68, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 758, - 754, - 757, - 756, - 755 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 60, - "character": 17 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 759, - "name": "AdminUserAttributes" - } - ] - }, - { - "id": 783, - "name": "UserCredentials", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 784, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 139, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 789, - "name": "oidc", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 144, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 803, - "qualifiedName": "OpenIDConnectCredentials", - "package": "@supabase/gotrue-js", - "name": "OpenIDConnectCredentials" - } - }, - { - "id": 786, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 141, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 785, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 140, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 788, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 143, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 735, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - }, - { - "id": 787, - "name": "refreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 142, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 784, - 789, - 786, - 785, - 788, - 787 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 138, - "character": 17 - } - ] - }, - { - "id": 741, - "name": "UserIdentity", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 749, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 29, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 742, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 23, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 744, - "name": "identity_data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 25, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 745, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 746, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 747, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 750, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 30, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 748, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 28, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 751, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 31, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 743, - "name": "user_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 24, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 749, - 742, - 744, - 750, - 748, - 751, - 743 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 22, - "character": 17 - } - ] - }, - { - "id": 796, - "name": "VerifyEmailOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 797, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 154, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 798, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 155, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 799, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 156, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 800, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 157, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 802, - "qualifiedName": "EmailOTPType", - "package": "@supabase/gotrue-js", - "name": "EmailOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 797, - 798, - 799, - 800 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 153, - "character": 17 - } - ] - }, - { - "id": 791, - "name": "VerifyMobileOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 792, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 148, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 793, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 149, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 794, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 150, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 795, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 151, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 801, - "qualifiedName": "MobileOTPType", - "package": "@supabase/gotrue-js", - "name": "MobileOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 792, - 793, - 794, - 795 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 147, - "character": 17 - } - ] - }, - { - "id": 736, - "name": "AuthChangeEvent", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 2, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "PASSWORD_RECOVERY" - }, - { - "type": "literal", - "value": "SIGNED_IN" - }, - { - "type": "literal", - "value": "SIGNED_OUT" - }, - { - "type": "literal", - "value": "TOKEN_REFRESHED" - }, - { - "type": "literal", - "value": "USER_UPDATED" - }, - { - "type": "literal", - "value": "USER_DELETED" - } - ] - } - }, - { - "id": 802, - "name": "EmailOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 160, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "invite" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "email_change" - } - ] - } - }, - { - "id": 801, - "name": "MobileOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 159, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "sms" - }, - { - "type": "literal", - "value": "phone_change" - } - ] - } - }, - { - "id": 208, - "name": "PostgrestError", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Error format", - "text": "{@link https://postgrest.org/en/stable/api.html?highlight=options#errors-and-http-status-codes}\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 7, - "character": 20 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 209, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 213, - "name": "code", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 11, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 211, - "name": "details", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 9, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 212, - "name": "hint", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 10, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 210, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 8, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 213, - 211, - 212, - 210 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 7, - "character": 37 - } - ] - } - } - }, - { - "id": 206, - "name": "PostgrestMaybeSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 41, - "character": 20 - } - ], - "typeParameter": [ - { - "id": 207, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - } - } - ], - "type": { - "type": "reference", - "id": 204, - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reference", - "id": 207, - "qualifiedName": "T", - "package": "@supabase/postgrest-js", - "name": "T" - }, - { - "type": "literal", - "value": null - } - ] - } - ], - "qualifiedName": "PostgrestSingleResponse", - "package": "@supabase/postgrest-js", - "name": "PostgrestSingleResponse" - } - }, - { - "id": 202, - "name": "PostgrestResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 34, - "character": 20 - } - ], - "typeParameter": [ - { - "id": 203, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 203, - "qualifiedName": "T", - "package": "@supabase/postgrest-js", - "name": "T" - } - ], - "qualifiedName": "PostgrestResponseSuccess", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponseSuccess" - }, - { - "type": "reference", - "qualifiedName": "PostgrestResponseFailure", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponseFailure" - } - ] - } - }, - { - "id": 204, - "name": "PostgrestSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 40, - "character": 20 - } - ], - "typeParameter": [ - { - "id": 205, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 205, - "qualifiedName": "T", - "package": "@supabase/postgrest-js", - "name": "T" - } - ], - "qualifiedName": "PostgrestSingleResponseSuccess", - "package": "@supabase/postgrest-js", - "name": "PostgrestSingleResponseSuccess" - }, - { - "type": "reference", - "qualifiedName": "PostgrestResponseFailure", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponseFailure" - } - ] - } - }, - { - "id": 735, - "name": "Provider", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 1, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "apple" - }, - { - "type": "literal", - "value": "azure" - }, - { - "type": "literal", - "value": "bitbucket" - }, - { - "type": "literal", - "value": "discord" - }, - { - "type": "literal", - "value": "facebook" - }, - { - "type": "literal", - "value": "github" - }, - { - "type": "literal", - "value": "gitlab" - }, - { - "type": "literal", - "value": "google" - }, - { - "type": "literal", - "value": "keycloak" - }, - { - "type": "literal", - "value": "linkedin" - }, - { - "type": "literal", - "value": "notion" - }, - { - "type": "literal", - "value": "slack" - }, - { - "type": "literal", - "value": "spotify" - }, - { - "type": "literal", - "value": "twitch" - }, - { - "type": "literal", - "value": "twitter" - }, - { - "type": "literal", - "value": "workos" - } - ] - } - }, - { - "id": 909, - "name": "RealtimeClientOptions", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 5, - "character": 20 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 910, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 917, - "name": "decode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 12, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 916, - "name": "encode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 11, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 919, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 14, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 920, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 14, - "character": 14 - } - ], - "indexSignature": { - "id": 921, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 922, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 913, - "name": "heartbeatIntervalMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 8, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 915, - "name": "logger", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 10, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 914, - "name": "longpollerTimeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 9, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 923, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 17, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 924, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 17, - "character": 13 - } - ], - "indexSignature": { - "id": 925, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 926, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 918, - "name": "reconnectAfterMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 13, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 912, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 7, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 911, - "name": "transport", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 6, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "WebSocket", - "package": "typescript", - "name": "WebSocket" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 917, - 916, - 919, - 913, - 915, - 914, - 923, - 918, - 912, - 911 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 5, - "character": 30 - } - ] - } - } - }, - { - "id": 809, - "name": "SupportedStorage", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 173, - "character": 20 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - } - }, - { - "id": 790, - "name": "VerifyOTPParams", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 146, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 791, - "qualifiedName": "VerifyMobileOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyMobileOTPParams" - }, - { - "type": "reference", - "id": 796, - "qualifiedName": "VerifyEmailOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyEmailOTPParams" - } - ] - } - }, - { - "id": 2, - "name": "createClient", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 16, - "character": 6 - } - ], - "signatures": [ - { - "id": 3, - "name": "createClient", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new Supabase Client." - }, - "parameters": [ - { - "id": 4, - "name": "supabaseUrl", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 5, - "name": "supabaseKey", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 6, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 176, - "name": "SupabaseClientOptions" - } - } - ], - "type": { - "type": "reference", - "id": 214, - "name": "default" - } - } - ] - } - ], - "groups": [ - { - "title": "References", - "kind": 16777216, - "children": [ - 740, - 305, - 306, - 752 - ] - }, - { - "title": "Namespaces", - "kind": 4, - "children": [ - 1014 - ] - }, - { - "title": "Classes", - "kind": 128, - "children": [ - 343, - 601, - 810, - 927, - 214 - ] - }, - { - "title": "Interfaces", - "kind": 256, - "children": [ - 759, - 737, - 335, - 307, - 777, - 803, - 769, - 753, - 783, - 741, - 796, - 791 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 736, - 802, - 801, - 208, - 206, - 202, - 204, - 735, - 909, - 809, - 790 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 2 - ] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 7, - "name": "lib/SupabaseQueryBuilder", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 8, - "name": "SupabaseQueryBuilder", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 9, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 13, - "character": 2 - } - ], - "signatures": [ - { - "id": 10, - "name": "new SupabaseQueryBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "typeParameter": [ - { - "id": 11, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "parameters": [ - { - "id": 12, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 13, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 14, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 19, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 27, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 20, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 21, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 22, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 23, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 15, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 23, - "character": 6 - } - ], - "type": { - "type": "reference", - "id": 171, - "name": "GenericObject" - } - }, - { - "id": 17, - "name": "realtime", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 25, - "character": 6 - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 16, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 24, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 24, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 28, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 18, - "name": "table", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 26, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 19, - 15, - 17, - 16, - 24, - 18 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 8, - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "name": "SupabaseQueryBuilder" - }, - "overwrites": { - "type": "reference", - "name": "PostgrestQueryBuilder.constructor" - } - } - ], - "overwrites": { - "type": "reference", - "name": "PostgrestQueryBuilder.constructor" - } - }, - { - "id": 27, - "name": "_headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 9, - "character": 10 - } - ], - "type": { - "type": "reference", - "id": 171, - "name": "GenericObject" - } - }, - { - "id": 26, - "name": "_realtime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 8, - "character": 10 - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 28, - "name": "_schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 10, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 25, - "name": "_subscription", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 7, - "character": 10 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 114, - "name": "SupabaseRealtimeClient" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 29, - "name": "_table", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 11, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 96, - "name": "allowEmpty", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 53, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.allowEmpty" - } - }, - { - "id": 88, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 49, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - } - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.body" - } - }, - { - "id": 91, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 52, - "character": 14 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 92, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 93, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 94, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 95, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.fetch" - } - }, - { - "id": 83, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 45, - "character": 14 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 84, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 85, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 86, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.headers" - } - }, - { - "id": 81, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 43, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "DELETE" - }, - { - "type": "literal", - "value": "GET" - }, - { - "type": "literal", - "value": "HEAD" - }, - { - "type": "literal", - "value": "POST" - }, - { - "type": "literal", - "value": "PATCH" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.method" - } - }, - { - "id": 87, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 48, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.schema" - } - }, - { - "id": 89, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 50, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.shouldThrowOnError" - } - }, - { - "id": 90, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 51, - "character": 14 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AbortSignal", - "package": "typescript", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.signal" - } - }, - { - "id": 82, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 44, - "character": 14 - } - ], - "type": { - "type": "reference", - "qualifiedName": "URL", - "package": "typescript", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.url" - } - }, - { - "id": 75, - "name": "delete", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 75, - "character": 4 - } - ], - "signatures": [ - { - "id": 76, - "name": "delete", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Performs a DELETE on the table." - }, - "parameters": [ - { - "id": 77, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 78, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 80, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 77, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 79, - "name": "returning", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 76, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "minimal" - }, - { - "type": "literal", - "value": "representation" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 80, - 79 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.delete" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.delete" - } - }, - { - "id": 44, - "name": "insert", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 30, - "character": 4 - } - ], - "signatures": [ - { - "id": 45, - "name": "insert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Performs an INSERT into the table." - }, - "parameters": [ - { - "id": 46, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The values to insert." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - } - } - ] - } - }, - { - "id": 47, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 48, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 50, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 32, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 49, - "name": "returning", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 31, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "minimal" - }, - { - "type": "literal", - "value": "representation" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 50, - 49 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.insert" - } - }, - { - "id": 51, - "name": "insert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `upsert()` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 52, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - } - } - ] - } - }, - { - "id": 53, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 54, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 58, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 41, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 56, - "name": "onConflict", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 39, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 57, - "name": "returning", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 40, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "minimal" - }, - { - "type": "literal", - "value": "representation" - } - ] - } - }, - { - "id": 55, - "name": "upsert", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 38, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 58, - 56, - 57, - 55 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.insert" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.insert" - } - }, - { - "id": 30, - "name": "on", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 44, - "character": 2 - } - ], - "signatures": [ - { - "id": 31, - "name": "on", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Subscribe to realtime changes in your database." - }, - "parameters": [ - { - "id": 32, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The database event which you would like to receive updates for, or you can use the special wildcard `*` to listen to all changes." - }, - "type": { - "type": "reference", - "id": 199, - "name": "SupabaseEventTypes" - } - }, - { - "id": 33, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A callback that will handle the payload that is sent whenever your database changes.\n" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 34, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 35, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 36, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 189, - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "name": "SupabaseRealtimePayload" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 114, - "name": "SupabaseRealtimeClient" - } - } - ] - }, - { - "id": 37, - "name": "select", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 19, - "character": 4 - } - ], - "signatures": [ - { - "id": 38, - "name": "select", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Performs vertical filtering with SELECT." - }, - "parameters": [ - { - "id": 39, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The columns to retrieve, separated by commas." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 40, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 41, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 43, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 21, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 42, - "name": "head", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 20, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 43, - 42 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.select" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.select" - } - }, - { - "id": 100, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 62, - "character": 4 - } - ], - "signatures": [ - { - "id": 101, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "typeParameter": [ - { - "id": 102, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - }, - "default": { - "type": "reference", - "id": 202, - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestResponse", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponse" - } - }, - { - "id": 103, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - }, - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "parameters": [ - { - "id": 104, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 105, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 106, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 107, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 202, - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestResponse", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 102, - "qualifiedName": "TResult1", - "package": "@supabase/postgrest-js", - "name": "TResult1" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 102, - "qualifiedName": "TResult1", - "package": "@supabase/postgrest-js", - "name": "TResult1" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - ] - } - } - ] - } - } - ] - } - }, - { - "id": 108, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 109, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 110, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 111, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 103, - "qualifiedName": "TResult2", - "package": "@supabase/postgrest-js", - "name": "TResult2" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 103, - "qualifiedName": "TResult2", - "package": "@supabase/postgrest-js", - "name": "TResult2" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - ] - } - } - ] - } - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reference", - "id": 102, - "qualifiedName": "TResult1", - "package": "@supabase/postgrest-js", - "name": "TResult1" - }, - { - "type": "reference", - "id": 103, - "qualifiedName": "TResult2", - "package": "@supabase/postgrest-js", - "name": "TResult2" - } - ] - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.then" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.then" - } - }, - { - "id": 97, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 61, - "character": 4 - } - ], - "signatures": [ - { - "id": 98, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 99, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "type": { - "type": "reference", - "id": 8, - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "name": "SupabaseQueryBuilder" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.throwOnError" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.throwOnError" - } - }, - { - "id": 68, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 65, - "character": 4 - } - ], - "signatures": [ - { - "id": 69, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Performs an UPDATE on the table." - }, - "parameters": [ - { - "id": 70, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The values to update." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - } - }, - { - "id": 71, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 72, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 74, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 67, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 73, - "name": "returning", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 66, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "minimal" - }, - { - "type": "literal", - "value": "representation" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 74, - 73 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.update" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.update" - } - }, - { - "id": 59, - "name": "upsert", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 52, - "character": 4 - } - ], - "signatures": [ - { - "id": 60, - "name": "upsert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Performs an UPSERT into the table." - }, - "parameters": [ - { - "id": 61, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The values to insert." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - } - } - ] - } - }, - { - "id": 62, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 63, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 66, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 55, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 67, - "name": "ignoreDuplicates", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 56, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 64, - "name": "onConflict", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 53, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 65, - "name": "returning", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 54, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "minimal" - }, - { - "type": "literal", - "value": "representation" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 66, - 67, - 64, - 65 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.upsert" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.upsert" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 9 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 27, - 26, - 28, - 25, - 29, - 96, - 88, - 91, - 83, - 81, - 87, - 89, - 90, - 82 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 75, - 44, - 30, - 37, - 100, - 97, - 68, - 59 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 6, - "character": 13 - } - ], - "typeParameter": [ - { - "id": 112, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "extendedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestQueryBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 8 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 113, - "name": "lib/SupabaseRealtimeClient", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 114, - "name": "SupabaseRealtimeClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 115, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 7, - "character": 2 - } - ], - "signatures": [ - { - "id": 116, - "name": "new SupabaseRealtimeClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 117, - "name": "socket", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 118, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 171, - "name": "GenericObject" - } - }, - { - "id": 119, - "name": "schema", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 120, - "name": "tableName", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 114, - "name": "SupabaseRealtimeClient" - } - } - ] - }, - { - "id": 121, - "name": "subscription", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 5, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 122, - "name": "getPayloadRecords", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 19, - "character": 10 - } - ], - "signatures": [ - { - "id": 123, - "name": "getPayloadRecords", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 124, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 125, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 126, - "name": "new", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 127, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - }, - "defaultValue": "{}" - }, - { - "id": 128, - "name": "old", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 129, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - }, - "defaultValue": "{}" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 126, - 128 - ] - } - ] - } - } - } - ] - }, - { - "id": 130, - "name": "on", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 42, - "character": 2 - } - ], - "signatures": [ - { - "id": 131, - "name": "on", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "The event you want to listen to." - }, - "parameters": [ - { - "id": 132, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The event" - }, - "type": { - "type": "reference", - "id": 199, - "name": "SupabaseEventTypes" - } - }, - { - "id": 133, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A callback function that is called whenever the event occurs.\n" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 134, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 135, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 136, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 189, - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "SupabaseRealtimePayload" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 114, - "name": "SupabaseRealtimeClient" - } - } - ] - }, - { - "id": 137, - "name": "subscribe", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 64, - "character": 2 - } - ], - "signatures": [ - { - "id": 138, - "name": "subscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Enables the subscription." - }, - "parameters": [ - { - "id": 139, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - }, - "defaultValue": "..." - } - ], - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 115 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 121 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 122, - 130, - 137 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 4, - "character": 13 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 114 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 140, - "name": "lib/constants", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 141, - "name": "DEFAULT_HEADERS", - "kind": 32, - "kindString": "Variable", - "flags": { - "isConst": true - }, - "sources": [ - { - "fileName": "src/lib/constants.ts", - "line": 3, - "character": 13 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 142, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 143, - "name": "X-Client-Info", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "..." - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 143 - ] - } - ] - } - }, - "defaultValue": "..." - }, - { - "id": 144, - "name": "STORAGE_KEY", - "kind": 32, - "kindString": "Variable", - "flags": { - "isConst": true - }, - "sources": [ - { - "fileName": "src/lib/constants.ts", - "line": 4, - "character": 13 - } - ], - "type": { - "type": "literal", - "value": "supabase.auth.token" - }, - "defaultValue": "'supabase.auth.token'" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 141, - 144 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/constants.ts", - "line": 2, - "character": 0 - } - ] - }, - { - "id": 145, - "name": "lib/helpers", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 151, - "name": "isBrowser", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 15, - "character": 13 - } - ], - "signatures": [ - { - "id": 152, - "name": "isBrowser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 148, - "name": "stripTrailingSlash", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 11, - "character": 16 - } - ], - "signatures": [ - { - "id": 149, - "name": "stripTrailingSlash", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 150, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 146, - "name": "uuid", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 3, - "character": 16 - } - ], - "signatures": [ - { - "id": 147, - "name": "uuid", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - ], - "groups": [ - { - "title": "Functions", - "kind": 64, - "children": [ - 151, - 148, - 146 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 3, - "character": 0 - } - ] - }, - { - "id": 153, - "name": "lib/types", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 154, - "name": "SupabaseAuthClientOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 161, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 43, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.autoRefreshToken" - } - }, - { - "id": 165, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 47, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 777, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.cookieOptions" - } - }, - { - "id": 160, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 42, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.detectSessionInUrl" - } - }, - { - "id": 166, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 48, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 167, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 168, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 169, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 170, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.fetch" - } - }, - { - "id": 156, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 39, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 157, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 158, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 159, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.headers" - } - }, - { - "id": 163, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 45, - "character": 8 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.localStorage" - } - }, - { - "id": 164, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 46, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.multiTab" - } - }, - { - "id": 162, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 44, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.persistSession" - } - }, - { - "id": 155, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 38, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.url" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 161, - 165, - 160, - 166, - 156, - 163, - 164, - 162, - 155 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 6, - "character": 17 - } - ], - "extendedTypes": [ - { - "type": "reference", - "name": "GoTrueClientOptions" - } - ] - }, - { - "id": 175, - "name": "Fetch", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 10, - "character": 12 - } - ], - "type": { - "type": "query", - "queryType": { - "type": "reference", - "id": 20, - "qualifiedName": "fetch", - "package": "typescript", - "name": "fetch" - } - } - }, - { - "id": 171, - "name": "GenericObject", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 8, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 172, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 8, - "character": 28 - } - ], - "indexSignature": { - "id": 173, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 174, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 176, - "name": "SupabaseClientOptions", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 12, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 177, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 180, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Automatically refreshes the token for logged in users." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 24, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 188, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Options passed to the gotrue-js instance" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 60, - "character": 2 - } - ], - "type": { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "cookieOptions" - }, - "objectType": { - "type": "reference", - "id": 154, - "name": "SupabaseAuthClientOptions" - } - } - }, - { - "id": 183, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Detect a session from the URL. Used for OAuth login callbacks." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 36, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 186, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom `fetch` implementation." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 50, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 175, - "name": "Fetch" - } - }, - { - "id": 179, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Optional headers for initializing the client." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 20, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 171, - "name": "GenericObject" - } - }, - { - "id": 184, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A storage provider. Used to store the logged in session." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 40, - "character": 2 - } - ], - "type": { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "localStorage" - }, - "objectType": { - "type": "reference", - "id": 154, - "name": "SupabaseAuthClientOptions" - } - } - }, - { - "id": 181, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Allows to enable/disable multi-tab/window events" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 28, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 182, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Whether to persist a logged in session to storage." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 32, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 185, - "name": "realtime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Options passed to the realtime-js instance" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 45, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 909, - "qualifiedName": "Options", - "package": "@supabase/realtime-js", - "name": "RealtimeClientOptions" - } - }, - { - "id": 178, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The Postgres schema which your tables belong to. Must be on the list of exposed schemas in Supabase. Defaults to 'public'." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 16, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 187, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Throw errors, instead of returning them." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 55, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 180, - 188, - 183, - 186, - 179, - 184, - 181, - 182, - 185, - 178, - 187 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 12, - "character": 36 - } - ] - } - } - }, - { - "id": 199, - "name": "SupabaseEventTypes", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 75, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "INSERT" - }, - { - "type": "literal", - "value": "UPDATE" - }, - { - "type": "literal", - "value": "DELETE" - }, - { - "type": "literal", - "value": "*" - } - ] - } - }, - { - "id": 189, - "name": "SupabaseRealtimePayload", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 63, - "character": 12 - } - ], - "typeParameter": [ - { - "id": 198, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 190, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 191, - "name": "commit_timestamp", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 64, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 197, - "name": "errors", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 72, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - }, - { - "type": "literal", - "value": null - } - ] - } - }, - { - "id": 192, - "name": "eventType", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 65, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "INSERT" - }, - { - "type": "literal", - "value": "UPDATE" - }, - { - "type": "literal", - "value": "DELETE" - } - ] - } - }, - { - "id": 195, - "name": "new", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "The new record. Present for 'INSERT' and 'UPDATE' events." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 69, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 198, - "name": "T" - } - }, - { - "id": 196, - "name": "old", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "The previous record. Present for 'UPDATE' and 'DELETE' events." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 71, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 198, - "name": "T" - } - }, - { - "id": 193, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 66, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 194, - "name": "table", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 67, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 191, - 197, - 192, - 195, - 196, - 193, - 194 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 63, - "character": 41 - } - ] - } - } - } - ], - "groups": [ - { - "title": "Interfaces", - "kind": 256, - "children": [ - 154 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 175, - 171, - 176, - 199, - 189 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 200, - "name": "lib/version", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 201, - "name": "version", - "kind": 32, - "kindString": "Variable", - "flags": { - "isConst": true - }, - "sources": [ - { - "fileName": "src/lib/version.ts", - "line": 1, - "character": 13 - } - ], - "type": { - "type": "literal", - "value": "0.0.0-automated" - }, - "defaultValue": "'0.0.0-automated'" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 201 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/version.ts", - "line": 1, - "character": 0 - } - ] - } - ], - "groups": [ - { - "title": "Modules", - "kind": 2, - "children": [ - 1, - 7, - 113, - 140, - 145, - 153, - 200 - ] - } - ] - }, - { - "id": 0, - "name": "@supabase/gotrue-js", - "kind": 1, - "kindString": "Project", - "flags": {}, - "originalName": "", - "children": [ - { - "id": 1, - "name": "GoTrueApi", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 2, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 25, - "character": 2 - } - ], - "signatures": [ - { - "id": 3, - "name": "new GoTrueApi", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 4, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 5, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 11, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 35, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 557, - "name": "CookieOptions" - } - }, - { - "id": 12, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 36, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 13, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 14, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 15, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 16, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 7, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 32, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 8, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 9, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 10, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 6, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 31, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 11, - 12, - 7, - 6 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 1, - "name": "default" - } - } - ] - }, - { - "id": 22, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 22, - "character": 12 - } - ], - "type": { - "type": "reference", - "id": 557, - "name": "CookieOptions" - } - }, - { - "id": 23, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 23, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 24, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 25, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 26, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 27, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 18, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 19, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 19, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 20, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 21, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 17, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 18, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 28, - "name": "_createRequestHeaders", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 49, - "character": 10 - } - ], - "signatures": [ - { - "id": 29, - "name": "_createRequestHeaders", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Create a temporary object with all configured headers and\nadds the Authorization token to be used on request methods" - }, - "parameters": [ - { - "id": 30, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 31, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - } - ] - }, - { - "id": 32, - "name": "cookieName", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 55, - "character": 10 - } - ], - "signatures": [ - { - "id": 33, - "name": "cookieName", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 196, - "name": "createUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 659, - "character": 8 - } - ], - "signatures": [ - { - "id": 197, - "name": "createUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new user.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 198, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The data you want to create the user with.\n" - }, - "type": { - "type": "reference", - "id": 539, - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 199, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 201, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 18 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 202, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 30 - } - ], - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - } - }, - { - "id": 200, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 6 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 201, - 202, - 200 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 203, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 205, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 64 - } - ], - "type": { - "type": "reference", - "id": 505, - "name": "User" - } - }, - { - "id": 206, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 76 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 204, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 52 - } - ], - "type": { - "type": "reference", - "id": 505, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 205, - 206, - 204 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 173, - "name": "deleteAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 549, - "character": 2 - } - ], - "signatures": [ - { - "id": 174, - "name": "deleteAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Deletes the Auth Cookies and redirects to the" - }, - "parameters": [ - { - "id": 175, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 176, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 177, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "Optionally specify a `redirectTo` URL in the options.\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 178, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 179, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 549, - "character": 63 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 179 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - }, - { - "id": 241, - "name": "deleteUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 799, - "character": 8 - } - ], - "signatures": [ - { - "id": 242, - "name": "deleteUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Delete a user. Requires a `service_role` key.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 243, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user uid you want to remove.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 244, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 246, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 801, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 247, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 801, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 245, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 801, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 246, - 247, - 245 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 184, - "name": "generateLink", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 616, - "character": 8 - } - ], - "signatures": [ - { - "id": 185, - "name": "generateLink", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Generates links to be sent via email or other." - }, - "parameters": [ - { - "id": 186, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The link type (\"signup\" or \"magiclink\" or \"recovery\" or \"invite\")." - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "invite" - }, - { - "type": "literal", - "value": "email_change_current" - }, - { - "type": "literal", - "value": "email_change_new" - } - ] - } - }, - { - "id": 187, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's email." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 188, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 189, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 191, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 627, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 190, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 626, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 192, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 628, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 191, - 190, - 192 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 193, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 194, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 630, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 195, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 630, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 194, - 195 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 180, - "name": "getAuthCookieString", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 568, - "character": 2 - } - ], - "signatures": [ - { - "id": 181, - "name": "getAuthCookieString", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Helper method to generate the Auth Cookie string for you in case you can't use `setAuthCookie`.", - "returns": "The Cookie string that needs to be set as the value for the `Set-Cookie` header.\n" - }, - "parameters": [ - { - "id": 182, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 183, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ] - }, - { - "id": 34, - "name": "getUrlForProvider", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 65, - "character": 2 - } - ], - "signatures": [ - { - "id": 35, - "name": "getUrlForProvider", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Generates the relevant login URL for a third-party provider." - }, - "parameters": [ - { - "id": 36, - "name": "provider", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "One of the providers supported by GoTrue." - }, - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 37, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 38, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 41, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 70, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 42, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 43, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 44, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 39, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 68, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 40, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 69, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 41, - 39, - 40 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 248, - "name": "getUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 826, - "character": 8 - } - ], - "signatures": [ - { - "id": 249, - "name": "getUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Gets the current user details.", - "text": "This method is called by the GoTrueClient `update` where\nthe jwt is set to this.currentSession.access_token\nand therefore, acts like getting the currently authenticated user\n" - }, - "parameters": [ - { - "id": 250, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT. Typically, the access_token for the currentSession\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 251, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 253, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 828, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 254, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 828, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 252, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 828, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 253, - 254, - 252 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 224, - "name": "getUserByCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 714, - "character": 8 - } - ], - "signatures": [ - { - "id": 225, - "name": "getUserByCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Get user by reading the cookie from the request.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 226, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 227, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 228, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 231, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 720, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 232, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 721, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 229, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 718, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 230, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 719, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 231, - 232, - 229, - 230 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 215, - "name": "getUserById", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 697, - "character": 8 - } - ], - "signatures": [ - { - "id": 216, - "name": "getUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Get user by id." - }, - "parameters": [ - { - "id": 217, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's unique identifier\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 218, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 219, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 15 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 220, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 27 - } - ], - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 219, - 220 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 221, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 222, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 49 - } - ], - "type": { - "type": "reference", - "id": 505, - "name": "User" - } - }, - { - "id": 223, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 61 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 222, - 223 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 142, - "name": "inviteUserByEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 419, - "character": 8 - } - ], - "signatures": [ - { - "id": 143, - "name": "inviteUserByEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends an invite link to an email address." - }, - "parameters": [ - { - "id": 144, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 145, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 146, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 148, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 423, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 147, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 422, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 148, - 147 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 149, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 150, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 425, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 151, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 425, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 150, - 151 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 207, - "name": "listUsers", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 8 - } - ], - "signatures": [ - { - "id": 208, - "name": "listUsers", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Get a list of users.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 209, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 210, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 31 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 211, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 43 - } - ], - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 210, - 211 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 212, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 213, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 65 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 505, - "name": "User" - } - } - }, - { - "id": 214, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 79 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 213, - 214 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 163, - "name": "refreshAccessToken", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 479, - "character": 8 - } - ], - "signatures": [ - { - "id": 164, - "name": "refreshAccessToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Generates a new JWT." - }, - "parameters": [ - { - "id": 165, - "name": "refreshToken", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid refresh token that was returned on login.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 166, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 167, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 481, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 168, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 481, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 167, - 168 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 152, - "name": "resetPasswordForEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 450, - "character": 8 - } - ], - "signatures": [ - { - "id": 153, - "name": "resetPasswordForEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends a reset request to an email address." - }, - "parameters": [ - { - "id": 154, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 155, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 156, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 158, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 454, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 157, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 453, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 158, - 157 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 159, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 160, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 456, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 161, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - ] - } - }, - { - "id": 162, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 456, - "character": 32 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 160, - 162 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 95, - "name": "sendMagicLinkEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 272, - "character": 8 - } - ], - "signatures": [ - { - "id": 96, - "name": "sendMagicLinkEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends a magic login link to an email address." - }, - "parameters": [ - { - "id": 97, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 98, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 99, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 102, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 277, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 101, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 276, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 100, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 275, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 102, - 101, - 100 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 103, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 104, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 279, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 105, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - ] - } - }, - { - "id": 106, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 279, - "character": 32 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 104, - 106 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 107, - "name": "sendMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 310, - "character": 8 - } - ], - "signatures": [ - { - "id": 108, - "name": "sendMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends a mobile OTP via SMS. Will register the account if it doesn't already exist" - }, - "parameters": [ - { - "id": 109, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 110, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 111, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 113, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 314, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 112, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 313, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 113, - 112 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 114, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 115, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 316, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 116, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - ] - } - }, - { - "id": 117, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 316, - "character": 32 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 115, - 117 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 169, - "name": "setAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 503, - "character": 2 - } - ], - "signatures": [ - { - "id": 170, - "name": "setAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Set/delete the auth cookie based on the AuthChangeEvent.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 171, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 172, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The response object.\n" - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 57, - "name": "signInWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 139, - "character": 8 - } - ], - "signatures": [ - { - "id": 58, - "name": "signInWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Logs in an existing user using their email address." - }, - "parameters": [ - { - "id": 59, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 60, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 61, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 62, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 64, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 144, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 63, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 143, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 64, - 63 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 65, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 66, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 146, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 67, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 146, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 66, - 67 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 89, - "name": "signInWithOpenIDConnect", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 241, - "character": 8 - } - ], - "signatures": [ - { - "id": 90, - "name": "signInWithOpenIDConnect", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Logs in an OpenID Connect user using their id_token." - }, - "parameters": [ - { - "id": 91, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 583, - "name": "OpenIDConnectCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 92, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 93, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 247, - "character": 42 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 94, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 247, - "character": 64 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 93, - 94 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 79, - "name": "signInWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 209, - "character": 8 - } - ], - "signatures": [ - { - "id": 80, - "name": "signInWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Logs in an existing user using their phone number and password." - }, - "parameters": [ - { - "id": 81, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 82, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 83, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 84, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 85, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 213, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 85 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 86, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 87, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 215, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 88, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 215, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 87, - 88 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 118, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 340, - "character": 8 - } - ], - "signatures": [ - { - "id": 119, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Removes a logged-in session." - }, - "parameters": [ - { - "id": 120, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 121, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 122, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 340, - "character": 40 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 122 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 45, - "name": "signUpWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 98, - "character": 8 - } - ], - "signatures": [ - { - "id": 46, - "name": "signUpWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new user using their email address.", - "returns": "A logged-in session if the server has \"autoconfirm\" ON" - }, - "parameters": [ - { - "id": 47, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 48, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 49, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 50, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 53, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 104, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 52, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 103, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 51, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 102, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 53, - 52, - 51 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 54, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 55, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 106, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 56, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 106, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 55, - 56 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 68, - "name": "signUpWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 174, - "character": 8 - } - ], - "signatures": [ - { - "id": 69, - "name": "signUpWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Signs up a new user using their phone number and a password." - }, - "parameters": [ - { - "id": 70, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 71, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 72, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 73, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 75, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 179, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 74, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 178, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 75, - 74 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 76, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 77, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 181, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 78, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 181, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 77, - 78 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 255, - "name": "updateUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 844, - "character": 8 - } - ], - "signatures": [ - { - "id": 256, - "name": "updateUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 257, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 258, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The data you want to update.\n" - }, - "type": { - "type": "reference", - "id": 533, - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 259, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 261, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 262, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 260, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 261, - 262, - 260 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 233, - "name": "updateUserById", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 777, - "character": 8 - } - ], - "signatures": [ - { - "id": 234, - "name": "updateUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 235, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 236, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The data you want to update.\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "id": 539, - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 237, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 239, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 780, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 240, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 780, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 238, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 780, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 239, - 240, - 238 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 123, - "name": "verifyMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 360, - "character": 8 - } - ], - "signatures": [ - { - "id": 124, - "name": "verifyMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `verifyOTP` instead!" - } - ] - }, - "parameters": [ - { - "id": 125, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 126, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "token that user was sent to their mobile phone" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 127, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 128, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 129, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 364, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 129 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 130, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 131, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 366, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 132, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 366, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 131, - 132 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 133, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 391, - "character": 8 - } - ], - "signatures": [ - { - "id": 134, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Send User supplied Email / Mobile OTP to be verified" - }, - "parameters": [ - { - "id": 135, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 570, - "name": "VerifyOTPParams" - } - }, - { - "id": 136, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 137, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 138, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 394, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 138 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 139, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 140, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 396, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 141, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 396, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 140, - 141 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 2 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 22, - 23, - 18, - 17 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 28, - 32, - 196, - 173, - 241, - 184, - 180, - 34, - 248, - 224, - 215, - 142, - 207, - 163, - 152, - 95, - 107, - 169, - 57, - 89, - 79, - 118, - 45, - 68, - 255, - 233, - 123, - 133 - ] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 17, - "character": 21 - } - ] - }, - { - "id": 263, - "name": "GoTrueClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 264, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 82, - "character": 2 - } - ], - "signatures": [ - { - "id": 265, - "name": "new GoTrueClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "comment": { - "shortText": "Create a new client for use in the browser." - }, - "parameters": [ - { - "id": 266, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 267, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 274, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically refresh the token before expiring." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 86, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 278, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 90, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 557, - "name": "CookieOptions" - } - }, - { - "id": 273, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 85, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 279, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 91, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 280, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 281, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "A custom fetch implementation.\n" - }, - "parameters": [ - { - "id": 282, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 283, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 269, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Any additional headers to send to the GoTrue server." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 84, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 270, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 271, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 272, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 276, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Provide your own local storage implementation to use instead of the browser's local storage." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 88, - "character": 4 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 277, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"false\" if you want to disable multi-tab/window events." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 89, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 275, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically save the user session into local storage." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 87, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 268, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The URL of the GoTrue server." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 83, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 274, - 278, - 273, - 279, - 269, - 276, - 277, - 275, - 268 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 263, - "name": "default" - } - } - ] - }, - { - "id": 284, - "name": "api", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "Namespace for the GoTrue API methods.\nThese can be used for example to get a user from a JWT in a server environment or reset a user's password." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 52, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 1, - "name": "default" - } - }, - { - "id": 287, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 62, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 286, - "name": "currentSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "comment": { - "shortText": "The session object for the currently logged in user or null." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 60, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 285, - "name": "currentUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "comment": { - "shortText": "The currently logged in user or null." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 56, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 289, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 64, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 290, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 65, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 293, - "name": "networkRetries", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 68, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 288, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 63, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 292, - "name": "refreshTokenTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 67, - "character": 12 - } - ], - "type": { - "type": "reference", - "qualifiedName": "NodeJS.Timeout", - "package": "@types/node", - "name": "Timeout" - } - }, - { - "id": 291, - "name": "stateChangeEmitters", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 66, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "id": 549, - "name": "Subscription" - } - ], - "qualifiedName": "Map", - "package": "typescript", - "name": "Map" - }, - "defaultValue": "..." - }, - { - "id": 454, - "name": "_callRefreshToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 695, - "character": 16 - } - ], - "signatures": [ - { - "id": 455, - "name": "_callRefreshToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 456, - "name": "refresh_token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - }, - "defaultValue": "..." - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 457, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 458, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - }, - { - "id": 459, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 458, - 459 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 460, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 461, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 462, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - }, - "defaultValue": "..." - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 461, - 462 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 383, - "name": "_handleEmailSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 520, - "character": 16 - } - ], - "signatures": [ - { - "id": 384, - "name": "_handleEmailSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 385, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 386, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 387, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 388, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 390, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 525, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 389, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 524, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 390, - 389 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 391, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 392, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 395, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 394, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 393, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 392, - 395, - 394, - 393 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 396, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 397, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - }, - { - "id": 400, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 399, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - }, - "defaultValue": "data" - }, - { - "id": 398, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - }, - "defaultValue": "data.user" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 397, - 400, - 399, - 398 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 443, - "name": "_handleOpenIDConnectSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 595, - "character": 16 - } - ], - "signatures": [ - { - "id": 444, - "name": "_handleOpenIDConnectSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 445, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 583, - "name": "OpenIDConnectCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 446, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 449, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 604, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 447, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 602, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 448, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 603, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 449, - 447, - 448 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 401, - "name": "_handlePhoneSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 546, - "character": 16 - } - ], - "signatures": [ - { - "id": 402, - "name": "_handlePhoneSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 403, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 404, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 405, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 406, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 407, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 550, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 407 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 408, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 409, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 412, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 411, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 410, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 409, - 412, - 411, - 410 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 413, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 414, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - }, - { - "id": 417, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 416, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - }, - "defaultValue": "data" - }, - { - "id": 415, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - }, - "defaultValue": "data.user" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 414, - 417, - 416, - 415 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 418, - "name": "_handleProviderSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 568, - "character": 10 - } - ], - "signatures": [ - { - "id": 419, - "name": "_handleProviderSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 420, - "name": "provider", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 421, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 422, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 425, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 573, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 426, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 427, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 428, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 423, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 571, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 424, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 572, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 425, - 423, - 424 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 429, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 432, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 435, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 430, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 433, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 431, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 434, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 432, - 435, - 430, - 433, - 431, - 434 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 436, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 437, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 440, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - }, - "defaultValue": "..." - }, - { - "id": 441, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 439, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 442, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 438, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 437, - 440, - 441, - 439, - 442, - 438 - ] - } - ] - } - } - ] - } - } - ] - }, - { - "id": 479, - "name": "_handleVisibilityChange", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 800, - "character": 10 - } - ], - "signatures": [ - { - "id": 480, - "name": "_handleVisibilityChange", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": false - } - ] - } - } - ] - }, - { - "id": 477, - "name": "_listenForMultiTabEvents", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 777, - "character": 10 - } - ], - "signatures": [ - { - "id": 478, - "name": "_listenForMultiTabEvents", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Listens for changes to LocalStorage and updates the current session." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": false - } - ] - } - } - ] - }, - { - "id": 463, - "name": "_notifyAllSubscribers", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 714, - "character": 10 - } - ], - "signatures": [ - { - "id": 464, - "name": "_notifyAllSubscribers", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 465, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 482, - "name": "AuthChangeEvent" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 469, - "name": "_persistSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 741, - "character": 10 - } - ], - "signatures": [ - { - "id": 470, - "name": "_persistSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 471, - "name": "currentSession", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 452, - "name": "_recoverAndRefresh", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 650, - "character": 16 - } - ], - "signatures": [ - { - "id": 453, - "name": "_recoverAndRefresh", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Recovers the session from LocalStorage and refreshes\nNote: this method is async to accommodate for AsyncStorage e.g. in React native." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": null - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 450, - "name": "_recoverSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 630, - "character": 10 - } - ], - "signatures": [ - { - "id": 451, - "name": "_recoverSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Attempts to get the session from LocalStorage\nNote: this should never be async (even for React Native), as we need it to return immediately in the constructor." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": null - } - ] - } - } - ] - }, - { - "id": 472, - "name": "_removeSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 746, - "character": 16 - } - ], - "signatures": [ - { - "id": 473, - "name": "_removeSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "void" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 466, - "name": "_saveSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 722, - "character": 10 - } - ], - "signatures": [ - { - "id": 467, - "name": "_saveSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "set currentSession and currentUser\nprocess to _startAutoRefreshToken if possible" - }, - "parameters": [ - { - "id": 468, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 474, - "name": "_startAutoRefreshToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 757, - "character": 10 - } - ], - "signatures": [ - { - "id": 475, - "name": "_startAutoRefreshToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Clear and re-create refresh token timer" - }, - "parameters": [ - { - "id": 476, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "time intervals in milliseconds\n" - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 361, - "name": "getSessionFromUrl", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 428, - "character": 8 - } - ], - "signatures": [ - { - "id": 362, - "name": "getSessionFromUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Gets the session data from a URL string" - }, - "parameters": [ - { - "id": 363, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 364, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 365, - "name": "storeSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Optionally store the session in the browser\n" - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 429, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 365 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 366, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 367, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 430, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 368, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 430, - "character": 38 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 367, - 368 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 373, - "name": "onAuthStateChange", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 500, - "character": 2 - } - ], - "signatures": [ - { - "id": 374, - "name": "onAuthStateChange", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Receive a notification every time an auth event happens.", - "returns": "A subscription object which can be used to unsubscribe itself.\n" - }, - "parameters": [ - { - "id": 375, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 376, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 377, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 378, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 482, - "name": "AuthChangeEvent" - } - }, - { - "id": 379, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 380, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 381, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 501, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 549, - "name": "Subscription" - } - ] - } - }, - { - "id": 382, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 502, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 381, - 382 - ] - } - ] - } - } - } - ] - }, - { - "id": 339, - "name": "refreshSession", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 339, - "character": 8 - } - ], - "signatures": [ - { - "id": 340, - "name": "refreshSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Force refreshes the session including the user data in case it was updated in a different session." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 341, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 342, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 340, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 344, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 342, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 343, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 341, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 342, - 344, - 343 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 337, - "name": "session", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 332, - "character": 2 - } - ], - "signatures": [ - { - "id": 338, - "name": "session", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Returns the session data, if there is an active session." - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ] - }, - { - "id": 358, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 411, - "character": 2 - } - ], - "signatures": [ - { - "id": 359, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Overrides the JWT on the current client. The JWT will then be sent in all subsequent network requests." - }, - "parameters": [ - { - "id": 360, - "name": "access_token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "a jwt access token\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - } - ] - }, - { - "id": 352, - "name": "setSession", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 387, - "character": 8 - } - ], - "signatures": [ - { - "id": 353, - "name": "setSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sets the session data from refresh_token and returns current Session and Error" - }, - "parameters": [ - { - "id": 354, - "name": "refresh_token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "a JWT token\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 355, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 357, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 389, - "character": 40 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 356, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 389, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 357, - 356 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 306, - "name": "signIn", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 197, - "character": 8 - } - ], - "signatures": [ - { - "id": 307, - "name": "signIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Log in an existing user, or login via a third-party provider." - }, - "parameters": [ - { - "id": 308, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 563, - "name": "UserCredentials" - } - }, - { - "id": 309, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 310, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 314, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 203, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 315, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 204, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 316, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 317, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 318, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 311, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 200, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 313, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 202, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 312, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 201, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 314, - 315, - 311, - 313, - 312 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 319, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 324, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 211, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 322, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 209, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 320, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 207, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 323, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 210, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 321, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 208, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 324, - 322, - 320, - 323, - 321 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 369, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 485, - "character": 8 - } - ], - "signatures": [ - { - "id": 370, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Inside a browser context, `signOut()` will remove the logged in user from the browser session\nand log them out - removing all items from localstorage and then trigger a \"SIGNED_OUT\" event.", - "text": "For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`. There is no way to revoke a user's session JWT before it automatically expires\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 371, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 372, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 485, - "character": 29 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 372 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 294, - "name": "signUp", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 130, - "character": 8 - } - ], - "signatures": [ - { - "id": 295, - "name": "signUp", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new user." - }, - "parameters": [ - { - "id": 296, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 563, - "name": "UserCredentials" - } - }, - { - "id": 297, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 298, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 301, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 135, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 300, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 134, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 299, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 133, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 301, - 300, - 299 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 302, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 305, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 140, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 304, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 139, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 303, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 138, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 305, - 304, - 303 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 345, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 360, - "character": 8 - } - ], - "signatures": [ - { - "id": 346, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates user data, if there is a logged in user." - }, - "parameters": [ - { - "id": 347, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 533, - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 348, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 349, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 362, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 351, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 362, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 350, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 362, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 349, - 351, - 350 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 335, - "name": "user", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 325, - "character": 2 - } - ], - "signatures": [ - { - "id": 336, - "name": "user", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Inside a browser context, `user()` will return the user data, if there is a logged in user.", - "text": "For server-side management, you can get a user through `auth.api.getUserByCookie()`\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ] - }, - { - "id": 325, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 277, - "character": 8 - } - ], - "signatures": [ - { - "id": 326, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Log in a user given a User supplied OTP received via mobile." - }, - "parameters": [ - { - "id": 327, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 570, - "name": "VerifyOTPParams" - } - }, - { - "id": 328, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 329, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 330, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 280, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 330 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 331, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 334, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 285, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 333, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 284, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 332, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 283, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 334, - 333, - 332 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 264 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 284, - 287, - 286, - 285, - 289, - 290, - 293, - 288, - 292, - 291 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 454, - 383, - 443, - 401, - 418, - 479, - 477, - 463, - 469, - 452, - 450, - 472, - 466, - 474, - 361, - 373, - 339, - 337, - 358, - 352, - 306, - 369, - 294, - 345, - 335, - 325 - ] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 47, - "character": 21 - } - ] - }, - { - "id": 539, - "name": "AdminUserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 541, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for app_metadata that.", - "text": "Only a service role can modify.\n\nCan be any JSON that includes app-specific info, such as identity providers, roles, and other\naccess control information.\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 137, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 548, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 112, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - }, - "inheritedFrom": { - "type": "reference", - "id": 538, - "name": "UserAttributes.data" - } - }, - { - "id": 544, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 92, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 534, - "name": "UserAttributes.email" - } - }, - { - "id": 547, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 107, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 537, - "name": "UserAttributes.email_change_token" - } - }, - { - "id": 542, - "name": "email_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their email address.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 144, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 546, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 102, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 536, - "name": "UserAttributes.password" - } - }, - { - "id": 545, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 97, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 535, - "name": "UserAttributes.phone" - } - }, - { - "id": 543, - "name": "phone_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their phone number.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 151, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 540, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata.", - "text": "Can be any JSON.\n\nOnly a service role can modify.\n\nNote: When using the GoTrueAdminApi and wanting to modify a user's user_metadata,\nthis attribute is used instead of UserAttributes data.\n\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 127, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 541, - 548, - 544, - 547, - 542, - 546, - 545, - 543, - 540 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 115, - "character": 17 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 533, - "name": "UserAttributes" - } - ] - }, - { - "id": 483, - "name": "ApiError", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 484, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 28, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 485, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 29, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 484, - 485 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 27, - "character": 17 - } - ] - }, - { - "id": 557, - "name": "CookieOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 560, - "name": "domain", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 175, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 559, - "name": "lifetime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 173, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 558, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 171, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 561, - "name": "path", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 176, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 562, - "name": "sameSite", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 178, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 560, - 559, - 558, - 561, - 562 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 169, - "character": 17 - } - ] - }, - { - "id": 583, - "name": "OpenIDConnectCredentials", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 587, - "name": "client_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 211, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 584, - "name": "id_token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 208, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 588, - "name": "issuer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 212, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 585, - "name": "nonce", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 209, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 586, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 210, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 587, - 584, - 588, - 585, - 586 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 207, - "character": 17 - } - ] - }, - { - "id": 486, - "name": "Session", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 488, - "name": "access_token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 34, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 490, - "name": "expires_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A timestamp of when the token will expire. Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 42, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 489, - "name": "expires_in", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The number of seconds until the token expires (since it was issued). Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 38, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 487, - "name": "provider_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 33, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 491, - "name": "refresh_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 43, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 492, - "name": "token_type", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 44, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 493, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 45, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 488, - 490, - 489, - 487, - 491, - 492, - 493 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 32, - "character": 17 - } - ] - }, - { - "id": 549, - "name": "Subscription", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 550, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "The subscriber UUID. This will be set by the client." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 158, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 551, - "name": "callback", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 162, - "character": 2 - } - ], - "signatures": [ - { - "id": 552, - "name": "callback", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "The function to call every time there is an event. eg: (eventName) => {}" - }, - "parameters": [ - { - "id": 553, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 482, - "name": "AuthChangeEvent" - } - }, - { - "id": 554, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 555, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 166, - "character": 2 - } - ], - "signatures": [ - { - "id": 556, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Call this to remove the listener." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 550 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 551, - 555 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 154, - "character": 17 - } - ] - }, - { - "id": 505, - "name": "User", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 522, - "name": "action_link", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 75, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 507, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 62, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 508, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 509, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 63, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 509 - ] - } - ], - "indexSignature": { - "id": 510, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 511, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 516, - "name": "aud", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 69, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 517, - "name": "confirmation_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 70, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 526, - "name": "confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 79, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 525, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 78, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 523, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 76, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 519, - "name": "email_change_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 72, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 527, - "name": "email_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 80, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 506, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 61, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 532, - "name": "identities", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 85, - "character": 2 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 494, - "name": "UserIdentity" - } - } - }, - { - "id": 521, - "name": "invited_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 74, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 529, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 82, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 520, - "name": "new_email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 73, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 524, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 77, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 528, - "name": "phone_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 81, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 518, - "name": "recovery_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 71, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 530, - "name": "role", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 83, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 531, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 84, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 512, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 66, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 513, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 514, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 515, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 522, - 507, - 516, - 517, - 526, - 525, - 523, - 519, - 527, - 506, - 532, - 521, - 529, - 520, - 524, - 528, - 518, - 530, - 531, - 512 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 60, - "character": 17 - } - ] - }, - { - "id": 533, - "name": "UserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 538, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 112, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 534, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 92, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 537, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 107, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 536, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 102, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 535, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 97, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 538, - 534, - 537, - 536, - 535 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 88, - "character": 17 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 539, - "name": "AdminUserAttributes" - } - ] - }, - { - "id": 563, - "name": "UserCredentials", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 564, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 182, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 569, - "name": "oidc", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 188, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 583, - "name": "OpenIDConnectCredentials" - } - }, - { - "id": 566, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 184, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 565, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 183, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 568, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 187, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 567, - "name": "refreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 185, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 564, - 569, - 566, - 565, - 568, - 567 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 181, - "character": 17 - } - ] - }, - { - "id": 494, - "name": "UserIdentity", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 502, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 55, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 495, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 49, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 497, - "name": "identity_data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 51, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 498, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 499, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 500, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 503, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 56, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 501, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 54, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 504, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 57, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 496, - "name": "user_id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 50, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 502, - 495, - 497, - 503, - 501, - 504, - 496 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 48, - "character": 17 - } - ] - }, - { - "id": 576, - "name": "VerifyEmailOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 577, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 199, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 578, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 200, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 579, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 201, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 580, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 202, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "EmailOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 577, - 578, - 579, - 580 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 198, - "character": 17 - } - ] - }, - { - "id": 571, - "name": "VerifyMobileOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 572, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 193, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 573, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 194, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 574, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 195, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 575, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 196, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 581, - "name": "MobileOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 572, - 573, - 574, - 575 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 192, - "character": 17 - } - ] - }, - { - "id": 482, - "name": "AuthChangeEvent", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 19, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "PASSWORD_RECOVERY" - }, - { - "type": "literal", - "value": "SIGNED_IN" - }, - { - "type": "literal", - "value": "SIGNED_OUT" - }, - { - "type": "literal", - "value": "TOKEN_REFRESHED" - }, - { - "type": "literal", - "value": "USER_UPDATED" - }, - { - "type": "literal", - "value": "USER_DELETED" - } - ] - } - }, - { - "id": 582, - "name": "EmailOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 205, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "invite" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "email_change" - } - ] - } - }, - { - "id": 581, - "name": "MobileOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 204, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "sms" - }, - { - "type": "literal", - "value": "phone_change" - } - ] - } - }, - { - "id": 481, - "name": "Provider", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 1, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "apple" - }, - { - "type": "literal", - "value": "azure" - }, - { - "type": "literal", - "value": "bitbucket" - }, - { - "type": "literal", - "value": "discord" - }, - { - "type": "literal", - "value": "facebook" - }, - { - "type": "literal", - "value": "github" - }, - { - "type": "literal", - "value": "gitlab" - }, - { - "type": "literal", - "value": "google" - }, - { - "type": "literal", - "value": "keycloak" - }, - { - "type": "literal", - "value": "linkedin" - }, - { - "type": "literal", - "value": "notion" - }, - { - "type": "literal", - "value": "slack" - }, - { - "type": "literal", - "value": "spotify" - }, - { - "type": "literal", - "value": "twitch" - }, - { - "type": "literal", - "value": "twitter" - }, - { - "type": "literal", - "value": "workos" - } - ] - } - }, - { - "id": 589, - "name": "SupportedStorage", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 224, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 570, - "name": "VerifyOTPParams", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 191, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 571, - "name": "VerifyMobileOTPParams" - }, - { - "type": "reference", - "id": 576, - "name": "VerifyEmailOTPParams" - } - ] - } - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 1, - 263 - ] - }, - { - "title": "Interfaces", - "kind": 256, - "children": [ - 539, - 483, - 557, - 583, - 486, - 549, - 505, - 533, - 563, - 494, - 576, - 571 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 482, - 582, - 581, - 481, - 589, - 570 - ] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 0, - "name": "@supabase/postgrest-js", - "kind": 0, - "flags": {}, - "originalName": "", - "children": [ - { - "id": 475, - "name": "\"PostgrestClient\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/PostgrestClient.ts", - "children": [ - { - "id": 476, - "name": "PostgrestClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 485, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Creates a PostgREST client." - }, - "signatures": [ - { - "id": 486, - "name": "new PostgrestClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Creates a PostgREST client." - }, - "parameters": [ - { - "id": 487, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "URL of the PostgREST endpoint." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 488, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 489, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 495, - "name": "fetch", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 26, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reference", - "id": 350, - "name": "fetch" - } - ] - } - }, - { - "id": 490, - "name": "headers", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Custom headers." - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 24, - "character": 13 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 491, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 492, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 493, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - }, - { - "id": 494, - "name": "schema", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Postgres schema to switch to.\n" - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 25, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 496, - "name": "throwOnError", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 27, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 495, - 490, - 494, - 496 - ] - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 22, - "character": 16 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 476, - "name": "PostgrestClient" - } - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 12, - "character": 30 - } - ] - }, - { - "id": 483, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 11, - "character": 7 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - } - }, - { - "id": 478, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 9, - "character": 9 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 479, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 480, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 481, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 9, - "character": 10 - } - ] - } - } - }, - { - "id": 482, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 10, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 484, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 12, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - }, - { - "id": 477, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 8, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 497, - "name": "auth", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 498, - "name": "auth", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Authenticates the request with JWT." - }, - "parameters": [ - { - "id": 499, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The JWT token to use.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 47, - "character": 6 - } - ] - }, - { - "id": 500, - "name": "from", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 501, - "name": "from", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Perform a table operation." - }, - "typeParameter": [ - { - "id": 502, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 503, - "name": "table", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The table name to operate on.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 338, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T", - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "name": "PostgrestQueryBuilder" - } - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 57, - "character": 6 - } - ] - }, - { - "id": 504, - "name": "rpc", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 505, - "name": "rpc", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Perform a function call." - }, - "typeParameter": [ - { - "id": 506, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 507, - "name": "fn", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The function name to call." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 508, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "The parameters to pass to the function call." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - }, - { - "id": 509, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 510, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 512, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Count algorithm to use to count rows in a table.\n" - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 80, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 511, - "name": "head", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "When set to true, no data will be returned." - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 79, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 512, - 511 - ] - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 77, - "character": 20 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T", - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 75, - "character": 5 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 485 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 483, - 478, - 482, - 484, - 477 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 497, - 500, - 504 - ] - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 7, - "character": 36 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 476 - ] - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 513, - "name": "\"index\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/index.ts", - "sources": [ - { - "fileName": "index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 136, - "name": "\"lib/PostgrestFilterBuilder\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/PostgrestFilterBuilder.ts", - "children": [ - { - "id": 137, - "name": "PostgrestFilterBuilder", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 138, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "children": [ - { - "id": 318, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 319, - "name": "new PostgrestFilterBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 320, - "name": "builder", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - } - ], - "type": { - "type": "reference", - "id": 137, - "name": "PostgrestFilterBuilder" - }, - "inheritedFrom": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 24 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - }, - { - "id": 224, - "name": "adj", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `rangeAdjacent()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 328, - "character": 5 - } - ], - "type": { - "type": "reference", - "id": 220, - "name": "rangeAdjacent" - }, - "defaultValue": "this.rangeAdjacent" - }, - { - "id": 314, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 58, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 36, - "name": "PostgrestBuilder.body" - } - }, - { - "id": 199, - "name": "cd", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `containedBy()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 253, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 195, - "name": "containedBy" - }, - "defaultValue": "this.containedBy" - }, - { - "id": 194, - "name": "cs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `contains()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 229, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 190, - "name": "contains" - }, - "defaultValue": "this.contains" - }, - { - "id": 317, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - }, - "inheritedFrom": { - "type": "reference", - "id": 39, - "name": "PostgrestBuilder.fetch" - } - }, - { - "id": 309, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 310, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 311, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 312, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 21 - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 31, - "name": "PostgrestBuilder.headers" - } - }, - { - "id": 307, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 54, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "HEAD" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PATCH" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 29, - "name": "PostgrestBuilder.method" - } - }, - { - "id": 214, - "name": "nxl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `rangeGte()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 298, - "character": 5 - } - ], - "type": { - "type": "reference", - "id": 210, - "name": "rangeGte" - }, - "defaultValue": "this.rangeGte" - }, - { - "id": 219, - "name": "nxr", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `rangeLte()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 313, - "character": 5 - } - ], - "type": { - "type": "reference", - "id": 215, - "name": "rangeLte" - }, - "defaultValue": "this.rangeLte" - }, - { - "id": 229, - "name": "ov", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `overlaps()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 349, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 225, - "name": "overlaps" - }, - "defaultValue": "this.overlaps" - }, - { - "id": 313, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 57, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 35, - "name": "PostgrestBuilder.schema" - } - }, - { - "id": 315, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 59, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 37, - "name": "PostgrestBuilder.shouldThrowOnError" - } - }, - { - "id": 316, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 60, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "id": 38, - "name": "PostgrestBuilder.signal" - } - }, - { - "id": 204, - "name": "sl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `rangeLt()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 268, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 200, - "name": "rangeLt" - }, - "defaultValue": "this.rangeLt" - }, - { - "id": 209, - "name": "sr", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `rangeGt()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 283, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 205, - "name": "rangeGt" - }, - "defaultValue": "this.rangeGt" - }, - { - "id": 308, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 55, - "character": 15 - } - ], - "type": { - "type": "reference", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "id": 30, - "name": "PostgrestBuilder.url" - } - }, - { - "id": 298, - "name": "abortSignal", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 299, - "name": "abortSignal", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Sets the AbortSignal for the fetch request." - }, - "parameters": [ - { - "id": 300, - "name": "signal", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "AbortSignal" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 98, - "name": "PostgrestTransformBuilder.abortSignal" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 91, - "character": 13 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 98, - "name": "PostgrestTransformBuilder.abortSignal" - } - }, - { - "id": 195, - "name": "containedBy", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 196, - "name": "containedBy", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose json, array, or range value on the stated `column` is\ncontained by the specified `value`." - }, - "parameters": [ - { - "id": 197, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 198, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 238, - "character": 13 - } - ] - }, - { - "id": 190, - "name": "contains", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 191, - "name": "contains", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose json, array, or range value on the stated `column`\ncontains the values specified in `value`." - }, - "parameters": [ - { - "id": 192, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 193, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 213, - "character": 10 - } - ] - }, - { - "id": 305, - "name": "csv", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 306, - "name": "csv", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Set the response type to CSV." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 67, - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 105, - "name": "PostgrestTransformBuilder.csv" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 134, - "character": 5 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 105, - "name": "PostgrestTransformBuilder.csv" - } - }, - { - "id": 150, - "name": "eq", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 151, - "name": "eq", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` exactly matches the\nspecified `value`." - }, - "parameters": [ - { - "id": 152, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 153, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 85, - "character": 4 - } - ] - }, - { - "id": 266, - "name": "filter", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 267, - "name": "filter", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose `column` satisfies the filter." - }, - "parameters": [ - { - "id": 268, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 269, - "name": "operator", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The operator to filter with." - }, - "type": { - "type": "reference", - "id": 336, - "name": "FilterOperator" - } - }, - { - "id": 270, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 452, - "character": 8 - } - ] - }, - { - "id": 238, - "name": "fts", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 239, - "name": "fts", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose tsvector value on the stated `column` matches\nto_tsquery(`query`).", - "tags": [ - { - "tag": "deprecated", - "text": "Use `textSearch()` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 240, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 241, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The Postgres tsquery string to filter with." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 242, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 243, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 244, - "name": "config", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The text search configuration to use.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 391, - "character": 46 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 244 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 391, - "character": 37 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 391, - "character": 5 - } - ] - }, - { - "id": 158, - "name": "gt", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 159, - "name": "gt", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is greater than the\nspecified `value`." - }, - "parameters": [ - { - "id": 160, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 161, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 109, - "character": 4 - } - ] - }, - { - "id": 162, - "name": "gte", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 163, - "name": "gte", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is greater than or\nequal to the specified `value`." - }, - "parameters": [ - { - "id": 164, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 165, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 121, - "character": 5 - } - ] - }, - { - "id": 178, - "name": "ilike", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 179, - "name": "ilike", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value in the stated `column` matches the supplied\n`pattern` (case insensitive)." - }, - "parameters": [ - { - "id": 180, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 181, - "name": "pattern", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The pattern to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 169, - "character": 7 - } - ] - }, - { - "id": 186, - "name": "in", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 187, - "name": "in", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is found on the\nspecified `values`." - }, - "parameters": [ - { - "id": 188, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 189, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The values to filter with.\n" - }, - "type": { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 193, - "character": 4 - } - ] - }, - { - "id": 182, - "name": "is", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 183, - "name": "is", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "A check for exact equality (null, true, false), finds all rows whose\nvalue on the stated `column` exactly match the specified `value`." - }, - "parameters": [ - { - "id": 184, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 185, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "boolean" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 181, - "character": 4 - } - ] - }, - { - "id": 174, - "name": "like", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 175, - "name": "like", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value in the stated `column` matches the supplied\n`pattern` (case sensitive)." - }, - "parameters": [ - { - "id": 176, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 177, - "name": "pattern", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The pattern to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 157, - "character": 6 - } - ] - }, - { - "id": 285, - "name": "limit", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 286, - "name": "limit", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Limits the result with the specified `count`." - }, - "parameters": [ - { - "id": 287, - "name": "count", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The maximum no. of rows to limit to." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 288, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 289, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 290, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (for foreign columns).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 290 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 22 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 85, - "name": "PostgrestTransformBuilder.limit" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 7 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 85, - "name": "PostgrestTransformBuilder.limit" - } - }, - { - "id": 166, - "name": "lt", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 167, - "name": "lt", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is less than the\nspecified `value`." - }, - "parameters": [ - { - "id": 168, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 169, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 133, - "character": 4 - } - ] - }, - { - "id": 170, - "name": "lte", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 171, - "name": "lte", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is less than or equal\nto the specified `value`." - }, - "parameters": [ - { - "id": 172, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 173, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 145, - "character": 5 - } - ] - }, - { - "id": 271, - "name": "match", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 272, - "name": "match", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose columns match the specified `query` object." - }, - "parameters": [ - { - "id": 273, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The object to filter with, with column names as keys mapped\n to their filter values.\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "name": "Record" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 463, - "character": 7 - } - ] - }, - { - "id": 303, - "name": "maybeSingle", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 304, - "name": "maybeSingle", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves at most one row from the result. Result must be at most one row\n(e.g. using `eq` on a UNIQUE column), otherwise this will result in an\nerror." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 69, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestMaybeSingleResponse" - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 103, - "name": "PostgrestTransformBuilder.maybeSingle" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 110, - "character": 13 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 103, - "name": "PostgrestTransformBuilder.maybeSingle" - } - }, - { - "id": 154, - "name": "neq", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 155, - "name": "neq", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` doesn't match the\nspecified `value`." - }, - "parameters": [ - { - "id": 156, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 157, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 97, - "character": 5 - } - ] - }, - { - "id": 139, - "name": "not", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 140, - "name": "not", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows which doesn't satisfy the filter." - }, - "parameters": [ - { - "id": 141, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 142, - "name": "operator", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The operator to filter with." - }, - "type": { - "type": "reference", - "id": 336, - "name": "FilterOperator" - } - }, - { - "id": 143, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 61, - "character": 5 - } - ] - }, - { - "id": 144, - "name": "or", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 145, - "name": "or", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows satisfying at least one of the filters." - }, - "parameters": [ - { - "id": 146, - "name": "filters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The filters to use, separated by commas." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 147, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 148, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 149, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (if `column` is a foreign column).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 72, - "character": 36 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 149 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 72, - "character": 21 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 72, - "character": 4 - } - ] - }, - { - "id": 277, - "name": "order", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 278, - "name": "order", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Orders the result with the specified `column`." - }, - "parameters": [ - { - "id": 279, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to order on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 280, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 281, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 282, - "name": "ascending", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "If `true`, the result will be in ascending order." - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 43, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "true" - }, - { - "id": 284, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (if `column` is a foreign column).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 45, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 283, - "name": "nullsFirst", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "If `true`, `null`s appear first." - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 44, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 282, - 284, - 283 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 41, - "character": 20 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 77, - "name": "PostgrestTransformBuilder.order" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 40, - "character": 7 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 77, - "name": "PostgrestTransformBuilder.order" - } - }, - { - "id": 225, - "name": "overlaps", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 226, - "name": "overlaps", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose array or range value on the stated `column` overlaps\n(has a value in common) with the specified `value`." - }, - "parameters": [ - { - "id": 227, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 228, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 337, - "character": 10 - } - ] - }, - { - "id": 252, - "name": "phfts", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 253, - "name": "phfts", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose tsvector value on the stated `column` matches\nphraseto_tsquery(`query`).", - "tags": [ - { - "tag": "deprecated", - "text": "Use `textSearch()` with `type: 'phrase'` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 254, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 255, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The Postgres tsquery string to filter with." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 256, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 257, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 258, - "name": "config", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The text search configuration to use.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 423, - "character": 48 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 258 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 423, - "character": 39 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 423, - "character": 7 - } - ] - }, - { - "id": 245, - "name": "plfts", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 246, - "name": "plfts", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose tsvector value on the stated `column` matches\nplainto_tsquery(`query`).", - "tags": [ - { - "tag": "deprecated", - "text": "Use `textSearch()` with `type: 'plain'` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 247, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 248, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The Postgres tsquery string to filter with." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 249, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 250, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 251, - "name": "config", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The text search configuration to use.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 407, - "character": 48 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 251 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 407, - "character": 39 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 407, - "character": 7 - } - ] - }, - { - "id": 291, - "name": "range", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 292, - "name": "range", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Limits the result to rows within the specified range, inclusive." - }, - "parameters": [ - { - "id": 293, - "name": "from", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The starting index from which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 294, - "name": "to", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The last index to which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 295, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 296, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 297, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (for foreign columns).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 48 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 297 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 33 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 91, - "name": "PostgrestTransformBuilder.range" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 7 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 91, - "name": "PostgrestTransformBuilder.range" - } - }, - { - "id": 220, - "name": "rangeAdjacent", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 221, - "name": "rangeAdjacent", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` is adjacent to\nthe specified `range`." - }, - "parameters": [ - { - "id": 222, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 223, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 322, - "character": 15 - } - ] - }, - { - "id": 205, - "name": "rangeGt", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 206, - "name": "rangeGt", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` is strictly to\nthe right of the specified `range`." - }, - "parameters": [ - { - "id": 207, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 208, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 277, - "character": 9 - } - ] - }, - { - "id": 210, - "name": "rangeGte", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 211, - "name": "rangeGte", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` does not extend\nto the left of the specified `range`." - }, - "parameters": [ - { - "id": 212, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 213, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 292, - "character": 10 - } - ] - }, - { - "id": 200, - "name": "rangeLt", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 201, - "name": "rangeLt", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` is strictly to the\nleft of the specified `range`." - }, - "parameters": [ - { - "id": 202, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 203, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 262, - "character": 9 - } - ] - }, - { - "id": 215, - "name": "rangeLte", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 216, - "name": "rangeLte", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` does not extend\nto the right of the specified `range`." - }, - "parameters": [ - { - "id": 217, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 218, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 307, - "character": 10 - } - ] - }, - { - "id": 274, - "name": "select", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 275, - "name": "select", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs vertical filtering with SELECT." - }, - "parameters": [ - { - "id": 276, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The columns to retrieve, separated by commas.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"*\"" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 74, - "name": "PostgrestTransformBuilder.select" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 13, - "character": 8 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 74, - "name": "PostgrestTransformBuilder.select" - } - }, - { - "id": 301, - "name": "single", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 302, - "name": "single", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves only one row from the result. Result must be one row (e.g. using\n`limit`), otherwise this will result in an error." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 67, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 101, - "name": "PostgrestTransformBuilder.single" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 100, - "character": 8 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 101, - "name": "PostgrestTransformBuilder.single" - } - }, - { - "id": 230, - "name": "textSearch", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 231, - "name": "textSearch", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose text or tsvector value on the stated `column` matches\nthe tsquery in `query`." - }, - "parameters": [ - { - "id": 232, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 233, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The Postgres tsquery string to filter with." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 234, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 235, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 236, - "name": "config", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The text search configuration to use." - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 364, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 237, - "name": "type", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The type of tsquery conversion to use on `query`.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 365, - "character": 10 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "plain" - }, - { - "type": "stringLiteral", - "value": "phrase" - }, - { - "type": "stringLiteral", - "value": "websearch" - } - ] - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 236, - 237 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 362, - "character": 18 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 360, - "character": 12 - } - ] - }, - { - "id": 324, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 325, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 326, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - }, - { - "id": 327, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 328, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 329, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 330, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 331, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 93, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 332, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 333, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 334, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 335, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 96, - "character": 18 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ] - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 91, - "character": 6 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - }, - { - "id": 321, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 322, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 323, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 83, - "character": 14 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - }, - { - "id": 259, - "name": "wfts", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 260, - "name": "wfts", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose tsvector value on the stated `column` matches\nwebsearch_to_tsquery(`query`).", - "tags": [ - { - "tag": "deprecated", - "text": "Use `textSearch()` with `type: 'websearch'` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 261, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 262, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The Postgres tsquery string to filter with." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 263, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 264, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 265, - "name": "config", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The text search configuration to use.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 439, - "character": 47 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 265 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 439, - "character": 38 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 439, - "character": 6 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 318 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 224, - 314, - 199, - 194, - 317, - 309, - 307, - 214, - 219, - 229, - 313, - 315, - 316, - 204, - 209, - 308 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 298, - 195, - 190, - 305, - 150, - 266, - 238, - 158, - 162, - 178, - 186, - 182, - 174, - 285, - 166, - 170, - 271, - 303, - 154, - 139, - 144, - 277, - 225, - 252, - 245, - 291, - 220, - 205, - 210, - 200, - 215, - 274, - 301, - 230, - 324, - 321, - 259 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 53, - "character": 43 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 72, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestTransformBuilder" - } - ], - "implementedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - ], - "name": "PromiseLike" - } - ] - }, - { - "id": 336, - "name": "FilterOperator", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "comment": { - "shortText": "Filters" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 7, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "eq" - }, - { - "type": "stringLiteral", - "value": "neq" - }, - { - "type": "stringLiteral", - "value": "gt" - }, - { - "type": "stringLiteral", - "value": "gte" - }, - { - "type": "stringLiteral", - "value": "lt" - }, - { - "type": "stringLiteral", - "value": "lte" - }, - { - "type": "stringLiteral", - "value": "like" - }, - { - "type": "stringLiteral", - "value": "ilike" - }, - { - "type": "stringLiteral", - "value": "is" - }, - { - "type": "stringLiteral", - "value": "in" - }, - { - "type": "stringLiteral", - "value": "cs" - }, - { - "type": "stringLiteral", - "value": "cd" - }, - { - "type": "stringLiteral", - "value": "sl" - }, - { - "type": "stringLiteral", - "value": "sr" - }, - { - "type": "stringLiteral", - "value": "nxl" - }, - { - "type": "stringLiteral", - "value": "nxr" - }, - { - "type": "stringLiteral", - "value": "adj" - }, - { - "type": "stringLiteral", - "value": "ov" - }, - { - "type": "stringLiteral", - "value": "fts" - }, - { - "type": "stringLiteral", - "value": "plfts" - }, - { - "type": "stringLiteral", - "value": "phfts" - }, - { - "type": "stringLiteral", - "value": "wfts" - }, - { - "type": "stringLiteral", - "value": "not.eq" - }, - { - "type": "stringLiteral", - "value": "not.neq" - }, - { - "type": "stringLiteral", - "value": "not.gt" - }, - { - "type": "stringLiteral", - "value": "not.gte" - }, - { - "type": "stringLiteral", - "value": "not.lt" - }, - { - "type": "stringLiteral", - "value": "not.lte" - }, - { - "type": "stringLiteral", - "value": "not.like" - }, - { - "type": "stringLiteral", - "value": "not.ilike" - }, - { - "type": "stringLiteral", - "value": "not.is" - }, - { - "type": "stringLiteral", - "value": "not.in" - }, - { - "type": "stringLiteral", - "value": "not.cs" - }, - { - "type": "stringLiteral", - "value": "not.cd" - }, - { - "type": "stringLiteral", - "value": "not.sl" - }, - { - "type": "stringLiteral", - "value": "not.sr" - }, - { - "type": "stringLiteral", - "value": "not.nxl" - }, - { - "type": "stringLiteral", - "value": "not.nxr" - }, - { - "type": "stringLiteral", - "value": "not.adj" - }, - { - "type": "stringLiteral", - "value": "not.ov" - }, - { - "type": "stringLiteral", - "value": "not.fts" - }, - { - "type": "stringLiteral", - "value": "not.plfts" - }, - { - "type": "stringLiteral", - "value": "not.phfts" - }, - { - "type": "stringLiteral", - "value": "not.wfts" - } - ] - } - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 137 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 336 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 337, - "name": "\"lib/PostgrestQueryBuilder\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/PostgrestQueryBuilder.ts", - "children": [ - { - "id": 338, - "name": "PostgrestQueryBuilder", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 339, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "children": [ - { - "id": 340, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 341, - "name": "new PostgrestQueryBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 342, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 343, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 344, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 350, - "name": "fetch", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 10, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reference", - "id": 350, - "name": "fetch" - } - ] - } - }, - { - "id": 345, - "name": "headers", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 8, - "character": 13 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 346, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 347, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 348, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - }, - { - "id": 349, - "name": "schema", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 9, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 351, - "name": "shouldThrowOnError", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 11, - "character": 24 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 350, - 345, - 349, - 351 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 6, - "character": 16 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 338, - "name": "PostgrestQueryBuilder" - }, - "overwrites": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 4, - "character": 75 - } - ], - "overwrites": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - }, - { - "id": 403, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 58, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 36, - "name": "PostgrestBuilder.body" - } - }, - { - "id": 406, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - }, - "inheritedFrom": { - "type": "reference", - "id": 39, - "name": "PostgrestBuilder.fetch" - } - }, - { - "id": 398, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 399, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 400, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 401, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 21 - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 31, - "name": "PostgrestBuilder.headers" - } - }, - { - "id": 396, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 54, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "HEAD" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PATCH" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 29, - "name": "PostgrestBuilder.method" - } - }, - { - "id": 402, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 57, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 35, - "name": "PostgrestBuilder.schema" - } - }, - { - "id": 404, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 59, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 37, - "name": "PostgrestBuilder.shouldThrowOnError" - } - }, - { - "id": 405, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 60, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "id": 38, - "name": "PostgrestBuilder.signal" - } - }, - { - "id": 397, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 55, - "character": 15 - } - ], - "type": { - "type": "reference", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "id": 30, - "name": "PostgrestBuilder.url" - } - }, - { - "id": 390, - "name": "delete", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 391, - "name": "delete", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs a DELETE on the table." - }, - "parameters": [ - { - "id": 392, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__0", - "type": { - "type": "reflection", - "declaration": { - "id": 393, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 395, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Count algorithm to use to count rows in a table.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 214, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 394, - "name": "returning", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "If `true`, return the deleted row(s) in the response." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 213, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "minimal" - }, - { - "type": "stringLiteral", - "value": "representation" - } - ] - }, - "defaultValue": "\"representation\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 395, - 394 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 212, - "character": 9 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 212, - "character": 8 - } - ] - }, - { - "id": 359, - "name": "insert", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 360, - "name": "insert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs an INSERT into the table." - }, - "parameters": [ - { - "id": 361, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The values to insert." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - } - }, - { - "id": 362, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 363, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 365, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 78, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - } - }, - { - "id": 364, - "name": "returning", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 77, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "minimal" - }, - { - "type": "stringLiteral", - "value": "representation" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 365, - 364 - ] - } - ] - } - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - }, - { - "id": 366, - "name": "insert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `upsert()` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 367, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - } - }, - { - "id": 368, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 369, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 373, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 90, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - } - }, - { - "id": 371, - "name": "onConflict", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 88, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 372, - "name": "returning", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 89, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "minimal" - }, - { - "type": "stringLiteral", - "value": "representation" - } - ] - } - }, - { - "id": 370, - "name": "upsert", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 87, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 373, - 371, - 372, - 370 - ] - } - ] - } - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 74, - "character": 8 - }, - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 84, - "character": 8 - }, - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 93, - "character": 8 - } - ] - }, - { - "id": 352, - "name": "select", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 353, - "name": "select", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs vertical filtering with SELECT." - }, - "parameters": [ - { - "id": 354, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The columns to retrieve, separated by commas." - }, - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"*\"" - }, - { - "id": 355, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 356, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 358, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Count algorithm to use to count rows in a table.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 36, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 357, - "name": "head", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "When set to true, select will void data." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 35, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 358, - 357 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 33, - "character": 18 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 32, - "character": 8 - } - ] - }, - { - "id": 410, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 411, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 412, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - }, - { - "id": 413, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 414, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 415, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 416, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 417, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 93, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 418, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 419, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 420, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 421, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 96, - "character": 18 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ] - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 91, - "character": 6 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - }, - { - "id": 407, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 408, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 409, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 83, - "character": 14 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - }, - { - "id": 383, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 384, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs an UPDATE on the table." - }, - "parameters": [ - { - "id": 385, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The values to update." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - }, - { - "id": 386, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 387, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 389, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Count algorithm to use to count rows in a table.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 187, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 388, - "name": "returning", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "By default the updated record is returned. Set this to 'minimal' if you don't need this value." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 186, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "minimal" - }, - { - "type": "stringLiteral", - "value": "representation" - } - ] - }, - "defaultValue": "\"representation\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 389, - 388 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 184, - "character": 23 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 183, - "character": 8 - } - ] - }, - { - "id": 374, - "name": "upsert", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 375, - "name": "upsert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs an UPSERT into the table." - }, - "parameters": [ - { - "id": 376, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The values to insert." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - } - }, - { - "id": 377, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 378, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 381, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Count algorithm to use to count rows in a table." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 147, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 382, - "name": "ignoreDuplicates", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Specifies if duplicate rows should be ignored and not inserted.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 148, - "character": 22 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - }, - { - "id": 379, - "name": "onConflict", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "By specifying the `on_conflict` query parameter, you can make UPSERT work on a column(s) that has a UNIQUE constraint." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 145, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 380, - "name": "returning", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "By default the new record is returned. Set this to 'minimal' if you don't need this value." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 146, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "minimal" - }, - { - "type": "stringLiteral", - "value": "representation" - } - ] - }, - "defaultValue": "\"representation\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 381, - 382, - 379, - 380 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 143, - "character": 38 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 142, - "character": 8 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 340 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 403, - 406, - 398, - 396, - 402, - 404, - 405, - 397 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 390, - 359, - 352, - 410, - 407, - 383, - 374 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 4, - "character": 42 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - ], - "implementedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - ], - "name": "PromiseLike" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 338 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 422, - "name": "\"lib/PostgrestRpcBuilder\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/PostgrestRpcBuilder.ts", - "children": [ - { - "id": 423, - "name": "PostgrestRpcBuilder", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 424, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "children": [ - { - "id": 425, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 426, - "name": "new PostgrestRpcBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 427, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 428, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 429, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 435, - "name": "fetch", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 10, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reference", - "id": 350, - "name": "fetch" - } - ] - } - }, - { - "id": 430, - "name": "headers", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 8, - "character": 13 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 431, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 432, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 433, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - }, - { - "id": 434, - "name": "schema", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 9, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 436, - "name": "shouldThrowOnError", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 11, - "character": 24 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 435, - 430, - 434, - 436 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 6, - "character": 16 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 423, - "name": "PostgrestRpcBuilder" - }, - "overwrites": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 4, - "character": 73 - } - ], - "overwrites": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - }, - { - "id": 451, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 58, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 36, - "name": "PostgrestBuilder.body" - } - }, - { - "id": 454, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - }, - "inheritedFrom": { - "type": "reference", - "id": 39, - "name": "PostgrestBuilder.fetch" - } - }, - { - "id": 446, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 447, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 448, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 449, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 21 - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 31, - "name": "PostgrestBuilder.headers" - } - }, - { - "id": 444, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 54, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "HEAD" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PATCH" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 29, - "name": "PostgrestBuilder.method" - } - }, - { - "id": 450, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 57, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 35, - "name": "PostgrestBuilder.schema" - } - }, - { - "id": 452, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 59, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 37, - "name": "PostgrestBuilder.shouldThrowOnError" - } - }, - { - "id": 453, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 60, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "id": 38, - "name": "PostgrestBuilder.signal" - } - }, - { - "id": 445, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 55, - "character": 15 - } - ], - "type": { - "type": "reference", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "id": 30, - "name": "PostgrestBuilder.url" - } - }, - { - "id": 437, - "name": "rpc", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 438, - "name": "rpc", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Perform a function call." - }, - "parameters": [ - { - "id": 439, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - }, - { - "id": 440, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 441, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 443, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 32, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 442, - "name": "head", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 31, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 443, - 442 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 29, - "character": 20 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 28, - "character": 5 - } - ] - }, - { - "id": 458, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 459, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 460, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - }, - { - "id": 461, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 462, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 463, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 464, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 465, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 93, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 466, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 467, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 468, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 469, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 96, - "character": 18 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ] - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 91, - "character": 6 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - }, - { - "id": 455, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 456, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 457, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 83, - "character": 14 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 425 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 451, - 454, - 446, - 444, - 450, - 452, - 453, - 445 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 437, - 458, - 455 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 4, - "character": 40 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - ], - "implementedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - ], - "name": "PromiseLike" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 423 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 71, - "name": "\"lib/PostgrestTransformBuilder\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/PostgrestTransformBuilder.ts", - "children": [ - { - "id": 72, - "name": "PostgrestTransformBuilder", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Post-filters (transforms)" - }, - "typeParameter": [ - { - "id": 73, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "children": [ - { - "id": 118, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 119, - "name": "new PostgrestTransformBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 120, - "name": "builder", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - } - ], - "type": { - "type": "reference", - "id": 72, - "name": "PostgrestTransformBuilder" - }, - "inheritedFrom": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 24 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - }, - { - "id": 114, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 58, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 36, - "name": "PostgrestBuilder.body" - } - }, - { - "id": 117, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - }, - "inheritedFrom": { - "type": "reference", - "id": 39, - "name": "PostgrestBuilder.fetch" - } - }, - { - "id": 109, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 110, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 111, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 112, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 21 - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 31, - "name": "PostgrestBuilder.headers" - } - }, - { - "id": 107, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 54, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "HEAD" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PATCH" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 29, - "name": "PostgrestBuilder.method" - } - }, - { - "id": 113, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 57, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 35, - "name": "PostgrestBuilder.schema" - } - }, - { - "id": 115, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 59, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 37, - "name": "PostgrestBuilder.shouldThrowOnError" - } - }, - { - "id": 116, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 60, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "id": 38, - "name": "PostgrestBuilder.signal" - } - }, - { - "id": 108, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 55, - "character": 15 - } - ], - "type": { - "type": "reference", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "id": 30, - "name": "PostgrestBuilder.url" - } - }, - { - "id": 98, - "name": "abortSignal", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 99, - "name": "abortSignal", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Sets the AbortSignal for the fetch request." - }, - "parameters": [ - { - "id": 100, - "name": "signal", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "AbortSignal" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 91, - "character": 13 - } - ] - }, - { - "id": 105, - "name": "csv", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 106, - "name": "csv", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Set the response type to CSV." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 67, - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "name": "PromiseLike" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 134, - "character": 5 - } - ] - }, - { - "id": 85, - "name": "limit", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 86, - "name": "limit", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Limits the result with the specified `count`." - }, - "parameters": [ - { - "id": 87, - "name": "count", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The maximum no. of rows to limit to." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 88, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 89, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 90, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (for foreign columns).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 90 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 22 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 7 - } - ] - }, - { - "id": 103, - "name": "maybeSingle", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 104, - "name": "maybeSingle", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves at most one row from the result. Result must be at most one row\n(e.g. using `eq` on a UNIQUE column), otherwise this will result in an\nerror." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 69, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestMaybeSingleResponse" - } - ], - "name": "PromiseLike" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 110, - "character": 13 - } - ] - }, - { - "id": 77, - "name": "order", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 78, - "name": "order", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Orders the result with the specified `column`." - }, - "parameters": [ - { - "id": 79, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to order on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 80, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 81, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 82, - "name": "ascending", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "If `true`, the result will be in ascending order." - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 43, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "true" - }, - { - "id": 84, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (if `column` is a foreign column).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 45, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 83, - "name": "nullsFirst", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "If `true`, `null`s appear first." - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 44, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 82, - 84, - 83 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 41, - "character": 20 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 40, - "character": 7 - } - ] - }, - { - "id": 91, - "name": "range", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 92, - "name": "range", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Limits the result to rows within the specified range, inclusive." - }, - "parameters": [ - { - "id": 93, - "name": "from", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The starting index from which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 94, - "name": "to", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The last index to which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 95, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 96, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 97, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (for foreign columns).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 48 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 97 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 33 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 7 - } - ] - }, - { - "id": 74, - "name": "select", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 75, - "name": "select", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs vertical filtering with SELECT." - }, - "parameters": [ - { - "id": 76, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The columns to retrieve, separated by commas.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"*\"" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 13, - "character": 8 - } - ] - }, - { - "id": 101, - "name": "single", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 102, - "name": "single", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves only one row from the result. Result must be one row (e.g. using\n`limit`), otherwise this will result in an error." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 67, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "name": "PromiseLike" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 100, - "character": 8 - } - ] - }, - { - "id": 124, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 125, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 126, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - }, - { - "id": 127, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 128, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 129, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 130, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 131, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 93, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 132, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 133, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 134, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 135, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 96, - "character": 18 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ] - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 91, - "character": 6 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - }, - { - "id": 121, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 122, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 123, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 83, - "character": 14 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 118 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 114, - 117, - 109, - 107, - 113, - 115, - 116, - 108 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 98, - 105, - 85, - 103, - 77, - 91, - 74, - 101, - 124, - 121 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 7, - "character": 46 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 137, - "name": "PostgrestFilterBuilder" - } - ], - "implementedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - ], - "name": "PromiseLike" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 72 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 472, - "name": "\"lib/constants\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/constants.ts", - "children": [ - { - "id": 473, - "name": "DEFAULT_HEADERS", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isExported": true, - "isConst": true - }, - "children": [ - { - "id": 474, - "name": "X-Client-Info", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 2, - "character": 48 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "`postgrest-js/${version}`" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 474 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 2, - "character": 28 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 473 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 1, - "name": "\"lib/types\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/types.ts", - "children": [ - { - "id": 27, - "name": "PostgrestBuilder", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true, - "isAbstract": true - }, - "typeParameter": [ - { - "id": 28, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "children": [ - { - "id": 40, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 41, - "name": "new PostgrestBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 42, - "name": "builder", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - } - ], - "type": { - "type": "reference", - "id": 27, - "name": "PostgrestBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 24 - } - ] - }, - { - "id": 36, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 58, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - } - }, - { - "id": 39, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - } - }, - { - "id": 31, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 32, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 33, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 34, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 21 - } - ] - } - } - }, - { - "id": 29, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 54, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "HEAD" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PATCH" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - } - }, - { - "id": 35, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 57, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 37, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 59, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 38, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 60, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - } - }, - { - "id": 30, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 55, - "character": 15 - } - ], - "type": { - "type": "reference", - "name": "URL" - } - }, - { - "id": 46, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 47, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 48, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - }, - { - "id": 49, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 50, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 51, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 52, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 53, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 93, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 54, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 55, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 56, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 57, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 96, - "character": 18 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ] - } - ], - "name": "PromiseLike" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 91, - "character": 6 - } - ] - }, - { - "id": 43, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 44, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 45, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 83, - "character": 14 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 40 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 36, - 39, - 31, - 29, - 35, - 37, - 38, - 30 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 46, - 43 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 53, - "character": 38 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 72, - "name": "PostgrestTransformBuilder" - }, - { - "type": "reference", - "id": 338, - "name": "PostgrestQueryBuilder" - }, - { - "type": "reference", - "id": 423, - "name": "PostgrestRpcBuilder" - } - ], - "implementedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - ], - "name": "PromiseLike" - } - ] - }, - { - "id": 2, - "name": "PostgrestResponseBase", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "comment": { - "shortText": "Response format", - "text": "{@link https://github.com/supabase/supabase-js/issues/32}\n" - }, - "children": [ - { - "id": 3, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 4, - "name": "statusText", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 24, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 3, - 4 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 22, - "character": 31 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 5, - "name": "PostgrestResponseSuccess" - }, - { - "type": "reference", - "id": 13, - "name": "PostgrestResponseFailure" - }, - { - "type": "reference", - "id": 20, - "name": "PostgrestSingleResponseSuccess" - } - ] - }, - { - "id": 13, - "name": "PostgrestResponseFailure", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 16, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 37, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 17, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 38, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 15, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 35, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 14, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 34, - "character": 7 - } - ], - "type": { - "type": "reference", - "id": 59, - "name": "PostgrestError" - } - }, - { - "id": 18, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "inheritedFrom": { - "type": "reference", - "id": 3, - "name": "PostgrestResponseBase.status" - } - }, - { - "id": 19, - "name": "statusText", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 24, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 4, - "name": "PostgrestResponseBase.statusText" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 16, - 17, - 15, - 14, - 18, - 19 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 33, - "character": 34 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 2, - "name": "PostgrestResponseBase" - } - ] - }, - { - "id": 5, - "name": "PostgrestResponseSuccess", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "typeParameter": [ - { - "id": 6, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "children": [ - { - "id": 9, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 30, - "character": 6 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 10, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 31, - "character": 7 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "number" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 8, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 29, - "character": 6 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 7, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 28, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 11, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "inheritedFrom": { - "type": "reference", - "id": 3, - "name": "PostgrestResponseBase.status" - } - }, - { - "id": 12, - "name": "statusText", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 24, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 4, - "name": "PostgrestResponseBase.statusText" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 9, - 10, - 8, - 7, - 11, - 12 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 27, - "character": 34 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 2, - "name": "PostgrestResponseBase" - } - ] - }, - { - "id": 20, - "name": "PostgrestSingleResponseSuccess", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "typeParameter": [ - { - "id": 21, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "children": [ - { - "id": 24, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 46, - "character": 6 - } - ], - "type": { - "type": "typeParameter", - "name": "T" - } - }, - { - "id": 23, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 44, - "character": 6 - } - ], - "type": { - "type": "typeParameter", - "name": "T" - } - }, - { - "id": 22, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 43, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 25, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "inheritedFrom": { - "type": "reference", - "id": 3, - "name": "PostgrestResponseBase.status" - } - }, - { - "id": 26, - "name": "statusText", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 24, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 4, - "name": "PostgrestResponseBase.statusText" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 24, - 23, - 22, - 25, - 26 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 42, - "character": 40 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 2, - "name": "PostgrestResponseBase" - } - ] - }, - { - "id": 58, - "name": "Fetch", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 3, - "character": 17 - } - ], - "type": { - "type": "query", - "queryType": { - "type": "reference", - "id": 350, - "name": "fetch" - } - } - }, - { - "id": 59, - "name": "PostgrestError", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Error format", - "text": "{@link https://postgrest.org/en/stable/api.html?highlight=options#errors-and-http-status-codes}\n" - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 10, - "character": 26 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 60, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 64, - "name": "code", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 14, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 62, - "name": "details", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 12, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 63, - "name": "hint", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 13, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 61, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 11, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 64, - 62, - 63, - 61 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 10, - "character": 28 - } - ] - } - } - }, - { - "id": 69, - "name": "PostgrestMaybeSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 70, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 51, - "character": 40 - } - ], - "type": { - "type": "reference", - "id": 67, - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "T" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - ], - "name": "PostgrestSingleResponse" - } - }, - { - "id": 65, - "name": "PostgrestResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 66, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 40, - "character": 29 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 5, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponseSuccess" - }, - { - "type": "reference", - "id": 13, - "name": "PostgrestResponseFailure" - } - ] - } - }, - { - "id": 67, - "name": "PostgrestSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 68, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 48, - "character": 35 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 20, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestSingleResponseSuccess" - }, - { - "type": "reference", - "id": 13, - "name": "PostgrestResponseFailure" - } - ] - } - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 27 - ] - }, - { - "title": "Interfaces", - "kind": 256, - "children": [ - 2, - 13, - 5, - 20 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 58, - 59, - 69, - 65, - 67 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 470, - "name": "\"lib/version\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/version.ts", - "children": [ - { - "id": 471, - "name": "version", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/version.ts", - "line": 2, - "character": 20 - } - ], - "type": { - "type": "stringLiteral", - "value": "0.0.0-automated" - }, - "defaultValue": "\"0.0.0-automated\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 471 - ] - } - ], - "sources": [ - { - "fileName": "lib/version.ts", - "line": 1, - "character": 0 - } - ] - } - ], - "groups": [ - { - "title": "Modules", - "kind": 1, - "children": [ - 475, - 513, - 136, - 337, - 422, - 71, - 472, - 1, - 470 - ] - } - ] - }, - { - "id": 0, - "name": "@supabase/realtime-js", - "kind": 0, - "flags": {}, - "originalName": "", - "children": [ - { - "id": 227, - "name": "\"RealtimeClient\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/RealtimeClient.ts", - "children": [ - { - "id": 228, - "name": "RealtimeClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 260, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Socket." - }, - "signatures": [ - { - "id": 261, - "name": "new RealtimeClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Socket." - }, - "parameters": [ - { - "id": 262, - "name": "endPoint", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 263, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 340, - "name": "Options" - } - } - ], - "type": { - "type": "reference", - "id": 228, - "name": "RealtimeClient" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 73, - "character": 3 - } - ] - }, - { - "id": 229, - "name": "accessToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 43, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 230, - "name": "channels", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 44, - "character": 10 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - }, - "defaultValue": "[]" - }, - { - "id": 252, - "name": "conn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 60, - "character": 6 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "WebSocket" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 250, - "name": "decode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 58, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 249, - "name": "encode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 57, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 231, - "name": "endPoint", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 45, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"\"" - }, - { - "id": 232, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 46, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 233, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 234, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 235, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - }, - "defaultValue": "DEFAULT_HEADERS" - }, - { - "id": 242, - "name": "heartbeatIntervalMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 50, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "30000" - }, - { - "id": 244, - "name": "heartbeatTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 52, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "query", - "queryType": { - "type": "reference", - "name": "setInterval" - } - } - ], - "name": "ReturnType" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "defaultValue": "undefined" - }, - { - "id": 248, - "name": "logger", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 56, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - }, - "defaultValue": "noop" - }, - { - "id": 243, - "name": "longpollerTimeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 51, - "character": 19 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "20000" - }, - { - "id": 236, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 47, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 237, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 238, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 239, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 245, - "name": "pendingHeartbeatRef", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 53, - "character": 21 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 251, - "name": "reconnectAfterMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 59, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 247, - "name": "reconnectTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 55, - "character": 16 - } - ], - "type": { - "type": "reference", - "id": 35, - "name": "Timer" - } - }, - { - "id": 246, - "name": "ref", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 54, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 253, - "name": "sendBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 61, - "character": 12 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "name": "Function" - } - }, - "defaultValue": "[]" - }, - { - "id": 254, - "name": "serializer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 62, - "character": 12 - } - ], - "type": { - "type": "reference", - "id": 49, - "name": "Serializer" - }, - "defaultValue": "new Serializer()" - }, - { - "id": 240, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 48, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "DEFAULT_TIMEOUT" - }, - { - "id": 241, - "name": "transport", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 49, - "character": 11 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - }, - "defaultValue": "w3cwebsocket" - }, - { - "id": 329, - "name": "_appendParams", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 330, - "name": "_appendParams", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 331, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 332, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 333, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 334, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 335, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 405, - "character": 11 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 403, - "character": 23 - } - ] - }, - { - "id": 336, - "name": "_flushSendBuffer", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 337, - "name": "_flushSendBuffer", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 416, - "character": 26 - } - ] - }, - { - "id": 321, - "name": "_onConnClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 322, - "name": "_onConnClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 323, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 383, - "character": 22 - } - ] - }, - { - "id": 324, - "name": "_onConnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 325, - "name": "_onConnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 326, - "name": "error", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "ErrorEvent" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 391, - "character": 22 - } - ] - }, - { - "id": 319, - "name": "_onConnOpen", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 320, - "name": "_onConnOpen", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 371, - "character": 21 - } - ] - }, - { - "id": 338, - "name": "_sendHeartbeat", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 339, - "name": "_sendHeartbeat", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 423, - "character": 24 - } - ] - }, - { - "id": 327, - "name": "_triggerChanError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 328, - "name": "_triggerChanError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 397, - "character": 27 - } - ] - }, - { - "id": 297, - "name": "channel", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 298, - "name": "channel", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 299, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 300, - "name": "chanParams", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 364, - "name": "ChannelParams" - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 264, - "character": 9 - } - ] - }, - { - "id": 264, - "name": "connect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 265, - "name": "connect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Connects the socket, unless already connected." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 125, - "character": 9 - } - ] - }, - { - "id": 290, - "name": "connectionState", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 291, - "name": "connectionState", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Returns the current state of the socket." - }, - "type": { - "type": "reference", - "id": 24, - "name": "CONNECTION_STATE" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 233, - "character": 17 - } - ] - }, - { - "id": 266, - "name": "disconnect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 267, - "name": "disconnect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Disconnects the socket." - }, - "parameters": [ - { - "id": 268, - "name": "code", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "A numeric status code to send on disconnect." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 269, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "A custom reason for the disconnect.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 270, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 272, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 151, - "character": 40 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 271, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 151, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 272, - 271 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 151, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 148, - "character": 12 - } - ] - }, - { - "id": 309, - "name": "endPointURL", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 310, - "name": "endPointURL", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Returns the URL of the websocket." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 320, - "character": 13 - } - ] - }, - { - "id": 292, - "name": "isConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 293, - "name": "isConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retuns `true` is the connection is open." - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 249, - "character": 13 - } - ] - }, - { - "id": 316, - "name": "leaveOpenTopic", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 317, - "name": "leaveOpenTopic", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Unsubscribe from channels with the specified topic." - }, - "parameters": [ - { - "id": 318, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 361, - "character": 16 - } - ] - }, - { - "id": 273, - "name": "log", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 274, - "name": "log", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Logs the message.", - "text": "For customized logging, `this.logger` can be overriden.\n" - }, - "parameters": [ - { - "id": 275, - "name": "kind", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 276, - "name": "msg", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 277, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 178, - "character": 5 - } - ] - }, - { - "id": 311, - "name": "makeRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 312, - "name": "makeRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Return the next message ref, accounting for overflows" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 330, - "character": 9 - } - ] - }, - { - "id": 281, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 282, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket closed.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 283, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 202, - "character": 9 - } - ] - }, - { - "id": 304, - "name": "onConnMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 305, - "name": "onConnMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 306, - "name": "rawMessage", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 307, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 308, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 290, - "character": 34 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 308 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 290, - "character": 27 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 290, - "character": 15 - } - ] - }, - { - "id": 284, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 285, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen((error) => console.log(\"An error occurred\"))\n" - } - ] - }, - "parameters": [ - { - "id": 286, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 214, - "character": 9 - } - ] - }, - { - "id": 287, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 288, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Calls a function any time a message is received.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onMessage((message) => console.log(message))\n" - } - ] - }, - "parameters": [ - { - "id": 289, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 226, - "character": 11 - } - ] - }, - { - "id": 278, - "name": "onOpen", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 279, - "name": "onOpen", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Registers a callback for connection state change event.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket opened.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 280, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 190, - "character": 8 - } - ] - }, - { - "id": 301, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 302, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Push out a message if the socket is connected.", - "text": "If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.\n" - }, - "parameters": [ - { - "id": 303, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 358, - "name": "Message" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 275, - "character": 6 - } - ] - }, - { - "id": 294, - "name": "remove", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 295, - "name": "remove", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Removes a subscription from the socket." - }, - "parameters": [ - { - "id": 296, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "An open subscription.\n" - }, - "type": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 258, - "character": 8 - } - ] - }, - { - "id": 313, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 314, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Sets the JWT access token used for channel subscription authorization and Realtime RLS." - }, - "parameters": [ - { - "id": 315, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A JWT string.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 346, - "character": 9 - } - ] - }, - { - "id": 255, - "name": "stateChangeCallbacks", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 257, - "name": "close", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 70, - "character": 9 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - }, - { - "id": 258, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 71, - "character": 9 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - }, - { - "id": 259, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 72, - "character": 11 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - }, - { - "id": 256, - "name": "open", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 69, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 257, - 258, - 259, - 256 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 63, - "character": 22 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 260 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 229, - 230, - 252, - 250, - 249, - 231, - 232, - 242, - 244, - 248, - 243, - 236, - 245, - 251, - 247, - 246, - 253, - 254, - 240, - 241 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 329, - 336, - 321, - 324, - 319, - 338, - 327, - 297, - 264, - 290, - 266, - 309, - 292, - 316, - 273, - 311, - 281, - 304, - 284, - 287, - 278, - 301, - 294, - 313 - ] - }, - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 255 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 42, - "character": 35 - } - ] - }, - { - "id": 364, - "name": "ChannelParams", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 35, - "character": 18 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 365, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 367, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 368, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "children": [ - { - "id": 366, - "name": "selfBroadcast", - "kind": 32, - "kindString": "Variable", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 36, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 366 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 35, - "character": 20 - } - ] - } - } - }, - { - "id": 358, - "name": "Message", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 28, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 359, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 361, - "name": "event", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 30, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 362, - "name": "payload", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 31, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 363, - "name": "ref", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 32, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 360, - "name": "topic", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 29, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 361, - 362, - 363, - 360 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 28, - "character": 14 - } - ] - } - } - }, - { - "id": 340, - "name": "Options", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 16, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 341, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 348, - "name": "decode", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 347, - "name": "encode", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 22, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 350, - "name": "headers", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 25, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 351, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 352, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 353, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 344, - "name": "heartbeatIntervalMs", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 19, - "character": 21 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 346, - "name": "logger", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 21, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 345, - "name": "longpollerTimeout", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 20, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 354, - "name": "params", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 26, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 355, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 356, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 357, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 349, - "name": "reconnectAfterMs", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 24, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 343, - "name": "timeout", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 18, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 342, - "name": "transport", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 17, - "character": 11 - } - ], - "type": { - "type": "reference", - "name": "WebSocket" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 348, - 347, - 350, - 344, - 346, - 345, - 354, - 349, - 343, - 342 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 16, - "character": 21 - } - ] - } - } - }, - { - "id": 369, - "name": "noop", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 370, - "name": "noop", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 40, - "character": 10 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 228 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 364, - 358, - 340 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 369 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 139, - "name": "\"RealtimeSubscription\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/RealtimeSubscription.ts", - "children": [ - { - "id": 140, - "name": "RealtimeSubscription", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 148, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 155, - "name": "new RealtimeSubscription", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 156, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 157, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 158, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 159, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 160, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 17, - "character": 18 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 161, - "name": "socket", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 228, - "name": "RealtimeClient" - } - } - ], - "type": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 13, - "character": 25 - } - ] - }, - { - "id": 141, - "name": "bindings", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 7, - "character": 10 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "any" - } - }, - "defaultValue": "[]" - }, - { - "id": 145, - "name": "joinPush", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 11, - "character": 10 - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Push" - } - }, - { - "id": 144, - "name": "joinedOnce", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 10, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - }, - { - "id": 150, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 17, - "character": 17 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 151, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 152, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 153, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 17, - "character": 18 - } - ] - } - } - }, - { - "id": 147, - "name": "pushBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 13, - "character": 12 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 74, - "name": "Push" - } - }, - "defaultValue": "[]" - }, - { - "id": 146, - "name": "rejoinTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 12, - "character": 13 - } - ], - "type": { - "type": "reference", - "id": 35, - "name": "Timer" - } - }, - { - "id": 154, - "name": "socket", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 18, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 228, - "name": "RealtimeClient" - } - }, - { - "id": 143, - "name": "state", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 9, - "character": 7 - } - ], - "type": { - "type": "reference", - "id": 9, - "name": "CHANNEL_STATES" - }, - "defaultValue": "CHANNEL_STATES.closed" - }, - { - "id": 142, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 8, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 149, - "name": "topic", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 16, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 180, - "name": "canPush", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 181, - "name": "canPush", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 97, - "character": 9 - } - ] - }, - { - "id": 217, - "name": "isClosed", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 218, - "name": "isClosed", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 202, - "character": 10 - } - ] - }, - { - "id": 219, - "name": "isErrored", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 220, - "name": "isErrored", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 205, - "character": 11 - } - ] - }, - { - "id": 221, - "name": "isJoined", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 222, - "name": "isJoined", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 208, - "character": 10 - } - ] - }, - { - "id": 223, - "name": "isJoining", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 224, - "name": "isJoining", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 211, - "character": 11 - } - ] - }, - { - "id": 225, - "name": "isLeaving", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 226, - "name": "isLeaving", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 214, - "character": 11 - } - ] - }, - { - "id": 201, - "name": "isMember", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 202, - "name": "isMember", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 203, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 158, - "character": 10 - } - ] - }, - { - "id": 204, - "name": "joinRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 205, - "name": "joinRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 162, - "character": 9 - } - ] - }, - { - "id": 177, - "name": "off", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 178, - "name": "off", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 179, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 93, - "character": 5 - } - ] - }, - { - "id": 173, - "name": "on", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 174, - "name": "on", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 175, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 176, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 89, - "character": 4 - } - ] - }, - { - "id": 167, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 168, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 169, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 81, - "character": 9 - } - ] - }, - { - "id": 170, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 171, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 172, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 85, - "character": 9 - } - ] - }, - { - "id": 196, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 197, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Overridable message hook", - "text": "Receives all events for specialized message handling before dispatching to the channel callbacks.\nMust return the payload, modified or unmodified.\n" - }, - "parameters": [ - { - "id": 198, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 199, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 200, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 154, - "character": 11 - } - ] - }, - { - "id": 182, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 183, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 184, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "CHANNEL_EVENTS" - } - }, - { - "id": 185, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 186, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 101, - "character": 6 - } - ] - }, - { - "id": 206, - "name": "rejoin", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 207, - "name": "rejoin", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 208, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 166, - "character": 8 - } - ] - }, - { - "id": 162, - "name": "rejoinUntilConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 163, - "name": "rejoinUntilConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 64, - "character": 22 - } - ] - }, - { - "id": 214, - "name": "replyEventName", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 215, - "name": "replyEventName", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 216, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 198, - "character": 16 - } - ] - }, - { - "id": 164, - "name": "subscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 165, - "name": "subscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 166, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 71, - "character": 11 - } - ] - }, - { - "id": 209, - "name": "trigger", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 210, - "name": "trigger", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 211, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 212, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 213, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 175, - "character": 9 - } - ] - }, - { - "id": 193, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 194, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Leaves the channel", - "text": "Unsubscribes from server events, and instructs channel to terminate on server.\nTriggers onClose() hooks.\n\nTo receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:\nchannel.unsubscribe().receive(\"ok\", () => alert(\"left!\") )\n" - }, - "parameters": [ - { - "id": 195, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 129, - "character": 13 - } - ] - }, - { - "id": 187, - "name": "updateJoinPayload", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 188, - "name": "updateJoinPayload", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 189, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 190, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 191, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 192, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 116, - "character": 28 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 116, - "character": 19 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 148 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 141, - 145, - 144, - 150, - 147, - 146, - 154, - 143, - 142, - 149 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 180, - 217, - 219, - 221, - 223, - 225, - 201, - 204, - 177, - 173, - 167, - 170, - 196, - 182, - 206, - 162, - 214, - 164, - 209, - 193, - 187 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 6, - "character": 41 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 140 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 445, - "name": "\"index\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/index.ts", - "sources": [ - { - "fileName": "index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 3, - "name": "\"lib/constants\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/constants.ts", - "children": [ - { - "id": 15, - "name": "CHANNEL_EVENTS", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 21, - "name": "access_token", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 32, - "character": 14 - } - ], - "defaultValue": "\"access_token\"" - }, - { - "id": 16, - "name": "close", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 27, - "character": 7 - } - ], - "defaultValue": "\"phx_close\"" - }, - { - "id": 17, - "name": "error", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 28, - "character": 7 - } - ], - "defaultValue": "\"phx_error\"" - }, - { - "id": 18, - "name": "join", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 29, - "character": 6 - } - ], - "defaultValue": "\"phx_join\"" - }, - { - "id": 20, - "name": "leave", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 31, - "character": 7 - } - ], - "defaultValue": "\"phx_leave\"" - }, - { - "id": 19, - "name": "reply", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 30, - "character": 7 - } - ], - "defaultValue": "\"phx_reply\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 21, - 16, - 17, - 18, - 20, - 19 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 26, - "character": 26 - } - ] - }, - { - "id": 9, - "name": "CHANNEL_STATES", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 10, - "name": "closed", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 19, - "character": 8 - } - ], - "defaultValue": "\"closed\"" - }, - { - "id": 11, - "name": "errored", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 20, - "character": 9 - } - ], - "defaultValue": "\"errored\"" - }, - { - "id": 12, - "name": "joined", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 21, - "character": 8 - } - ], - "defaultValue": "\"joined\"" - }, - { - "id": 13, - "name": "joining", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 22, - "character": 9 - } - ], - "defaultValue": "\"joining\"" - }, - { - "id": 14, - "name": "leaving", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 23, - "character": 9 - } - ], - "defaultValue": "\"leaving\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 10, - 11, - 12, - 13, - 14 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 18, - "character": 26 - } - ] - }, - { - "id": 24, - "name": "CONNECTION_STATE", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 28, - "name": "Closed", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 43, - "character": 8 - } - ], - "defaultValue": "\"closed\"" - }, - { - "id": 27, - "name": "Closing", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 42, - "character": 9 - } - ], - "defaultValue": "\"closing\"" - }, - { - "id": 25, - "name": "Connecting", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 40, - "character": 12 - } - ], - "defaultValue": "\"connecting\"" - }, - { - "id": 26, - "name": "Open", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 41, - "character": 6 - } - ], - "defaultValue": "\"open\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 28, - 27, - 25, - 26 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 39, - "character": 28 - } - ] - }, - { - "id": 4, - "name": "SOCKET_STATES", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 8, - "name": "closed", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 15, - "character": 8 - } - ], - "defaultValue": "3" - }, - { - "id": 7, - "name": "closing", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 14, - "character": 9 - } - ], - "defaultValue": "2" - }, - { - "id": 5, - "name": "connecting", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 12, - "character": 12 - } - ], - "defaultValue": "0" - }, - { - "id": 6, - "name": "open", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 13, - "character": 6 - } - ], - "defaultValue": "1" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 8, - 7, - 5, - 6 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 11, - "character": 25 - } - ] - }, - { - "id": 22, - "name": "TRANSPORTS", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 23, - "name": "websocket", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 36, - "character": 11 - } - ], - "defaultValue": "\"websocket\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 23 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 35, - "character": 22 - } - ] - }, - { - "id": 32, - "name": "DEFAULT_TIMEOUT", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 7, - "character": 28 - } - ], - "type": { - "type": "unknown", - "name": "10000" - }, - "defaultValue": "10000" - }, - { - "id": 31, - "name": "VSN", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 5, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"1.0.0\"" - }, - { - "id": 33, - "name": "WS_CLOSE_NORMAL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 9, - "character": 28 - } - ], - "type": { - "type": "unknown", - "name": "1000" - }, - "defaultValue": "1000" - }, - { - "id": 29, - "name": "DEFAULT_HEADERS", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isExported": true, - "isConst": true - }, - "children": [ - { - "id": 30, - "name": "X-Client-Info", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 3, - "character": 48 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "`realtime-js/${version}`" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 30 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 3, - "character": 28 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Enumerations", - "kind": 4, - "children": [ - 15, - 9, - 24, - 4, - 22 - ] - }, - { - "title": "Variables", - "kind": 32, - "children": [ - 32, - 31, - 33 - ] - }, - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 29 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 73, - "name": "\"lib/push\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/push.ts", - "children": [ - { - "id": 74, - "name": "Push", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 87, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Push" - }, - "signatures": [ - { - "id": 95, - "name": "new Push", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Push" - }, - "parameters": [ - { - "id": 96, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The Channel" - }, - "type": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - }, - { - "id": 97, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The event, for example `\"phx_join\"`" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 98, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The payload, for example `{user_id: 123}`" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 99, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 100, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 101, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 29, - "character": 19 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 102, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The push timeout in milliseconds\n" - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "DEFAULT_TIMEOUT" - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 16, - "character": 32 - } - ] - }, - { - "id": 88, - "name": "channel", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The Channel" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 27, - "character": 18 - } - ], - "type": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - }, - { - "id": 89, - "name": "event", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The event, for example `\"phx_join\"`" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 28, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 90, - "name": "payload", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The payload, for example `{user_id: 123}`" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 29, - "character": 18 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 91, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 92, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 93, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 29, - "character": 19 - } - ] - } - } - }, - { - "id": 82, - "name": "recHooks", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 12, - "character": 10 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 83, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 85, - "name": "callback", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 14, - "character": 12 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 84, - "name": "status", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 13, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 85, - 84 - ] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 12, - "character": 11 - } - ] - } - } - }, - "defaultValue": "[]" - }, - { - "id": 78, - "name": "receivedResp", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 8, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 79, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 81, - "name": "response", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 10, - "character": 12 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 80, - "name": "status", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 9, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 81, - 80 - ] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 8, - "character": 15 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 77, - "name": "ref", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 7, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"\"" - }, - { - "id": 86, - "name": "refEvent", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 16, - "character": 10 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 75, - "name": "sent", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 5, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - }, - { - "id": 94, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The push timeout in milliseconds\n" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 30, - "character": 18 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 76, - "name": "timeoutTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 6, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "number" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "defaultValue": "undefined" - }, - { - "id": 126, - "name": "_cancelRefEvent", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 127, - "name": "_cancelRefEvent", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 100, - "character": 25 - } - ] - }, - { - "id": 128, - "name": "_cancelTimeout", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 129, - "name": "_cancelTimeout", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 108, - "character": 24 - } - ] - }, - { - "id": 136, - "name": "_hasReceived", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 137, - "name": "_hasReceived", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 138, - "name": "status", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 125, - "character": 22 - } - ] - }, - { - "id": 130, - "name": "_matchReceive", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 131, - "name": "_matchReceive", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 132, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__0", - "type": { - "type": "reflection", - "declaration": { - "id": 133, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 135, - "name": "response", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 115, - "character": 12 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 134, - "name": "status", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 114, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 135, - 134 - ] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 113, - "character": 24 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 113, - "character": 23 - } - ] - }, - { - "id": 124, - "name": "destroy", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 125, - "name": "destroy", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 95, - "character": 9 - } - ] - }, - { - "id": 114, - "name": "receive", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 115, - "name": "receive", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 116, - "name": "status", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 117, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "unknown", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 61, - "character": 9 - } - ] - }, - { - "id": 103, - "name": "resend", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 104, - "name": "resend", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 105, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 33, - "character": 8 - } - ] - }, - { - "id": 106, - "name": "send", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 107, - "name": "send", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 43, - "character": 6 - } - ] - }, - { - "id": 118, - "name": "startTimeout", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 119, - "name": "startTimeout", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 70, - "character": 14 - } - ] - }, - { - "id": 120, - "name": "trigger", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 121, - "name": "trigger", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 122, - "name": "status", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 123, - "name": "response", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 91, - "character": 9 - } - ] - }, - { - "id": 108, - "name": "updatePayload", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 109, - "name": "updatePayload", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 110, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 111, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 112, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 113, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 57, - "character": 24 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 57, - "character": 15 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 87 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 88, - 89, - 90, - 82, - 78, - 77, - 86, - 75, - 94, - 76 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 126, - 128, - 136, - 130, - 124, - 114, - 103, - 106, - 118, - 120, - 108 - ] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 4, - "character": 25 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 74 - ] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 48, - "name": "\"lib/serializer\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/serializer.ts", - "children": [ - { - "id": 49, - "name": "Serializer", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 50, - "name": "HEADER_LENGTH", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 5, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "1" - }, - { - "id": 55, - "name": "_binaryDecode", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 56, - "name": "_binaryDecode", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 57, - "name": "buffer", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "ArrayBuffer" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 58, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 61, - "name": "event", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 33, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 62, - "name": "payload", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 34, - "character": 11 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 59, - "name": "ref", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 31, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 60, - "name": "topic", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 32, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 61, - 62, - 59, - 60 - ] - } - ] - } - } - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 19, - "character": 23 - } - ] - }, - { - "id": 63, - "name": "_decodeBroadcast", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 64, - "name": "_decodeBroadcast", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 65, - "name": "buffer", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "ArrayBuffer" - } - }, - { - "id": 66, - "name": "view", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "DataView" - } - }, - { - "id": 67, - "name": "decoder", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "TextDecoder" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 68, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 71, - "name": "event", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 33, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 72, - "name": "payload", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 34, - "character": 11 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 69, - "name": "ref", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 31, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 70, - "name": "topic", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 32, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 71, - 72, - 69, - 70 - ] - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 30, - "character": 4 - } - ] - } - } - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 26, - "character": 26 - } - ] - }, - { - "id": 51, - "name": "decode", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 52, - "name": "decode", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 53, - "name": "rawPayload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "ArrayBuffer" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 54, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 7, - "character": 8 - } - ] - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 50 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 55, - 63, - 51 - ] - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 4, - "character": 31 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 49 - ] - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 34, - "name": "\"lib/timer\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/timer.ts", - "children": [ - { - "id": 35, - "name": "Timer", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Creates a timer that accepts a `timerCalc` function to perform calculated timeout retries, such as exponential backoff.", - "tags": [ - { - "tag": "example", - "text": "\n let reconnectTimer = new Timer(() => this.connect(), function(tries){\n return [1000, 5000, 10000][tries - 1] || 10000\n })\n reconnectTimer.scheduleTimeout() // fires after 1000\n reconnectTimer.scheduleTimeout() // fires after 5000\n reconnectTimer.reset()\n reconnectTimer.scheduleTimeout() // fires after 1000\n" - } - ] - }, - "children": [ - { - "id": 38, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 41, - "name": "new Timer", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 42, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 43, - "name": "timerCalc", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "reference", - "id": 35, - "name": "Timer" - } - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 15, - "character": 19 - } - ] - }, - { - "id": 39, - "name": "callback", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 17, - "character": 29 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 36, - "name": "timer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 14, - "character": 7 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "number" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "defaultValue": "undefined" - }, - { - "id": 40, - "name": "timerCalc", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 17, - "character": 57 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 37, - "name": "tries", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 15, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 44, - "name": "reset", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 45, - "name": "reset", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 22, - "character": 7 - } - ] - }, - { - "id": 46, - "name": "scheduleTimeout", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 47, - "name": "scheduleTimeout", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 28, - "character": 17 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 38 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 39, - 36, - 40, - 37 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 44, - 46 - ] - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 13, - "character": 26 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 35 - ] - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 371, - "name": "\"lib/transformers\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/transformers.ts", - "children": [ - { - "id": 372, - "name": "PostgresTypes", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Helpers to convert the change Payload into native JS types." - }, - "children": [ - { - "id": 373, - "name": "abstime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 9, - "character": 9 - } - ], - "defaultValue": "\"abstime\"" - }, - { - "id": 374, - "name": "bool", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 10, - "character": 6 - } - ], - "defaultValue": "\"bool\"" - }, - { - "id": 375, - "name": "date", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 11, - "character": 6 - } - ], - "defaultValue": "\"date\"" - }, - { - "id": 376, - "name": "daterange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 12, - "character": 11 - } - ], - "defaultValue": "\"daterange\"" - }, - { - "id": 377, - "name": "float4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 13, - "character": 8 - } - ], - "defaultValue": "\"float4\"" - }, - { - "id": 378, - "name": "float8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 14, - "character": 8 - } - ], - "defaultValue": "\"float8\"" - }, - { - "id": 379, - "name": "int2", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 15, - "character": 6 - } - ], - "defaultValue": "\"int2\"" - }, - { - "id": 380, - "name": "int4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 16, - "character": 6 - } - ], - "defaultValue": "\"int4\"" - }, - { - "id": 381, - "name": "int4range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 17, - "character": 11 - } - ], - "defaultValue": "\"int4range\"" - }, - { - "id": 382, - "name": "int8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 18, - "character": 6 - } - ], - "defaultValue": "\"int8\"" - }, - { - "id": 383, - "name": "int8range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 19, - "character": 11 - } - ], - "defaultValue": "\"int8range\"" - }, - { - "id": 384, - "name": "json", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 20, - "character": 6 - } - ], - "defaultValue": "\"json\"" - }, - { - "id": 385, - "name": "jsonb", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 21, - "character": 7 - } - ], - "defaultValue": "\"jsonb\"" - }, - { - "id": 386, - "name": "money", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 22, - "character": 7 - } - ], - "defaultValue": "\"money\"" - }, - { - "id": 387, - "name": "numeric", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 23, - "character": 9 - } - ], - "defaultValue": "\"numeric\"" - }, - { - "id": 388, - "name": "oid", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 24, - "character": 5 - } - ], - "defaultValue": "\"oid\"" - }, - { - "id": 389, - "name": "reltime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 25, - "character": 9 - } - ], - "defaultValue": "\"reltime\"" - }, - { - "id": 390, - "name": "text", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 26, - "character": 6 - } - ], - "defaultValue": "\"text\"" - }, - { - "id": 391, - "name": "time", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 27, - "character": 6 - } - ], - "defaultValue": "\"time\"" - }, - { - "id": 392, - "name": "timestamp", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 28, - "character": 11 - } - ], - "defaultValue": "\"timestamp\"" - }, - { - "id": 393, - "name": "timestamptz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 29, - "character": 13 - } - ], - "defaultValue": "\"timestamptz\"" - }, - { - "id": 394, - "name": "timetz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 30, - "character": 8 - } - ], - "defaultValue": "\"timetz\"" - }, - { - "id": 395, - "name": "tsrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 31, - "character": 9 - } - ], - "defaultValue": "\"tsrange\"" - }, - { - "id": 396, - "name": "tstzrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 32, - "character": 11 - } - ], - "defaultValue": "\"tstzrange\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396 - ] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 8, - "character": 25 - } - ] - }, - { - "id": 403, - "name": "BaseValue", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 42, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "number" - }, - { - "type": "intrinsic", - "name": "boolean" - } - ] - } - }, - { - "id": 397, - "name": "Columns", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 35, - "character": 12 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 398, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 401, - "name": "flags", - "kind": 32, - "kindString": "Variable", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 38, - "character": 7 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - }, - { - "id": 399, - "name": "name", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 36, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 400, - "name": "type", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 37, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 402, - "name": "type_modifier", - "kind": 32, - "kindString": "Variable", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 39, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 401, - 399, - 400, - 402 - ] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 35, - "character": 14 - } - ] - } - } - } - }, - { - "id": 405, - "name": "Record", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 45, - "character": 11 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 406, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 407, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 408, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 45, - "character": 13 - } - ] - } - } - }, - { - "id": 404, - "name": "RecordValue", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 43, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 403, - "name": "BaseValue" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "id": 403, - "name": "BaseValue" - } - } - ] - } - }, - { - "id": 422, - "name": "convertCell", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "If the value of the cell is `null`, returns null.\nOtherwise converts the string value to the correct type.", - "tags": [ - { - "tag": "example", - "text": "convertCell('bool', 't')\n//=> true" - }, - { - "tag": "example", - "text": "convertCell('int8', '10')\n//=> 10" - }, - { - "tag": "example", - "text": "convertCell('_int4', '{1,2,3,4}')\n//=> [1,2,3,4]\n" - } - ] - }, - "signatures": [ - { - "id": 423, - "name": "convertCell", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If the value of the cell is `null`, returns null.\nOtherwise converts the string value to the correct type.", - "tags": [ - { - "tag": "example", - "text": "convertCell('bool', 't')\n//=> true" - }, - { - "tag": "example", - "text": "convertCell('int8', '10')\n//=> 10" - }, - { - "tag": "example", - "text": "convertCell('_int4', '{1,2,3,4}')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 424, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "A postgres column type" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 425, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 118, - "character": 24 - } - ] - }, - { - "id": 409, - "name": "convertChangeData", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Takes an array of columns and an object of string values then converts each string value\nto its mapped type.", - "tags": [ - { - "tag": "example", - "text": "convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n//=>{ first_name: 'Paul', age: 33 }\n" - } - ] - }, - "signatures": [ - { - "id": 410, - "name": "convertChangeData", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Takes an array of columns and an object of string values then converts each string value\nto its mapped type.", - "tags": [ - { - "tag": "example", - "text": "convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n//=>{ first_name: 'Paul', age: 33 }\n" - } - ] - }, - "parameters": [ - { - "id": 411, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 397, - "name": "Columns" - } - }, - { - "id": 412, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": {}, - "type": { - "type": "reference", - "id": 405, - "name": "Record" - } - }, - { - "id": 413, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The map of various options that can be applied to the mapper" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 414, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 415, - "name": "skipTypes", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 64, - "character": 22 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 415 - ] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 64, - "character": 10 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 405, - "name": "Record" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 61, - "character": 30 - } - ] - }, - { - "id": 416, - "name": "convertColumn", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Converts the value of an individual column.", - "returns": "Useless information\n", - "tags": [ - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n//=> 33" - }, - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n//=> \"33\"\n" - } - ] - }, - "signatures": [ - { - "id": 417, - "name": "convertColumn", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Converts the value of an individual column.", - "returns": "Useless information\n", - "tags": [ - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n//=> 33" - }, - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n//=> \"33\"\n" - } - ] - }, - "parameters": [ - { - "id": 418, - "name": "columnName", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The column that you want to convert" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 419, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 397, - "name": "Columns" - } - }, - { - "id": 420, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The map of string values" - }, - "type": { - "type": "reference", - "id": 405, - "name": "Record" - } - }, - { - "id": 421, - "name": "skipTypes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "An array of types that should not be converted" - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 88, - "character": 26 - } - ] - }, - { - "id": 426, - "name": "noop", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 427, - "name": "noop", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 428, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 162, - "character": 10 - } - ] - }, - { - "id": 438, - "name": "toArray", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Converts a Postgres Array into a native JS array", - "tags": [ - { - "tag": "example", - "text": "toArray('{}', 'int4')\n//=> []" - }, - { - "tag": "example", - "text": "toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n//=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']" - }, - { - "tag": "example", - "text": "toArray([1,2,3,4], 'int4')\n//=> [1,2,3,4]\n" - } - ] - }, - "signatures": [ - { - "id": 439, - "name": "toArray", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Converts a Postgres Array into a native JS array", - "tags": [ - { - "tag": "example", - "text": "toArray('{}', 'int4')\n//=> []" - }, - { - "tag": "example", - "text": "toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n//=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']" - }, - { - "tag": "example", - "text": "toArray([1,2,3,4], 'int4')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 440, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - }, - { - "id": 441, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 206, - "character": 20 - } - ] - }, - { - "id": 429, - "name": "toBoolean", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "signatures": [ - { - "id": 430, - "name": "toBoolean", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 431, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 165, - "character": 22 - } - ] - }, - { - "id": 435, - "name": "toJson", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "signatures": [ - { - "id": 436, - "name": "toJson", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 437, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 184, - "character": 19 - } - ] - }, - { - "id": 432, - "name": "toNumber", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "signatures": [ - { - "id": 433, - "name": "toNumber", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 434, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 175, - "character": 21 - } - ] - }, - { - "id": 442, - "name": "toTimestampString", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\nSee https://github.com/supabase/supabase/issues/18", - "tags": [ - { - "tag": "example", - "text": "toTimestampString('2019-09-10 00:00:00')\n//=> '2019-09-10T00:00:00'\n" - } - ] - }, - "signatures": [ - { - "id": 443, - "name": "toTimestampString", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\nSee https://github.com/supabase/supabase/issues/18", - "tags": [ - { - "tag": "example", - "text": "toTimestampString('2019-09-10 00:00:00')\n//=> '2019-09-10T00:00:00'\n" - } - ] - }, - "parameters": [ - { - "id": 444, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 241, - "character": 30 - } - ] - } - ], - "groups": [ - { - "title": "Enumerations", - "kind": 4, - "children": [ - 372 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 403, - 397, - 405, - 404 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 422, - 409, - 416, - 426, - 438, - 429, - 435, - 432, - 442 - ] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 1, - "name": "\"lib/version\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/version.ts", - "children": [ - { - "id": 2, - "name": "version", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/version.ts", - "line": 1, - "character": 20 - } - ], - "type": { - "type": "stringLiteral", - "value": "0.0.0-automated" - }, - "defaultValue": "\"0.0.0-automated\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 2 - ] - } - ], - "sources": [ - { - "fileName": "lib/version.ts", - "line": 1, - "character": 0 - } - ] - } - ], - "groups": [ - { - "title": "Modules", - "kind": 1, - "children": [ - 227, - 139, - 445, - 3, - 73, - 48, - 34, - 371, - 1 - ] - } - ] - }, - { - "id": 0, - "name": "@supabase/storage-js", - "kind": 0, - "flags": {}, - "originalName": "", - "children": [ - { - "id": 312, - "name": "\"StorageClient\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/StorageClient.ts", - "children": [ - { - "id": 313, - "name": "StorageClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 314, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 315, - "name": "new StorageClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 316, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 317, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 318, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 319, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 320, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "StorageClient.ts", - "line": 5, - "character": 35 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 321, - "name": "fetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - } - ], - "type": { - "type": "reference", - "id": 313, - "name": "StorageClient" - }, - "overwrites": { - "type": "reference", - "id": 114, - "name": "StorageBucketApi.__constructor" - } - } - ], - "sources": [ - { - "fileName": "StorageClient.ts", - "line": 4, - "character": 53 - } - ], - "overwrites": { - "type": "reference", - "id": 114, - "name": "StorageBucketApi.__constructor" - } - }, - { - "id": 330, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 9, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - }, - "inheritedFrom": { - "type": "reference", - "id": 113, - "name": "StorageBucketApi.fetch" - } - }, - { - "id": 326, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 8, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 327, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 328, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 329, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 8, - "character": 20 - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 109, - "name": "StorageBucketApi.headers" - } - }, - { - "id": 325, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 7, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 108, - "name": "StorageBucketApi.url" - } - }, - { - "id": 342, - "name": "createBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 343, - "name": "createBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Creates a new Storage bucket", - "returns": "newly created bucket id\n" - }, - "parameters": [ - { - "id": 344, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A unique identifier for the bucket you are creating." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 345, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 346, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 347, - "name": "public", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 51, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 347 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 51, - "character": 12 - } - ] - } - }, - "defaultValue": "{ public: false }" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 348, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 349, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 350, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 41 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 349, - 350 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 133, - "name": "StorageBucketApi.createBucket" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 49, - "character": 20 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 133, - "name": "StorageBucketApi.createBucket" - } - }, - { - "id": 370, - "name": "deleteBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 371, - "name": "deleteBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\nYou must first `empty()` the bucket." - }, - "parameters": [ - { - "id": 372, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to delete.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 373, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 374, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 375, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 376, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 376 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 377, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 374, - 377 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 161, - "name": "StorageBucketApi.deleteBucket" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 115, - "character": 20 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 161, - "name": "StorageBucketApi.deleteBucket" - } - }, - { - "id": 362, - "name": "emptyBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 363, - "name": "emptyBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Removes all objects inside a single bucket." - }, - "parameters": [ - { - "id": 364, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to empty.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 365, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 366, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 367, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 368, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 368 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 369, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 366, - 369 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 153, - "name": "StorageBucketApi.emptyBucket" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 93, - "character": 19 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 153, - "name": "StorageBucketApi.emptyBucket" - } - }, - { - "id": 322, - "name": "from", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 323, - "name": "from", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Perform file operation in a bucket." - }, - "parameters": [ - { - "id": 324, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The bucket id to operate on.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 170, - "name": "StorageFileApi" - } - } - ], - "sources": [ - { - "fileName": "StorageClient.ts", - "line": 14, - "character": 6 - } - ] - }, - { - "id": 336, - "name": "getBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 337, - "name": "getBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves the details of an existing Storage bucket." - }, - "parameters": [ - { - "id": 338, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to retrieve.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 339, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 340, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 45 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 74, - "name": "Bucket" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 341, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 67 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 340, - 341 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 39 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 127, - "name": "StorageBucketApi.getBucket" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 17 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 127, - "name": "StorageBucketApi.getBucket" - } - }, - { - "id": 331, - "name": "listBuckets", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 332, - "name": "listBuckets", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves the details of all Storage buckets within an existing project." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 333, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 334, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "reference", - "id": 74, - "name": "Bucket" - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 335, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 61 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 334, - 335 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 31 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 122, - "name": "StorageBucketApi.listBuckets" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 19 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 122, - "name": "StorageBucketApi.listBuckets" - } - }, - { - "id": 351, - "name": "updateBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 352, - "name": "updateBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Updates a new Storage bucket" - }, - "parameters": [ - { - "id": 353, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A unique identifier for the bucket you are updating.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 354, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 355, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 356, - "name": "public", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 73, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 356 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 73, - "character": 12 - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 357, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 358, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 359, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 360, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 360 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 361, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 358, - 361 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 142, - "name": "StorageBucketApi.updateBucket" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 71, - "character": 20 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 142, - "name": "StorageBucketApi.updateBucket" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 314 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 330, - 326, - 325 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 342, - 370, - 362, - 322, - 336, - 331, - 351 - ] - } - ], - "sources": [ - { - "fileName": "StorageClient.ts", - "line": 4, - "character": 26 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 107, - "name": "StorageBucketApi" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 313 - ] - } - ], - "sources": [ - { - "fileName": "StorageClient.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 378, - "name": "\"index\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/index.ts", - "children": [ - { - "id": 381, - "name": "Bucket", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 74 - }, - { - "id": 382, - "name": "FileObject", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 81 - }, - { - "id": 384, - "name": "FileOptions", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 95 - }, - { - "id": 386, - "name": "Metadata", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 104 - }, - { - "id": 385, - "name": "SearchOptions", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 99 - }, - { - "id": 383, - "name": "SortBy", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 92 - }, - { - "id": 379, - "name": "StorageClient", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 313 - }, - { - "id": 380, - "name": "SupabaseStorageClient", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 313 - } - ], - "groups": [ - { - "title": "References", - "kind": 16777216, - "children": [ - 381, - 382, - 384, - 386, - 385, - 383, - 379, - 380 - ] - } - ], - "sources": [ - { - "fileName": "index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 106, - "name": "\"lib/StorageBucketApi\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/StorageBucketApi.ts", - "children": [ - { - "id": 107, - "name": "StorageBucketApi", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 114, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 115, - "name": "new StorageBucketApi", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 116, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 117, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 118, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 119, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 120, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 11, - "character": 35 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 121, - "name": "fetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - } - ], - "type": { - "type": "reference", - "id": 107, - "name": "StorageBucketApi" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 9, - "character": 24 - } - ] - }, - { - "id": 113, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 9, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 109, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 8, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 110, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 111, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 112, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 8, - "character": 20 - } - ] - } - } - }, - { - "id": 108, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 7, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 133, - "name": "createBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 134, - "name": "createBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Creates a new Storage bucket", - "returns": "newly created bucket id\n" - }, - "parameters": [ - { - "id": 135, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A unique identifier for the bucket you are creating." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 136, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 137, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 138, - "name": "public", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 51, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 138 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 51, - "character": 12 - } - ] - } - }, - "defaultValue": "{ public: false }" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 139, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 140, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 141, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 41 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 140, - 141 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 49, - "character": 20 - } - ] - }, - { - "id": 161, - "name": "deleteBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 162, - "name": "deleteBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\nYou must first `empty()` the bucket." - }, - "parameters": [ - { - "id": 163, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to delete.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 164, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 165, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 166, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 167, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 167 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 168, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 165, - 168 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 115, - "character": 20 - } - ] - }, - { - "id": 153, - "name": "emptyBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 154, - "name": "emptyBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Removes all objects inside a single bucket." - }, - "parameters": [ - { - "id": 155, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to empty.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 156, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 157, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 158, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 159, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 159 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 160, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 157, - 160 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 93, - "character": 19 - } - ] - }, - { - "id": 127, - "name": "getBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 128, - "name": "getBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves the details of an existing Storage bucket." - }, - "parameters": [ - { - "id": 129, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to retrieve.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 130, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 131, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 45 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 74, - "name": "Bucket" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 132, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 67 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 131, - 132 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 39 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 17 - } - ] - }, - { - "id": 122, - "name": "listBuckets", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 123, - "name": "listBuckets", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves the details of all Storage buckets within an existing project." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 124, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 125, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "reference", - "id": 74, - "name": "Bucket" - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 126, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 61 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 125, - 126 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 31 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 19 - } - ] - }, - { - "id": 142, - "name": "updateBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 143, - "name": "updateBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Updates a new Storage bucket" - }, - "parameters": [ - { - "id": 144, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A unique identifier for the bucket you are updating.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 145, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 146, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 147, - "name": "public", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 73, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 147 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 73, - "character": 12 - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 148, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 149, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 150, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 151, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 151 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 152, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 149, - 152 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 71, - "character": 20 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 114 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 113, - 109, - 108 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 133, - 161, - 153, - 127, - 122, - 142 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 6, - "character": 29 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 313, - "name": "StorageClient" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 107 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 169, - "name": "\"lib/StorageFileApi\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/StorageFileApi.ts", - "children": [ - { - "id": 170, - "name": "StorageFileApi", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 178, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 179, - "name": "new StorageFileApi", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 180, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 181, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 182, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 183, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 184, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 28, - "character": 12 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 185, - "name": "bucketId", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 186, - "name": "fetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - } - ], - "type": { - "type": "reference", - "id": 170, - "name": "StorageFileApi" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 24, - "character": 24 - } - ] - }, - { - "id": 176, - "name": "bucketId", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 23, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 177, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 24, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 172, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 22, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 173, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 174, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 175, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 22, - "character": 20 - } - ] - } - } - }, - { - "id": 171, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 21, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 286, - "name": "_getFinalPath", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 287, - "name": "_getFinalPath", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 288, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 387, - "character": 15 - } - ] - }, - { - "id": 289, - "name": "_removeEmptyFolders", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 290, - "name": "_removeEmptyFolders", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 291, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 391, - "character": 21 - } - ] - }, - { - "id": 227, - "name": "copy", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 228, - "name": "copy", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Copies an existing file." - }, - "parameters": [ - { - "id": 229, - "name": "fromPath", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The original file path, including the current file name. For example `folder/image.png`." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 230, - "name": "toPath", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The new file path, including the new file name. For example `folder/image-copy.png`.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 231, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 232, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 195, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 233, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 234, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 195, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 234 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 195, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 235, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 195, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 232, - 235 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 195, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 192, - "character": 12 - } - ] - }, - { - "id": 236, - "name": "createSignedUrl", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 237, - "name": "createSignedUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Create signed URL to download file without requiring permissions. This URL can be valid for a set number of seconds." - }, - "parameters": [ - { - "id": 238, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The file path to be downloaded, including the current file name. For example `folder/image.png`." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 239, - "name": "expiresIn", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute.\n" - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 240, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 241, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 219, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 242, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 243, - "name": "signedURL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 219, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 243 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 219, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 244, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 220, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 245, - "name": "signedURL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 221, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 241, - 244, - 245 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 218, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 215, - "character": 23 - } - ] - }, - { - "id": 246, - "name": "createSignedUrls", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 247, - "name": "createSignedUrls", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Create signed URLs to download files without requiring permissions. These URLs can be valid for a set number of seconds." - }, - "parameters": [ - { - "id": 248, - "name": "paths", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`." - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - }, - { - "id": 249, - "name": "expiresIn", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute.\n" - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 250, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 251, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 249, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 252, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 253, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 249, - "character": 17 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 254, - "name": "path", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 249, - "character": 38 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 255, - "name": "signedURL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 249, - "character": 64 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 253, - 254, - 255 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 249, - "character": 9 - } - ] - } - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 256, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 250, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 251, - 256 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 248, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 245, - "character": 24 - } - ] - }, - { - "id": 257, - "name": "download", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 258, - "name": "download", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Downloads a file." - }, - "parameters": [ - { - "id": 259, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The file path to be downloaded, including the path and file name. For example `folder/image.png`.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 260, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 261, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 276, - "character": 46 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Blob" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 262, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 276, - "character": 66 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 261, - 262 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 276, - "character": 40 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 276, - "character": 16 - } - ] - }, - { - "id": 263, - "name": "getPublicUrl", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 264, - "name": "getPublicUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieve URLs for assets in public buckets" - }, - "parameters": [ - { - "id": 265, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The file path to be downloaded, including the path and file name. For example `folder/image.png`.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 266, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 267, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 298, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 268, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 269, - "name": "publicURL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 298, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 269 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 298, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 270, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 299, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 271, - "name": "publicURL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 300, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 267, - 270, - 271 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 297, - "character": 4 - } - ] - } - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 295, - "character": 14 - } - ] - }, - { - "id": 278, - "name": "list", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 279, - "name": "list", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Lists all the files within a bucket." - }, - "parameters": [ - { - "id": 280, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "The folder path." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 281, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "Search options, including `limit`, `offset`, `sortBy`, and `search`." - }, - "type": { - "type": "reference", - "id": 99, - "name": "SearchOptions" - } - }, - { - "id": 282, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "Fetch parameters, currently only supports `signal`, which is an AbortController's signal\n" - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 283, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 284, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 371, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "reference", - "id": 81, - "name": "FileObject" - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 285, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 371, - "character": 47 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 284, - 285 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 371, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 367, - "character": 12 - } - ] - }, - { - "id": 218, - "name": "move", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 219, - "name": "move", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Moves an existing file." - }, - "parameters": [ - { - "id": 220, - "name": "fromPath", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The original file path, including the current file name. For example `folder/image.png`." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 221, - "name": "toPath", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The new file path, including the new file name. For example `folder/image-new.png`.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 222, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 223, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 172, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 224, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 225, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 172, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 225 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 172, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 226, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 172, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 223, - 226 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 172, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 169, - "character": 12 - } - ] - }, - { - "id": 272, - "name": "remove", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 273, - "name": "remove", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Deletes files within the same bucket" - }, - "parameters": [ - { - "id": 274, - "name": "paths", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "An array of files to be deleted, including the path and file name. For example [`folder/image.png`].\n" - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 275, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 276, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 317, - "character": 47 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "reference", - "id": 81, - "name": "FileObject" - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 277, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 317, - "character": 75 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 276, - 277 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 317, - "character": 41 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 317, - "character": 14 - } - ] - }, - { - "id": 208, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 209, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Replaces an existing file at the specified path with a new one." - }, - "parameters": [ - { - "id": 210, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 211, - "name": "fileBody", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The body of the file to be stored in the bucket." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "ArrayBuffer" - }, - { - "type": "reference", - "name": "ArrayBufferView" - }, - { - "type": "reference", - "name": "Blob" - }, - { - "type": "reference", - "name": "Buffer" - }, - { - "type": "reference", - "name": "File" - }, - { - "type": "reference", - "name": "FormData" - }, - { - "type": "reference", - "name": "ReadableStream" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Uint8Array" - } - ], - "name": "ReadableStream" - }, - { - "type": "reference", - "name": "URLSearchParams" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 212, - "name": "fileOptions", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "HTTP headers.\n`cacheControl`: string, the `Cache-Control: max-age=` seconds value.\n`contentType`: string, the `Content-Type` header value. Should be specified if using a `fileBody` that is neither `Blob` nor `File` nor `FormData`, otherwise will default to `text/plain;charset=UTF-8`.\n`upsert`: boolean, whether to perform an upsert.\n" - }, - "type": { - "type": "reference", - "id": 95, - "name": "FileOptions" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 213, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 214, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 159, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 215, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 216, - "name": "Key", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 159, - "character": 26 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 216 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 159, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 217, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 159, - "character": 50 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 214, - 217 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 159, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 145, - "character": 14 - } - ] - }, - { - "id": 198, - "name": "upload", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 199, - "name": "upload", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Uploads a file to an existing bucket." - }, - "parameters": [ - { - "id": 200, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 201, - "name": "fileBody", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The body of the file to be stored in the bucket." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "ArrayBuffer" - }, - { - "type": "reference", - "name": "ArrayBufferView" - }, - { - "type": "reference", - "name": "Blob" - }, - { - "type": "reference", - "name": "Buffer" - }, - { - "type": "reference", - "name": "File" - }, - { - "type": "reference", - "name": "FormData" - }, - { - "type": "reference", - "name": "ReadableStream" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Uint8Array" - } - ], - "name": "ReadableStream" - }, - { - "type": "reference", - "name": "URLSearchParams" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 202, - "name": "fileOptions", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "HTTP headers.\n`cacheControl`: string, the `Cache-Control: max-age=` seconds value.\n`contentType`: string, the `Content-Type` header value. Should be specified if using a `fileBody` that is neither `Blob` nor `File` nor `FormData`, otherwise will default to `text/plain;charset=UTF-8`.\n`upsert`: boolean, whether to perform an upsert.\n" - }, - "type": { - "type": "reference", - "id": 95, - "name": "FileOptions" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 203, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 204, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 131, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 205, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 206, - "name": "Key", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 131, - "character": 26 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 206 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 131, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 207, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 131, - "character": 50 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 204, - 207 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 131, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 117, - "character": 14 - } - ] - }, - { - "id": 187, - "name": "uploadOrUpdate", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 188, - "name": "uploadOrUpdate", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Uploads a file to an existing bucket or replaces an existing file at the specified path with a new one." - }, - "parameters": [ - { - "id": 189, - "name": "method", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "HTTP method." - }, - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PUT" - } - ] - } - }, - { - "id": 190, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 191, - "name": "fileBody", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The body of the file to be stored in the bucket." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "ArrayBuffer" - }, - { - "type": "reference", - "name": "ArrayBufferView" - }, - { - "type": "reference", - "name": "Blob" - }, - { - "type": "reference", - "name": "Buffer" - }, - { - "type": "reference", - "name": "File" - }, - { - "type": "reference", - "name": "FormData" - }, - { - "type": "reference", - "name": "ReadableStream" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Uint8Array" - } - ], - "name": "ReadableStream" - }, - { - "type": "reference", - "name": "URLSearchParams" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 192, - "name": "fileOptions", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "HTTP headers.\n`cacheControl`: string, the `Cache-Control: max-age=` seconds value.\n`contentType`: string, the `Content-Type` header value. Should be specified if using a `fileBody` that is neither `Blob` nor `File` nor `FormData`, otherwise will default to `text/plain;charset=UTF-8`.\n`upsert`: boolean, whether to perform an upsert.\n" - }, - "type": { - "type": "reference", - "id": 95, - "name": "FileOptions" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 193, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 194, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 64, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 195, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 196, - "name": "Key", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 64, - "character": 26 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 196 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 64, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 197, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 64, - "character": 50 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 194, - 197 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 64, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 49, - "character": 30 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 178 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 176, - 177, - 172, - 171 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 286, - 289, - 227, - 236, - 246, - 257, - 263, - 278, - 218, - 272, - 208, - 198, - 187 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 20, - "character": 27 - } - ] - }, - { - "id": 298, - "name": "DEFAULT_FILE_OPTIONS", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isConst": true - }, - "children": [ - { - "id": 299, - "name": "cacheControl", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 15, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"3600\"" - }, - { - "id": 300, - "name": "contentType", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 16, - "character": 13 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"text/plain;charset=UTF-8\"" - }, - { - "id": 301, - "name": "upsert", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 17, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "false" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 299, - 300, - 301 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 14, - "character": 26 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 292, - "name": "DEFAULT_SEARCH_OPTIONS", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isConst": true - }, - "children": [ - { - "id": 293, - "name": "limit", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 6, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "100" - }, - { - "id": 294, - "name": "offset", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 7, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 295, - "name": "sortBy", - "kind": 2097152, - "kindString": "Object literal", - "flags": {}, - "children": [ - { - "id": 296, - "name": "column", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 9, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"name\"" - }, - { - "id": 297, - "name": "order", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 10, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"asc\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 296, - 297 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 8, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 293, - 294 - ] - }, - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 295 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 5, - "character": 28 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 170 - ] - }, - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 298, - 292 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 3, - "name": "\"lib/constants\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/constants.ts", - "children": [ - { - "id": 4, - "name": "DEFAULT_HEADERS", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isExported": true, - "isConst": true - }, - "children": [ - { - "id": 5, - "name": "X-Client-Info", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 2, - "character": 48 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "`storage-js/${version}`" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 5 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 2, - "character": 28 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 4 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 6, - "name": "\"lib/fetch\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/fetch.ts", - "children": [ - { - "id": 7, - "name": "FetchOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 8, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 4, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 9, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 10, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 11, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 12, - "name": "noResolveJson", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 7, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 8, - 12 - ] - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 3, - "character": 29 - } - ] - }, - { - "id": 13, - "name": "FetchParameters", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 14, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 11, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 14 - ] - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 10, - "character": 32 - } - ] - }, - { - "id": 15, - "name": "Fetch", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 1, - "character": 17 - } - ], - "type": { - "type": "query", - "queryType": { - "type": "reference", - "name": "fetch" - } - } - }, - { - "id": 16, - "name": "RequestMethodType", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 14, - "character": 29 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PUT" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - } - }, - { - "id": 17, - "name": "_getErrorMessage", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 18, - "name": "_getErrorMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 19, - "name": "err", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 16, - "character": 22 - } - ] - }, - { - "id": 24, - "name": "_getRequestParams", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 25, - "name": "_getRequestParams", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 26, - "name": "method", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 16, - "name": "RequestMethodType" - } - }, - { - "id": 27, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 28, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - }, - { - "id": 29, - "name": "body", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 30, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 31, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 32, - "name": "k", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - } - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 31, - "character": 23 - } - ] - }, - { - "id": 33, - "name": "_handleRequest", - "kind": 64, - "kindString": "Function", - "flags": {}, - "signatures": [ - { - "id": 34, - "name": "_handleRequest", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 35, - "name": "fetcher", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 36, - "name": "method", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 16, - "name": "RequestMethodType" - } - }, - { - "id": 37, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 38, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 39, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - }, - { - "id": 40, - "name": "body", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 48, - "character": 29 - } - ] - }, - { - "id": 41, - "name": "get", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 42, - "name": "get", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 43, - "name": "fetcher", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 44, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 45, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 46, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 68, - "character": 25 - } - ] - }, - { - "id": 20, - "name": "handleError", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 21, - "name": "handleError", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 22, - "name": "error", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 23, - "name": "reject", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 19, - "character": 17 - } - ] - }, - { - "id": 47, - "name": "post", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 48, - "name": "post", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 49, - "name": "fetcher", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 50, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 51, - "name": "body", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 52, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 53, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 77, - "character": 26 - } - ] - }, - { - "id": 54, - "name": "put", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 55, - "name": "put", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 56, - "name": "fetcher", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 57, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 58, - "name": "body", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 59, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 60, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 87, - "character": 25 - } - ] - }, - { - "id": 61, - "name": "remove", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 62, - "name": "remove", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 63, - "name": "fetcher", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 64, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 65, - "name": "body", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 66, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 67, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 97, - "character": 28 - } - ] - } - ], - "groups": [ - { - "title": "Interfaces", - "kind": 256, - "children": [ - 7, - 13 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 15, - 16 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 17, - 24, - 33, - 41, - 20, - 47, - 54, - 61 - ] - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 68, - "name": "\"lib/helpers\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/helpers.ts", - "children": [ - { - "id": 69, - "name": "Fetch", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/helpers.ts", - "line": 1, - "character": 10 - } - ], - "type": { - "type": "query", - "queryType": { - "type": "reference", - "name": "fetch" - } - } - }, - { - "id": 70, - "name": "resolveFetch", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "signatures": [ - { - "id": 71, - "name": "resolveFetch", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 72, - "name": "customFetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 69, - "name": "Fetch" - } - } - ], - "type": { - "type": "reference", - "id": 69, - "name": "Fetch" - } - } - ], - "sources": [ - { - "fileName": "lib/helpers.ts", - "line": 3, - "character": 25 - } - ] - } - ], - "groups": [ - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 69 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 70 - ] - } - ], - "sources": [ - { - "fileName": "lib/helpers.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 302, - "name": "\"lib/index\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/index.ts", - "children": [ - { - "id": 305, - "name": "Bucket", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 74 - }, - { - "id": 311, - "name": "DEFAULT_HEADERS", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 4 - }, - { - "id": 306, - "name": "FileObject", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 81 - }, - { - "id": 308, - "name": "FileOptions", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 95 - }, - { - "id": 310, - "name": "Metadata", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 104 - }, - { - "id": 309, - "name": "SearchOptions", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 99 - }, - { - "id": 307, - "name": "SortBy", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 92 - }, - { - "id": 303, - "name": "StorageBucketApi", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 107 - }, - { - "id": 304, - "name": "StorageFileApi", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 170 - } - ], - "groups": [ - { - "title": "References", - "kind": 16777216, - "children": [ - 305, - 311, - 306, - 308, - 310, - 309, - 307, - 303, - 304 - ] - } - ], - "sources": [ - { - "fileName": "lib/index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 73, - "name": "\"lib/types\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/types.ts", - "children": [ - { - "id": 74, - "name": "Bucket", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 78, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 5, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 75, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 2, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 76, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 3, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 77, - "name": "owner", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 4, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 80, - "name": "public", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 7, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 79, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 6, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 78, - 75, - 76, - 77, - 80, - 79 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 1, - "character": 23 - } - ] - }, - { - "id": 81, - "name": "FileObject", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 83, - "name": "bucket_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 12, - "character": 11 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 91, - "name": "buckets", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 19, - "character": 9 - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Bucket" - } - }, - { - "id": 87, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 16, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 85, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 14, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 88, - "name": "last_accessed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 17, - "character": 18 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 89, - "name": "metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 18, - "character": 10 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 90, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 18, - "character": 11 - } - ] - } - } - }, - { - "id": 82, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 11, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 84, - "name": "owner", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 13, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 86, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 15, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 83, - 91, - 87, - 85, - 88, - 89, - 82, - 84, - 86 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 10, - "character": 27 - } - ] - }, - { - "id": 95, - "name": "FileOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 96, - "name": "cacheControl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 28, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 97, - "name": "contentType", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 29, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 98, - "name": "upsert", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 30, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 96, - 97, - 98 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 27, - "character": 28 - } - ] - }, - { - "id": 104, - "name": "Metadata", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 105, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 49, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 105 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 48, - "character": 25 - } - ] - }, - { - "id": 99, - "name": "SearchOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 100, - "name": "limit", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "shortText": "The number of files you want to be returned." - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 35, - "character": 7 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 101, - "name": "offset", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "shortText": "The starting position." - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 38, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 103, - "name": "search", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "shortText": "The search string to filter files by." - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 44, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 102, - "name": "sortBy", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "shortText": "The column to sort by. Can be any column inside a FileObject." - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 41, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 92, - "name": "SortBy" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 100, - 101, - 103, - 102 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 33, - "character": 30 - } - ] - }, - { - "id": 92, - "name": "SortBy", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 93, - "name": "column", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 94, - "name": "order", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 24, - "character": 7 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 93, - 94 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 22, - "character": 23 - } - ] - } - ], - "groups": [ - { - "title": "Interfaces", - "kind": 256, - "children": [ - 74, - 81, - 95, - 104, - 99, - 92 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 1, - "name": "\"lib/version\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/version.ts", - "children": [ - { - "id": 2, - "name": "version", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/version.ts", - "line": 2, - "character": 20 - } - ], - "type": { - "type": "stringLiteral", - "value": "0.0.0" - }, - "defaultValue": "\"0.0.0\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 2 - ] - } - ], - "sources": [ - { - "fileName": "lib/version.ts", - "line": 1, - "character": 0 - } - ] - } - ], - "groups": [ - { - "title": "Modules", - "kind": 1, - "children": [ - 312, - 378, - 106, - 169, - 3, - 6, - 68, - 302, - 73, - 1 - ] - } - ] - }, - { - "id": 0, - "name": "@supabase/functions-js", - "kind": 1, - "kindString": "Project", - "flags": {}, - "originalName": "", - "children": [ - { - "id": 1, - "name": "FunctionsClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 2, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 9, - "character": 2 - } - ], - "signatures": [ - { - "id": 3, - "name": "new FunctionsClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 4, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 5, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 6, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 8, - "name": "customFetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 16, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 9, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 10, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 11, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 12, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 7, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 15, - "character": 6 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 8, - 7 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 1, - "name": "FunctionsClient" - } - } - ] - }, - { - "id": 15, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 7, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 16, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 17, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 18, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 19, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 14, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 6, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 13, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 5, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 23, - "name": "invoke", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 40, - "character": 8 - } - ], - "signatures": [ - { - "id": 24, - "name": "invoke", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Invokes a function" - }, - "typeParameter": [ - { - "id": 25, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "parameters": [ - { - "id": 26, - "name": "functionName", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "the name of the function to invoke" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 27, - "name": "invokeOptions", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "object with the following properties\n`headers`: object representing the headers to send with the request\n`body`: the body of the request\n`responseType`: how the response should be parsed. The default is `json`\n" - }, - "type": { - "type": "reference", - "name": "FunctionInvokeOptions" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 28, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 29, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 15 - } - ], - "type": { - "type": "reference", - "id": 25, - "name": "T" - } - }, - { - "id": 30, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 24 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 29, - 30 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 31, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 32, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 42 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 33, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 54 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 32, - 33 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 20, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 28, - "character": 2 - } - ], - "signatures": [ - { - "id": 21, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates the authorization header", - "tags": [ - { - "tag": "params", - "text": "token - the new jwt token sent in the authorisation header\n" - } - ] - }, - "parameters": [ - { - "id": 22, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 2 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 15, - 14, - 13 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 23, - 20 - ] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 4, - "character": 13 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 1 - ] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0 - } - ] - } - ] -} diff --git a/web/spec/tsdoc_v1/functions.json b/web/spec/tsdoc_v1/functions.json deleted file mode 100644 index 6676d2cb5b5..00000000000 --- a/web/spec/tsdoc_v1/functions.json +++ /dev/null @@ -1,633 +0,0 @@ -{ - "id": 0, - "name": "@supabase/functions-js", - "kind": 1, - "kindString": "Project", - "flags": {}, - "originalName": "", - "children": [ - { - "id": 1, - "name": "FunctionsClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 2, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 9, - "character": 2 - } - ], - "signatures": [ - { - "id": 3, - "name": "new FunctionsClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 4, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 5, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 6, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 8, - "name": "customFetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 16, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 9, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 10, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 11, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 12, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 7, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 15, - "character": 6 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 8, - 7 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 1, - "name": "FunctionsClient" - } - } - ] - }, - { - "id": 15, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 7, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 16, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 17, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 18, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 19, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 14, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 6, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 13, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 5, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 23, - "name": "invoke", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 40, - "character": 8 - } - ], - "signatures": [ - { - "id": 24, - "name": "invoke", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Invokes a function" - }, - "typeParameter": [ - { - "id": 25, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "parameters": [ - { - "id": 26, - "name": "functionName", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "the name of the function to invoke" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 27, - "name": "invokeOptions", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "object with the following properties\n`headers`: object representing the headers to send with the request\n`body`: the body of the request\n`responseType`: how the response should be parsed. The default is `json`\n" - }, - "type": { - "type": "reference", - "name": "FunctionInvokeOptions" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 28, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 29, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 15 - } - ], - "type": { - "type": "reference", - "id": 25, - "name": "T" - } - }, - { - "id": 30, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 24 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 29, - 30 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 31, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 32, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 42 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 33, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 54 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 32, - 33 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 20, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 28, - "character": 2 - } - ], - "signatures": [ - { - "id": 21, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates the authorization header", - "tags": [ - { - "tag": "params", - "text": "token - the new jwt token sent in the authorisation header\n" - } - ] - }, - "parameters": [ - { - "id": 22, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 2 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 15, - 14, - 13 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 23, - 20 - ] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 4, - "character": 13 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 1 - ] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0 - } - ] -} \ No newline at end of file diff --git a/web/spec/tsdoc_v1/gotrue.json b/web/spec/tsdoc_v1/gotrue.json deleted file mode 100644 index c992413f8a6..00000000000 --- a/web/spec/tsdoc_v1/gotrue.json +++ /dev/null @@ -1,11687 +0,0 @@ -{ - "id": 0, - "name": "@supabase/gotrue-js", - "kind": 1, - "kindString": "Project", - "flags": {}, - "originalName": "", - "children": [ - { - "id": 1, - "name": "GoTrueApi", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 2, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 25, - "character": 2 - } - ], - "signatures": [ - { - "id": 3, - "name": "new GoTrueApi", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 4, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 5, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 11, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 35, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 557, - "name": "CookieOptions" - } - }, - { - "id": 12, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 36, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 13, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 14, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 15, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 16, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 7, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 32, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 8, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 9, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 10, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 6, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 31, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 11, - 12, - 7, - 6 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 1, - "name": "default" - } - } - ] - }, - { - "id": 22, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 22, - "character": 12 - } - ], - "type": { - "type": "reference", - "id": 557, - "name": "CookieOptions" - } - }, - { - "id": 23, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 23, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 24, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 25, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 26, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 27, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 18, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 19, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 19, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 20, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 21, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 17, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 18, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 28, - "name": "_createRequestHeaders", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 49, - "character": 10 - } - ], - "signatures": [ - { - "id": 29, - "name": "_createRequestHeaders", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Create a temporary object with all configured headers and\nadds the Authorization token to be used on request methods" - }, - "parameters": [ - { - "id": 30, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 31, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - } - ] - }, - { - "id": 32, - "name": "cookieName", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 55, - "character": 10 - } - ], - "signatures": [ - { - "id": 33, - "name": "cookieName", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 196, - "name": "createUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 659, - "character": 8 - } - ], - "signatures": [ - { - "id": 197, - "name": "createUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new user.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 198, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The data you want to create the user with.\n" - }, - "type": { - "type": "reference", - "id": 539, - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 199, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 201, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 18 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 202, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 30 - } - ], - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - } - }, - { - "id": 200, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 6 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 201, - 202, - 200 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 203, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 205, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 64 - } - ], - "type": { - "type": "reference", - "id": 505, - "name": "User" - } - }, - { - "id": 206, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 76 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 204, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 52 - } - ], - "type": { - "type": "reference", - "id": 505, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 205, - 206, - 204 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 173, - "name": "deleteAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 549, - "character": 2 - } - ], - "signatures": [ - { - "id": 174, - "name": "deleteAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Deletes the Auth Cookies and redirects to the" - }, - "parameters": [ - { - "id": 175, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 176, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 177, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "Optionally specify a `redirectTo` URL in the options.\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 178, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 179, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 549, - "character": 63 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 179 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - }, - { - "id": 241, - "name": "deleteUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 799, - "character": 8 - } - ], - "signatures": [ - { - "id": 242, - "name": "deleteUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Delete a user. Requires a `service_role` key.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 243, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user uid you want to remove.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 244, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 246, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 801, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 247, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 801, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 245, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 801, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 246, - 247, - 245 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 184, - "name": "generateLink", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 616, - "character": 8 - } - ], - "signatures": [ - { - "id": 185, - "name": "generateLink", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Generates links to be sent via email or other." - }, - "parameters": [ - { - "id": 186, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The link type (\"signup\" or \"magiclink\" or \"recovery\" or \"invite\")." - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "invite" - }, - { - "type": "literal", - "value": "email_change_current" - }, - { - "type": "literal", - "value": "email_change_new" - } - ] - } - }, - { - "id": 187, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's email." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 188, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 189, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 191, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 627, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 190, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 626, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 192, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 628, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 191, - 190, - 192 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 193, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 194, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 630, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 195, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 630, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 194, - 195 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 180, - "name": "getAuthCookieString", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 568, - "character": 2 - } - ], - "signatures": [ - { - "id": 181, - "name": "getAuthCookieString", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Helper method to generate the Auth Cookie string for you in case you can't use `setAuthCookie`.", - "returns": "The Cookie string that needs to be set as the value for the `Set-Cookie` header.\n" - }, - "parameters": [ - { - "id": 182, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 183, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ] - }, - { - "id": 34, - "name": "getUrlForProvider", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 65, - "character": 2 - } - ], - "signatures": [ - { - "id": 35, - "name": "getUrlForProvider", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Generates the relevant login URL for a third-party provider." - }, - "parameters": [ - { - "id": 36, - "name": "provider", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "One of the providers supported by GoTrue." - }, - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 37, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 38, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 41, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 70, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 42, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 43, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 44, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 39, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 68, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 40, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 69, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 41, - 39, - 40 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 248, - "name": "getUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 826, - "character": 8 - } - ], - "signatures": [ - { - "id": 249, - "name": "getUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Gets the current user details.", - "text": "This method is called by the GoTrueClient `update` where\nthe jwt is set to this.currentSession.access_token\nand therefore, acts like getting the currently authenticated user\n" - }, - "parameters": [ - { - "id": 250, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT. Typically, the access_token for the currentSession\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 251, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 253, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 828, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 254, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 828, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 252, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 828, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 253, - 254, - 252 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 224, - "name": "getUserByCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 714, - "character": 8 - } - ], - "signatures": [ - { - "id": 225, - "name": "getUserByCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Get user by reading the cookie from the request.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 226, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 227, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 228, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 231, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 720, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 232, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 721, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 229, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 718, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 230, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 719, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 231, - 232, - 229, - 230 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 215, - "name": "getUserById", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 697, - "character": 8 - } - ], - "signatures": [ - { - "id": 216, - "name": "getUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Get user by id." - }, - "parameters": [ - { - "id": 217, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's unique identifier\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 218, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 219, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 15 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 220, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 27 - } - ], - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 219, - 220 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 221, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 222, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 49 - } - ], - "type": { - "type": "reference", - "id": 505, - "name": "User" - } - }, - { - "id": 223, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 61 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 222, - 223 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 142, - "name": "inviteUserByEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 419, - "character": 8 - } - ], - "signatures": [ - { - "id": 143, - "name": "inviteUserByEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends an invite link to an email address." - }, - "parameters": [ - { - "id": 144, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 145, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 146, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 148, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 423, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 147, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 422, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 148, - 147 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 149, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 150, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 425, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 151, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 425, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 150, - 151 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 207, - "name": "listUsers", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 8 - } - ], - "signatures": [ - { - "id": 208, - "name": "listUsers", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Get a list of users.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 209, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 210, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 31 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 211, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 43 - } - ], - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 210, - 211 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 212, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 213, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 65 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 505, - "name": "User" - } - } - }, - { - "id": 214, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 79 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 213, - 214 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 163, - "name": "refreshAccessToken", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 479, - "character": 8 - } - ], - "signatures": [ - { - "id": 164, - "name": "refreshAccessToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Generates a new JWT." - }, - "parameters": [ - { - "id": 165, - "name": "refreshToken", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid refresh token that was returned on login.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 166, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 167, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 481, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 168, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 481, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 167, - 168 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 152, - "name": "resetPasswordForEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 450, - "character": 8 - } - ], - "signatures": [ - { - "id": 153, - "name": "resetPasswordForEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends a reset request to an email address." - }, - "parameters": [ - { - "id": 154, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 155, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 156, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 158, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 454, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 157, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 453, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 158, - 157 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 159, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 160, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 456, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 161, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - ] - } - }, - { - "id": 162, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 456, - "character": 32 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 160, - 162 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 95, - "name": "sendMagicLinkEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 272, - "character": 8 - } - ], - "signatures": [ - { - "id": 96, - "name": "sendMagicLinkEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends a magic login link to an email address." - }, - "parameters": [ - { - "id": 97, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 98, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 99, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 102, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 277, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 101, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 276, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 100, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 275, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 102, - 101, - 100 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 103, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 104, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 279, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 105, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - ] - } - }, - { - "id": 106, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 279, - "character": 32 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 104, - 106 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 107, - "name": "sendMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 310, - "character": 8 - } - ], - "signatures": [ - { - "id": 108, - "name": "sendMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends a mobile OTP via SMS. Will register the account if it doesn't already exist" - }, - "parameters": [ - { - "id": 109, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 110, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 111, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 113, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 314, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 112, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 313, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 113, - 112 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 114, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 115, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 316, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 116, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - ] - } - }, - { - "id": 117, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 316, - "character": 32 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 115, - 117 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 169, - "name": "setAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 503, - "character": 2 - } - ], - "signatures": [ - { - "id": 170, - "name": "setAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Set/delete the auth cookie based on the AuthChangeEvent.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 171, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 172, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The response object.\n" - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 57, - "name": "signInWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 139, - "character": 8 - } - ], - "signatures": [ - { - "id": 58, - "name": "signInWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Logs in an existing user using their email address." - }, - "parameters": [ - { - "id": 59, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 60, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 61, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 62, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 64, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 144, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 63, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 143, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 64, - 63 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 65, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 66, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 146, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 67, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 146, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 66, - 67 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 89, - "name": "signInWithOpenIDConnect", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 241, - "character": 8 - } - ], - "signatures": [ - { - "id": 90, - "name": "signInWithOpenIDConnect", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Logs in an OpenID Connect user using their id_token." - }, - "parameters": [ - { - "id": 91, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 583, - "name": "OpenIDConnectCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 92, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 93, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 247, - "character": 42 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 94, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 247, - "character": 64 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 93, - 94 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 79, - "name": "signInWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 209, - "character": 8 - } - ], - "signatures": [ - { - "id": 80, - "name": "signInWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Logs in an existing user using their phone number and password." - }, - "parameters": [ - { - "id": 81, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 82, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 83, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 84, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 85, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 213, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 85 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 86, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 87, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 215, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 88, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 215, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 87, - 88 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 118, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 340, - "character": 8 - } - ], - "signatures": [ - { - "id": 119, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Removes a logged-in session." - }, - "parameters": [ - { - "id": 120, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 121, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 122, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 340, - "character": 40 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 122 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 45, - "name": "signUpWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 98, - "character": 8 - } - ], - "signatures": [ - { - "id": 46, - "name": "signUpWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new user using their email address.", - "returns": "A logged-in session if the server has \"autoconfirm\" ON" - }, - "parameters": [ - { - "id": 47, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 48, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 49, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 50, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 53, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 104, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 52, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 103, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 51, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 102, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 53, - 52, - 51 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 54, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 55, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 106, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 56, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 106, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 55, - 56 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 68, - "name": "signUpWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 174, - "character": 8 - } - ], - "signatures": [ - { - "id": 69, - "name": "signUpWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Signs up a new user using their phone number and a password." - }, - "parameters": [ - { - "id": 70, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 71, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 72, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 73, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 75, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 179, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 74, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 178, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 75, - 74 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 76, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 77, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 181, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 78, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 181, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 77, - 78 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 255, - "name": "updateUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 844, - "character": 8 - } - ], - "signatures": [ - { - "id": 256, - "name": "updateUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 257, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 258, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The data you want to update.\n" - }, - "type": { - "type": "reference", - "id": 533, - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 259, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 261, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 262, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 260, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 261, - 262, - 260 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 233, - "name": "updateUserById", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 777, - "character": 8 - } - ], - "signatures": [ - { - "id": 234, - "name": "updateUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 235, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 236, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The data you want to update.\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "id": 539, - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 237, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 239, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 780, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 240, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 780, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 238, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 780, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 239, - 240, - 238 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 123, - "name": "verifyMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 360, - "character": 8 - } - ], - "signatures": [ - { - "id": 124, - "name": "verifyMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `verifyOTP` instead!" - } - ] - }, - "parameters": [ - { - "id": 125, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 126, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "token that user was sent to their mobile phone" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 127, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 128, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 129, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 364, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 129 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 130, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 131, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 366, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 132, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 366, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 131, - 132 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 133, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 391, - "character": 8 - } - ], - "signatures": [ - { - "id": 134, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Send User supplied Email / Mobile OTP to be verified" - }, - "parameters": [ - { - "id": 135, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 570, - "name": "VerifyOTPParams" - } - }, - { - "id": 136, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 137, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 138, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 394, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 138 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 139, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 140, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 396, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 141, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 396, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 140, - 141 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 2 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 22, - 23, - 18, - 17 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 28, - 32, - 196, - 173, - 241, - 184, - 180, - 34, - 248, - 224, - 215, - 142, - 207, - 163, - 152, - 95, - 107, - 169, - 57, - 89, - 79, - 118, - 45, - 68, - 255, - 233, - 123, - 133 - ] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 17, - "character": 21 - } - ] - }, - { - "id": 263, - "name": "GoTrueClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 264, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 82, - "character": 2 - } - ], - "signatures": [ - { - "id": 265, - "name": "new GoTrueClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "comment": { - "shortText": "Create a new client for use in the browser." - }, - "parameters": [ - { - "id": 266, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 267, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 274, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically refresh the token before expiring." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 86, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 278, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 90, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 557, - "name": "CookieOptions" - } - }, - { - "id": 273, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 85, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 279, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 91, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 280, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 281, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "A custom fetch implementation.\n" - }, - "parameters": [ - { - "id": 282, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 283, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 269, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Any additional headers to send to the GoTrue server." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 84, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 270, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 271, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 272, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 276, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Provide your own local storage implementation to use instead of the browser's local storage." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 88, - "character": 4 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 277, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"false\" if you want to disable multi-tab/window events." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 89, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 275, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically save the user session into local storage." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 87, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 268, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The URL of the GoTrue server." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 83, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 274, - 278, - 273, - 279, - 269, - 276, - 277, - 275, - 268 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 263, - "name": "default" - } - } - ] - }, - { - "id": 284, - "name": "api", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "Namespace for the GoTrue API methods.\nThese can be used for example to get a user from a JWT in a server environment or reset a user's password." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 52, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 1, - "name": "default" - } - }, - { - "id": 287, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 62, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 286, - "name": "currentSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "comment": { - "shortText": "The session object for the currently logged in user or null." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 60, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 285, - "name": "currentUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "comment": { - "shortText": "The currently logged in user or null." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 56, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 289, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 64, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 290, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 65, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 293, - "name": "networkRetries", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 68, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 288, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 63, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 292, - "name": "refreshTokenTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 67, - "character": 12 - } - ], - "type": { - "type": "reference", - "qualifiedName": "NodeJS.Timeout", - "package": "@types/node", - "name": "Timeout" - } - }, - { - "id": 291, - "name": "stateChangeEmitters", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 66, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "id": 549, - "name": "Subscription" - } - ], - "qualifiedName": "Map", - "package": "typescript", - "name": "Map" - }, - "defaultValue": "..." - }, - { - "id": 454, - "name": "_callRefreshToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 695, - "character": 16 - } - ], - "signatures": [ - { - "id": 455, - "name": "_callRefreshToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 456, - "name": "refresh_token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - }, - "defaultValue": "..." - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 457, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 458, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - }, - { - "id": 459, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 458, - 459 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 460, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 461, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 462, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - }, - "defaultValue": "..." - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 461, - 462 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 383, - "name": "_handleEmailSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 520, - "character": 16 - } - ], - "signatures": [ - { - "id": 384, - "name": "_handleEmailSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 385, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 386, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 387, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 388, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 390, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 525, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 389, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 524, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 390, - 389 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 391, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 392, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 395, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 394, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 393, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 392, - 395, - 394, - 393 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 396, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 397, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - }, - { - "id": 400, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 399, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - }, - "defaultValue": "data" - }, - { - "id": 398, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - }, - "defaultValue": "data.user" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 397, - 400, - 399, - 398 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 443, - "name": "_handleOpenIDConnectSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 595, - "character": 16 - } - ], - "signatures": [ - { - "id": 444, - "name": "_handleOpenIDConnectSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 445, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 583, - "name": "OpenIDConnectCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 446, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 449, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 604, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 447, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 602, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 448, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 603, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 449, - 447, - 448 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 401, - "name": "_handlePhoneSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 546, - "character": 16 - } - ], - "signatures": [ - { - "id": 402, - "name": "_handlePhoneSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 403, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 404, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 405, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 406, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 407, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 550, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 407 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 408, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 409, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 412, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 411, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 410, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 409, - 412, - 411, - 410 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 413, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 414, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - }, - { - "id": 417, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 416, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - }, - "defaultValue": "data" - }, - { - "id": 415, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - }, - "defaultValue": "data.user" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 414, - 417, - 416, - 415 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 418, - "name": "_handleProviderSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 568, - "character": 10 - } - ], - "signatures": [ - { - "id": 419, - "name": "_handleProviderSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 420, - "name": "provider", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 421, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 422, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 425, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 573, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 426, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 427, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 428, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 423, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 571, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 424, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 572, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 425, - 423, - 424 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 429, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 432, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 435, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 430, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 433, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 431, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 434, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 432, - 435, - 430, - 433, - 431, - 434 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 436, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 437, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 440, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - }, - "defaultValue": "..." - }, - { - "id": 441, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 439, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 442, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 438, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 437, - 440, - 441, - 439, - 442, - 438 - ] - } - ] - } - } - ] - } - } - ] - }, - { - "id": 479, - "name": "_handleVisibilityChange", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 800, - "character": 10 - } - ], - "signatures": [ - { - "id": 480, - "name": "_handleVisibilityChange", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": false - } - ] - } - } - ] - }, - { - "id": 477, - "name": "_listenForMultiTabEvents", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 777, - "character": 10 - } - ], - "signatures": [ - { - "id": 478, - "name": "_listenForMultiTabEvents", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Listens for changes to LocalStorage and updates the current session." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": false - } - ] - } - } - ] - }, - { - "id": 463, - "name": "_notifyAllSubscribers", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 714, - "character": 10 - } - ], - "signatures": [ - { - "id": 464, - "name": "_notifyAllSubscribers", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 465, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 482, - "name": "AuthChangeEvent" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 469, - "name": "_persistSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 741, - "character": 10 - } - ], - "signatures": [ - { - "id": 470, - "name": "_persistSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 471, - "name": "currentSession", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 452, - "name": "_recoverAndRefresh", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 650, - "character": 16 - } - ], - "signatures": [ - { - "id": 453, - "name": "_recoverAndRefresh", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Recovers the session from LocalStorage and refreshes\nNote: this method is async to accommodate for AsyncStorage e.g. in React native." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": null - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 450, - "name": "_recoverSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 630, - "character": 10 - } - ], - "signatures": [ - { - "id": 451, - "name": "_recoverSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Attempts to get the session from LocalStorage\nNote: this should never be async (even for React Native), as we need it to return immediately in the constructor." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": null - } - ] - } - } - ] - }, - { - "id": 472, - "name": "_removeSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 746, - "character": 16 - } - ], - "signatures": [ - { - "id": 473, - "name": "_removeSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "void" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 466, - "name": "_saveSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 722, - "character": 10 - } - ], - "signatures": [ - { - "id": 467, - "name": "_saveSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "set currentSession and currentUser\nprocess to _startAutoRefreshToken if possible" - }, - "parameters": [ - { - "id": 468, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 474, - "name": "_startAutoRefreshToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 757, - "character": 10 - } - ], - "signatures": [ - { - "id": 475, - "name": "_startAutoRefreshToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Clear and re-create refresh token timer" - }, - "parameters": [ - { - "id": 476, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "time intervals in milliseconds\n" - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 361, - "name": "getSessionFromUrl", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 428, - "character": 8 - } - ], - "signatures": [ - { - "id": 362, - "name": "getSessionFromUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Gets the session data from a URL string" - }, - "parameters": [ - { - "id": 363, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 364, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 365, - "name": "storeSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Optionally store the session in the browser\n" - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 429, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 365 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 366, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 367, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 430, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 368, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 430, - "character": 38 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 367, - 368 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 373, - "name": "onAuthStateChange", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 500, - "character": 2 - } - ], - "signatures": [ - { - "id": 374, - "name": "onAuthStateChange", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Receive a notification every time an auth event happens.", - "returns": "A subscription object which can be used to unsubscribe itself.\n" - }, - "parameters": [ - { - "id": 375, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 376, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 377, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 378, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 482, - "name": "AuthChangeEvent" - } - }, - { - "id": 379, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 380, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 381, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 501, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 549, - "name": "Subscription" - } - ] - } - }, - { - "id": 382, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 502, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 381, - 382 - ] - } - ] - } - } - } - ] - }, - { - "id": 339, - "name": "refreshSession", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 339, - "character": 8 - } - ], - "signatures": [ - { - "id": 340, - "name": "refreshSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Force refreshes the session including the user data in case it was updated in a different session." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 341, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 342, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 340, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 344, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 342, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 343, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 341, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 342, - 344, - 343 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 337, - "name": "session", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 332, - "character": 2 - } - ], - "signatures": [ - { - "id": 338, - "name": "session", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Returns the session data, if there is an active session." - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ] - }, - { - "id": 358, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 411, - "character": 2 - } - ], - "signatures": [ - { - "id": 359, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Overrides the JWT on the current client. The JWT will then be sent in all subsequent network requests." - }, - "parameters": [ - { - "id": 360, - "name": "access_token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "a jwt access token\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - } - ] - }, - { - "id": 352, - "name": "setSession", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 387, - "character": 8 - } - ], - "signatures": [ - { - "id": 353, - "name": "setSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sets the session data from refresh_token and returns current Session and Error" - }, - "parameters": [ - { - "id": 354, - "name": "refresh_token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "a JWT token\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 355, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 357, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 389, - "character": 40 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 356, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 389, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 357, - 356 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 306, - "name": "signIn", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 197, - "character": 8 - } - ], - "signatures": [ - { - "id": 307, - "name": "signIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Log in an existing user, or login via a third-party provider." - }, - "parameters": [ - { - "id": 308, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 563, - "name": "UserCredentials" - } - }, - { - "id": 309, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 310, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 314, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 203, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 315, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 204, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 316, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 317, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 318, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 311, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 200, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 313, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 202, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 312, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 201, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 314, - 315, - 311, - 313, - 312 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 319, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 324, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 211, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 322, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 209, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 320, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 207, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 323, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 210, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 321, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 208, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 324, - 322, - 320, - 323, - 321 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 369, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 485, - "character": 8 - } - ], - "signatures": [ - { - "id": 370, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Inside a browser context, `signOut()` will remove the logged in user from the browser session\nand log them out - removing all items from localstorage and then trigger a \"SIGNED_OUT\" event.", - "text": "For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`. There is no way to revoke a user's session JWT before it automatically expires\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 371, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 372, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 485, - "character": 29 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 372 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 294, - "name": "signUp", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 130, - "character": 8 - } - ], - "signatures": [ - { - "id": 295, - "name": "signUp", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new user." - }, - "parameters": [ - { - "id": 296, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 563, - "name": "UserCredentials" - } - }, - { - "id": 297, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 298, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 301, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 135, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 300, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 134, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 299, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 133, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 301, - 300, - 299 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 302, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 305, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 140, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 304, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 139, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 303, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 138, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 305, - 304, - 303 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 345, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 360, - "character": 8 - } - ], - "signatures": [ - { - "id": 346, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates user data, if there is a logged in user." - }, - "parameters": [ - { - "id": 347, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 533, - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 348, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 349, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 362, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 351, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 362, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 350, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 362, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 349, - 351, - 350 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 335, - "name": "user", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 325, - "character": 2 - } - ], - "signatures": [ - { - "id": 336, - "name": "user", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Inside a browser context, `user()` will return the user data, if there is a logged in user.", - "text": "For server-side management, you can get a user through `auth.api.getUserByCookie()`\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ] - }, - { - "id": 325, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 277, - "character": 8 - } - ], - "signatures": [ - { - "id": 326, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Log in a user given a User supplied OTP received via mobile." - }, - "parameters": [ - { - "id": 327, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 570, - "name": "VerifyOTPParams" - } - }, - { - "id": 328, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 329, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 330, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 280, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 330 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 331, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 334, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 285, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 333, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 284, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 332, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 283, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 334, - 333, - 332 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 264 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 284, - 287, - 286, - 285, - 289, - 290, - 293, - 288, - 292, - 291 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 454, - 383, - 443, - 401, - 418, - 479, - 477, - 463, - 469, - 452, - 450, - 472, - 466, - 474, - 361, - 373, - 339, - 337, - 358, - 352, - 306, - 369, - 294, - 345, - 335, - 325 - ] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 47, - "character": 21 - } - ] - }, - { - "id": 539, - "name": "AdminUserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 541, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for app_metadata that.", - "text": "Only a service role can modify.\n\nCan be any JSON that includes app-specific info, such as identity providers, roles, and other\naccess control information.\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 137, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 548, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 112, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - }, - "inheritedFrom": { - "type": "reference", - "id": 538, - "name": "UserAttributes.data" - } - }, - { - "id": 544, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 92, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 534, - "name": "UserAttributes.email" - } - }, - { - "id": 547, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 107, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 537, - "name": "UserAttributes.email_change_token" - } - }, - { - "id": 542, - "name": "email_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their email address.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 144, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 546, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 102, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 536, - "name": "UserAttributes.password" - } - }, - { - "id": 545, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 97, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 535, - "name": "UserAttributes.phone" - } - }, - { - "id": 543, - "name": "phone_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their phone number.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 151, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 540, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata.", - "text": "Can be any JSON.\n\nOnly a service role can modify.\n\nNote: When using the GoTrueAdminApi and wanting to modify a user's user_metadata,\nthis attribute is used instead of UserAttributes data.\n\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 127, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 541, - 548, - 544, - 547, - 542, - 546, - 545, - 543, - 540 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 115, - "character": 17 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 533, - "name": "UserAttributes" - } - ] - }, - { - "id": 483, - "name": "ApiError", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 484, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 28, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 485, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 29, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 484, - 485 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 27, - "character": 17 - } - ] - }, - { - "id": 557, - "name": "CookieOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 560, - "name": "domain", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 175, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 559, - "name": "lifetime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 173, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 558, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 171, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 561, - "name": "path", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 176, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 562, - "name": "sameSite", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 178, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 560, - 559, - 558, - 561, - 562 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 169, - "character": 17 - } - ] - }, - { - "id": 583, - "name": "OpenIDConnectCredentials", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 587, - "name": "client_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 211, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 584, - "name": "id_token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 208, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 588, - "name": "issuer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 212, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 585, - "name": "nonce", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 209, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 586, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 210, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 587, - 584, - 588, - 585, - 586 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 207, - "character": 17 - } - ] - }, - { - "id": 486, - "name": "Session", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 488, - "name": "access_token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 34, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 490, - "name": "expires_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A timestamp of when the token will expire. Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 42, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 489, - "name": "expires_in", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The number of seconds until the token expires (since it was issued). Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 38, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 487, - "name": "provider_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 33, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 491, - "name": "refresh_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 43, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 492, - "name": "token_type", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 44, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 493, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 45, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 488, - 490, - 489, - 487, - 491, - 492, - 493 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 32, - "character": 17 - } - ] - }, - { - "id": 549, - "name": "Subscription", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 550, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "The subscriber UUID. This will be set by the client." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 158, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 551, - "name": "callback", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 162, - "character": 2 - } - ], - "signatures": [ - { - "id": 552, - "name": "callback", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "The function to call every time there is an event. eg: (eventName) => {}" - }, - "parameters": [ - { - "id": 553, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 482, - "name": "AuthChangeEvent" - } - }, - { - "id": 554, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 555, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 166, - "character": 2 - } - ], - "signatures": [ - { - "id": 556, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Call this to remove the listener." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 550 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 551, - 555 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 154, - "character": 17 - } - ] - }, - { - "id": 505, - "name": "User", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 522, - "name": "action_link", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 75, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 507, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 62, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 508, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 509, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 63, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 509 - ] - } - ], - "indexSignature": { - "id": 510, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 511, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 516, - "name": "aud", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 69, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 517, - "name": "confirmation_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 70, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 526, - "name": "confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 79, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 525, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 78, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 523, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 76, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 519, - "name": "email_change_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 72, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 527, - "name": "email_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 80, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 506, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 61, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 532, - "name": "identities", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 85, - "character": 2 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 494, - "name": "UserIdentity" - } - } - }, - { - "id": 521, - "name": "invited_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 74, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 529, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 82, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 520, - "name": "new_email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 73, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 524, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 77, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 528, - "name": "phone_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 81, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 518, - "name": "recovery_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 71, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 530, - "name": "role", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 83, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 531, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 84, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 512, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 66, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 513, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 514, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 515, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 522, - 507, - 516, - 517, - 526, - 525, - 523, - 519, - 527, - 506, - 532, - 521, - 529, - 520, - 524, - 528, - 518, - 530, - 531, - 512 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 60, - "character": 17 - } - ] - }, - { - "id": 533, - "name": "UserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 538, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 112, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 534, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 92, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 537, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 107, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 536, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 102, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 535, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 97, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 538, - 534, - 537, - 536, - 535 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 88, - "character": 17 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 539, - "name": "AdminUserAttributes" - } - ] - }, - { - "id": 563, - "name": "UserCredentials", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 564, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 182, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 569, - "name": "oidc", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 188, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 583, - "name": "OpenIDConnectCredentials" - } - }, - { - "id": 566, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 184, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 565, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 183, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 568, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 187, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 567, - "name": "refreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 185, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 564, - 569, - 566, - 565, - 568, - 567 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 181, - "character": 17 - } - ] - }, - { - "id": 494, - "name": "UserIdentity", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 502, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 55, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 495, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 49, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 497, - "name": "identity_data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 51, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 498, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 499, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 500, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 503, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 56, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 501, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 54, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 504, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 57, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 496, - "name": "user_id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 50, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 502, - 495, - 497, - 503, - 501, - 504, - 496 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 48, - "character": 17 - } - ] - }, - { - "id": 576, - "name": "VerifyEmailOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 577, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 199, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 578, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 200, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 579, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 201, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 580, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 202, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "EmailOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 577, - 578, - 579, - 580 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 198, - "character": 17 - } - ] - }, - { - "id": 571, - "name": "VerifyMobileOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 572, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 193, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 573, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 194, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 574, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 195, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 575, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 196, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 581, - "name": "MobileOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 572, - 573, - 574, - 575 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 192, - "character": 17 - } - ] - }, - { - "id": 482, - "name": "AuthChangeEvent", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 19, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "PASSWORD_RECOVERY" - }, - { - "type": "literal", - "value": "SIGNED_IN" - }, - { - "type": "literal", - "value": "SIGNED_OUT" - }, - { - "type": "literal", - "value": "TOKEN_REFRESHED" - }, - { - "type": "literal", - "value": "USER_UPDATED" - }, - { - "type": "literal", - "value": "USER_DELETED" - } - ] - } - }, - { - "id": 582, - "name": "EmailOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 205, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "invite" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "email_change" - } - ] - } - }, - { - "id": 581, - "name": "MobileOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 204, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "sms" - }, - { - "type": "literal", - "value": "phone_change" - } - ] - } - }, - { - "id": 481, - "name": "Provider", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 1, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "apple" - }, - { - "type": "literal", - "value": "azure" - }, - { - "type": "literal", - "value": "bitbucket" - }, - { - "type": "literal", - "value": "discord" - }, - { - "type": "literal", - "value": "facebook" - }, - { - "type": "literal", - "value": "github" - }, - { - "type": "literal", - "value": "gitlab" - }, - { - "type": "literal", - "value": "google" - }, - { - "type": "literal", - "value": "keycloak" - }, - { - "type": "literal", - "value": "linkedin" - }, - { - "type": "literal", - "value": "notion" - }, - { - "type": "literal", - "value": "slack" - }, - { - "type": "literal", - "value": "spotify" - }, - { - "type": "literal", - "value": "twitch" - }, - { - "type": "literal", - "value": "twitter" - }, - { - "type": "literal", - "value": "workos" - } - ] - } - }, - { - "id": 589, - "name": "SupportedStorage", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 224, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 570, - "name": "VerifyOTPParams", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 191, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 571, - "name": "VerifyMobileOTPParams" - }, - { - "type": "reference", - "id": 576, - "name": "VerifyEmailOTPParams" - } - ] - } - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 1, - 263 - ] - }, - { - "title": "Interfaces", - "kind": 256, - "children": [ - 539, - 483, - 557, - 583, - 486, - 549, - 505, - 533, - 563, - 494, - 576, - 571 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 482, - 582, - 581, - 481, - 589, - 570 - ] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0 - } - ] -} \ No newline at end of file diff --git a/web/spec/tsdoc_v1/gotrus.json b/web/spec/tsdoc_v1/gotrus.json deleted file mode 100644 index c992413f8a6..00000000000 --- a/web/spec/tsdoc_v1/gotrus.json +++ /dev/null @@ -1,11687 +0,0 @@ -{ - "id": 0, - "name": "@supabase/gotrue-js", - "kind": 1, - "kindString": "Project", - "flags": {}, - "originalName": "", - "children": [ - { - "id": 1, - "name": "GoTrueApi", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 2, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 25, - "character": 2 - } - ], - "signatures": [ - { - "id": 3, - "name": "new GoTrueApi", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 4, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 5, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 11, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 35, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 557, - "name": "CookieOptions" - } - }, - { - "id": 12, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 36, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 13, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 14, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 15, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 16, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 7, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 32, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 8, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 9, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 10, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 6, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 31, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 11, - 12, - 7, - 6 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 1, - "name": "default" - } - } - ] - }, - { - "id": 22, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 22, - "character": 12 - } - ], - "type": { - "type": "reference", - "id": 557, - "name": "CookieOptions" - } - }, - { - "id": 23, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 23, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 24, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 25, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 26, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 27, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 18, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 19, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 19, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 20, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 21, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 17, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 18, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 28, - "name": "_createRequestHeaders", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 49, - "character": 10 - } - ], - "signatures": [ - { - "id": 29, - "name": "_createRequestHeaders", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Create a temporary object with all configured headers and\nadds the Authorization token to be used on request methods" - }, - "parameters": [ - { - "id": 30, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 31, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - } - ] - }, - { - "id": 32, - "name": "cookieName", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 55, - "character": 10 - } - ], - "signatures": [ - { - "id": 33, - "name": "cookieName", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 196, - "name": "createUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 659, - "character": 8 - } - ], - "signatures": [ - { - "id": 197, - "name": "createUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new user.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 198, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The data you want to create the user with.\n" - }, - "type": { - "type": "reference", - "id": 539, - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 199, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 201, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 18 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 202, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 30 - } - ], - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - } - }, - { - "id": 200, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 6 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 201, - 202, - 200 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 203, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 205, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 64 - } - ], - "type": { - "type": "reference", - "id": 505, - "name": "User" - } - }, - { - "id": 206, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 76 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 204, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 662, - "character": 52 - } - ], - "type": { - "type": "reference", - "id": 505, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 205, - 206, - 204 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 173, - "name": "deleteAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 549, - "character": 2 - } - ], - "signatures": [ - { - "id": 174, - "name": "deleteAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Deletes the Auth Cookies and redirects to the" - }, - "parameters": [ - { - "id": 175, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 176, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 177, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "Optionally specify a `redirectTo` URL in the options.\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 178, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 179, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 549, - "character": 63 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 179 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - }, - { - "id": 241, - "name": "deleteUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 799, - "character": 8 - } - ], - "signatures": [ - { - "id": 242, - "name": "deleteUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Delete a user. Requires a `service_role` key.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 243, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user uid you want to remove.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 244, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 246, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 801, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 247, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 801, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 245, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 801, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 246, - 247, - 245 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 184, - "name": "generateLink", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 616, - "character": 8 - } - ], - "signatures": [ - { - "id": 185, - "name": "generateLink", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Generates links to be sent via email or other." - }, - "parameters": [ - { - "id": 186, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The link type (\"signup\" or \"magiclink\" or \"recovery\" or \"invite\")." - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "invite" - }, - { - "type": "literal", - "value": "email_change_current" - }, - { - "type": "literal", - "value": "email_change_new" - } - ] - } - }, - { - "id": 187, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's email." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 188, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 189, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 191, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 627, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 190, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 626, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 192, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 628, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 191, - 190, - 192 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 193, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 194, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 630, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 195, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 630, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 194, - 195 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 180, - "name": "getAuthCookieString", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 568, - "character": 2 - } - ], - "signatures": [ - { - "id": 181, - "name": "getAuthCookieString", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Helper method to generate the Auth Cookie string for you in case you can't use `setAuthCookie`.", - "returns": "The Cookie string that needs to be set as the value for the `Set-Cookie` header.\n" - }, - "parameters": [ - { - "id": 182, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 183, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ] - }, - { - "id": 34, - "name": "getUrlForProvider", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 65, - "character": 2 - } - ], - "signatures": [ - { - "id": 35, - "name": "getUrlForProvider", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Generates the relevant login URL for a third-party provider." - }, - "parameters": [ - { - "id": 36, - "name": "provider", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "One of the providers supported by GoTrue." - }, - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 37, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 38, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 41, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 70, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 42, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 43, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 44, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 39, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 68, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 40, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 69, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 41, - 39, - 40 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 248, - "name": "getUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 826, - "character": 8 - } - ], - "signatures": [ - { - "id": 249, - "name": "getUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Gets the current user details.", - "text": "This method is called by the GoTrueClient `update` where\nthe jwt is set to this.currentSession.access_token\nand therefore, acts like getting the currently authenticated user\n" - }, - "parameters": [ - { - "id": 250, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT. Typically, the access_token for the currentSession\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 251, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 253, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 828, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 254, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 828, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 252, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 828, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 253, - 254, - 252 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 224, - "name": "getUserByCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 714, - "character": 8 - } - ], - "signatures": [ - { - "id": 225, - "name": "getUserByCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Get user by reading the cookie from the request.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 226, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 227, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 228, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 231, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 720, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 232, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 721, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 229, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 718, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 230, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 719, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 231, - 232, - 229, - 230 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 215, - "name": "getUserById", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 697, - "character": 8 - } - ], - "signatures": [ - { - "id": 216, - "name": "getUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Get user by id." - }, - "parameters": [ - { - "id": 217, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's unique identifier\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 218, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 219, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 15 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 220, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 27 - } - ], - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 219, - 220 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 221, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 222, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 49 - } - ], - "type": { - "type": "reference", - "id": 505, - "name": "User" - } - }, - { - "id": 223, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 699, - "character": 61 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 222, - 223 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 142, - "name": "inviteUserByEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 419, - "character": 8 - } - ], - "signatures": [ - { - "id": 143, - "name": "inviteUserByEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends an invite link to an email address." - }, - "parameters": [ - { - "id": 144, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 145, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 146, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 148, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 423, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 147, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 422, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 148, - 147 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 149, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 150, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 425, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 151, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 425, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 150, - 151 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 207, - "name": "listUsers", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 8 - } - ], - "signatures": [ - { - "id": 208, - "name": "listUsers", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Get a list of users.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 209, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 210, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 31 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 211, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 43 - } - ], - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 210, - 211 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 212, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 213, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 65 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 505, - "name": "User" - } - } - }, - { - "id": 214, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 679, - "character": 79 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 213, - 214 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 163, - "name": "refreshAccessToken", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 479, - "character": 8 - } - ], - "signatures": [ - { - "id": 164, - "name": "refreshAccessToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Generates a new JWT." - }, - "parameters": [ - { - "id": 165, - "name": "refreshToken", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid refresh token that was returned on login.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 166, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 167, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 481, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 168, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 481, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 167, - 168 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 152, - "name": "resetPasswordForEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 450, - "character": 8 - } - ], - "signatures": [ - { - "id": 153, - "name": "resetPasswordForEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends a reset request to an email address." - }, - "parameters": [ - { - "id": 154, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 155, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 156, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 158, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 454, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 157, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 453, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 158, - 157 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 159, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 160, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 456, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 161, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - ] - } - }, - { - "id": 162, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 456, - "character": 32 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 160, - 162 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 95, - "name": "sendMagicLinkEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 272, - "character": 8 - } - ], - "signatures": [ - { - "id": 96, - "name": "sendMagicLinkEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends a magic login link to an email address." - }, - "parameters": [ - { - "id": 97, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 98, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 99, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 102, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 277, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 101, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 276, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 100, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 275, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 102, - 101, - 100 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 103, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 104, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 279, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 105, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - ] - } - }, - { - "id": 106, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 279, - "character": 32 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 104, - 106 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 107, - "name": "sendMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 310, - "character": 8 - } - ], - "signatures": [ - { - "id": 108, - "name": "sendMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sends a mobile OTP via SMS. Will register the account if it doesn't already exist" - }, - "parameters": [ - { - "id": 109, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 110, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 111, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 113, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 314, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 112, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 313, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 113, - 112 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 114, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 115, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 316, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 116, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - ] - } - }, - { - "id": 117, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 316, - "character": 32 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 115, - 117 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 169, - "name": "setAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 503, - "character": 2 - } - ], - "signatures": [ - { - "id": 170, - "name": "setAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Set/delete the auth cookie based on the AuthChangeEvent.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 171, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 172, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The response object.\n" - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 57, - "name": "signInWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 139, - "character": 8 - } - ], - "signatures": [ - { - "id": 58, - "name": "signInWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Logs in an existing user using their email address." - }, - "parameters": [ - { - "id": 59, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 60, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 61, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 62, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 64, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 144, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 63, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 143, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 64, - 63 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 65, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 66, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 146, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 67, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 146, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 66, - 67 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 89, - "name": "signInWithOpenIDConnect", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 241, - "character": 8 - } - ], - "signatures": [ - { - "id": 90, - "name": "signInWithOpenIDConnect", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Logs in an OpenID Connect user using their id_token." - }, - "parameters": [ - { - "id": 91, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 583, - "name": "OpenIDConnectCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 92, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 93, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 247, - "character": 42 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 94, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 247, - "character": 64 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 93, - 94 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 79, - "name": "signInWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 209, - "character": 8 - } - ], - "signatures": [ - { - "id": 80, - "name": "signInWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Logs in an existing user using their phone number and password." - }, - "parameters": [ - { - "id": 81, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 82, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 83, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 84, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 85, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 213, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 85 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 86, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 87, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 215, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 88, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 215, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 87, - 88 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 118, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 340, - "character": 8 - } - ], - "signatures": [ - { - "id": 119, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Removes a logged-in session." - }, - "parameters": [ - { - "id": 120, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 121, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 122, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 340, - "character": 40 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 122 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 45, - "name": "signUpWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 98, - "character": 8 - } - ], - "signatures": [ - { - "id": 46, - "name": "signUpWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new user using their email address.", - "returns": "A logged-in session if the server has \"autoconfirm\" ON" - }, - "parameters": [ - { - "id": 47, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 48, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 49, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 50, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 53, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 104, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 52, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 103, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 51, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 102, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 53, - 52, - 51 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 54, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 55, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 106, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 56, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 106, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 55, - 56 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 68, - "name": "signUpWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 174, - "character": 8 - } - ], - "signatures": [ - { - "id": 69, - "name": "signUpWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Signs up a new user using their phone number and a password." - }, - "parameters": [ - { - "id": 70, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 71, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 72, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 73, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 75, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 179, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 74, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 178, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 75, - 74 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 76, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 77, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 181, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 78, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 181, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 77, - 78 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 255, - "name": "updateUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 844, - "character": 8 - } - ], - "signatures": [ - { - "id": 256, - "name": "updateUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 257, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A valid, logged-in JWT." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 258, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The data you want to update.\n" - }, - "type": { - "type": "reference", - "id": 533, - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 259, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 261, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 262, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 260, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 261, - 262, - 260 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 233, - "name": "updateUserById", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 777, - "character": 8 - } - ], - "signatures": [ - { - "id": 234, - "name": "updateUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 235, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 236, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The data you want to update.\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "id": 539, - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 237, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 239, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 780, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 240, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 780, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 238, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 780, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 239, - 240, - 238 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 123, - "name": "verifyMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 360, - "character": 8 - } - ], - "signatures": [ - { - "id": 124, - "name": "verifyMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `verifyOTP` instead!" - } - ] - }, - "parameters": [ - { - "id": 125, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 126, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "token that user was sent to their mobile phone" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 127, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 128, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 129, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 364, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 129 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 130, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 131, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 366, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 132, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 366, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 131, - 132 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 133, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 391, - "character": 8 - } - ], - "signatures": [ - { - "id": 134, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Send User supplied Email / Mobile OTP to be verified" - }, - "parameters": [ - { - "id": 135, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 570, - "name": "VerifyOTPParams" - } - }, - { - "id": 136, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 137, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 138, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 394, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 138 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 139, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 140, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 396, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 141, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 396, - "character": 44 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 140, - 141 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 2 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 22, - 23, - 18, - 17 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 28, - 32, - 196, - 173, - 241, - 184, - 180, - 34, - 248, - 224, - 215, - 142, - 207, - 163, - 152, - 95, - 107, - 169, - 57, - 89, - 79, - 118, - 45, - 68, - 255, - 233, - 123, - 133 - ] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 17, - "character": 21 - } - ] - }, - { - "id": 263, - "name": "GoTrueClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 264, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 82, - "character": 2 - } - ], - "signatures": [ - { - "id": 265, - "name": "new GoTrueClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "comment": { - "shortText": "Create a new client for use in the browser." - }, - "parameters": [ - { - "id": 266, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 267, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 274, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically refresh the token before expiring." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 86, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 278, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 90, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 557, - "name": "CookieOptions" - } - }, - { - "id": 273, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 85, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 279, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 91, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 280, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 281, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "A custom fetch implementation.\n" - }, - "parameters": [ - { - "id": 282, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 283, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 269, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Any additional headers to send to the GoTrue server." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 84, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 270, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 271, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 272, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 276, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Provide your own local storage implementation to use instead of the browser's local storage." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 88, - "character": 4 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 277, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"false\" if you want to disable multi-tab/window events." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 89, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 275, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically save the user session into local storage." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 87, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 268, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The URL of the GoTrue server." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 83, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 274, - 278, - 273, - 279, - 269, - 276, - 277, - 275, - 268 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 263, - "name": "default" - } - } - ] - }, - { - "id": 284, - "name": "api", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "Namespace for the GoTrue API methods.\nThese can be used for example to get a user from a JWT in a server environment or reset a user's password." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 52, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 1, - "name": "default" - } - }, - { - "id": 287, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 62, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 286, - "name": "currentSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "comment": { - "shortText": "The session object for the currently logged in user or null." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 60, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 285, - "name": "currentUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "comment": { - "shortText": "The currently logged in user or null." - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 56, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 289, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 64, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 290, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 65, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 293, - "name": "networkRetries", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 68, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 288, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 63, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 292, - "name": "refreshTokenTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 67, - "character": 12 - } - ], - "type": { - "type": "reference", - "qualifiedName": "NodeJS.Timeout", - "package": "@types/node", - "name": "Timeout" - } - }, - { - "id": 291, - "name": "stateChangeEmitters", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 66, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "id": 549, - "name": "Subscription" - } - ], - "qualifiedName": "Map", - "package": "typescript", - "name": "Map" - }, - "defaultValue": "..." - }, - { - "id": 454, - "name": "_callRefreshToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 695, - "character": 16 - } - ], - "signatures": [ - { - "id": 455, - "name": "_callRefreshToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 456, - "name": "refresh_token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - }, - "defaultValue": "..." - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 457, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 458, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - }, - { - "id": 459, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 458, - 459 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 460, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 461, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 462, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - }, - "defaultValue": "..." - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 461, - 462 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 383, - "name": "_handleEmailSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 520, - "character": 16 - } - ], - "signatures": [ - { - "id": 384, - "name": "_handleEmailSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 385, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 386, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 387, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 388, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 390, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 525, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 389, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 524, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 390, - 389 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 391, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 392, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 395, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 394, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 393, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 392, - 395, - 394, - 393 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 396, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 397, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - }, - { - "id": 400, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 399, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - }, - "defaultValue": "data" - }, - { - "id": 398, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - }, - "defaultValue": "data.user" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 397, - 400, - 399, - 398 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 443, - "name": "_handleOpenIDConnectSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 595, - "character": 16 - } - ], - "signatures": [ - { - "id": 444, - "name": "_handleOpenIDConnectSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 445, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 583, - "name": "OpenIDConnectCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 446, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 449, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 604, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 447, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 602, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 448, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 603, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 449, - 447, - 448 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 401, - "name": "_handlePhoneSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 546, - "character": 16 - } - ], - "signatures": [ - { - "id": 402, - "name": "_handlePhoneSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 403, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 404, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 405, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 406, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 407, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 550, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 407 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 408, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 409, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 412, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 411, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 410, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 409, - 412, - 411, - 410 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 413, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 414, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - }, - { - "id": 417, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 416, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - }, - "defaultValue": "data" - }, - { - "id": 415, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - }, - "defaultValue": "data.user" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 414, - 417, - 416, - 415 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 418, - "name": "_handleProviderSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 568, - "character": 10 - } - ], - "signatures": [ - { - "id": 419, - "name": "_handleProviderSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 420, - "name": "provider", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 421, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 422, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 425, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 573, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 426, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 427, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 428, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 423, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 571, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 424, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 572, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 425, - 423, - 424 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 429, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 432, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 435, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 430, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 433, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 431, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 434, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 432, - 435, - 430, - 433, - 431, - 434 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 436, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 437, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 440, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reference", - "id": 483, - "name": "ApiError" - }, - "defaultValue": "..." - }, - { - "id": 441, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 439, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 442, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 438, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 437, - 440, - 441, - 439, - 442, - 438 - ] - } - ] - } - } - ] - } - } - ] - }, - { - "id": 479, - "name": "_handleVisibilityChange", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 800, - "character": 10 - } - ], - "signatures": [ - { - "id": 480, - "name": "_handleVisibilityChange", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": false - } - ] - } - } - ] - }, - { - "id": 477, - "name": "_listenForMultiTabEvents", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 777, - "character": 10 - } - ], - "signatures": [ - { - "id": 478, - "name": "_listenForMultiTabEvents", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Listens for changes to LocalStorage and updates the current session." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": false - } - ] - } - } - ] - }, - { - "id": 463, - "name": "_notifyAllSubscribers", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 714, - "character": 10 - } - ], - "signatures": [ - { - "id": 464, - "name": "_notifyAllSubscribers", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 465, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 482, - "name": "AuthChangeEvent" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 469, - "name": "_persistSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 741, - "character": 10 - } - ], - "signatures": [ - { - "id": 470, - "name": "_persistSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 471, - "name": "currentSession", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 452, - "name": "_recoverAndRefresh", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 650, - "character": 16 - } - ], - "signatures": [ - { - "id": 453, - "name": "_recoverAndRefresh", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Recovers the session from LocalStorage and refreshes\nNote: this method is async to accommodate for AsyncStorage e.g. in React native." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": null - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 450, - "name": "_recoverSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 630, - "character": 10 - } - ], - "signatures": [ - { - "id": 451, - "name": "_recoverSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Attempts to get the session from LocalStorage\nNote: this should never be async (even for React Native), as we need it to return immediately in the constructor." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": null - } - ] - } - } - ] - }, - { - "id": 472, - "name": "_removeSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 746, - "character": 16 - } - ], - "signatures": [ - { - "id": 473, - "name": "_removeSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "void" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 466, - "name": "_saveSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 722, - "character": 10 - } - ], - "signatures": [ - { - "id": 467, - "name": "_saveSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "set currentSession and currentUser\nprocess to _startAutoRefreshToken if possible" - }, - "parameters": [ - { - "id": 468, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 474, - "name": "_startAutoRefreshToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 757, - "character": 10 - } - ], - "signatures": [ - { - "id": 475, - "name": "_startAutoRefreshToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Clear and re-create refresh token timer" - }, - "parameters": [ - { - "id": 476, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "time intervals in milliseconds\n" - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 361, - "name": "getSessionFromUrl", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 428, - "character": 8 - } - ], - "signatures": [ - { - "id": 362, - "name": "getSessionFromUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Gets the session data from a URL string" - }, - "parameters": [ - { - "id": 363, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 364, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 365, - "name": "storeSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Optionally store the session in the browser\n" - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 429, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 365 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 366, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 367, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 430, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 368, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 430, - "character": 38 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 367, - 368 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 373, - "name": "onAuthStateChange", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 500, - "character": 2 - } - ], - "signatures": [ - { - "id": 374, - "name": "onAuthStateChange", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Receive a notification every time an auth event happens.", - "returns": "A subscription object which can be used to unsubscribe itself.\n" - }, - "parameters": [ - { - "id": 375, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 376, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 377, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 378, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 482, - "name": "AuthChangeEvent" - } - }, - { - "id": 379, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 380, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 381, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 501, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 549, - "name": "Subscription" - } - ] - } - }, - { - "id": 382, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 502, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 381, - 382 - ] - } - ] - } - } - } - ] - }, - { - "id": 339, - "name": "refreshSession", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 339, - "character": 8 - } - ], - "signatures": [ - { - "id": 340, - "name": "refreshSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Force refreshes the session including the user data in case it was updated in a different session." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 341, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 342, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 340, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 344, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 342, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 343, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 341, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 342, - 344, - 343 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 337, - "name": "session", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 332, - "character": 2 - } - ], - "signatures": [ - { - "id": 338, - "name": "session", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Returns the session data, if there is an active session." - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ] - }, - { - "id": 358, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 411, - "character": 2 - } - ], - "signatures": [ - { - "id": 359, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Overrides the JWT on the current client. The JWT will then be sent in all subsequent network requests." - }, - "parameters": [ - { - "id": 360, - "name": "access_token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "a jwt access token\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 486, - "name": "Session" - } - } - ] - }, - { - "id": 352, - "name": "setSession", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 387, - "character": 8 - } - ], - "signatures": [ - { - "id": 353, - "name": "setSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sets the session data from refresh_token and returns current Session and Error" - }, - "parameters": [ - { - "id": 354, - "name": "refresh_token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "a JWT token\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 355, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 357, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 389, - "character": 40 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 356, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 389, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 357, - 356 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 306, - "name": "signIn", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 197, - "character": 8 - } - ], - "signatures": [ - { - "id": 307, - "name": "signIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Log in an existing user, or login via a third-party provider." - }, - "parameters": [ - { - "id": 308, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 563, - "name": "UserCredentials" - } - }, - { - "id": 309, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 310, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 314, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 203, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 315, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 204, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 316, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 317, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 318, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 311, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 200, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 313, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 202, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 312, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 201, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 314, - 315, - 311, - 313, - 312 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 319, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 324, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 211, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 322, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 209, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 320, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 207, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 323, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 210, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 321, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 208, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 324, - 322, - 320, - 323, - 321 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 369, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 485, - "character": 8 - } - ], - "signatures": [ - { - "id": 370, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Inside a browser context, `signOut()` will remove the logged in user from the browser session\nand log them out - removing all items from localstorage and then trigger a \"SIGNED_OUT\" event.", - "text": "For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`. There is no way to revoke a user's session JWT before it automatically expires\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 371, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 372, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 485, - "character": 29 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 372 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 294, - "name": "signUp", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 130, - "character": 8 - } - ], - "signatures": [ - { - "id": 295, - "name": "signUp", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new user." - }, - "parameters": [ - { - "id": 296, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 563, - "name": "UserCredentials" - } - }, - { - "id": 297, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 298, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 301, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 135, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 300, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 134, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 299, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 133, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 301, - 300, - 299 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 302, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 305, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 140, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 304, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 139, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 303, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 138, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 305, - 304, - 303 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 345, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 360, - "character": 8 - } - ], - "signatures": [ - { - "id": 346, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates user data, if there is a logged in user." - }, - "parameters": [ - { - "id": 347, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 533, - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 348, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 349, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 362, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - }, - { - "id": 351, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 362, - "character": 53 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 350, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 362, - "character": 34 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 349, - 351, - 350 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 335, - "name": "user", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 325, - "character": 2 - } - ], - "signatures": [ - { - "id": 336, - "name": "user", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Inside a browser context, `user()` will return the user data, if there is a logged in user.", - "text": "For server-side management, you can get a user through `auth.api.getUserByCookie()`\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ] - }, - { - "id": 325, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 277, - "character": 8 - } - ], - "signatures": [ - { - "id": 326, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Log in a user given a User supplied OTP received via mobile." - }, - "parameters": [ - { - "id": 327, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 570, - "name": "VerifyOTPParams" - } - }, - { - "id": 328, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 329, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 330, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 280, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 330 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 331, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 334, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 285, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 483, - "name": "ApiError" - } - ] - } - }, - { - "id": 333, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 284, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - }, - { - "id": 332, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 283, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 334, - 333, - 332 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 264 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 284, - 287, - 286, - 285, - 289, - 290, - 293, - 288, - 292, - 291 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 454, - 383, - 443, - 401, - 418, - 479, - 477, - 463, - 469, - 452, - 450, - 472, - 466, - 474, - 361, - 373, - 339, - 337, - 358, - 352, - 306, - 369, - 294, - 345, - 335, - 325 - ] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 47, - "character": 21 - } - ] - }, - { - "id": 539, - "name": "AdminUserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 541, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for app_metadata that.", - "text": "Only a service role can modify.\n\nCan be any JSON that includes app-specific info, such as identity providers, roles, and other\naccess control information.\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 137, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 548, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 112, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - }, - "inheritedFrom": { - "type": "reference", - "id": 538, - "name": "UserAttributes.data" - } - }, - { - "id": 544, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 92, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 534, - "name": "UserAttributes.email" - } - }, - { - "id": 547, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 107, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 537, - "name": "UserAttributes.email_change_token" - } - }, - { - "id": 542, - "name": "email_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their email address.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 144, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 546, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 102, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 536, - "name": "UserAttributes.password" - } - }, - { - "id": 545, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 97, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 535, - "name": "UserAttributes.phone" - } - }, - { - "id": 543, - "name": "phone_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their phone number.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 151, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 540, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata.", - "text": "Can be any JSON.\n\nOnly a service role can modify.\n\nNote: When using the GoTrueAdminApi and wanting to modify a user's user_metadata,\nthis attribute is used instead of UserAttributes data.\n\n" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 127, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 541, - 548, - 544, - 547, - 542, - 546, - 545, - 543, - 540 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 115, - "character": 17 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 533, - "name": "UserAttributes" - } - ] - }, - { - "id": 483, - "name": "ApiError", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 484, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 28, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 485, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 29, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 484, - 485 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 27, - "character": 17 - } - ] - }, - { - "id": 557, - "name": "CookieOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 560, - "name": "domain", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 175, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 559, - "name": "lifetime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 173, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 558, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 171, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 561, - "name": "path", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 176, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 562, - "name": "sameSite", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 178, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 560, - 559, - 558, - 561, - 562 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 169, - "character": 17 - } - ] - }, - { - "id": 583, - "name": "OpenIDConnectCredentials", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 587, - "name": "client_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 211, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 584, - "name": "id_token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 208, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 588, - "name": "issuer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 212, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 585, - "name": "nonce", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 209, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 586, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 210, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 587, - 584, - 588, - 585, - 586 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 207, - "character": 17 - } - ] - }, - { - "id": 486, - "name": "Session", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 488, - "name": "access_token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 34, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 490, - "name": "expires_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A timestamp of when the token will expire. Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 42, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 489, - "name": "expires_in", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The number of seconds until the token expires (since it was issued). Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 38, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 487, - "name": "provider_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 33, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 491, - "name": "refresh_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 43, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 492, - "name": "token_type", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 44, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 493, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 45, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 505, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 488, - 490, - 489, - 487, - 491, - 492, - 493 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 32, - "character": 17 - } - ] - }, - { - "id": 549, - "name": "Subscription", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 550, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "The subscriber UUID. This will be set by the client." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 158, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 551, - "name": "callback", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 162, - "character": 2 - } - ], - "signatures": [ - { - "id": 552, - "name": "callback", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "The function to call every time there is an event. eg: (eventName) => {}" - }, - "parameters": [ - { - "id": 553, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 482, - "name": "AuthChangeEvent" - } - }, - { - "id": 554, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 486, - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 555, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 166, - "character": 2 - } - ], - "signatures": [ - { - "id": 556, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Call this to remove the listener." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 550 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 551, - 555 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 154, - "character": 17 - } - ] - }, - { - "id": 505, - "name": "User", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 522, - "name": "action_link", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 75, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 507, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 62, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 508, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 509, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 63, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 509 - ] - } - ], - "indexSignature": { - "id": 510, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 511, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 516, - "name": "aud", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 69, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 517, - "name": "confirmation_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 70, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 526, - "name": "confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 79, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 525, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 78, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 523, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 76, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 519, - "name": "email_change_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 72, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 527, - "name": "email_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 80, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 506, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 61, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 532, - "name": "identities", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 85, - "character": 2 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 494, - "name": "UserIdentity" - } - } - }, - { - "id": 521, - "name": "invited_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 74, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 529, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 82, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 520, - "name": "new_email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 73, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 524, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 77, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 528, - "name": "phone_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 81, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 518, - "name": "recovery_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 71, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 530, - "name": "role", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 83, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 531, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 84, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 512, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 66, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 513, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 514, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 515, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 522, - 507, - 516, - 517, - 526, - 525, - 523, - 519, - 527, - 506, - 532, - 521, - 529, - 520, - 524, - 528, - 518, - 530, - 531, - 512 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 60, - "character": 17 - } - ] - }, - { - "id": 533, - "name": "UserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 538, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 112, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 534, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 92, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 537, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 107, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 536, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 102, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 535, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 97, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 538, - 534, - 537, - 536, - 535 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 88, - "character": 17 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 539, - "name": "AdminUserAttributes" - } - ] - }, - { - "id": 563, - "name": "UserCredentials", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 564, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 182, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 569, - "name": "oidc", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 188, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 583, - "name": "OpenIDConnectCredentials" - } - }, - { - "id": 566, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 184, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 565, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 183, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 568, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 187, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 481, - "name": "Provider" - } - }, - { - "id": 567, - "name": "refreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 185, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 564, - 569, - 566, - 565, - 568, - 567 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 181, - "character": 17 - } - ] - }, - { - "id": 494, - "name": "UserIdentity", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 502, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 55, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 495, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 49, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 497, - "name": "identity_data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 51, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 498, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 499, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 500, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 503, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 56, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 501, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 54, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 504, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 57, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 496, - "name": "user_id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 50, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 502, - 495, - 497, - 503, - 501, - 504, - 496 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 48, - "character": 17 - } - ] - }, - { - "id": 576, - "name": "VerifyEmailOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 577, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 199, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 578, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 200, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 579, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 201, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 580, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 202, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "EmailOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 577, - 578, - 579, - 580 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 198, - "character": 17 - } - ] - }, - { - "id": 571, - "name": "VerifyMobileOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 572, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 193, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 573, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 194, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 574, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 195, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 575, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 196, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 581, - "name": "MobileOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 572, - 573, - 574, - 575 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 192, - "character": 17 - } - ] - }, - { - "id": 482, - "name": "AuthChangeEvent", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 19, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "PASSWORD_RECOVERY" - }, - { - "type": "literal", - "value": "SIGNED_IN" - }, - { - "type": "literal", - "value": "SIGNED_OUT" - }, - { - "type": "literal", - "value": "TOKEN_REFRESHED" - }, - { - "type": "literal", - "value": "USER_UPDATED" - }, - { - "type": "literal", - "value": "USER_DELETED" - } - ] - } - }, - { - "id": 582, - "name": "EmailOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 205, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "invite" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "email_change" - } - ] - } - }, - { - "id": 581, - "name": "MobileOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 204, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "sms" - }, - { - "type": "literal", - "value": "phone_change" - } - ] - } - }, - { - "id": 481, - "name": "Provider", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 1, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "apple" - }, - { - "type": "literal", - "value": "azure" - }, - { - "type": "literal", - "value": "bitbucket" - }, - { - "type": "literal", - "value": "discord" - }, - { - "type": "literal", - "value": "facebook" - }, - { - "type": "literal", - "value": "github" - }, - { - "type": "literal", - "value": "gitlab" - }, - { - "type": "literal", - "value": "google" - }, - { - "type": "literal", - "value": "keycloak" - }, - { - "type": "literal", - "value": "linkedin" - }, - { - "type": "literal", - "value": "notion" - }, - { - "type": "literal", - "value": "slack" - }, - { - "type": "literal", - "value": "spotify" - }, - { - "type": "literal", - "value": "twitch" - }, - { - "type": "literal", - "value": "twitter" - }, - { - "type": "literal", - "value": "workos" - } - ] - } - }, - { - "id": 589, - "name": "SupportedStorage", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 224, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 570, - "name": "VerifyOTPParams", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 191, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 571, - "name": "VerifyMobileOTPParams" - }, - { - "type": "reference", - "id": 576, - "name": "VerifyEmailOTPParams" - } - ] - } - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 1, - 263 - ] - }, - { - "title": "Interfaces", - "kind": 256, - "children": [ - 539, - 483, - 557, - 583, - 486, - 549, - 505, - 533, - 563, - 494, - 576, - 571 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 482, - 582, - 581, - 481, - 589, - 570 - ] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0 - } - ] -} \ No newline at end of file diff --git a/web/spec/tsdoc_v1/postgrest.json b/web/spec/tsdoc_v1/postgrest.json deleted file mode 100644 index b140f1e79cd..00000000000 --- a/web/spec/tsdoc_v1/postgrest.json +++ /dev/null @@ -1,12517 +0,0 @@ -{ - "id": 0, - "name": "@supabase/postgrest-js", - "kind": 0, - "flags": {}, - "originalName": "", - "children": [ - { - "id": 475, - "name": "\"PostgrestClient\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/PostgrestClient.ts", - "children": [ - { - "id": 476, - "name": "PostgrestClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 485, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Creates a PostgREST client." - }, - "signatures": [ - { - "id": 486, - "name": "new PostgrestClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Creates a PostgREST client." - }, - "parameters": [ - { - "id": 487, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "URL of the PostgREST endpoint." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 488, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 489, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 495, - "name": "fetch", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 26, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reference", - "id": 350, - "name": "fetch" - } - ] - } - }, - { - "id": 490, - "name": "headers", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Custom headers." - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 24, - "character": 13 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 491, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 492, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 493, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - }, - { - "id": 494, - "name": "schema", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Postgres schema to switch to.\n" - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 25, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 496, - "name": "throwOnError", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 27, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 495, - 490, - 494, - 496 - ] - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 22, - "character": 16 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 476, - "name": "PostgrestClient" - } - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 12, - "character": 30 - } - ] - }, - { - "id": 483, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 11, - "character": 7 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - } - }, - { - "id": 478, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 9, - "character": 9 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 479, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 480, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 481, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 9, - "character": 10 - } - ] - } - } - }, - { - "id": 482, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 10, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 484, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 12, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - }, - { - "id": 477, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 8, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 497, - "name": "auth", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 498, - "name": "auth", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Authenticates the request with JWT." - }, - "parameters": [ - { - "id": 499, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The JWT token to use.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 47, - "character": 6 - } - ] - }, - { - "id": 500, - "name": "from", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 501, - "name": "from", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Perform a table operation." - }, - "typeParameter": [ - { - "id": 502, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 503, - "name": "table", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The table name to operate on.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 338, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T", - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "name": "PostgrestQueryBuilder" - } - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 57, - "character": 6 - } - ] - }, - { - "id": 504, - "name": "rpc", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 505, - "name": "rpc", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Perform a function call." - }, - "typeParameter": [ - { - "id": 506, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 507, - "name": "fn", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The function name to call." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 508, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "The parameters to pass to the function call." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - }, - { - "id": 509, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 510, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 512, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Count algorithm to use to count rows in a table.\n" - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 80, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 511, - "name": "head", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "When set to true, no data will be returned." - }, - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 79, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 512, - 511 - ] - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 77, - "character": 20 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T", - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 75, - "character": 5 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 485 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 483, - 478, - 482, - 484, - 477 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 497, - 500, - 504 - ] - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 7, - "character": 36 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 476 - ] - } - ], - "sources": [ - { - "fileName": "PostgrestClient.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 513, - "name": "\"index\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/index.ts", - "sources": [ - { - "fileName": "index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 136, - "name": "\"lib/PostgrestFilterBuilder\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/PostgrestFilterBuilder.ts", - "children": [ - { - "id": 137, - "name": "PostgrestFilterBuilder", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 138, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "children": [ - { - "id": 318, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 319, - "name": "new PostgrestFilterBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 320, - "name": "builder", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - } - ], - "type": { - "type": "reference", - "id": 137, - "name": "PostgrestFilterBuilder" - }, - "inheritedFrom": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 24 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - }, - { - "id": 224, - "name": "adj", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `rangeAdjacent()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 328, - "character": 5 - } - ], - "type": { - "type": "reference", - "id": 220, - "name": "rangeAdjacent" - }, - "defaultValue": "this.rangeAdjacent" - }, - { - "id": 314, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 58, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 36, - "name": "PostgrestBuilder.body" - } - }, - { - "id": 199, - "name": "cd", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `containedBy()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 253, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 195, - "name": "containedBy" - }, - "defaultValue": "this.containedBy" - }, - { - "id": 194, - "name": "cs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `contains()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 229, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 190, - "name": "contains" - }, - "defaultValue": "this.contains" - }, - { - "id": 317, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - }, - "inheritedFrom": { - "type": "reference", - "id": 39, - "name": "PostgrestBuilder.fetch" - } - }, - { - "id": 309, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 310, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 311, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 312, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 21 - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 31, - "name": "PostgrestBuilder.headers" - } - }, - { - "id": 307, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 54, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "HEAD" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PATCH" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 29, - "name": "PostgrestBuilder.method" - } - }, - { - "id": 214, - "name": "nxl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `rangeGte()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 298, - "character": 5 - } - ], - "type": { - "type": "reference", - "id": 210, - "name": "rangeGte" - }, - "defaultValue": "this.rangeGte" - }, - { - "id": 219, - "name": "nxr", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `rangeLte()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 313, - "character": 5 - } - ], - "type": { - "type": "reference", - "id": 215, - "name": "rangeLte" - }, - "defaultValue": "this.rangeLte" - }, - { - "id": 229, - "name": "ov", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `overlaps()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 349, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 225, - "name": "overlaps" - }, - "defaultValue": "this.overlaps" - }, - { - "id": 313, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 57, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 35, - "name": "PostgrestBuilder.schema" - } - }, - { - "id": 315, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 59, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 37, - "name": "PostgrestBuilder.shouldThrowOnError" - } - }, - { - "id": 316, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 60, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "id": 38, - "name": "PostgrestBuilder.signal" - } - }, - { - "id": 204, - "name": "sl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `rangeLt()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 268, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 200, - "name": "rangeLt" - }, - "defaultValue": "this.rangeLt" - }, - { - "id": 209, - "name": "sr", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `rangeGt()` instead." - } - ] - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 283, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 205, - "name": "rangeGt" - }, - "defaultValue": "this.rangeGt" - }, - { - "id": 308, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 55, - "character": 15 - } - ], - "type": { - "type": "reference", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "id": 30, - "name": "PostgrestBuilder.url" - } - }, - { - "id": 298, - "name": "abortSignal", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 299, - "name": "abortSignal", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Sets the AbortSignal for the fetch request." - }, - "parameters": [ - { - "id": 300, - "name": "signal", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "AbortSignal" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 98, - "name": "PostgrestTransformBuilder.abortSignal" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 91, - "character": 13 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 98, - "name": "PostgrestTransformBuilder.abortSignal" - } - }, - { - "id": 195, - "name": "containedBy", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 196, - "name": "containedBy", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose json, array, or range value on the stated `column` is\ncontained by the specified `value`." - }, - "parameters": [ - { - "id": 197, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 198, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 238, - "character": 13 - } - ] - }, - { - "id": 190, - "name": "contains", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 191, - "name": "contains", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose json, array, or range value on the stated `column`\ncontains the values specified in `value`." - }, - "parameters": [ - { - "id": 192, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 193, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 213, - "character": 10 - } - ] - }, - { - "id": 305, - "name": "csv", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 306, - "name": "csv", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Set the response type to CSV." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 67, - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 105, - "name": "PostgrestTransformBuilder.csv" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 134, - "character": 5 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 105, - "name": "PostgrestTransformBuilder.csv" - } - }, - { - "id": 150, - "name": "eq", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 151, - "name": "eq", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` exactly matches the\nspecified `value`." - }, - "parameters": [ - { - "id": 152, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 153, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 85, - "character": 4 - } - ] - }, - { - "id": 266, - "name": "filter", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 267, - "name": "filter", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose `column` satisfies the filter." - }, - "parameters": [ - { - "id": 268, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 269, - "name": "operator", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The operator to filter with." - }, - "type": { - "type": "reference", - "id": 336, - "name": "FilterOperator" - } - }, - { - "id": 270, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 452, - "character": 8 - } - ] - }, - { - "id": 238, - "name": "fts", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 239, - "name": "fts", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose tsvector value on the stated `column` matches\nto_tsquery(`query`).", - "tags": [ - { - "tag": "deprecated", - "text": "Use `textSearch()` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 240, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 241, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The Postgres tsquery string to filter with." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 242, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 243, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 244, - "name": "config", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The text search configuration to use.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 391, - "character": 46 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 244 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 391, - "character": 37 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 391, - "character": 5 - } - ] - }, - { - "id": 158, - "name": "gt", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 159, - "name": "gt", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is greater than the\nspecified `value`." - }, - "parameters": [ - { - "id": 160, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 161, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 109, - "character": 4 - } - ] - }, - { - "id": 162, - "name": "gte", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 163, - "name": "gte", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is greater than or\nequal to the specified `value`." - }, - "parameters": [ - { - "id": 164, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 165, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 121, - "character": 5 - } - ] - }, - { - "id": 178, - "name": "ilike", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 179, - "name": "ilike", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value in the stated `column` matches the supplied\n`pattern` (case insensitive)." - }, - "parameters": [ - { - "id": 180, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 181, - "name": "pattern", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The pattern to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 169, - "character": 7 - } - ] - }, - { - "id": 186, - "name": "in", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 187, - "name": "in", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is found on the\nspecified `values`." - }, - "parameters": [ - { - "id": 188, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 189, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The values to filter with.\n" - }, - "type": { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 193, - "character": 4 - } - ] - }, - { - "id": 182, - "name": "is", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 183, - "name": "is", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "A check for exact equality (null, true, false), finds all rows whose\nvalue on the stated `column` exactly match the specified `value`." - }, - "parameters": [ - { - "id": 184, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 185, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "boolean" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 181, - "character": 4 - } - ] - }, - { - "id": 174, - "name": "like", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 175, - "name": "like", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value in the stated `column` matches the supplied\n`pattern` (case sensitive)." - }, - "parameters": [ - { - "id": 176, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 177, - "name": "pattern", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The pattern to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 157, - "character": 6 - } - ] - }, - { - "id": 285, - "name": "limit", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 286, - "name": "limit", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Limits the result with the specified `count`." - }, - "parameters": [ - { - "id": 287, - "name": "count", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The maximum no. of rows to limit to." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 288, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 289, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 290, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (for foreign columns).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 290 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 22 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 85, - "name": "PostgrestTransformBuilder.limit" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 7 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 85, - "name": "PostgrestTransformBuilder.limit" - } - }, - { - "id": 166, - "name": "lt", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 167, - "name": "lt", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is less than the\nspecified `value`." - }, - "parameters": [ - { - "id": 168, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 169, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 133, - "character": 4 - } - ] - }, - { - "id": 170, - "name": "lte", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 171, - "name": "lte", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is less than or equal\nto the specified `value`." - }, - "parameters": [ - { - "id": 172, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 173, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 145, - "character": 5 - } - ] - }, - { - "id": 271, - "name": "match", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 272, - "name": "match", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose columns match the specified `query` object." - }, - "parameters": [ - { - "id": 273, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The object to filter with, with column names as keys mapped\n to their filter values.\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "name": "Record" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 463, - "character": 7 - } - ] - }, - { - "id": 303, - "name": "maybeSingle", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 304, - "name": "maybeSingle", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves at most one row from the result. Result must be at most one row\n(e.g. using `eq` on a UNIQUE column), otherwise this will result in an\nerror." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 69, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestMaybeSingleResponse" - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 103, - "name": "PostgrestTransformBuilder.maybeSingle" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 110, - "character": 13 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 103, - "name": "PostgrestTransformBuilder.maybeSingle" - } - }, - { - "id": 154, - "name": "neq", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 155, - "name": "neq", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` doesn't match the\nspecified `value`." - }, - "parameters": [ - { - "id": 156, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 157, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 97, - "character": 5 - } - ] - }, - { - "id": 139, - "name": "not", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 140, - "name": "not", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows which doesn't satisfy the filter." - }, - "parameters": [ - { - "id": 141, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 142, - "name": "operator", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The operator to filter with." - }, - "type": { - "type": "reference", - "id": 336, - "name": "FilterOperator" - } - }, - { - "id": 143, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 61, - "character": 5 - } - ] - }, - { - "id": 144, - "name": "or", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 145, - "name": "or", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows satisfying at least one of the filters." - }, - "parameters": [ - { - "id": 146, - "name": "filters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The filters to use, separated by commas." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 147, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 148, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 149, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (if `column` is a foreign column).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 72, - "character": 36 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 149 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 72, - "character": 21 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 72, - "character": 4 - } - ] - }, - { - "id": 277, - "name": "order", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 278, - "name": "order", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Orders the result with the specified `column`." - }, - "parameters": [ - { - "id": 279, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to order on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 280, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 281, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 282, - "name": "ascending", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "If `true`, the result will be in ascending order." - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 43, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "true" - }, - { - "id": 284, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (if `column` is a foreign column).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 45, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 283, - "name": "nullsFirst", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "If `true`, `null`s appear first." - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 44, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 282, - 284, - 283 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 41, - "character": 20 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 77, - "name": "PostgrestTransformBuilder.order" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 40, - "character": 7 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 77, - "name": "PostgrestTransformBuilder.order" - } - }, - { - "id": 225, - "name": "overlaps", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 226, - "name": "overlaps", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose array or range value on the stated `column` overlaps\n(has a value in common) with the specified `value`." - }, - "parameters": [ - { - "id": 227, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 228, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The value to filter with.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - }, - "objectType": { - "type": "typeParameter", - "name": "T" - } - } - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 337, - "character": 10 - } - ] - }, - { - "id": 252, - "name": "phfts", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 253, - "name": "phfts", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose tsvector value on the stated `column` matches\nphraseto_tsquery(`query`).", - "tags": [ - { - "tag": "deprecated", - "text": "Use `textSearch()` with `type: 'phrase'` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 254, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 255, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The Postgres tsquery string to filter with." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 256, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 257, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 258, - "name": "config", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The text search configuration to use.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 423, - "character": 48 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 258 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 423, - "character": 39 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 423, - "character": 7 - } - ] - }, - { - "id": 245, - "name": "plfts", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 246, - "name": "plfts", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose tsvector value on the stated `column` matches\nplainto_tsquery(`query`).", - "tags": [ - { - "tag": "deprecated", - "text": "Use `textSearch()` with `type: 'plain'` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 247, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 248, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The Postgres tsquery string to filter with." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 249, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 250, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 251, - "name": "config", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The text search configuration to use.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 407, - "character": 48 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 251 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 407, - "character": 39 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 407, - "character": 7 - } - ] - }, - { - "id": 291, - "name": "range", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 292, - "name": "range", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Limits the result to rows within the specified range, inclusive." - }, - "parameters": [ - { - "id": 293, - "name": "from", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The starting index from which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 294, - "name": "to", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The last index to which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 295, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 296, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 297, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (for foreign columns).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 48 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 297 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 33 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 91, - "name": "PostgrestTransformBuilder.range" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 7 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 91, - "name": "PostgrestTransformBuilder.range" - } - }, - { - "id": 220, - "name": "rangeAdjacent", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 221, - "name": "rangeAdjacent", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` is adjacent to\nthe specified `range`." - }, - "parameters": [ - { - "id": 222, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 223, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 322, - "character": 15 - } - ] - }, - { - "id": 205, - "name": "rangeGt", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 206, - "name": "rangeGt", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` is strictly to\nthe right of the specified `range`." - }, - "parameters": [ - { - "id": 207, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 208, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 277, - "character": 9 - } - ] - }, - { - "id": 210, - "name": "rangeGte", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 211, - "name": "rangeGte", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` does not extend\nto the left of the specified `range`." - }, - "parameters": [ - { - "id": 212, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 213, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 292, - "character": 10 - } - ] - }, - { - "id": 200, - "name": "rangeLt", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 201, - "name": "rangeLt", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` is strictly to the\nleft of the specified `range`." - }, - "parameters": [ - { - "id": 202, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 203, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 262, - "character": 9 - } - ] - }, - { - "id": 215, - "name": "rangeLte", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 216, - "name": "rangeLte", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` does not extend\nto the right of the specified `range`." - }, - "parameters": [ - { - "id": 217, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 218, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 307, - "character": 10 - } - ] - }, - { - "id": 274, - "name": "select", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 275, - "name": "select", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs vertical filtering with SELECT." - }, - "parameters": [ - { - "id": 276, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The columns to retrieve, separated by commas.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"*\"" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 74, - "name": "PostgrestTransformBuilder.select" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 13, - "character": 8 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 74, - "name": "PostgrestTransformBuilder.select" - } - }, - { - "id": 301, - "name": "single", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 302, - "name": "single", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves only one row from the result. Result must be one row (e.g. using\n`limit`), otherwise this will result in an error." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 67, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 101, - "name": "PostgrestTransformBuilder.single" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 100, - "character": 8 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 101, - "name": "PostgrestTransformBuilder.single" - } - }, - { - "id": 230, - "name": "textSearch", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 231, - "name": "textSearch", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose text or tsvector value on the stated `column` matches\nthe tsquery in `query`." - }, - "parameters": [ - { - "id": 232, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 233, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The Postgres tsquery string to filter with." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 234, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 235, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 236, - "name": "config", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The text search configuration to use." - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 364, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 237, - "name": "type", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The type of tsquery conversion to use on `query`.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 365, - "character": 10 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "plain" - }, - { - "type": "stringLiteral", - "value": "phrase" - }, - { - "type": "stringLiteral", - "value": "websearch" - } - ] - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 236, - 237 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 362, - "character": 18 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 360, - "character": 12 - } - ] - }, - { - "id": 324, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 325, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 326, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - }, - { - "id": 327, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 328, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 329, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 330, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 331, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 93, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 332, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 333, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 334, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 335, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 96, - "character": 18 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ] - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 91, - "character": 6 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - }, - { - "id": 321, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 322, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 323, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 83, - "character": 14 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - }, - { - "id": 259, - "name": "wfts", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 260, - "name": "wfts", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Finds all rows whose tsvector value on the stated `column` matches\nwebsearch_to_tsquery(`query`).", - "tags": [ - { - "tag": "deprecated", - "text": "Use `textSearch()` with `type: 'websearch'` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 261, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to filter on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 262, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The Postgres tsquery string to filter with." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 263, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 264, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 265, - "name": "config", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The text search configuration to use.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 439, - "character": 47 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 265 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 439, - "character": 38 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 439, - "character": 6 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 318 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 224, - 314, - 199, - 194, - 317, - 309, - 307, - 214, - 219, - 229, - 313, - 315, - 316, - 204, - 209, - 308 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 298, - 195, - 190, - 305, - 150, - 266, - 238, - 158, - 162, - 178, - 186, - 182, - 174, - 285, - 166, - 170, - 271, - 303, - 154, - 139, - 144, - 277, - 225, - 252, - 245, - 291, - 220, - 205, - 210, - 200, - 215, - 274, - 301, - 230, - 324, - 321, - 259 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 53, - "character": 43 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 72, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestTransformBuilder" - } - ], - "implementedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - ], - "name": "PromiseLike" - } - ] - }, - { - "id": 336, - "name": "FilterOperator", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "comment": { - "shortText": "Filters" - }, - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 7, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "eq" - }, - { - "type": "stringLiteral", - "value": "neq" - }, - { - "type": "stringLiteral", - "value": "gt" - }, - { - "type": "stringLiteral", - "value": "gte" - }, - { - "type": "stringLiteral", - "value": "lt" - }, - { - "type": "stringLiteral", - "value": "lte" - }, - { - "type": "stringLiteral", - "value": "like" - }, - { - "type": "stringLiteral", - "value": "ilike" - }, - { - "type": "stringLiteral", - "value": "is" - }, - { - "type": "stringLiteral", - "value": "in" - }, - { - "type": "stringLiteral", - "value": "cs" - }, - { - "type": "stringLiteral", - "value": "cd" - }, - { - "type": "stringLiteral", - "value": "sl" - }, - { - "type": "stringLiteral", - "value": "sr" - }, - { - "type": "stringLiteral", - "value": "nxl" - }, - { - "type": "stringLiteral", - "value": "nxr" - }, - { - "type": "stringLiteral", - "value": "adj" - }, - { - "type": "stringLiteral", - "value": "ov" - }, - { - "type": "stringLiteral", - "value": "fts" - }, - { - "type": "stringLiteral", - "value": "plfts" - }, - { - "type": "stringLiteral", - "value": "phfts" - }, - { - "type": "stringLiteral", - "value": "wfts" - }, - { - "type": "stringLiteral", - "value": "not.eq" - }, - { - "type": "stringLiteral", - "value": "not.neq" - }, - { - "type": "stringLiteral", - "value": "not.gt" - }, - { - "type": "stringLiteral", - "value": "not.gte" - }, - { - "type": "stringLiteral", - "value": "not.lt" - }, - { - "type": "stringLiteral", - "value": "not.lte" - }, - { - "type": "stringLiteral", - "value": "not.like" - }, - { - "type": "stringLiteral", - "value": "not.ilike" - }, - { - "type": "stringLiteral", - "value": "not.is" - }, - { - "type": "stringLiteral", - "value": "not.in" - }, - { - "type": "stringLiteral", - "value": "not.cs" - }, - { - "type": "stringLiteral", - "value": "not.cd" - }, - { - "type": "stringLiteral", - "value": "not.sl" - }, - { - "type": "stringLiteral", - "value": "not.sr" - }, - { - "type": "stringLiteral", - "value": "not.nxl" - }, - { - "type": "stringLiteral", - "value": "not.nxr" - }, - { - "type": "stringLiteral", - "value": "not.adj" - }, - { - "type": "stringLiteral", - "value": "not.ov" - }, - { - "type": "stringLiteral", - "value": "not.fts" - }, - { - "type": "stringLiteral", - "value": "not.plfts" - }, - { - "type": "stringLiteral", - "value": "not.phfts" - }, - { - "type": "stringLiteral", - "value": "not.wfts" - } - ] - } - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 137 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 336 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestFilterBuilder.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 337, - "name": "\"lib/PostgrestQueryBuilder\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/PostgrestQueryBuilder.ts", - "children": [ - { - "id": 338, - "name": "PostgrestQueryBuilder", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 339, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "children": [ - { - "id": 340, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 341, - "name": "new PostgrestQueryBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 342, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 343, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 344, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 350, - "name": "fetch", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 10, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reference", - "id": 350, - "name": "fetch" - } - ] - } - }, - { - "id": 345, - "name": "headers", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 8, - "character": 13 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 346, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 347, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 348, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - }, - { - "id": 349, - "name": "schema", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 9, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 351, - "name": "shouldThrowOnError", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 11, - "character": 24 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 350, - 345, - 349, - 351 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 6, - "character": 16 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 338, - "name": "PostgrestQueryBuilder" - }, - "overwrites": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 4, - "character": 75 - } - ], - "overwrites": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - }, - { - "id": 403, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 58, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 36, - "name": "PostgrestBuilder.body" - } - }, - { - "id": 406, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - }, - "inheritedFrom": { - "type": "reference", - "id": 39, - "name": "PostgrestBuilder.fetch" - } - }, - { - "id": 398, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 399, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 400, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 401, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 21 - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 31, - "name": "PostgrestBuilder.headers" - } - }, - { - "id": 396, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 54, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "HEAD" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PATCH" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 29, - "name": "PostgrestBuilder.method" - } - }, - { - "id": 402, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 57, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 35, - "name": "PostgrestBuilder.schema" - } - }, - { - "id": 404, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 59, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 37, - "name": "PostgrestBuilder.shouldThrowOnError" - } - }, - { - "id": 405, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 60, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "id": 38, - "name": "PostgrestBuilder.signal" - } - }, - { - "id": 397, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 55, - "character": 15 - } - ], - "type": { - "type": "reference", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "id": 30, - "name": "PostgrestBuilder.url" - } - }, - { - "id": 390, - "name": "delete", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 391, - "name": "delete", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs a DELETE on the table." - }, - "parameters": [ - { - "id": 392, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__0", - "type": { - "type": "reflection", - "declaration": { - "id": 393, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 395, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Count algorithm to use to count rows in a table.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 214, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 394, - "name": "returning", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "If `true`, return the deleted row(s) in the response." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 213, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "minimal" - }, - { - "type": "stringLiteral", - "value": "representation" - } - ] - }, - "defaultValue": "\"representation\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 395, - 394 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 212, - "character": 9 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 212, - "character": 8 - } - ] - }, - { - "id": 359, - "name": "insert", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 360, - "name": "insert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs an INSERT into the table." - }, - "parameters": [ - { - "id": 361, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The values to insert." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - } - }, - { - "id": 362, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 363, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 365, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 78, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - } - }, - { - "id": 364, - "name": "returning", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 77, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "minimal" - }, - { - "type": "stringLiteral", - "value": "representation" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 365, - 364 - ] - } - ] - } - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - }, - { - "id": 366, - "name": "insert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `upsert()` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 367, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - } - }, - { - "id": 368, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 369, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 373, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 90, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - } - }, - { - "id": 371, - "name": "onConflict", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 88, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 372, - "name": "returning", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 89, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "minimal" - }, - { - "type": "stringLiteral", - "value": "representation" - } - ] - } - }, - { - "id": 370, - "name": "upsert", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 87, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 373, - 371, - 372, - 370 - ] - } - ] - } - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 74, - "character": 8 - }, - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 84, - "character": 8 - }, - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 93, - "character": 8 - } - ] - }, - { - "id": 352, - "name": "select", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 353, - "name": "select", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs vertical filtering with SELECT." - }, - "parameters": [ - { - "id": 354, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The columns to retrieve, separated by commas." - }, - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"*\"" - }, - { - "id": 355, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 356, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 358, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Count algorithm to use to count rows in a table.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 36, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 357, - "name": "head", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "When set to true, select will void data." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 35, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 358, - 357 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 33, - "character": 18 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 32, - "character": 8 - } - ] - }, - { - "id": 410, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 411, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 412, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - }, - { - "id": 413, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 414, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 415, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 416, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 417, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 93, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 418, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 419, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 420, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 421, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 96, - "character": 18 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ] - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 91, - "character": 6 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - }, - { - "id": 407, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 408, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 409, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 83, - "character": 14 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - }, - { - "id": 383, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 384, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs an UPDATE on the table." - }, - "parameters": [ - { - "id": 385, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The values to update." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - }, - { - "id": 386, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 387, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 389, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Count algorithm to use to count rows in a table.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 187, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 388, - "name": "returning", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "By default the updated record is returned. Set this to 'minimal' if you don't need this value." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 186, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "minimal" - }, - { - "type": "stringLiteral", - "value": "representation" - } - ] - }, - "defaultValue": "\"representation\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 389, - 388 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 184, - "character": 23 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 183, - "character": 8 - } - ] - }, - { - "id": 374, - "name": "upsert", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 375, - "name": "upsert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs an UPSERT into the table." - }, - "parameters": [ - { - "id": 376, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The values to insert." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - } - }, - { - "id": 377, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 378, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 381, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Count algorithm to use to count rows in a table." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 147, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 382, - "name": "ignoreDuplicates", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "Specifies if duplicate rows should be ignored and not inserted.\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 148, - "character": 22 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - }, - { - "id": 379, - "name": "onConflict", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "By specifying the `on_conflict` query parameter, you can make UPSERT work on a column(s) that has a UNIQUE constraint." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 145, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 380, - "name": "returning", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "By default the new record is returned. Set this to 'minimal' if you don't need this value." - }, - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 146, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "minimal" - }, - { - "type": "stringLiteral", - "value": "representation" - } - ] - }, - "defaultValue": "\"representation\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 381, - 382, - 379, - 380 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 143, - "character": 38 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 142, - "character": 8 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 340 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 403, - 406, - 398, - 396, - 402, - 404, - 405, - 397 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 390, - 359, - 352, - 410, - 407, - 383, - 374 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 4, - "character": 42 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - ], - "implementedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - ], - "name": "PromiseLike" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 338 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestQueryBuilder.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 422, - "name": "\"lib/PostgrestRpcBuilder\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/PostgrestRpcBuilder.ts", - "children": [ - { - "id": 423, - "name": "PostgrestRpcBuilder", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 424, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "children": [ - { - "id": 425, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 426, - "name": "new PostgrestRpcBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 427, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 428, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 429, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 435, - "name": "fetch", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 10, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reference", - "id": 350, - "name": "fetch" - } - ] - } - }, - { - "id": 430, - "name": "headers", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 8, - "character": 13 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 431, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 432, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 433, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - }, - { - "id": 434, - "name": "schema", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 9, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 436, - "name": "shouldThrowOnError", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 11, - "character": 24 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 435, - 430, - 434, - 436 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 6, - "character": 16 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 423, - "name": "PostgrestRpcBuilder" - }, - "overwrites": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 4, - "character": 73 - } - ], - "overwrites": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - }, - { - "id": 451, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 58, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 36, - "name": "PostgrestBuilder.body" - } - }, - { - "id": 454, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - }, - "inheritedFrom": { - "type": "reference", - "id": 39, - "name": "PostgrestBuilder.fetch" - } - }, - { - "id": 446, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 447, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 448, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 449, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 21 - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 31, - "name": "PostgrestBuilder.headers" - } - }, - { - "id": 444, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 54, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "HEAD" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PATCH" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 29, - "name": "PostgrestBuilder.method" - } - }, - { - "id": 450, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 57, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 35, - "name": "PostgrestBuilder.schema" - } - }, - { - "id": 452, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 59, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 37, - "name": "PostgrestBuilder.shouldThrowOnError" - } - }, - { - "id": 453, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 60, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "id": 38, - "name": "PostgrestBuilder.signal" - } - }, - { - "id": 445, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 55, - "character": 15 - } - ], - "type": { - "type": "reference", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "id": 30, - "name": "PostgrestBuilder.url" - } - }, - { - "id": 437, - "name": "rpc", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 438, - "name": "rpc", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Perform a function call." - }, - "parameters": [ - { - "id": 439, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - }, - { - "id": 440, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 441, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 443, - "name": "count", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 32, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "stringLiteral", - "value": "exact" - }, - { - "type": "stringLiteral", - "value": "planned" - }, - { - "type": "stringLiteral", - "value": "estimated" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 442, - "name": "head", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 31, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 443, - 442 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 29, - "character": 20 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 137, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestFilterBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 28, - "character": 5 - } - ] - }, - { - "id": 458, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 459, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 460, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - }, - { - "id": 461, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 462, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 463, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 464, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 465, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 93, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 466, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 467, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 468, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 469, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 96, - "character": 18 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ] - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 91, - "character": 6 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - }, - { - "id": 455, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 456, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 457, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 83, - "character": 14 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 425 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 451, - 454, - 446, - 444, - 450, - 452, - 453, - 445 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 437, - 458, - 455 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 4, - "character": 40 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - ], - "implementedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - ], - "name": "PromiseLike" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 423 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestRpcBuilder.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 71, - "name": "\"lib/PostgrestTransformBuilder\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/PostgrestTransformBuilder.ts", - "children": [ - { - "id": 72, - "name": "PostgrestTransformBuilder", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Post-filters (transforms)" - }, - "typeParameter": [ - { - "id": 73, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "children": [ - { - "id": 118, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 119, - "name": "new PostgrestTransformBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 120, - "name": "builder", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - } - ], - "type": { - "type": "reference", - "id": 72, - "name": "PostgrestTransformBuilder" - }, - "inheritedFrom": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 24 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 40, - "name": "PostgrestBuilder.__constructor" - } - }, - { - "id": 114, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 58, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 36, - "name": "PostgrestBuilder.body" - } - }, - { - "id": 117, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - }, - "inheritedFrom": { - "type": "reference", - "id": 39, - "name": "PostgrestBuilder.fetch" - } - }, - { - "id": 109, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 110, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 111, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 112, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 21 - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 31, - "name": "PostgrestBuilder.headers" - } - }, - { - "id": 107, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 54, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "HEAD" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PATCH" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 29, - "name": "PostgrestBuilder.method" - } - }, - { - "id": 113, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 57, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 35, - "name": "PostgrestBuilder.schema" - } - }, - { - "id": 115, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 59, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 37, - "name": "PostgrestBuilder.shouldThrowOnError" - } - }, - { - "id": 116, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 60, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "id": 38, - "name": "PostgrestBuilder.signal" - } - }, - { - "id": 108, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 55, - "character": 15 - } - ], - "type": { - "type": "reference", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "id": 30, - "name": "PostgrestBuilder.url" - } - }, - { - "id": 98, - "name": "abortSignal", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 99, - "name": "abortSignal", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Sets the AbortSignal for the fetch request." - }, - "parameters": [ - { - "id": 100, - "name": "signal", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "AbortSignal" - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 91, - "character": 13 - } - ] - }, - { - "id": 105, - "name": "csv", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 106, - "name": "csv", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Set the response type to CSV." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 67, - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "name": "PromiseLike" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 134, - "character": 5 - } - ] - }, - { - "id": 85, - "name": "limit", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 86, - "name": "limit", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Limits the result with the specified `count`." - }, - "parameters": [ - { - "id": 87, - "name": "count", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The maximum no. of rows to limit to." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 88, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 89, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 90, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (for foreign columns).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 90 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 22 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 66, - "character": 7 - } - ] - }, - { - "id": 103, - "name": "maybeSingle", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 104, - "name": "maybeSingle", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves at most one row from the result. Result must be at most one row\n(e.g. using `eq` on a UNIQUE column), otherwise this will result in an\nerror." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 69, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestMaybeSingleResponse" - } - ], - "name": "PromiseLike" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 110, - "character": 13 - } - ] - }, - { - "id": 77, - "name": "order", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 78, - "name": "order", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Orders the result with the specified `column`." - }, - "parameters": [ - { - "id": 79, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The column to order on." - }, - "type": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 80, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__1", - "type": { - "type": "reflection", - "declaration": { - "id": 81, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 82, - "name": "ascending", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "If `true`, the result will be in ascending order." - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 43, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "true" - }, - { - "id": 84, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (if `column` is a foreign column).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 45, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 83, - "name": "nullsFirst", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "If `true`, `null`s appear first." - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 44, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 82, - 84, - 83 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 41, - "character": 20 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 40, - "character": 7 - } - ] - }, - { - "id": 91, - "name": "range", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 92, - "name": "range", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Limits the result to rows within the specified range, inclusive." - }, - "parameters": [ - { - "id": 93, - "name": "from", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The starting index from which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 94, - "name": "to", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The last index to which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 95, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__2", - "type": { - "type": "reflection", - "declaration": { - "id": 96, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 97, - "name": "foreignTable", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "comment": { - "text": "The foreign table to use (for foreign columns).\n" - }, - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 48 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 97 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 33 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 79, - "character": 7 - } - ] - }, - { - "id": 74, - "name": "select", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 75, - "name": "select", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Performs vertical filtering with SELECT." - }, - "parameters": [ - { - "id": 76, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The columns to retrieve, separated by commas.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"*\"" - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 13, - "character": 8 - } - ] - }, - { - "id": 101, - "name": "single", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 102, - "name": "single", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves only one row from the result. Result must be one row (e.g. using\n`limit`), otherwise this will result in an error." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 67, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "name": "PromiseLike" - } - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 100, - "character": 8 - } - ] - }, - { - "id": 124, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 125, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 126, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - }, - { - "id": 127, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 128, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 129, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 130, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 131, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 93, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 132, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 133, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 134, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 135, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 96, - "character": 18 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ] - } - ], - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 91, - "character": 6 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 46, - "name": "PostgrestBuilder.then" - } - }, - { - "id": 121, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 122, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 123, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - }, - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 83, - "character": 14 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "PostgrestBuilder.throwOnError" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 118 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 114, - 117, - 109, - 107, - 113, - 115, - 116, - 108 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 98, - 105, - 85, - 103, - 77, - 91, - 74, - 101, - 124, - 121 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 7, - "character": 46 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 137, - "name": "PostgrestFilterBuilder" - } - ], - "implementedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - ], - "name": "PromiseLike" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 72 - ] - } - ], - "sources": [ - { - "fileName": "lib/PostgrestTransformBuilder.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 472, - "name": "\"lib/constants\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/constants.ts", - "children": [ - { - "id": 473, - "name": "DEFAULT_HEADERS", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isExported": true, - "isConst": true - }, - "children": [ - { - "id": 474, - "name": "X-Client-Info", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 2, - "character": 48 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "`postgrest-js/${version}`" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 474 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 2, - "character": 28 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 473 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 1, - "name": "\"lib/types\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/types.ts", - "children": [ - { - "id": 27, - "name": "PostgrestBuilder", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true, - "isAbstract": true - }, - "typeParameter": [ - { - "id": 28, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "children": [ - { - "id": 40, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 41, - "name": "new PostgrestBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 42, - "name": "builder", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 27, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestBuilder" - } - } - ], - "type": { - "type": "reference", - "id": 27, - "name": "PostgrestBuilder" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 24 - } - ] - }, - { - "id": 36, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 58, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "Partial" - } - } - ] - } - }, - { - "id": 39, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 61, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 58, - "name": "Fetch" - } - }, - { - "id": 31, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 32, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 33, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 34, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 56, - "character": 21 - } - ] - } - } - }, - { - "id": 29, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 54, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "HEAD" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PATCH" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - } - }, - { - "id": 35, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 57, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 37, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 59, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 38, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 60, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - } - }, - { - "id": 30, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 55, - "character": 15 - } - ], - "type": { - "type": "reference", - "name": "URL" - } - }, - { - "id": 46, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 47, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 48, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - }, - { - "id": 49, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 50, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 51, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 52, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 53, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 93, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 54, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 55, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 56, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 57, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "name": "PromiseLike" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 96, - "character": 18 - } - ] - } - }, - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "TResult1", - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - }, - { - "type": "typeParameter", - "name": "TResult2", - "default": { - "type": "intrinsic", - "name": "never" - } - } - ] - } - ], - "name": "PromiseLike" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 91, - "character": 6 - } - ] - }, - { - "id": 43, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 44, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 45, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 83, - "character": 14 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 40 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 36, - 39, - 31, - 29, - 35, - 37, - 38, - 30 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 46, - 43 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 53, - "character": 38 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 72, - "name": "PostgrestTransformBuilder" - }, - { - "type": "reference", - "id": 338, - "name": "PostgrestQueryBuilder" - }, - { - "type": "reference", - "id": 423, - "name": "PostgrestRpcBuilder" - } - ], - "implementedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 65, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponse" - } - ], - "name": "PromiseLike" - } - ] - }, - { - "id": 2, - "name": "PostgrestResponseBase", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "comment": { - "shortText": "Response format", - "text": "{@link https://github.com/supabase/supabase-js/issues/32}\n" - }, - "children": [ - { - "id": 3, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 4, - "name": "statusText", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 24, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 3, - 4 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 22, - "character": 31 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 5, - "name": "PostgrestResponseSuccess" - }, - { - "type": "reference", - "id": 13, - "name": "PostgrestResponseFailure" - }, - { - "type": "reference", - "id": 20, - "name": "PostgrestSingleResponseSuccess" - } - ] - }, - { - "id": 13, - "name": "PostgrestResponseFailure", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 16, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 37, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 17, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 38, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 15, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 35, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 14, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 34, - "character": 7 - } - ], - "type": { - "type": "reference", - "id": 59, - "name": "PostgrestError" - } - }, - { - "id": 18, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "inheritedFrom": { - "type": "reference", - "id": 3, - "name": "PostgrestResponseBase.status" - } - }, - { - "id": 19, - "name": "statusText", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 24, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 4, - "name": "PostgrestResponseBase.statusText" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 16, - 17, - 15, - 14, - 18, - 19 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 33, - "character": 34 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 2, - "name": "PostgrestResponseBase" - } - ] - }, - { - "id": 5, - "name": "PostgrestResponseSuccess", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "typeParameter": [ - { - "id": 6, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "children": [ - { - "id": 9, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 30, - "character": 6 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 10, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 31, - "character": 7 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "number" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 8, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 29, - "character": 6 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "typeParameter", - "name": "T" - } - } - }, - { - "id": 7, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 28, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 11, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "inheritedFrom": { - "type": "reference", - "id": 3, - "name": "PostgrestResponseBase.status" - } - }, - { - "id": 12, - "name": "statusText", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 24, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 4, - "name": "PostgrestResponseBase.statusText" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 9, - 10, - 8, - 7, - 11, - 12 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 27, - "character": 34 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 2, - "name": "PostgrestResponseBase" - } - ] - }, - { - "id": 20, - "name": "PostgrestSingleResponseSuccess", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "typeParameter": [ - { - "id": 21, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "children": [ - { - "id": 24, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 46, - "character": 6 - } - ], - "type": { - "type": "typeParameter", - "name": "T" - } - }, - { - "id": 23, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 44, - "character": 6 - } - ], - "type": { - "type": "typeParameter", - "name": "T" - } - }, - { - "id": 22, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 43, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 25, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "inheritedFrom": { - "type": "reference", - "id": 3, - "name": "PostgrestResponseBase.status" - } - }, - { - "id": 26, - "name": "statusText", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 24, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 4, - "name": "PostgrestResponseBase.statusText" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 24, - 23, - 22, - 25, - 26 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 42, - "character": 40 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 2, - "name": "PostgrestResponseBase" - } - ] - }, - { - "id": 58, - "name": "Fetch", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 3, - "character": 17 - } - ], - "type": { - "type": "query", - "queryType": { - "type": "reference", - "id": 350, - "name": "fetch" - } - } - }, - { - "id": 59, - "name": "PostgrestError", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Error format", - "text": "{@link https://postgrest.org/en/stable/api.html?highlight=options#errors-and-http-status-codes}\n" - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 10, - "character": 26 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 60, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 64, - "name": "code", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 14, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 62, - "name": "details", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 12, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 63, - "name": "hint", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 13, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 61, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 11, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 64, - 62, - 63, - 61 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 10, - "character": 28 - } - ] - } - } - }, - { - "id": 69, - "name": "PostgrestMaybeSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 70, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 51, - "character": 40 - } - ], - "type": { - "type": "reference", - "id": 67, - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "typeParameter", - "name": "T" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - ], - "name": "PostgrestSingleResponse" - } - }, - { - "id": 65, - "name": "PostgrestResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 66, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 40, - "character": 29 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 5, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestResponseSuccess" - }, - { - "type": "reference", - "id": 13, - "name": "PostgrestResponseFailure" - } - ] - } - }, - { - "id": 67, - "name": "PostgrestSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 68, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 48, - "character": 35 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 20, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T" - } - ], - "name": "PostgrestSingleResponseSuccess" - }, - { - "type": "reference", - "id": 13, - "name": "PostgrestResponseFailure" - } - ] - } - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 27 - ] - }, - { - "title": "Interfaces", - "kind": 256, - "children": [ - 2, - 13, - 5, - 20 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 58, - 59, - 69, - 65, - 67 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 470, - "name": "\"lib/version\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/postgrest-js/postgrest-js/src/lib/version.ts", - "children": [ - { - "id": 471, - "name": "version", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/version.ts", - "line": 2, - "character": 20 - } - ], - "type": { - "type": "stringLiteral", - "value": "0.0.0-automated" - }, - "defaultValue": "\"0.0.0-automated\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 471 - ] - } - ], - "sources": [ - { - "fileName": "lib/version.ts", - "line": 1, - "character": 0 - } - ] - } - ], - "groups": [ - { - "title": "Modules", - "kind": 1, - "children": [ - 475, - 513, - 136, - 337, - 422, - 71, - 472, - 1, - 470 - ] - } - ] -} \ No newline at end of file diff --git a/web/spec/tsdoc_v1/realtime.json b/web/spec/tsdoc_v1/realtime.json deleted file mode 100644 index efd3100bee8..00000000000 --- a/web/spec/tsdoc_v1/realtime.json +++ /dev/null @@ -1,8683 +0,0 @@ -{ - "id": 0, - "name": "@supabase/realtime-js", - "kind": 0, - "flags": {}, - "originalName": "", - "children": [ - { - "id": 227, - "name": "\"RealtimeClient\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/RealtimeClient.ts", - "children": [ - { - "id": 228, - "name": "RealtimeClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 260, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Socket." - }, - "signatures": [ - { - "id": 261, - "name": "new RealtimeClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Socket." - }, - "parameters": [ - { - "id": 262, - "name": "endPoint", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 263, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 340, - "name": "Options" - } - } - ], - "type": { - "type": "reference", - "id": 228, - "name": "RealtimeClient" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 73, - "character": 3 - } - ] - }, - { - "id": 229, - "name": "accessToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 43, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 230, - "name": "channels", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 44, - "character": 10 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - }, - "defaultValue": "[]" - }, - { - "id": 252, - "name": "conn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 60, - "character": 6 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "WebSocket" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 250, - "name": "decode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 58, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 249, - "name": "encode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 57, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 231, - "name": "endPoint", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 45, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"\"" - }, - { - "id": 232, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 46, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 233, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 234, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 235, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - }, - "defaultValue": "DEFAULT_HEADERS" - }, - { - "id": 242, - "name": "heartbeatIntervalMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 50, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "30000" - }, - { - "id": 244, - "name": "heartbeatTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 52, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "query", - "queryType": { - "type": "reference", - "name": "setInterval" - } - } - ], - "name": "ReturnType" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "defaultValue": "undefined" - }, - { - "id": 248, - "name": "logger", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 56, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - }, - "defaultValue": "noop" - }, - { - "id": 243, - "name": "longpollerTimeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 51, - "character": 19 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "20000" - }, - { - "id": 236, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 47, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 237, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 238, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 239, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 245, - "name": "pendingHeartbeatRef", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 53, - "character": 21 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 251, - "name": "reconnectAfterMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 59, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 247, - "name": "reconnectTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 55, - "character": 16 - } - ], - "type": { - "type": "reference", - "id": 35, - "name": "Timer" - } - }, - { - "id": 246, - "name": "ref", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 54, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 253, - "name": "sendBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 61, - "character": 12 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "name": "Function" - } - }, - "defaultValue": "[]" - }, - { - "id": 254, - "name": "serializer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 62, - "character": 12 - } - ], - "type": { - "type": "reference", - "id": 49, - "name": "Serializer" - }, - "defaultValue": "new Serializer()" - }, - { - "id": 240, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 48, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "DEFAULT_TIMEOUT" - }, - { - "id": 241, - "name": "transport", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 49, - "character": 11 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - }, - "defaultValue": "w3cwebsocket" - }, - { - "id": 329, - "name": "_appendParams", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 330, - "name": "_appendParams", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 331, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 332, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 333, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 334, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 335, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 405, - "character": 11 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 403, - "character": 23 - } - ] - }, - { - "id": 336, - "name": "_flushSendBuffer", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 337, - "name": "_flushSendBuffer", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 416, - "character": 26 - } - ] - }, - { - "id": 321, - "name": "_onConnClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 322, - "name": "_onConnClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 323, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 383, - "character": 22 - } - ] - }, - { - "id": 324, - "name": "_onConnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 325, - "name": "_onConnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 326, - "name": "error", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "ErrorEvent" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 391, - "character": 22 - } - ] - }, - { - "id": 319, - "name": "_onConnOpen", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 320, - "name": "_onConnOpen", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 371, - "character": 21 - } - ] - }, - { - "id": 338, - "name": "_sendHeartbeat", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 339, - "name": "_sendHeartbeat", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 423, - "character": 24 - } - ] - }, - { - "id": 327, - "name": "_triggerChanError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 328, - "name": "_triggerChanError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 397, - "character": 27 - } - ] - }, - { - "id": 297, - "name": "channel", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 298, - "name": "channel", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 299, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 300, - "name": "chanParams", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 364, - "name": "ChannelParams" - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 264, - "character": 9 - } - ] - }, - { - "id": 264, - "name": "connect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 265, - "name": "connect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Connects the socket, unless already connected." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 125, - "character": 9 - } - ] - }, - { - "id": 290, - "name": "connectionState", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 291, - "name": "connectionState", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Returns the current state of the socket." - }, - "type": { - "type": "reference", - "id": 24, - "name": "CONNECTION_STATE" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 233, - "character": 17 - } - ] - }, - { - "id": 266, - "name": "disconnect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 267, - "name": "disconnect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Disconnects the socket." - }, - "parameters": [ - { - "id": 268, - "name": "code", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "A numeric status code to send on disconnect." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 269, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "A custom reason for the disconnect.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 270, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 272, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 151, - "character": 40 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 271, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 151, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 272, - 271 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 151, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 148, - "character": 12 - } - ] - }, - { - "id": 309, - "name": "endPointURL", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 310, - "name": "endPointURL", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Returns the URL of the websocket." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 320, - "character": 13 - } - ] - }, - { - "id": 292, - "name": "isConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 293, - "name": "isConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retuns `true` is the connection is open." - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 249, - "character": 13 - } - ] - }, - { - "id": 316, - "name": "leaveOpenTopic", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 317, - "name": "leaveOpenTopic", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Unsubscribe from channels with the specified topic." - }, - "parameters": [ - { - "id": 318, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 361, - "character": 16 - } - ] - }, - { - "id": 273, - "name": "log", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 274, - "name": "log", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Logs the message.", - "text": "For customized logging, `this.logger` can be overriden.\n" - }, - "parameters": [ - { - "id": 275, - "name": "kind", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 276, - "name": "msg", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 277, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 178, - "character": 5 - } - ] - }, - { - "id": 311, - "name": "makeRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 312, - "name": "makeRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Return the next message ref, accounting for overflows" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 330, - "character": 9 - } - ] - }, - { - "id": 281, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 282, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket closed.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 283, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 202, - "character": 9 - } - ] - }, - { - "id": 304, - "name": "onConnMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 305, - "name": "onConnMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 306, - "name": "rawMessage", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 307, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 308, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 290, - "character": 34 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 308 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 290, - "character": 27 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 290, - "character": 15 - } - ] - }, - { - "id": 284, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 285, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen((error) => console.log(\"An error occurred\"))\n" - } - ] - }, - "parameters": [ - { - "id": 286, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 214, - "character": 9 - } - ] - }, - { - "id": 287, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 288, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Calls a function any time a message is received.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onMessage((message) => console.log(message))\n" - } - ] - }, - "parameters": [ - { - "id": 289, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 226, - "character": 11 - } - ] - }, - { - "id": 278, - "name": "onOpen", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 279, - "name": "onOpen", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Registers a callback for connection state change event.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket opened.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 280, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 190, - "character": 8 - } - ] - }, - { - "id": 301, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 302, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Push out a message if the socket is connected.", - "text": "If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.\n" - }, - "parameters": [ - { - "id": 303, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 358, - "name": "Message" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 275, - "character": 6 - } - ] - }, - { - "id": 294, - "name": "remove", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 295, - "name": "remove", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Removes a subscription from the socket." - }, - "parameters": [ - { - "id": 296, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "An open subscription.\n" - }, - "type": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 258, - "character": 8 - } - ] - }, - { - "id": 313, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 314, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Sets the JWT access token used for channel subscription authorization and Realtime RLS." - }, - "parameters": [ - { - "id": 315, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A JWT string.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 346, - "character": 9 - } - ] - }, - { - "id": 255, - "name": "stateChangeCallbacks", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 257, - "name": "close", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 70, - "character": 9 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - }, - { - "id": 258, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 71, - "character": 9 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - }, - { - "id": 259, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 72, - "character": 11 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - }, - { - "id": 256, - "name": "open", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 69, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 257, - 258, - 259, - 256 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 63, - "character": 22 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 260 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 229, - 230, - 252, - 250, - 249, - 231, - 232, - 242, - 244, - 248, - 243, - 236, - 245, - 251, - 247, - 246, - 253, - 254, - 240, - 241 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 329, - 336, - 321, - 324, - 319, - 338, - 327, - 297, - 264, - 290, - 266, - 309, - 292, - 316, - 273, - 311, - 281, - 304, - 284, - 287, - 278, - 301, - 294, - 313 - ] - }, - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 255 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 42, - "character": 35 - } - ] - }, - { - "id": 364, - "name": "ChannelParams", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 35, - "character": 18 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 365, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 367, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 368, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "children": [ - { - "id": 366, - "name": "selfBroadcast", - "kind": 32, - "kindString": "Variable", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 36, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 366 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 35, - "character": 20 - } - ] - } - } - }, - { - "id": 358, - "name": "Message", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 28, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 359, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 361, - "name": "event", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 30, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 362, - "name": "payload", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 31, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 363, - "name": "ref", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 32, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 360, - "name": "topic", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 29, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 361, - 362, - 363, - 360 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 28, - "character": 14 - } - ] - } - } - }, - { - "id": 340, - "name": "Options", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 16, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 341, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 348, - "name": "decode", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 347, - "name": "encode", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 22, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 350, - "name": "headers", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 25, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 351, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 352, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 353, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 344, - "name": "heartbeatIntervalMs", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 19, - "character": 21 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 346, - "name": "logger", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 21, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 345, - "name": "longpollerTimeout", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 20, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 354, - "name": "params", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 26, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 355, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 356, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 357, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 349, - "name": "reconnectAfterMs", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 24, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 343, - "name": "timeout", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 18, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 342, - "name": "transport", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 17, - "character": 11 - } - ], - "type": { - "type": "reference", - "name": "WebSocket" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 348, - 347, - 350, - 344, - 346, - 345, - 354, - 349, - 343, - 342 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 16, - "character": 21 - } - ] - } - } - }, - { - "id": 369, - "name": "noop", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 370, - "name": "noop", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 40, - "character": 10 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 228 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 364, - 358, - 340 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 369 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 139, - "name": "\"RealtimeSubscription\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/RealtimeSubscription.ts", - "children": [ - { - "id": 140, - "name": "RealtimeSubscription", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 148, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 155, - "name": "new RealtimeSubscription", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 156, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 157, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 158, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 159, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 160, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 17, - "character": 18 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 161, - "name": "socket", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 228, - "name": "RealtimeClient" - } - } - ], - "type": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 13, - "character": 25 - } - ] - }, - { - "id": 141, - "name": "bindings", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 7, - "character": 10 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "any" - } - }, - "defaultValue": "[]" - }, - { - "id": 145, - "name": "joinPush", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 11, - "character": 10 - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Push" - } - }, - { - "id": 144, - "name": "joinedOnce", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 10, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - }, - { - "id": 150, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 17, - "character": 17 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 151, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 152, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 153, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 17, - "character": 18 - } - ] - } - } - }, - { - "id": 147, - "name": "pushBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 13, - "character": 12 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 74, - "name": "Push" - } - }, - "defaultValue": "[]" - }, - { - "id": 146, - "name": "rejoinTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 12, - "character": 13 - } - ], - "type": { - "type": "reference", - "id": 35, - "name": "Timer" - } - }, - { - "id": 154, - "name": "socket", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 18, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 228, - "name": "RealtimeClient" - } - }, - { - "id": 143, - "name": "state", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 9, - "character": 7 - } - ], - "type": { - "type": "reference", - "id": 9, - "name": "CHANNEL_STATES" - }, - "defaultValue": "CHANNEL_STATES.closed" - }, - { - "id": 142, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 8, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 149, - "name": "topic", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 16, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 180, - "name": "canPush", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 181, - "name": "canPush", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 97, - "character": 9 - } - ] - }, - { - "id": 217, - "name": "isClosed", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 218, - "name": "isClosed", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 202, - "character": 10 - } - ] - }, - { - "id": 219, - "name": "isErrored", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 220, - "name": "isErrored", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 205, - "character": 11 - } - ] - }, - { - "id": 221, - "name": "isJoined", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 222, - "name": "isJoined", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 208, - "character": 10 - } - ] - }, - { - "id": 223, - "name": "isJoining", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 224, - "name": "isJoining", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 211, - "character": 11 - } - ] - }, - { - "id": 225, - "name": "isLeaving", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 226, - "name": "isLeaving", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 214, - "character": 11 - } - ] - }, - { - "id": 201, - "name": "isMember", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 202, - "name": "isMember", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 203, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 158, - "character": 10 - } - ] - }, - { - "id": 204, - "name": "joinRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 205, - "name": "joinRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 162, - "character": 9 - } - ] - }, - { - "id": 177, - "name": "off", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 178, - "name": "off", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 179, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 93, - "character": 5 - } - ] - }, - { - "id": 173, - "name": "on", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 174, - "name": "on", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 175, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 176, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 89, - "character": 4 - } - ] - }, - { - "id": 167, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 168, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 169, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 81, - "character": 9 - } - ] - }, - { - "id": 170, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 171, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 172, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 85, - "character": 9 - } - ] - }, - { - "id": 196, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 197, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Overridable message hook", - "text": "Receives all events for specialized message handling before dispatching to the channel callbacks.\nMust return the payload, modified or unmodified.\n" - }, - "parameters": [ - { - "id": 198, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 199, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 200, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 154, - "character": 11 - } - ] - }, - { - "id": 182, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 183, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 184, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "CHANNEL_EVENTS" - } - }, - { - "id": 185, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 186, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 101, - "character": 6 - } - ] - }, - { - "id": 206, - "name": "rejoin", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 207, - "name": "rejoin", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 208, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 166, - "character": 8 - } - ] - }, - { - "id": 162, - "name": "rejoinUntilConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 163, - "name": "rejoinUntilConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 64, - "character": 22 - } - ] - }, - { - "id": 214, - "name": "replyEventName", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 215, - "name": "replyEventName", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 216, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 198, - "character": 16 - } - ] - }, - { - "id": 164, - "name": "subscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 165, - "name": "subscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 166, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 71, - "character": 11 - } - ] - }, - { - "id": 209, - "name": "trigger", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 210, - "name": "trigger", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 211, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 212, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 213, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 175, - "character": 9 - } - ] - }, - { - "id": 193, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 194, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Leaves the channel", - "text": "Unsubscribes from server events, and instructs channel to terminate on server.\nTriggers onClose() hooks.\n\nTo receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:\nchannel.unsubscribe().receive(\"ok\", () => alert(\"left!\") )\n" - }, - "parameters": [ - { - "id": 195, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 129, - "character": 13 - } - ] - }, - { - "id": 187, - "name": "updateJoinPayload", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 188, - "name": "updateJoinPayload", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 189, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 190, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 191, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 192, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 116, - "character": 28 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 116, - "character": 19 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 148 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 141, - 145, - 144, - 150, - 147, - 146, - 154, - 143, - 142, - 149 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 180, - 217, - 219, - 221, - 223, - 225, - 201, - 204, - 177, - 173, - 167, - 170, - 196, - 182, - 206, - 162, - 214, - 164, - 209, - 193, - 187 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 6, - "character": 41 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 140 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeSubscription.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 445, - "name": "\"index\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/index.ts", - "sources": [ - { - "fileName": "index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 3, - "name": "\"lib/constants\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/constants.ts", - "children": [ - { - "id": 15, - "name": "CHANNEL_EVENTS", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 21, - "name": "access_token", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 32, - "character": 14 - } - ], - "defaultValue": "\"access_token\"" - }, - { - "id": 16, - "name": "close", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 27, - "character": 7 - } - ], - "defaultValue": "\"phx_close\"" - }, - { - "id": 17, - "name": "error", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 28, - "character": 7 - } - ], - "defaultValue": "\"phx_error\"" - }, - { - "id": 18, - "name": "join", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 29, - "character": 6 - } - ], - "defaultValue": "\"phx_join\"" - }, - { - "id": 20, - "name": "leave", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 31, - "character": 7 - } - ], - "defaultValue": "\"phx_leave\"" - }, - { - "id": 19, - "name": "reply", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 30, - "character": 7 - } - ], - "defaultValue": "\"phx_reply\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 21, - 16, - 17, - 18, - 20, - 19 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 26, - "character": 26 - } - ] - }, - { - "id": 9, - "name": "CHANNEL_STATES", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 10, - "name": "closed", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 19, - "character": 8 - } - ], - "defaultValue": "\"closed\"" - }, - { - "id": 11, - "name": "errored", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 20, - "character": 9 - } - ], - "defaultValue": "\"errored\"" - }, - { - "id": 12, - "name": "joined", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 21, - "character": 8 - } - ], - "defaultValue": "\"joined\"" - }, - { - "id": 13, - "name": "joining", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 22, - "character": 9 - } - ], - "defaultValue": "\"joining\"" - }, - { - "id": 14, - "name": "leaving", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 23, - "character": 9 - } - ], - "defaultValue": "\"leaving\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 10, - 11, - 12, - 13, - 14 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 18, - "character": 26 - } - ] - }, - { - "id": 24, - "name": "CONNECTION_STATE", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 28, - "name": "Closed", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 43, - "character": 8 - } - ], - "defaultValue": "\"closed\"" - }, - { - "id": 27, - "name": "Closing", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 42, - "character": 9 - } - ], - "defaultValue": "\"closing\"" - }, - { - "id": 25, - "name": "Connecting", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 40, - "character": 12 - } - ], - "defaultValue": "\"connecting\"" - }, - { - "id": 26, - "name": "Open", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 41, - "character": 6 - } - ], - "defaultValue": "\"open\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 28, - 27, - 25, - 26 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 39, - "character": 28 - } - ] - }, - { - "id": 4, - "name": "SOCKET_STATES", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 8, - "name": "closed", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 15, - "character": 8 - } - ], - "defaultValue": "3" - }, - { - "id": 7, - "name": "closing", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 14, - "character": 9 - } - ], - "defaultValue": "2" - }, - { - "id": 5, - "name": "connecting", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 12, - "character": 12 - } - ], - "defaultValue": "0" - }, - { - "id": 6, - "name": "open", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 13, - "character": 6 - } - ], - "defaultValue": "1" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 8, - 7, - 5, - 6 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 11, - "character": 25 - } - ] - }, - { - "id": 22, - "name": "TRANSPORTS", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 23, - "name": "websocket", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 36, - "character": 11 - } - ], - "defaultValue": "\"websocket\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 23 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 35, - "character": 22 - } - ] - }, - { - "id": 32, - "name": "DEFAULT_TIMEOUT", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 7, - "character": 28 - } - ], - "type": { - "type": "unknown", - "name": "10000" - }, - "defaultValue": "10000" - }, - { - "id": 31, - "name": "VSN", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 5, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"1.0.0\"" - }, - { - "id": 33, - "name": "WS_CLOSE_NORMAL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 9, - "character": 28 - } - ], - "type": { - "type": "unknown", - "name": "1000" - }, - "defaultValue": "1000" - }, - { - "id": 29, - "name": "DEFAULT_HEADERS", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isExported": true, - "isConst": true - }, - "children": [ - { - "id": 30, - "name": "X-Client-Info", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 3, - "character": 48 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "`realtime-js/${version}`" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 30 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 3, - "character": 28 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Enumerations", - "kind": 4, - "children": [ - 15, - 9, - 24, - 4, - 22 - ] - }, - { - "title": "Variables", - "kind": 32, - "children": [ - 32, - 31, - 33 - ] - }, - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 29 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 73, - "name": "\"lib/push\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/push.ts", - "children": [ - { - "id": 74, - "name": "Push", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 87, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Push" - }, - "signatures": [ - { - "id": 95, - "name": "new Push", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Push" - }, - "parameters": [ - { - "id": 96, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The Channel" - }, - "type": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - }, - { - "id": 97, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The event, for example `\"phx_join\"`" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 98, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The payload, for example `{user_id: 123}`" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 99, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 100, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 101, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 29, - "character": 19 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 102, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The push timeout in milliseconds\n" - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "DEFAULT_TIMEOUT" - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 16, - "character": 32 - } - ] - }, - { - "id": 88, - "name": "channel", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The Channel" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 27, - "character": 18 - } - ], - "type": { - "type": "reference", - "id": 140, - "name": "RealtimeSubscription" - } - }, - { - "id": 89, - "name": "event", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The event, for example `\"phx_join\"`" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 28, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 90, - "name": "payload", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The payload, for example `{user_id: 123}`" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 29, - "character": 18 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 91, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 92, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 93, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 29, - "character": 19 - } - ] - } - } - }, - { - "id": 82, - "name": "recHooks", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 12, - "character": 10 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 83, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 85, - "name": "callback", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 14, - "character": 12 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 84, - "name": "status", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 13, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 85, - 84 - ] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 12, - "character": 11 - } - ] - } - } - }, - "defaultValue": "[]" - }, - { - "id": 78, - "name": "receivedResp", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 8, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 79, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 81, - "name": "response", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 10, - "character": 12 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 80, - "name": "status", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 9, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 81, - 80 - ] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 8, - "character": 15 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 77, - "name": "ref", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 7, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"\"" - }, - { - "id": 86, - "name": "refEvent", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 16, - "character": 10 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 75, - "name": "sent", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 5, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - }, - { - "id": 94, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The push timeout in milliseconds\n" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 30, - "character": 18 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 76, - "name": "timeoutTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 6, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "number" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "defaultValue": "undefined" - }, - { - "id": 126, - "name": "_cancelRefEvent", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 127, - "name": "_cancelRefEvent", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 100, - "character": 25 - } - ] - }, - { - "id": 128, - "name": "_cancelTimeout", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 129, - "name": "_cancelTimeout", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 108, - "character": 24 - } - ] - }, - { - "id": 136, - "name": "_hasReceived", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 137, - "name": "_hasReceived", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 138, - "name": "status", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 125, - "character": 22 - } - ] - }, - { - "id": 130, - "name": "_matchReceive", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 131, - "name": "_matchReceive", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 132, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__0", - "type": { - "type": "reflection", - "declaration": { - "id": 133, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 135, - "name": "response", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 115, - "character": 12 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 134, - "name": "status", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 114, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 135, - 134 - ] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 113, - "character": 24 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 113, - "character": 23 - } - ] - }, - { - "id": 124, - "name": "destroy", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 125, - "name": "destroy", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 95, - "character": 9 - } - ] - }, - { - "id": 114, - "name": "receive", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 115, - "name": "receive", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 116, - "name": "status", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 117, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "unknown", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 61, - "character": 9 - } - ] - }, - { - "id": 103, - "name": "resend", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 104, - "name": "resend", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 105, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 33, - "character": 8 - } - ] - }, - { - "id": 106, - "name": "send", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 107, - "name": "send", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 43, - "character": 6 - } - ] - }, - { - "id": 118, - "name": "startTimeout", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 119, - "name": "startTimeout", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 70, - "character": 14 - } - ] - }, - { - "id": 120, - "name": "trigger", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 121, - "name": "trigger", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 122, - "name": "status", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 123, - "name": "response", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 91, - "character": 9 - } - ] - }, - { - "id": 108, - "name": "updatePayload", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 109, - "name": "updatePayload", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 110, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 111, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 112, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 113, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 57, - "character": 24 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 57, - "character": 15 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 87 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 88, - 89, - 90, - 82, - 78, - 77, - 86, - 75, - 94, - 76 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 126, - 128, - 136, - 130, - 124, - 114, - 103, - 106, - 118, - 120, - 108 - ] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 4, - "character": 25 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 74 - ] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 48, - "name": "\"lib/serializer\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/serializer.ts", - "children": [ - { - "id": 49, - "name": "Serializer", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 50, - "name": "HEADER_LENGTH", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 5, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "1" - }, - { - "id": 55, - "name": "_binaryDecode", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 56, - "name": "_binaryDecode", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 57, - "name": "buffer", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "ArrayBuffer" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 58, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 61, - "name": "event", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 33, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 62, - "name": "payload", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 34, - "character": 11 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 59, - "name": "ref", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 31, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 60, - "name": "topic", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 32, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 61, - 62, - 59, - 60 - ] - } - ] - } - } - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 19, - "character": 23 - } - ] - }, - { - "id": 63, - "name": "_decodeBroadcast", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 64, - "name": "_decodeBroadcast", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 65, - "name": "buffer", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "ArrayBuffer" - } - }, - { - "id": 66, - "name": "view", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "DataView" - } - }, - { - "id": 67, - "name": "decoder", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "TextDecoder" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 68, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 71, - "name": "event", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 33, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 72, - "name": "payload", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 34, - "character": 11 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 69, - "name": "ref", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 31, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 70, - "name": "topic", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 32, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 71, - 72, - 69, - 70 - ] - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 30, - "character": 4 - } - ] - } - } - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 26, - "character": 26 - } - ] - }, - { - "id": 51, - "name": "decode", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 52, - "name": "decode", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 53, - "name": "rawPayload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "ArrayBuffer" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 54, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 7, - "character": 8 - } - ] - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 50 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 55, - 63, - 51 - ] - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 4, - "character": 31 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 49 - ] - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 34, - "name": "\"lib/timer\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/timer.ts", - "children": [ - { - "id": 35, - "name": "Timer", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Creates a timer that accepts a `timerCalc` function to perform calculated timeout retries, such as exponential backoff.", - "tags": [ - { - "tag": "example", - "text": "\n let reconnectTimer = new Timer(() => this.connect(), function(tries){\n return [1000, 5000, 10000][tries - 1] || 10000\n })\n reconnectTimer.scheduleTimeout() // fires after 1000\n reconnectTimer.scheduleTimeout() // fires after 5000\n reconnectTimer.reset()\n reconnectTimer.scheduleTimeout() // fires after 1000\n" - } - ] - }, - "children": [ - { - "id": 38, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 41, - "name": "new Timer", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 42, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 43, - "name": "timerCalc", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "reference", - "id": 35, - "name": "Timer" - } - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 15, - "character": 19 - } - ] - }, - { - "id": 39, - "name": "callback", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 17, - "character": 29 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 36, - "name": "timer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 14, - "character": 7 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "number" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "defaultValue": "undefined" - }, - { - "id": 40, - "name": "timerCalc", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 17, - "character": 57 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 37, - "name": "tries", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 15, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 44, - "name": "reset", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 45, - "name": "reset", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 22, - "character": 7 - } - ] - }, - { - "id": 46, - "name": "scheduleTimeout", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 47, - "name": "scheduleTimeout", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 28, - "character": 17 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 38 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 39, - 36, - 40, - 37 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 44, - 46 - ] - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 13, - "character": 26 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 35 - ] - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 371, - "name": "\"lib/transformers\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/transformers.ts", - "children": [ - { - "id": 372, - "name": "PostgresTypes", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Helpers to convert the change Payload into native JS types." - }, - "children": [ - { - "id": 373, - "name": "abstime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 9, - "character": 9 - } - ], - "defaultValue": "\"abstime\"" - }, - { - "id": 374, - "name": "bool", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 10, - "character": 6 - } - ], - "defaultValue": "\"bool\"" - }, - { - "id": 375, - "name": "date", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 11, - "character": 6 - } - ], - "defaultValue": "\"date\"" - }, - { - "id": 376, - "name": "daterange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 12, - "character": 11 - } - ], - "defaultValue": "\"daterange\"" - }, - { - "id": 377, - "name": "float4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 13, - "character": 8 - } - ], - "defaultValue": "\"float4\"" - }, - { - "id": 378, - "name": "float8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 14, - "character": 8 - } - ], - "defaultValue": "\"float8\"" - }, - { - "id": 379, - "name": "int2", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 15, - "character": 6 - } - ], - "defaultValue": "\"int2\"" - }, - { - "id": 380, - "name": "int4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 16, - "character": 6 - } - ], - "defaultValue": "\"int4\"" - }, - { - "id": 381, - "name": "int4range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 17, - "character": 11 - } - ], - "defaultValue": "\"int4range\"" - }, - { - "id": 382, - "name": "int8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 18, - "character": 6 - } - ], - "defaultValue": "\"int8\"" - }, - { - "id": 383, - "name": "int8range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 19, - "character": 11 - } - ], - "defaultValue": "\"int8range\"" - }, - { - "id": 384, - "name": "json", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 20, - "character": 6 - } - ], - "defaultValue": "\"json\"" - }, - { - "id": 385, - "name": "jsonb", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 21, - "character": 7 - } - ], - "defaultValue": "\"jsonb\"" - }, - { - "id": 386, - "name": "money", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 22, - "character": 7 - } - ], - "defaultValue": "\"money\"" - }, - { - "id": 387, - "name": "numeric", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 23, - "character": 9 - } - ], - "defaultValue": "\"numeric\"" - }, - { - "id": 388, - "name": "oid", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 24, - "character": 5 - } - ], - "defaultValue": "\"oid\"" - }, - { - "id": 389, - "name": "reltime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 25, - "character": 9 - } - ], - "defaultValue": "\"reltime\"" - }, - { - "id": 390, - "name": "text", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 26, - "character": 6 - } - ], - "defaultValue": "\"text\"" - }, - { - "id": 391, - "name": "time", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 27, - "character": 6 - } - ], - "defaultValue": "\"time\"" - }, - { - "id": 392, - "name": "timestamp", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 28, - "character": 11 - } - ], - "defaultValue": "\"timestamp\"" - }, - { - "id": 393, - "name": "timestamptz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 29, - "character": 13 - } - ], - "defaultValue": "\"timestamptz\"" - }, - { - "id": 394, - "name": "timetz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 30, - "character": 8 - } - ], - "defaultValue": "\"timetz\"" - }, - { - "id": 395, - "name": "tsrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 31, - "character": 9 - } - ], - "defaultValue": "\"tsrange\"" - }, - { - "id": 396, - "name": "tstzrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 32, - "character": 11 - } - ], - "defaultValue": "\"tstzrange\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 373, - 374, - 375, - 376, - 377, - 378, - 379, - 380, - 381, - 382, - 383, - 384, - 385, - 386, - 387, - 388, - 389, - 390, - 391, - 392, - 393, - 394, - 395, - 396 - ] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 8, - "character": 25 - } - ] - }, - { - "id": 403, - "name": "BaseValue", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 42, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "number" - }, - { - "type": "intrinsic", - "name": "boolean" - } - ] - } - }, - { - "id": 397, - "name": "Columns", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 35, - "character": 12 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 398, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 401, - "name": "flags", - "kind": 32, - "kindString": "Variable", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 38, - "character": 7 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - }, - { - "id": 399, - "name": "name", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 36, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 400, - "name": "type", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 37, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 402, - "name": "type_modifier", - "kind": 32, - "kindString": "Variable", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 39, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 401, - 399, - 400, - 402 - ] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 35, - "character": 14 - } - ] - } - } - } - }, - { - "id": 405, - "name": "Record", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 45, - "character": 11 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 406, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 407, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 408, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 45, - "character": 13 - } - ] - } - } - }, - { - "id": 404, - "name": "RecordValue", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 43, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 403, - "name": "BaseValue" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "id": 403, - "name": "BaseValue" - } - } - ] - } - }, - { - "id": 422, - "name": "convertCell", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "If the value of the cell is `null`, returns null.\nOtherwise converts the string value to the correct type.", - "tags": [ - { - "tag": "example", - "text": "convertCell('bool', 't')\n//=> true" - }, - { - "tag": "example", - "text": "convertCell('int8', '10')\n//=> 10" - }, - { - "tag": "example", - "text": "convertCell('_int4', '{1,2,3,4}')\n//=> [1,2,3,4]\n" - } - ] - }, - "signatures": [ - { - "id": 423, - "name": "convertCell", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If the value of the cell is `null`, returns null.\nOtherwise converts the string value to the correct type.", - "tags": [ - { - "tag": "example", - "text": "convertCell('bool', 't')\n//=> true" - }, - { - "tag": "example", - "text": "convertCell('int8', '10')\n//=> 10" - }, - { - "tag": "example", - "text": "convertCell('_int4', '{1,2,3,4}')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 424, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "A postgres column type" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 425, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 118, - "character": 24 - } - ] - }, - { - "id": 409, - "name": "convertChangeData", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Takes an array of columns and an object of string values then converts each string value\nto its mapped type.", - "tags": [ - { - "tag": "example", - "text": "convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n//=>{ first_name: 'Paul', age: 33 }\n" - } - ] - }, - "signatures": [ - { - "id": 410, - "name": "convertChangeData", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Takes an array of columns and an object of string values then converts each string value\nto its mapped type.", - "tags": [ - { - "tag": "example", - "text": "convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n//=>{ first_name: 'Paul', age: 33 }\n" - } - ] - }, - "parameters": [ - { - "id": 411, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 397, - "name": "Columns" - } - }, - { - "id": 412, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": {}, - "type": { - "type": "reference", - "id": 405, - "name": "Record" - } - }, - { - "id": 413, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The map of various options that can be applied to the mapper" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 414, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 415, - "name": "skipTypes", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 64, - "character": 22 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 415 - ] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 64, - "character": 10 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 405, - "name": "Record" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 61, - "character": 30 - } - ] - }, - { - "id": 416, - "name": "convertColumn", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Converts the value of an individual column.", - "returns": "Useless information\n", - "tags": [ - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n//=> 33" - }, - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n//=> \"33\"\n" - } - ] - }, - "signatures": [ - { - "id": 417, - "name": "convertColumn", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Converts the value of an individual column.", - "returns": "Useless information\n", - "tags": [ - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n//=> 33" - }, - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n//=> \"33\"\n" - } - ] - }, - "parameters": [ - { - "id": 418, - "name": "columnName", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The column that you want to convert" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 419, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 397, - "name": "Columns" - } - }, - { - "id": 420, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The map of string values" - }, - "type": { - "type": "reference", - "id": 405, - "name": "Record" - } - }, - { - "id": 421, - "name": "skipTypes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "An array of types that should not be converted" - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 88, - "character": 26 - } - ] - }, - { - "id": 426, - "name": "noop", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 427, - "name": "noop", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 428, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 162, - "character": 10 - } - ] - }, - { - "id": 438, - "name": "toArray", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Converts a Postgres Array into a native JS array", - "tags": [ - { - "tag": "example", - "text": "toArray('{}', 'int4')\n//=> []" - }, - { - "tag": "example", - "text": "toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n//=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']" - }, - { - "tag": "example", - "text": "toArray([1,2,3,4], 'int4')\n//=> [1,2,3,4]\n" - } - ] - }, - "signatures": [ - { - "id": 439, - "name": "toArray", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Converts a Postgres Array into a native JS array", - "tags": [ - { - "tag": "example", - "text": "toArray('{}', 'int4')\n//=> []" - }, - { - "tag": "example", - "text": "toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n//=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']" - }, - { - "tag": "example", - "text": "toArray([1,2,3,4], 'int4')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 440, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - }, - { - "id": 441, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 206, - "character": 20 - } - ] - }, - { - "id": 429, - "name": "toBoolean", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "signatures": [ - { - "id": 430, - "name": "toBoolean", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 431, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 165, - "character": 22 - } - ] - }, - { - "id": 435, - "name": "toJson", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "signatures": [ - { - "id": 436, - "name": "toJson", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 437, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 184, - "character": 19 - } - ] - }, - { - "id": 432, - "name": "toNumber", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "signatures": [ - { - "id": 433, - "name": "toNumber", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 434, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 175, - "character": 21 - } - ] - }, - { - "id": 442, - "name": "toTimestampString", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\nSee https://github.com/supabase/supabase/issues/18", - "tags": [ - { - "tag": "example", - "text": "toTimestampString('2019-09-10 00:00:00')\n//=> '2019-09-10T00:00:00'\n" - } - ] - }, - "signatures": [ - { - "id": 443, - "name": "toTimestampString", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\nSee https://github.com/supabase/supabase/issues/18", - "tags": [ - { - "tag": "example", - "text": "toTimestampString('2019-09-10 00:00:00')\n//=> '2019-09-10T00:00:00'\n" - } - ] - }, - "parameters": [ - { - "id": 444, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 404, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 241, - "character": 30 - } - ] - } - ], - "groups": [ - { - "title": "Enumerations", - "kind": 4, - "children": [ - 372 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 403, - 397, - 405, - 404 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 422, - 409, - 416, - 426, - 438, - 429, - 435, - 432, - 442 - ] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 1, - "name": "\"lib/version\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/realtime-js/realtime-js/src/lib/version.ts", - "children": [ - { - "id": 2, - "name": "version", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/version.ts", - "line": 1, - "character": 20 - } - ], - "type": { - "type": "stringLiteral", - "value": "0.0.0-automated" - }, - "defaultValue": "\"0.0.0-automated\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 2 - ] - } - ], - "sources": [ - { - "fileName": "lib/version.ts", - "line": 1, - "character": 0 - } - ] - } - ], - "groups": [ - { - "title": "Modules", - "kind": 1, - "children": [ - 227, - 139, - 445, - 3, - 73, - 48, - 34, - 371, - 1 - ] - } - ] -} \ No newline at end of file diff --git a/web/spec/tsdoc_v1/storage.json b/web/spec/tsdoc_v1/storage.json deleted file mode 100644 index b2134a5dc67..00000000000 --- a/web/spec/tsdoc_v1/storage.json +++ /dev/null @@ -1,8510 +0,0 @@ -{ - "id": 0, - "name": "@supabase/storage-js", - "kind": 0, - "flags": {}, - "originalName": "", - "children": [ - { - "id": 312, - "name": "\"StorageClient\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/StorageClient.ts", - "children": [ - { - "id": 313, - "name": "StorageClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 314, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 315, - "name": "new StorageClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 316, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 317, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 318, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 319, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 320, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "StorageClient.ts", - "line": 5, - "character": 35 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 321, - "name": "fetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - } - ], - "type": { - "type": "reference", - "id": 313, - "name": "StorageClient" - }, - "overwrites": { - "type": "reference", - "id": 114, - "name": "StorageBucketApi.__constructor" - } - } - ], - "sources": [ - { - "fileName": "StorageClient.ts", - "line": 4, - "character": 53 - } - ], - "overwrites": { - "type": "reference", - "id": 114, - "name": "StorageBucketApi.__constructor" - } - }, - { - "id": 330, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 9, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - }, - "inheritedFrom": { - "type": "reference", - "id": 113, - "name": "StorageBucketApi.fetch" - } - }, - { - "id": 326, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 8, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 327, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 328, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 329, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 8, - "character": 20 - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 109, - "name": "StorageBucketApi.headers" - } - }, - { - "id": 325, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 7, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 108, - "name": "StorageBucketApi.url" - } - }, - { - "id": 342, - "name": "createBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 343, - "name": "createBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Creates a new Storage bucket", - "returns": "newly created bucket id\n" - }, - "parameters": [ - { - "id": 344, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A unique identifier for the bucket you are creating." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 345, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 346, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 347, - "name": "public", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 51, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 347 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 51, - "character": 12 - } - ] - } - }, - "defaultValue": "{ public: false }" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 348, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 349, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 350, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 41 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 349, - 350 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 133, - "name": "StorageBucketApi.createBucket" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 49, - "character": 20 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 133, - "name": "StorageBucketApi.createBucket" - } - }, - { - "id": 370, - "name": "deleteBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 371, - "name": "deleteBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\nYou must first `empty()` the bucket." - }, - "parameters": [ - { - "id": 372, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to delete.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 373, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 374, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 375, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 376, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 376 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 377, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 374, - 377 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 161, - "name": "StorageBucketApi.deleteBucket" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 115, - "character": 20 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 161, - "name": "StorageBucketApi.deleteBucket" - } - }, - { - "id": 362, - "name": "emptyBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 363, - "name": "emptyBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Removes all objects inside a single bucket." - }, - "parameters": [ - { - "id": 364, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to empty.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 365, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 366, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 367, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 368, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 368 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 369, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 366, - 369 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 153, - "name": "StorageBucketApi.emptyBucket" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 93, - "character": 19 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 153, - "name": "StorageBucketApi.emptyBucket" - } - }, - { - "id": 322, - "name": "from", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 323, - "name": "from", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Perform file operation in a bucket." - }, - "parameters": [ - { - "id": 324, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The bucket id to operate on.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 170, - "name": "StorageFileApi" - } - } - ], - "sources": [ - { - "fileName": "StorageClient.ts", - "line": 14, - "character": 6 - } - ] - }, - { - "id": 336, - "name": "getBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 337, - "name": "getBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves the details of an existing Storage bucket." - }, - "parameters": [ - { - "id": 338, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to retrieve.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 339, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 340, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 45 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 74, - "name": "Bucket" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 341, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 67 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 340, - 341 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 39 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 127, - "name": "StorageBucketApi.getBucket" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 17 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 127, - "name": "StorageBucketApi.getBucket" - } - }, - { - "id": 331, - "name": "listBuckets", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 332, - "name": "listBuckets", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves the details of all Storage buckets within an existing project." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 333, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 334, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "reference", - "id": 74, - "name": "Bucket" - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 335, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 61 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 334, - 335 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 31 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 122, - "name": "StorageBucketApi.listBuckets" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 19 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 122, - "name": "StorageBucketApi.listBuckets" - } - }, - { - "id": 351, - "name": "updateBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 352, - "name": "updateBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Updates a new Storage bucket" - }, - "parameters": [ - { - "id": 353, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A unique identifier for the bucket you are updating.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 354, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 355, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 356, - "name": "public", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 73, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 356 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 73, - "character": 12 - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 357, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 358, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 359, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 360, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 360 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 361, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 358, - 361 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - }, - "inheritedFrom": { - "type": "reference", - "id": 142, - "name": "StorageBucketApi.updateBucket" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 71, - "character": 20 - } - ], - "inheritedFrom": { - "type": "reference", - "id": 142, - "name": "StorageBucketApi.updateBucket" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 314 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 330, - 326, - 325 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 342, - 370, - 362, - 322, - 336, - 331, - 351 - ] - } - ], - "sources": [ - { - "fileName": "StorageClient.ts", - "line": 4, - "character": 26 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 107, - "name": "StorageBucketApi" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 313 - ] - } - ], - "sources": [ - { - "fileName": "StorageClient.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 378, - "name": "\"index\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/index.ts", - "children": [ - { - "id": 381, - "name": "Bucket", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 74 - }, - { - "id": 382, - "name": "FileObject", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 81 - }, - { - "id": 384, - "name": "FileOptions", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 95 - }, - { - "id": 386, - "name": "Metadata", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 104 - }, - { - "id": 385, - "name": "SearchOptions", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 99 - }, - { - "id": 383, - "name": "SortBy", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 92 - }, - { - "id": 379, - "name": "StorageClient", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 313 - }, - { - "id": 380, - "name": "SupabaseStorageClient", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 313 - } - ], - "groups": [ - { - "title": "References", - "kind": 16777216, - "children": [ - 381, - 382, - 384, - 386, - 385, - 383, - 379, - 380 - ] - } - ], - "sources": [ - { - "fileName": "index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 106, - "name": "\"lib/StorageBucketApi\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/StorageBucketApi.ts", - "children": [ - { - "id": 107, - "name": "StorageBucketApi", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 114, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 115, - "name": "new StorageBucketApi", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 116, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 117, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 118, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 119, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 120, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 11, - "character": 35 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 121, - "name": "fetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - } - ], - "type": { - "type": "reference", - "id": 107, - "name": "StorageBucketApi" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 9, - "character": 24 - } - ] - }, - { - "id": 113, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 9, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 109, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 8, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 110, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 111, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 112, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 8, - "character": 20 - } - ] - } - } - }, - { - "id": 108, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 7, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 133, - "name": "createBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 134, - "name": "createBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Creates a new Storage bucket", - "returns": "newly created bucket id\n" - }, - "parameters": [ - { - "id": 135, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A unique identifier for the bucket you are creating." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 136, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 137, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 138, - "name": "public", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 51, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 138 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 51, - "character": 12 - } - ] - } - }, - "defaultValue": "{ public: false }" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 139, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 140, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 141, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 41 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 140, - 141 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 52, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 49, - "character": 20 - } - ] - }, - { - "id": 161, - "name": "deleteBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 162, - "name": "deleteBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\nYou must first `empty()` the bucket." - }, - "parameters": [ - { - "id": 163, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to delete.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 164, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 165, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 166, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 167, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 167 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 168, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 165, - 168 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 117, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 115, - "character": 20 - } - ] - }, - { - "id": 153, - "name": "emptyBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 154, - "name": "emptyBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Removes all objects inside a single bucket." - }, - "parameters": [ - { - "id": 155, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to empty.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 156, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 157, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 158, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 159, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 159 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 160, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 157, - 160 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 95, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 93, - "character": 19 - } - ] - }, - { - "id": 127, - "name": "getBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 128, - "name": "getBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves the details of an existing Storage bucket." - }, - "parameters": [ - { - "id": 129, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The unique identifier of the bucket you would like to retrieve.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 130, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 131, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 45 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 74, - "name": "Bucket" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 132, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 67 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 131, - 132 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 39 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 34, - "character": 17 - } - ] - }, - { - "id": 122, - "name": "listBuckets", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 123, - "name": "listBuckets", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieves the details of all Storage buckets within an existing project." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 124, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 125, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 37 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "reference", - "id": 74, - "name": "Bucket" - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 126, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 61 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 125, - 126 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 31 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 20, - "character": 19 - } - ] - }, - { - "id": 142, - "name": "updateBucket", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 143, - "name": "updateBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Updates a new Storage bucket" - }, - "parameters": [ - { - "id": 144, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A unique identifier for the bucket you are updating.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 145, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 146, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 147, - "name": "public", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 73, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 147 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 73, - "character": 12 - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 148, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 149, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 150, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 151, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 151 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 152, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 149, - 152 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 74, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 71, - "character": 20 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 114 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 113, - 109, - 108 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 133, - 161, - 153, - 127, - 122, - 142 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 6, - "character": 29 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 313, - "name": "StorageClient" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 107 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageBucketApi.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 169, - "name": "\"lib/StorageFileApi\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/StorageFileApi.ts", - "children": [ - { - "id": 170, - "name": "StorageFileApi", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 178, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 179, - "name": "new StorageFileApi", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 180, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 181, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 182, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 183, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 184, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 28, - "character": 12 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 185, - "name": "bucketId", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 186, - "name": "fetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - } - ], - "type": { - "type": "reference", - "id": 170, - "name": "StorageFileApi" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 24, - "character": 24 - } - ] - }, - { - "id": 176, - "name": "bucketId", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 23, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 177, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 24, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 172, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 22, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 173, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 174, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 175, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 22, - "character": 20 - } - ] - } - } - }, - { - "id": 171, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 21, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 286, - "name": "_getFinalPath", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 287, - "name": "_getFinalPath", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 288, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 387, - "character": 15 - } - ] - }, - { - "id": 289, - "name": "_removeEmptyFolders", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 290, - "name": "_removeEmptyFolders", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 291, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 391, - "character": 21 - } - ] - }, - { - "id": 227, - "name": "copy", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 228, - "name": "copy", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Copies an existing file." - }, - "parameters": [ - { - "id": 229, - "name": "fromPath", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The original file path, including the current file name. For example `folder/image.png`." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 230, - "name": "toPath", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The new file path, including the new file name. For example `folder/image-copy.png`.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 231, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 232, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 195, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 233, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 234, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 195, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 234 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 195, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 235, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 195, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 232, - 235 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 195, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 192, - "character": 12 - } - ] - }, - { - "id": 236, - "name": "createSignedUrl", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 237, - "name": "createSignedUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Create signed URL to download file without requiring permissions. This URL can be valid for a set number of seconds." - }, - "parameters": [ - { - "id": 238, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The file path to be downloaded, including the current file name. For example `folder/image.png`." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 239, - "name": "expiresIn", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute.\n" - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 240, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 241, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 219, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 242, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 243, - "name": "signedURL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 219, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 243 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 219, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 244, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 220, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 245, - "name": "signedURL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 221, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 241, - 244, - 245 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 218, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 215, - "character": 23 - } - ] - }, - { - "id": 246, - "name": "createSignedUrls", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 247, - "name": "createSignedUrls", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Create signed URLs to download files without requiring permissions. These URLs can be valid for a set number of seconds." - }, - "parameters": [ - { - "id": 248, - "name": "paths", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`." - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - }, - { - "id": 249, - "name": "expiresIn", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute.\n" - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 250, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 251, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 249, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 252, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 253, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 249, - "character": 17 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 254, - "name": "path", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 249, - "character": 38 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 255, - "name": "signedURL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 249, - "character": 64 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 253, - 254, - 255 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 249, - "character": 9 - } - ] - } - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 256, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 250, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 251, - 256 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 248, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 245, - "character": 24 - } - ] - }, - { - "id": 257, - "name": "download", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 258, - "name": "download", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Downloads a file." - }, - "parameters": [ - { - "id": 259, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The file path to be downloaded, including the path and file name. For example `folder/image.png`.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 260, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 261, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 276, - "character": 46 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Blob" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 262, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 276, - "character": 66 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 261, - 262 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 276, - "character": 40 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 276, - "character": 16 - } - ] - }, - { - "id": 263, - "name": "getPublicUrl", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 264, - "name": "getPublicUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retrieve URLs for assets in public buckets" - }, - "parameters": [ - { - "id": 265, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The file path to be downloaded, including the path and file name. For example `folder/image.png`.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 266, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 267, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 298, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 268, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 269, - "name": "publicURL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 298, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 269 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 298, - "character": 9 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 270, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 299, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 271, - "name": "publicURL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 300, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 267, - 270, - 271 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 297, - "character": 4 - } - ] - } - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 295, - "character": 14 - } - ] - }, - { - "id": 278, - "name": "list", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 279, - "name": "list", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Lists all the files within a bucket." - }, - "parameters": [ - { - "id": 280, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "The folder path." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 281, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "Search options, including `limit`, `offset`, `sortBy`, and `search`." - }, - "type": { - "type": "reference", - "id": 99, - "name": "SearchOptions" - } - }, - { - "id": 282, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "Fetch parameters, currently only supports `signal`, which is an AbortController's signal\n" - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 283, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 284, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 371, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "reference", - "id": 81, - "name": "FileObject" - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 285, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 371, - "character": 47 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 284, - 285 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 371, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 367, - "character": 12 - } - ] - }, - { - "id": 218, - "name": "move", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 219, - "name": "move", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Moves an existing file." - }, - "parameters": [ - { - "id": 220, - "name": "fromPath", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The original file path, including the current file name. For example `folder/image.png`." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 221, - "name": "toPath", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The new file path, including the new file name. For example `folder/image-new.png`.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 222, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 223, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 172, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 224, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 225, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 172, - "character": 30 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 225 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 172, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 226, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 172, - "character": 54 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 223, - 226 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 172, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 169, - "character": 12 - } - ] - }, - { - "id": 272, - "name": "remove", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 273, - "name": "remove", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Deletes files within the same bucket" - }, - "parameters": [ - { - "id": 274, - "name": "paths", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "An array of files to be deleted, including the path and file name. For example [`folder/image.png`].\n" - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 275, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 276, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 317, - "character": 47 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "reference", - "id": 81, - "name": "FileObject" - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 277, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 317, - "character": 75 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 276, - 277 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 317, - "character": 41 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 317, - "character": 14 - } - ] - }, - { - "id": 208, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 209, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Replaces an existing file at the specified path with a new one." - }, - "parameters": [ - { - "id": 210, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 211, - "name": "fileBody", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The body of the file to be stored in the bucket." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "ArrayBuffer" - }, - { - "type": "reference", - "name": "ArrayBufferView" - }, - { - "type": "reference", - "name": "Blob" - }, - { - "type": "reference", - "name": "Buffer" - }, - { - "type": "reference", - "name": "File" - }, - { - "type": "reference", - "name": "FormData" - }, - { - "type": "reference", - "name": "ReadableStream" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Uint8Array" - } - ], - "name": "ReadableStream" - }, - { - "type": "reference", - "name": "URLSearchParams" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 212, - "name": "fileOptions", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "HTTP headers.\n`cacheControl`: string, the `Cache-Control: max-age=` seconds value.\n`contentType`: string, the `Content-Type` header value. Should be specified if using a `fileBody` that is neither `Blob` nor `File` nor `FormData`, otherwise will default to `text/plain;charset=UTF-8`.\n`upsert`: boolean, whether to perform an upsert.\n" - }, - "type": { - "type": "reference", - "id": 95, - "name": "FileOptions" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 213, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 214, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 159, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 215, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 216, - "name": "Key", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 159, - "character": 26 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 216 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 159, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 217, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 159, - "character": 50 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 214, - 217 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 159, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 145, - "character": 14 - } - ] - }, - { - "id": 198, - "name": "upload", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 199, - "name": "upload", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Uploads a file to an existing bucket." - }, - "parameters": [ - { - "id": 200, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 201, - "name": "fileBody", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The body of the file to be stored in the bucket." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "ArrayBuffer" - }, - { - "type": "reference", - "name": "ArrayBufferView" - }, - { - "type": "reference", - "name": "Blob" - }, - { - "type": "reference", - "name": "Buffer" - }, - { - "type": "reference", - "name": "File" - }, - { - "type": "reference", - "name": "FormData" - }, - { - "type": "reference", - "name": "ReadableStream" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Uint8Array" - } - ], - "name": "ReadableStream" - }, - { - "type": "reference", - "name": "URLSearchParams" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 202, - "name": "fileOptions", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "HTTP headers.\n`cacheControl`: string, the `Cache-Control: max-age=` seconds value.\n`contentType`: string, the `Content-Type` header value. Should be specified if using a `fileBody` that is neither `Blob` nor `File` nor `FormData`, otherwise will default to `text/plain;charset=UTF-8`.\n`upsert`: boolean, whether to perform an upsert.\n" - }, - "type": { - "type": "reference", - "id": 95, - "name": "FileOptions" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 203, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 204, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 131, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 205, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 206, - "name": "Key", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 131, - "character": 26 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 206 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 131, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 207, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 131, - "character": 50 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 204, - 207 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 131, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 117, - "character": 14 - } - ] - }, - { - "id": 187, - "name": "uploadOrUpdate", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 188, - "name": "uploadOrUpdate", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Uploads a file to an existing bucket or replaces an existing file at the specified path with a new one." - }, - "parameters": [ - { - "id": 189, - "name": "method", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "HTTP method." - }, - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PUT" - } - ] - } - }, - { - "id": 190, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 191, - "name": "fileBody", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "The body of the file to be stored in the bucket." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "ArrayBuffer" - }, - { - "type": "reference", - "name": "ArrayBufferView" - }, - { - "type": "reference", - "name": "Blob" - }, - { - "type": "reference", - "name": "Buffer" - }, - { - "type": "reference", - "name": "File" - }, - { - "type": "reference", - "name": "FormData" - }, - { - "type": "reference", - "name": "ReadableStream" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Uint8Array" - } - ], - "name": "ReadableStream" - }, - { - "type": "reference", - "name": "URLSearchParams" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 192, - "name": "fileOptions", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "HTTP headers.\n`cacheControl`: string, the `Cache-Control: max-age=` seconds value.\n`contentType`: string, the `Content-Type` header value. Should be specified if using a `fileBody` that is neither `Blob` nor `File` nor `FormData`, otherwise will default to `text/plain;charset=UTF-8`.\n`upsert`: boolean, whether to perform an upsert.\n" - }, - "type": { - "type": "reference", - "id": 95, - "name": "FileOptions" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 193, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 194, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 64, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 195, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 196, - "name": "Key", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 64, - "character": 26 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 196 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 64, - "character": 20 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - }, - { - "id": 197, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 64, - "character": 50 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 194, - 197 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 64, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 49, - "character": 30 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 178 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 176, - 177, - 172, - 171 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 286, - 289, - 227, - 236, - 246, - 257, - 263, - 278, - 218, - 272, - 208, - 198, - 187 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 20, - "character": 27 - } - ] - }, - { - "id": 298, - "name": "DEFAULT_FILE_OPTIONS", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isConst": true - }, - "children": [ - { - "id": 299, - "name": "cacheControl", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 15, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"3600\"" - }, - { - "id": 300, - "name": "contentType", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 16, - "character": 13 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"text/plain;charset=UTF-8\"" - }, - { - "id": 301, - "name": "upsert", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 17, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "false" - }, - "defaultValue": "false" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 299, - 300, - 301 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 14, - "character": 26 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 292, - "name": "DEFAULT_SEARCH_OPTIONS", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isConst": true - }, - "children": [ - { - "id": 293, - "name": "limit", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 6, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "100" - }, - { - "id": 294, - "name": "offset", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 7, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 295, - "name": "sortBy", - "kind": 2097152, - "kindString": "Object literal", - "flags": {}, - "children": [ - { - "id": 296, - "name": "column", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 9, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"name\"" - }, - { - "id": 297, - "name": "order", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 10, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"asc\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 296, - 297 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 8, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 293, - 294 - ] - }, - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 295 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 5, - "character": 28 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 170 - ] - }, - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 298, - 292 - ] - } - ], - "sources": [ - { - "fileName": "lib/StorageFileApi.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 3, - "name": "\"lib/constants\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/constants.ts", - "children": [ - { - "id": 4, - "name": "DEFAULT_HEADERS", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isExported": true, - "isConst": true - }, - "children": [ - { - "id": 5, - "name": "X-Client-Info", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 2, - "character": 48 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "`storage-js/${version}`" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 5 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 2, - "character": 28 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Object literals", - "kind": 2097152, - "children": [ - 4 - ] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 6, - "name": "\"lib/fetch\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/fetch.ts", - "children": [ - { - "id": 7, - "name": "FetchOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 8, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 4, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 9, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 10, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 11, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 12, - "name": "noResolveJson", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 7, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 8, - 12 - ] - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 3, - "character": 29 - } - ] - }, - { - "id": 13, - "name": "FetchParameters", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 14, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 11, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "AbortSignal" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 14 - ] - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 10, - "character": 32 - } - ] - }, - { - "id": 15, - "name": "Fetch", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 1, - "character": 17 - } - ], - "type": { - "type": "query", - "queryType": { - "type": "reference", - "name": "fetch" - } - } - }, - { - "id": 16, - "name": "RequestMethodType", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 14, - "character": 29 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "stringLiteral", - "value": "GET" - }, - { - "type": "stringLiteral", - "value": "POST" - }, - { - "type": "stringLiteral", - "value": "PUT" - }, - { - "type": "stringLiteral", - "value": "DELETE" - } - ] - } - }, - { - "id": 17, - "name": "_getErrorMessage", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 18, - "name": "_getErrorMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 19, - "name": "err", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 16, - "character": 22 - } - ] - }, - { - "id": 24, - "name": "_getRequestParams", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 25, - "name": "_getRequestParams", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 26, - "name": "method", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 16, - "name": "RequestMethodType" - } - }, - { - "id": 27, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 28, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - }, - { - "id": 29, - "name": "body", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 30, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 31, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 32, - "name": "k", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - } - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 31, - "character": 23 - } - ] - }, - { - "id": 33, - "name": "_handleRequest", - "kind": 64, - "kindString": "Function", - "flags": {}, - "signatures": [ - { - "id": 34, - "name": "_handleRequest", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 35, - "name": "fetcher", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 36, - "name": "method", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 16, - "name": "RequestMethodType" - } - }, - { - "id": 37, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 38, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 39, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - }, - { - "id": 40, - "name": "body", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "object" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 48, - "character": 29 - } - ] - }, - { - "id": 41, - "name": "get", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 42, - "name": "get", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 43, - "name": "fetcher", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 44, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 45, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 46, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 68, - "character": 25 - } - ] - }, - { - "id": 20, - "name": "handleError", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 21, - "name": "handleError", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 22, - "name": "error", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 23, - "name": "reject", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 19, - "character": 17 - } - ] - }, - { - "id": 47, - "name": "post", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 48, - "name": "post", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 49, - "name": "fetcher", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 50, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 51, - "name": "body", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 52, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 53, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 77, - "character": 26 - } - ] - }, - { - "id": 54, - "name": "put", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 55, - "name": "put", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 56, - "name": "fetcher", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 57, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 58, - "name": "body", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 59, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 60, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 87, - "character": 25 - } - ] - }, - { - "id": 61, - "name": "remove", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 62, - "name": "remove", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 63, - "name": "fetcher", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 15, - "name": "Fetch" - } - }, - { - "id": 64, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 65, - "name": "body", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 66, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 7, - "name": "FetchOptions" - } - }, - { - "id": 67, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 13, - "name": "FetchParameters" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 97, - "character": 28 - } - ] - } - ], - "groups": [ - { - "title": "Interfaces", - "kind": 256, - "children": [ - 7, - 13 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 15, - 16 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 17, - 24, - 33, - 41, - 20, - 47, - 54, - 61 - ] - } - ], - "sources": [ - { - "fileName": "lib/fetch.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 68, - "name": "\"lib/helpers\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/helpers.ts", - "children": [ - { - "id": 69, - "name": "Fetch", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/helpers.ts", - "line": 1, - "character": 10 - } - ], - "type": { - "type": "query", - "queryType": { - "type": "reference", - "name": "fetch" - } - } - }, - { - "id": 70, - "name": "resolveFetch", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "signatures": [ - { - "id": 71, - "name": "resolveFetch", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 72, - "name": "customFetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 69, - "name": "Fetch" - } - } - ], - "type": { - "type": "reference", - "id": 69, - "name": "Fetch" - } - } - ], - "sources": [ - { - "fileName": "lib/helpers.ts", - "line": 3, - "character": 25 - } - ] - } - ], - "groups": [ - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 69 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 70 - ] - } - ], - "sources": [ - { - "fileName": "lib/helpers.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 302, - "name": "\"lib/index\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/index.ts", - "children": [ - { - "id": 305, - "name": "Bucket", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 74 - }, - { - "id": 311, - "name": "DEFAULT_HEADERS", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 4 - }, - { - "id": 306, - "name": "FileObject", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 81 - }, - { - "id": 308, - "name": "FileOptions", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 95 - }, - { - "id": 310, - "name": "Metadata", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 104 - }, - { - "id": 309, - "name": "SearchOptions", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 99 - }, - { - "id": 307, - "name": "SortBy", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 92 - }, - { - "id": 303, - "name": "StorageBucketApi", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 107 - }, - { - "id": 304, - "name": "StorageFileApi", - "kind": 16777216, - "kindString": "Reference", - "flags": { - "isExported": true - }, - "target": 170 - } - ], - "groups": [ - { - "title": "References", - "kind": 16777216, - "children": [ - 305, - 311, - 306, - 308, - 310, - 309, - 307, - 303, - 304 - ] - } - ], - "sources": [ - { - "fileName": "lib/index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 73, - "name": "\"lib/types\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/types.ts", - "children": [ - { - "id": 74, - "name": "Bucket", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 78, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 5, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 75, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 2, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 76, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 3, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 77, - "name": "owner", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 4, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 80, - "name": "public", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 7, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 79, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 6, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 78, - 75, - 76, - 77, - 80, - 79 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 1, - "character": 23 - } - ] - }, - { - "id": 81, - "name": "FileObject", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 83, - "name": "bucket_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 12, - "character": 11 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 91, - "name": "buckets", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 19, - "character": 9 - } - ], - "type": { - "type": "reference", - "id": 74, - "name": "Bucket" - } - }, - { - "id": 87, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 16, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 85, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 14, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 88, - "name": "last_accessed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 17, - "character": 18 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 89, - "name": "metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 18, - "character": 10 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 90, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 18, - "character": 11 - } - ] - } - } - }, - { - "id": 82, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 11, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 84, - "name": "owner", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 13, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 86, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 15, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 83, - 91, - 87, - 85, - 88, - 89, - 82, - 84, - 86 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 10, - "character": 27 - } - ] - }, - { - "id": 95, - "name": "FileOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 96, - "name": "cacheControl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 28, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 97, - "name": "contentType", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 29, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 98, - "name": "upsert", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 30, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 96, - 97, - 98 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 27, - "character": 28 - } - ] - }, - { - "id": 104, - "name": "Metadata", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 105, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 49, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 105 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 48, - "character": 25 - } - ] - }, - { - "id": 99, - "name": "SearchOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 100, - "name": "limit", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "shortText": "The number of files you want to be returned." - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 35, - "character": 7 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 101, - "name": "offset", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "shortText": "The starting position." - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 38, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 103, - "name": "search", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "shortText": "The search string to filter files by." - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 44, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 102, - "name": "sortBy", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "shortText": "The column to sort by. Can be any column inside a FileObject." - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 41, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 92, - "name": "SortBy" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 100, - 101, - 103, - 102 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 33, - "character": 30 - } - ] - }, - { - "id": 92, - "name": "SortBy", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 93, - "name": "column", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 94, - "name": "order", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/types.ts", - "line": 24, - "character": 7 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 93, - 94 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 22, - "character": 23 - } - ] - } - ], - "groups": [ - { - "title": "Interfaces", - "kind": 256, - "children": [ - 74, - 81, - 95, - 104, - 99, - 92 - ] - } - ], - "sources": [ - { - "fileName": "lib/types.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 1, - "name": "\"lib/version\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/home/runner/work/storage-js/storage-js/src/lib/version.ts", - "children": [ - { - "id": 2, - "name": "version", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/version.ts", - "line": 2, - "character": 20 - } - ], - "type": { - "type": "stringLiteral", - "value": "0.0.0" - }, - "defaultValue": "\"0.0.0\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 2 - ] - } - ], - "sources": [ - { - "fileName": "lib/version.ts", - "line": 1, - "character": 0 - } - ] - } - ], - "groups": [ - { - "title": "Modules", - "kind": 1, - "children": [ - 312, - 378, - 106, - 169, - 3, - 6, - 68, - 302, - 73, - 1 - ] - } - ] -} \ No newline at end of file diff --git a/web/spec/tsdoc_v1/supabase.json b/web/spec/tsdoc_v1/supabase.json deleted file mode 100644 index ed00ca20d78..00000000000 --- a/web/spec/tsdoc_v1/supabase.json +++ /dev/null @@ -1,22724 +0,0 @@ -{ - "id": 0, - "name": "@supabase/supabase-js", - "kind": 1, - "flags": {}, - "originalName": "", - "children": [ - { - "id": 1, - "name": "index", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 740, - "name": "Session", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "target": 335 - }, - { - "id": 305, - "name": "SupabaseClientOptions", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 27, - "character": 2 - } - ], - "target": 176 - }, - { - "id": 306, - "name": "SupabaseRealtimePayload", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 28, - "character": 2 - } - ], - "target": 189 - }, - { - "id": 752, - "name": "User", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "target": 307 - }, - { - "id": 1014, - "name": "Transformers", - "kind": 4, - "kindString": "Namespace", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 1015, - "name": "PostgresTypes", - "kind": 8, - "kindString": "Enumeration", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Helpers to convert the change Payload into native JS types." - }, - "children": [ - { - "id": 1016, - "name": "abstime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 5, - "character": 4 - } - ], - "defaultValue": "\"abstime\"" - }, - { - "id": 1017, - "name": "bool", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 6, - "character": 4 - } - ], - "defaultValue": "\"bool\"" - }, - { - "id": 1018, - "name": "date", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 7, - "character": 4 - } - ], - "defaultValue": "\"date\"" - }, - { - "id": 1019, - "name": "daterange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 8, - "character": 4 - } - ], - "defaultValue": "\"daterange\"" - }, - { - "id": 1020, - "name": "float4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 9, - "character": 4 - } - ], - "defaultValue": "\"float4\"" - }, - { - "id": 1021, - "name": "float8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 10, - "character": 4 - } - ], - "defaultValue": "\"float8\"" - }, - { - "id": 1022, - "name": "int2", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 11, - "character": 4 - } - ], - "defaultValue": "\"int2\"" - }, - { - "id": 1023, - "name": "int4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 12, - "character": 4 - } - ], - "defaultValue": "\"int4\"" - }, - { - "id": 1024, - "name": "int4range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 13, - "character": 4 - } - ], - "defaultValue": "\"int4range\"" - }, - { - "id": 1025, - "name": "int8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 14, - "character": 4 - } - ], - "defaultValue": "\"int8\"" - }, - { - "id": 1026, - "name": "int8range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 15, - "character": 4 - } - ], - "defaultValue": "\"int8range\"" - }, - { - "id": 1027, - "name": "json", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 16, - "character": 4 - } - ], - "defaultValue": "\"json\"" - }, - { - "id": 1028, - "name": "jsonb", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 17, - "character": 4 - } - ], - "defaultValue": "\"jsonb\"" - }, - { - "id": 1029, - "name": "money", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 18, - "character": 4 - } - ], - "defaultValue": "\"money\"" - }, - { - "id": 1030, - "name": "numeric", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 19, - "character": 4 - } - ], - "defaultValue": "\"numeric\"" - }, - { - "id": 1031, - "name": "oid", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 20, - "character": 4 - } - ], - "defaultValue": "\"oid\"" - }, - { - "id": 1032, - "name": "reltime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 21, - "character": 4 - } - ], - "defaultValue": "\"reltime\"" - }, - { - "id": 1033, - "name": "text", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 22, - "character": 4 - } - ], - "defaultValue": "\"text\"" - }, - { - "id": 1034, - "name": "time", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 23, - "character": 4 - } - ], - "defaultValue": "\"time\"" - }, - { - "id": 1035, - "name": "timestamp", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 24, - "character": 4 - } - ], - "defaultValue": "\"timestamp\"" - }, - { - "id": 1036, - "name": "timestamptz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 25, - "character": 4 - } - ], - "defaultValue": "\"timestamptz\"" - }, - { - "id": 1037, - "name": "timetz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 26, - "character": 4 - } - ], - "defaultValue": "\"timetz\"" - }, - { - "id": 1038, - "name": "tsrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 27, - "character": 4 - } - ], - "defaultValue": "\"tsrange\"" - }, - { - "id": 1039, - "name": "tstzrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 28, - "character": 4 - } - ], - "defaultValue": "\"tstzrange\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 1016, - 1017, - 1018, - 1019, - 1020, - 1021, - 1022, - 1023, - 1024, - 1025, - 1026, - 1027, - 1028, - 1029, - 1030, - 1031, - 1032, - 1033, - 1034, - 1035, - 1036, - 1037, - 1038, - 1039 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 4, - "character": 20 - } - ] - }, - { - "id": 1053, - "name": "convertCell", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 84, - "character": 21 - } - ], - "signatures": [ - { - "id": 1054, - "name": "convertCell", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "If the value of the cell is `null`, returns null.\nOtherwise converts the string value to the correct type.", - "tags": [ - { - "tag": "example", - "text": "convertCell('bool', 't')\n//=> true" - }, - { - "tag": "example", - "text": "convertCell('int8', '10')\n//=> 10" - }, - { - "tag": "example", - "text": "convertCell('_int4', '{1,2,3,4}')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 1055, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A postgres column type" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1056, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1040, - "name": "convertChangeData", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 53, - "character": 21 - } - ], - "signatures": [ - { - "id": 1041, - "name": "convertChangeData", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Takes an array of columns and an object of string values then converts each string value\nto its mapped type.", - "tags": [ - { - "tag": "example", - "text": "convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n//=>{ first_name: 'Paul', age: 33 }\n" - } - ] - }, - "parameters": [ - { - "id": 1042, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Columns", - "package": "@supabase/realtime-js", - "name": "Columns" - } - }, - { - "id": 1043, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": {}, - "type": { - "type": "reference", - "qualifiedName": "Record", - "package": "@supabase/realtime-js", - "name": "Record" - } - }, - { - "id": 1044, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The map of various options that can be applied to the mapper" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 1045, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 1046, - "name": "skipTypes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The array of types that should not be converted\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 54, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 1046 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Record", - "package": "@supabase/realtime-js", - "name": "Record" - } - } - ] - }, - { - "id": 1047, - "name": "convertColumn", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 70, - "character": 21 - } - ], - "signatures": [ - { - "id": 1048, - "name": "convertColumn", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Converts the value of an individual column.", - "returns": "Useless information\n", - "tags": [ - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n//=> 33" - }, - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n//=> \"33\"\n" - } - ] - }, - "parameters": [ - { - "id": 1049, - "name": "columnName", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The column that you want to convert" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1050, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Columns", - "package": "@supabase/realtime-js", - "name": "Columns" - } - }, - { - "id": 1051, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The map of string values" - }, - "type": { - "type": "reference", - "qualifiedName": "Record", - "package": "@supabase/realtime-js", - "name": "Record" - } - }, - { - "id": 1052, - "name": "skipTypes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "An array of types that should not be converted" - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1066, - "name": "toArray", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 98, - "character": 21 - } - ], - "signatures": [ - { - "id": 1067, - "name": "toArray", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Converts a Postgres Array into a native JS array", - "tags": [ - { - "tag": "example", - "text": "toArray('{}', 'int4')\n//=> []" - }, - { - "tag": "example", - "text": "toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n//=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']" - }, - { - "tag": "example", - "text": "toArray([1,2,3,4], 'int4')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 1068, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - }, - { - "id": 1069, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1057, - "name": "toBoolean", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 85, - "character": 21 - } - ], - "signatures": [ - { - "id": 1058, - "name": "toBoolean", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1059, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1063, - "name": "toJson", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 87, - "character": 21 - } - ], - "signatures": [ - { - "id": 1064, - "name": "toJson", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1065, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1060, - "name": "toNumber", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 86, - "character": 21 - } - ], - "signatures": [ - { - "id": 1061, - "name": "toNumber", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1062, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1070, - "name": "toTimestampString", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 106, - "character": 21 - } - ], - "signatures": [ - { - "id": 1071, - "name": "toTimestampString", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\nSee https://github.com/supabase/supabase/issues/18", - "tags": [ - { - "tag": "example", - "text": "toTimestampString('2019-09-10 00:00:00')\n//=> '2019-09-10T00:00:00'\n" - } - ] - }, - "parameters": [ - { - "id": 1072, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - } - ], - "groups": [ - { - "title": "Enumerations", - "kind": 8, - "children": [ - 1015 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 1053, - 1040, - 1047, - 1066, - 1057, - 1063, - 1060, - 1070 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 4, - "character": 0 - } - ] - }, - { - "id": 343, - "name": "GoTrueApi", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 344, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 11, - "character": 4 - } - ], - "signatures": [ - { - "id": 345, - "name": "new GoTrueApi", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 346, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 347, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 353, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 16, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 777, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - } - }, - { - "id": 354, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 17, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 355, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 356, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 357, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 358, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 349, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 13, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 350, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 351, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 352, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 348, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 12, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 353, - 354, - 349, - 348 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 343, - "qualifiedName": "GoTrueApi", - "package": "@supabase/gotrue-js", - "name": "default" - } - } - ] - }, - { - "id": 370, - "name": "_createRequestHeaders", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Create a temporary object with all configured headers and\nadds the Authorization token to be used on request methods", - "tags": [ - { - "tag": "param", - "text": "A valid, logged-in JWT.\n", - "param": "jwt" - } - ] - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 24, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 371, - "name": "cookieName", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 25, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 364, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 9, - "character": 14 - } - ], - "type": { - "type": "reference", - "id": 777, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - } - }, - { - "id": 365, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 10, - "character": 14 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 366, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 367, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 368, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 369, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 360, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 6, - "character": 14 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 361, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 362, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 363, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 359, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 5, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 534, - "name": "createUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 251, - "character": 4 - } - ], - "signatures": [ - { - "id": 535, - "name": "createUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Creates a new user.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 536, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The data you want to create the user with.\n" - }, - "type": { - "type": "reference", - "id": 759, - "qualifiedName": "AdminUserAttributes", - "package": "@supabase/gotrue-js", - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 537, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 539, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 253, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 540, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 254, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - }, - { - "id": 538, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 252, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 539, - 540, - 538 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 541, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 543, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 257, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - }, - { - "id": 544, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 258, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 542, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 256, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 543, - 544, - 542 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 511, - "name": "deleteAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 218, - "character": 4 - } - ], - "signatures": [ - { - "id": 512, - "name": "deleteAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Deletes the Auth Cookies and redirects to the" - }, - "parameters": [ - { - "id": 513, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 514, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 515, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Optionally specify a `redirectTo` URL in the options.\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 516, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 517, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 219, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 517 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - }, - { - "id": 579, - "name": "deleteUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 315, - "character": 4 - } - ], - "signatures": [ - { - "id": 580, - "name": "deleteUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Delete a user. Requires a `service_role` key.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 581, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user uid you want to remove.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 582, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 584, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 317, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 585, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 318, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 583, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 316, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 584, - 585, - 583 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 522, - "name": "generateLink", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 236, - "character": 4 - } - ], - "signatures": [ - { - "id": 523, - "name": "generateLink", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Generates links to be sent via email or other." - }, - "parameters": [ - { - "id": 524, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The link type (\"signup\" or \"magiclink\" or \"recovery\" or \"invite\")." - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "invite" - } - ] - } - }, - { - "id": 525, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's email." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 526, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 527, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 529, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 238, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 528, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 237, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 530, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 239, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 529, - 528, - 530 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 531, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 532, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 241, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 533, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 242, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 532, - 533 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 518, - "name": "getAuthCookieString", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 227, - "character": 4 - } - ], - "signatures": [ - { - "id": 519, - "name": "getAuthCookieString", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Helper method to generate the Auth Cookie string for you in case you can't use `setAuthCookie`.", - "returns": "The Cookie string that needs to be set as the value for the `Set-Cookie` header.\n" - }, - "parameters": [ - { - "id": 520, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 521, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ] - }, - { - "id": 372, - "name": "getUrlForProvider", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 32, - "character": 4 - } - ], - "signatures": [ - { - "id": 373, - "name": "getUrlForProvider", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Generates the relevant login URL for a third-party provider." - }, - "parameters": [ - { - "id": 374, - "name": "provider", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "One of the providers supported by GoTrue." - }, - "type": { - "type": "reference", - "id": 735, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - }, - { - "id": 375, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 376, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 379, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 35, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 380, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 381, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 382, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 377, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 33, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 378, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 34, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 379, - 377, - 378 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 586, - "name": "getUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 329, - "character": 4 - } - ], - "signatures": [ - { - "id": 587, - "name": "getUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Gets the current user details.", - "text": "This method is called by the GoTrueClient `update` where\nthe jwt is set to this.currentSession.access_token\nand therefore, acts like getting the currently authenticated user\n" - }, - "parameters": [ - { - "id": 588, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid, logged-in JWT. Typically, the access_token for the currentSession\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 589, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 591, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 331, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 592, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 332, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 590, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 330, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 591, - 592, - 590 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 562, - "name": "getUserByCookie", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 290, - "character": 4 - } - ], - "signatures": [ - { - "id": 563, - "name": "getUserByCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Get user by reading the cookie from the request.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 564, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 565, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 566, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 569, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 293, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 570, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 294, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 567, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 291, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 568, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 292, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 569, - 570, - 567, - 568 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 553, - "name": "getUserById", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 279, - "character": 4 - } - ], - "signatures": [ - { - "id": 554, - "name": "getUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Get user by id." - }, - "parameters": [ - { - "id": 555, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's unique identifier\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 556, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 557, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 280, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 558, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 281, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 557, - 558 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 559, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 560, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 283, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - }, - { - "id": 561, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 284, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 560, - 561 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 480, - "name": "inviteUserByEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 177, - "character": 4 - } - ], - "signatures": [ - { - "id": 481, - "name": "inviteUserByEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends an invite link to an email address." - }, - "parameters": [ - { - "id": 482, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 483, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 484, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 486, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 179, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 485, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 178, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 486, - 485 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 487, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 488, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 181, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 489, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 182, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 488, - 489 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 545, - "name": "listUsers", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 265, - "character": 4 - } - ], - "signatures": [ - { - "id": 546, - "name": "listUsers", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Get a list of users.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 547, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 548, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 266, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 549, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 267, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 548, - 549 - ] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 550, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 551, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 269, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - }, - { - "id": 552, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 270, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 551, - 552 - ] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 501, - "name": "refreshAccessToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 201, - "character": 4 - } - ], - "signatures": [ - { - "id": 502, - "name": "refreshAccessToken", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Generates a new JWT." - }, - "parameters": [ - { - "id": 503, - "name": "refreshToken", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid refresh token that was returned on login.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 504, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 505, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 202, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 506, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 203, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 505, - 506 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 490, - "name": "resetPasswordForEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 190, - "character": 4 - } - ], - "signatures": [ - { - "id": 491, - "name": "resetPasswordForEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends a reset request to an email address." - }, - "parameters": [ - { - "id": 492, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 493, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 494, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 496, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 192, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 495, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 191, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 496, - 495 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 497, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 498, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 194, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 499, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - } - } - } - ] - } - }, - { - "id": 500, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 195, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 498, - 500 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 433, - "name": "sendMagicLinkEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 117, - "character": 4 - } - ], - "signatures": [ - { - "id": 434, - "name": "sendMagicLinkEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends a magic login link to an email address." - }, - "parameters": [ - { - "id": 435, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 436, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 437, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 440, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 120, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 439, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 119, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 438, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 118, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 440, - 439, - 438 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 441, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 442, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 122, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 443, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - } - } - } - ] - } - }, - { - "id": 444, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 123, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 442, - 444 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 445, - "name": "sendMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 131, - "character": 4 - } - ], - "signatures": [ - { - "id": 446, - "name": "sendMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends a mobile OTP via SMS. Will register the account if it doesn't already exist" - }, - "parameters": [ - { - "id": 447, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 448, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 449, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 451, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 133, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 450, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 132, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 451, - 450 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 452, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 453, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 135, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 454, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - } - } - } - ] - } - }, - { - "id": 455, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 136, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 453, - 455 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 507, - "name": "setAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 211, - "character": 4 - } - ], - "signatures": [ - { - "id": 508, - "name": "setAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Set/delete the auth cookie based on the AuthChangeEvent.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 509, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 510, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The response object.\n" - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 395, - "name": "signInWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 65, - "character": 4 - } - ], - "signatures": [ - { - "id": 396, - "name": "signInWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs in an existing user using their email address." - }, - "parameters": [ - { - "id": 397, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 398, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 399, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 400, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 402, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 67, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 401, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 66, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 402, - 401 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 403, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 404, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 69, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 405, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 70, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 404, - 405 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 427, - "name": "signInWithOpenIDConnect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 106, - "character": 4 - } - ], - "signatures": [ - { - "id": 428, - "name": "signInWithOpenIDConnect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs in an OpenID Connect user using their id_token." - }, - "parameters": [ - { - "id": 429, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 803, - "qualifiedName": "OpenIDConnectCredentials", - "package": "@supabase/gotrue-js", - "name": "OpenIDConnectCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 430, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 431, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 107, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 432, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 108, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 431, - 432 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 417, - "name": "signInWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 92, - "character": 4 - } - ], - "signatures": [ - { - "id": 418, - "name": "signInWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs in an existing user using their phone number and password." - }, - "parameters": [ - { - "id": 419, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 420, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 421, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 422, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 423, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 93, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 423 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 424, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 425, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 95, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 426, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 96, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 425, - 426 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 456, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 142, - "character": 4 - } - ], - "signatures": [ - { - "id": 457, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Removes a logged-in session." - }, - "parameters": [ - { - "id": 458, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid, logged-in JWT.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 459, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 460, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 143, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 460 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 383, - "name": "signUpWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 50, - "character": 4 - } - ], - "signatures": [ - { - "id": 384, - "name": "signUpWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Creates a new user using their email address.", - "returns": "A logged-in session if the server has \"autoconfirm\" ON" - }, - "parameters": [ - { - "id": 385, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 386, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 387, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 388, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 391, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 53, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 390, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 52, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 389, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 51, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 391, - 390, - 389 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 392, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 393, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 55, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 394, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 56, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 393, - 394 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 406, - "name": "signUpWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 79, - "character": 4 - } - ], - "signatures": [ - { - "id": 407, - "name": "signUpWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Signs up a new user using their phone number and a password." - }, - "parameters": [ - { - "id": 408, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 409, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 410, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 411, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 413, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 81, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 412, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 80, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 413, - 412 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 414, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 415, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 83, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 416, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 84, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 415, - 416 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 593, - "name": "updateUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 339, - "character": 4 - } - ], - "signatures": [ - { - "id": 594, - "name": "updateUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 595, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid, logged-in JWT." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 596, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The data you want to update.\n" - }, - "type": { - "type": "reference", - "id": 753, - "qualifiedName": "UserAttributes", - "package": "@supabase/gotrue-js", - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 597, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 599, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 341, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 600, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 342, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 598, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 340, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 599, - 600, - 598 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 571, - "name": "updateUserById", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 303, - "character": 4 - } - ], - "signatures": [ - { - "id": 572, - "name": "updateUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 573, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 574, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The data you want to update.\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "id": 759, - "qualifiedName": "AdminUserAttributes", - "package": "@supabase/gotrue-js", - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 575, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 577, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 305, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 578, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 306, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 576, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 304, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 577, - 578, - 576 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 461, - "name": "verifyMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 151, - "character": 4 - } - ], - "signatures": [ - { - "id": 462, - "name": "verifyMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `verifyOTP` instead!" - } - ] - }, - "parameters": [ - { - "id": 463, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 464, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "token that user was sent to their mobile phone" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 465, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 466, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 467, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 152, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 467 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 468, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 469, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 154, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 470, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 155, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 469, - 470 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 471, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 165, - "character": 4 - } - ], - "signatures": [ - { - "id": 472, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Send User supplied Email / Mobile OTP to be verified" - }, - "parameters": [ - { - "id": 473, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 790, - "qualifiedName": "VerifyOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyOTPParams" - } - }, - { - "id": 474, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 475, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 476, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 166, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 476 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 477, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 478, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 168, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 479, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 169, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 478, - 479 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 344 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 370, - 371, - 364, - 365, - 360, - 359 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 534, - 511, - 579, - 522, - 518, - 372, - 586, - 562, - 553, - 480, - 545, - 501, - 490, - 433, - 445, - 507, - 395, - 427, - 417, - 456, - 383, - 406, - 593, - 571, - 461, - 471 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 4, - "character": 21 - } - ] - }, - { - "id": 601, - "name": "GoTrueClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 602, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 37, - "character": 4 - } - ], - "signatures": [ - { - "id": 603, - "name": "new GoTrueClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Create a new client for use in the browser." - }, - "parameters": [ - { - "id": 604, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 605, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 612, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically refresh the token before expiring." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 43, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 616, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": {}, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 47, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 777, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - } - }, - { - "id": 611, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 42, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 617, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 48, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 618, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 619, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A custom fetch implementation.\n" - }, - "parameters": [ - { - "id": 620, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 621, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 607, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Any additional headers to send to the GoTrue server." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 39, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 608, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 609, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 610, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 614, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Provide your own local storage implementation to use instead of the browser's local storage." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 45, - "character": 8 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - } - }, - { - "id": 615, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"false\" if you want to disable multi-tab/window events." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 46, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 613, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically save the user session into local storage." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 44, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 606, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The URL of the GoTrue server." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 38, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 612, - 616, - 611, - 617, - 607, - 614, - 615, - 613, - 606 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 601, - "qualifiedName": "GoTrueClient", - "package": "@supabase/gotrue-js", - "name": "default" - } - } - ] - }, - { - "id": 727, - "name": "_callRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 190, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 721, - "name": "_handleEmailSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 176, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 724, - "name": "_handleOpenIDConnectSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 179, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 722, - "name": "_handlePhoneSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 177, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 723, - "name": "_handleProviderSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 178, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 734, - "name": "_handleVisibilityChange", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 208, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 733, - "name": "_listenForMultiTabEvents", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Listens for changes to LocalStorage and updates the current session." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 207, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 728, - "name": "_notifyAllSubscribers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 191, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 730, - "name": "_persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 197, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 726, - "name": "_recoverAndRefresh", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Recovers the session from LocalStorage and refreshes\nNote: this method is async to accommodate for AsyncStorage e.g. in React native." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 189, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 725, - "name": "_recoverSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Attempts to get the session from LocalStorage\nNote: this should never be async (even for React Native), as we need it to return immediately in the constructor." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 184, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 731, - "name": "_removeSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 198, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 729, - "name": "_saveSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "set currentSession and currentUser\nprocess to _startAutoRefreshToken if possible" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 196, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 732, - "name": "_startAutoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Clear and re-create refresh token timer", - "tags": [ - { - "tag": "param", - "text": "time intervals in milliseconds\n", - "param": "value" - } - ] - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 203, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 622, - "name": "api", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Namespace for the GoTrue API methods.\nThese can be used for example to get a user from a JWT in a server environment or reset a user's password." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 9, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 343, - "qualifiedName": "GoTrueApi", - "package": "@supabase/gotrue-js", - "name": "default" - } - }, - { - "id": 625, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 18, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 624, - "name": "currentSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "comment": { - "shortText": "The session object for the currently logged in user or null." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 17, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 623, - "name": "currentUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "comment": { - "shortText": "The currently logged in user or null." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 13, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 627, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 20, - "character": 14 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - } - }, - { - "id": 628, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 21, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 631, - "name": "networkRetries", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 24, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 626, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 19, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 630, - "name": "refreshTokenTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 23, - "character": 14 - } - ], - "type": { - "type": "reference", - "qualifiedName": "global.NodeJS.Timeout", - "package": "@types/node", - "name": "Timeout" - } - }, - { - "id": 629, - "name": "stateChangeEmitters", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 22, - "character": 14 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "id": 769, - "qualifiedName": "Subscription", - "package": "@supabase/gotrue-js", - "name": "Subscription" - } - ], - "qualifiedName": "Map", - "package": "typescript", - "name": "Map" - } - }, - { - "id": 699, - "name": "getSessionFromUrl", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 153, - "character": 4 - } - ], - "signatures": [ - { - "id": 700, - "name": "getSessionFromUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Gets the session data from a URL string" - }, - "parameters": [ - { - "id": 701, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 702, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 703, - "name": "storeSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Optionally store the session in the browser\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 154, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 703 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 704, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 705, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 156, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 706, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 157, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 705, - 706 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 711, - "name": "onAuthStateChange", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 172, - "character": 4 - } - ], - "signatures": [ - { - "id": 712, - "name": "onAuthStateChange", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Receive a notification every time an auth event happens.", - "returns": "A subscription object which can be used to unsubscribe itself.\n" - }, - "parameters": [ - { - "id": 713, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 714, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 715, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 716, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 736, - "qualifiedName": "AuthChangeEvent", - "package": "@supabase/gotrue-js", - "name": "AuthChangeEvent" - } - }, - { - "id": 717, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 718, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 719, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 173, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 769, - "qualifiedName": "Subscription", - "package": "@supabase/gotrue-js", - "name": "Subscription" - } - ] - } - }, - { - "id": 720, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 174, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 719, - 720 - ] - } - ] - } - } - } - ] - }, - { - "id": 677, - "name": "refreshSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 123, - "character": 4 - } - ], - "signatures": [ - { - "id": 678, - "name": "refreshSession", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Force refreshes the session including the user data in case it was updated in a different session." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 679, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 680, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 124, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 682, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 126, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 681, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 125, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 680, - 682, - 681 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 675, - "name": "session", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 119, - "character": 4 - } - ], - "signatures": [ - { - "id": 676, - "name": "session", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns the session data, if there is an active session." - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - } - ] - }, - { - "id": 696, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 148, - "character": 4 - } - ], - "signatures": [ - { - "id": 697, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Overrides the JWT on the current client. The JWT will then be sent in all subsequent network requests." - }, - "parameters": [ - { - "id": 698, - "name": "access_token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "a jwt access token\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - } - ] - }, - { - "id": 690, - "name": "setSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 140, - "character": 4 - } - ], - "signatures": [ - { - "id": 691, - "name": "setSession", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sets the session data from refresh_token and returns current Session and Error" - }, - "parameters": [ - { - "id": 692, - "name": "refresh_token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "a JWT token\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 693, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 695, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 142, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 694, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 141, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 695, - 694 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 644, - "name": "signIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 80, - "character": 4 - } - ], - "signatures": [ - { - "id": 645, - "name": "signIn", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Log in an existing user, or login via a third-party provider." - }, - "parameters": [ - { - "id": 646, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 783, - "qualifiedName": "UserCredentials", - "package": "@supabase/gotrue-js", - "name": "UserCredentials" - } - }, - { - "id": 647, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 648, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 652, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 84, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 653, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 85, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 654, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 655, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 656, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 649, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 81, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 651, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 83, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 650, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 82, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 652, - 653, - 649, - 651, - 650 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 657, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 662, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 93, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 660, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 91, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 735, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - }, - { - "id": 658, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 89, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 661, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 92, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 659, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 90, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 662, - 660, - 658, - 661, - 659 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 707, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 165, - "character": 4 - } - ], - "signatures": [ - { - "id": 708, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Inside a browser context, `signOut()` will remove the logged in user from the browser session\nand log them out - removing all items from localstorage and then trigger a \"SIGNED_OUT\" event.", - "text": "For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`. There is no way to revoke a user's session JWT before it automatically expires\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 709, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 710, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 166, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 710 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 632, - "name": "signUp", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 59, - "character": 4 - } - ], - "signatures": [ - { - "id": 633, - "name": "signUp", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Creates a new user." - }, - "parameters": [ - { - "id": 634, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 783, - "qualifiedName": "UserCredentials", - "package": "@supabase/gotrue-js", - "name": "UserCredentials" - } - }, - { - "id": 635, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 636, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 639, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 62, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 638, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 61, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 637, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 60, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 639, - 638, - 637 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 640, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 643, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 66, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 642, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 65, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 641, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 64, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 643, - 642, - 641 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 683, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 131, - "character": 4 - } - ], - "signatures": [ - { - "id": 684, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Updates user data, if there is a logged in user." - }, - "parameters": [ - { - "id": 685, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 753, - "qualifiedName": "UserAttributes", - "package": "@supabase/gotrue-js", - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 686, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 687, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 132, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 689, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 134, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 688, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 133, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 687, - 689, - 688 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 673, - "name": "user", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 115, - "character": 4 - } - ], - "signatures": [ - { - "id": 674, - "name": "user", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Inside a browser context, `user()` will return the user data, if there is a logged in user.", - "text": "For server-side management, you can get a user through `auth.api.getUserByCookie()`\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ] - }, - { - "id": 663, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 103, - "character": 4 - } - ], - "signatures": [ - { - "id": 664, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Log in a user given a User supplied OTP received via mobile." - }, - "parameters": [ - { - "id": 665, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 790, - "qualifiedName": "VerifyOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyOTPParams" - } - }, - { - "id": 666, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 667, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 668, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 104, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 668 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 669, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 672, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 108, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 737, - "qualifiedName": "ApiError", - "package": "@supabase/gotrue-js", - "name": "ApiError" - } - ] - } - }, - { - "id": 671, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 107, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 670, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 106, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 672, - 671, - 670 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 602 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 727, - 721, - 724, - 722, - 723, - 734, - 733, - 728, - 730, - 726, - 725, - 731, - 729, - 732, - 622, - 625, - 624, - 623, - 627, - 628, - 631, - 626, - 630, - 629 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 699, - 711, - 677, - 675, - 696, - 690, - 644, - 707, - 632, - 683, - 673, - 663 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 4, - "character": 21 - } - ] - }, - { - "id": 810, - "name": "RealtimeClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 811, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 77, - "character": 4 - } - ], - "signatures": [ - { - "id": 812, - "name": "new RealtimeClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Initializes the Socket." - }, - "parameters": [ - { - "id": 813, - "name": "endPoint", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 814, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 909, - "qualifiedName": "Options", - "package": "@supabase/realtime-js", - "name": "Options" - } - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 906, - "name": "_appendParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 180, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 907, - "name": "_flushSendBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 181, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 903, - "name": "_onConnClose", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 177, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 904, - "name": "_onConnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 178, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 902, - "name": "_onConnOpen", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 176, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 908, - "name": "_sendHeartbeat", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 182, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 905, - "name": "_triggerChanError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 179, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 815, - "name": "accessToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 32, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 816, - "name": "channels", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 33, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - }, - { - "id": 838, - "name": "conn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 53, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "WebSocket", - "package": "typescript", - "name": "WebSocket" - } - ] - } - }, - { - "id": 836, - "name": "decode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 51, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 835, - "name": "encode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 50, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 817, - "name": "endPoint", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 34, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 818, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 35, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 819, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 820, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 821, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 828, - "name": "heartbeatIntervalMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 43, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 830, - "name": "heartbeatTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 45, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reference", - "qualifiedName": "global.NodeJS.Timer", - "package": "@types/node", - "name": "Timer" - } - ] - } - }, - { - "id": 834, - "name": "logger", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 49, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 829, - "name": "longpollerTimeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 44, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 822, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 38, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 823, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 824, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 825, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 831, - "name": "pendingHeartbeatRef", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 46, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 837, - "name": "reconnectAfterMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 52, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 833, - "name": "reconnectTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 48, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Timer", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 832, - "name": "ref", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 47, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 839, - "name": "sendBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 54, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 840, - "name": "serializer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 55, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Serializer", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 841, - "name": "stateChangeCallbacks", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 56, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 842, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 844, - "name": "close", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 58, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 845, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 59, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 846, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 60, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 843, - "name": "open", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 57, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 844, - 845, - 846, - 843 - ] - } - ] - } - } - }, - { - "id": 826, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 41, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 827, - "name": "transport", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 42, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 880, - "name": "channel", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 148, - "character": 4 - } - ], - "signatures": [ - { - "id": 881, - "name": "channel", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 882, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 883, - "name": "chanParams", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "ChannelParams", - "package": "@supabase/realtime-js", - "name": "ChannelParams" - } - } - ], - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 847, - "name": "connect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 81, - "character": 4 - } - ], - "signatures": [ - { - "id": 848, - "name": "connect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Connects the socket, unless already connected." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 873, - "name": "connectionState", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 137, - "character": 4 - } - ], - "signatures": [ - { - "id": 874, - "name": "connectionState", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns the current state of the socket." - }, - "type": { - "type": "reference", - "qualifiedName": "CONNECTION_STATE", - "package": "@supabase/realtime-js", - "name": "CONNECTION_STATE" - } - } - ] - }, - { - "id": 849, - "name": "disconnect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 88, - "character": 4 - } - ], - "signatures": [ - { - "id": 850, - "name": "disconnect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Disconnects the socket." - }, - "parameters": [ - { - "id": 851, - "name": "code", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A numeric status code to send on disconnect." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 852, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom reason for the disconnect.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 853, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 855, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 90, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 854, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 89, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 855, - 854 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 892, - "name": "endPointURL", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 161, - "character": 4 - } - ], - "signatures": [ - { - "id": 893, - "name": "endPointURL", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns the URL of the websocket." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 875, - "name": "isConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 141, - "character": 4 - } - ], - "signatures": [ - { - "id": 876, - "name": "isConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Retuns `true` is the connection is open." - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 899, - "name": "leaveOpenTopic", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 175, - "character": 4 - } - ], - "signatures": [ - { - "id": 900, - "name": "leaveOpenTopic", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Unsubscribe from channels with the specified topic." - }, - "parameters": [ - { - "id": 901, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 856, - "name": "log", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 97, - "character": 4 - } - ], - "signatures": [ - { - "id": 857, - "name": "log", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs the message.", - "text": "For customized logging, `this.logger` can be overriden.\n" - }, - "parameters": [ - { - "id": 858, - "name": "kind", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 859, - "name": "msg", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 860, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 894, - "name": "makeRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 165, - "character": 4 - } - ], - "signatures": [ - { - "id": 895, - "name": "makeRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Return the next message ref, accounting for overflows" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 864, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 115, - "character": 4 - } - ], - "signatures": [ - { - "id": 865, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket closed.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 866, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 887, - "name": "onConnMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 155, - "character": 4 - } - ], - "signatures": [ - { - "id": 888, - "name": "onConnMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 889, - "name": "rawMessage", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 890, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 891, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 156, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 891 - ] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 867, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 124, - "character": 4 - } - ], - "signatures": [ - { - "id": 868, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen((error) => console.log(\"An error occurred\"))\n" - } - ] - }, - "parameters": [ - { - "id": 869, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 870, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 133, - "character": 4 - } - ], - "signatures": [ - { - "id": 871, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Calls a function any time a message is received.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onMessage((message) => console.log(message))\n" - } - ] - }, - "parameters": [ - { - "id": 872, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 861, - "name": "onOpen", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 106, - "character": 4 - } - ], - "signatures": [ - { - "id": 862, - "name": "onOpen", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Registers a callback for connection state change event.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket opened.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 863, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 884, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 154, - "character": 4 - } - ], - "signatures": [ - { - "id": 885, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Push out a message if the socket is connected.", - "text": "If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.\n" - }, - "parameters": [ - { - "id": 886, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Message", - "package": "@supabase/realtime-js", - "name": "Message" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 877, - "name": "remove", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 147, - "character": 4 - } - ], - "signatures": [ - { - "id": 878, - "name": "remove", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Removes a subscription from the socket." - }, - "parameters": [ - { - "id": 879, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "An open subscription.\n" - }, - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 896, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 171, - "character": 4 - } - ], - "signatures": [ - { - "id": 897, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sets the JWT access token used for channel subscription authorization and Realtime RLS." - }, - "parameters": [ - { - "id": 898, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A JWT string.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 811 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 906, - 907, - 903, - 904, - 902, - 908, - 905, - 815, - 816, - 838, - 836, - 835, - 817, - 818, - 828, - 830, - 834, - 829, - 822, - 831, - 837, - 833, - 832, - 839, - 840, - 841, - 826, - 827 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 880, - 847, - 873, - 849, - 892, - 875, - 899, - 856, - 894, - 864, - 887, - 867, - 870, - 861, - 884, - 877, - 896 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 31, - "character": 21 - } - ] - }, - { - "id": 927, - "name": "RealtimeSubscription", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 928, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 18, - "character": 4 - } - ], - "signatures": [ - { - "id": 929, - "name": "new RealtimeSubscription", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 930, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 931, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 932, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 933, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 934, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - } - } - }, - { - "id": 935, - "name": "socket", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 942, - "name": "bindings", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 11, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "any" - } - } - }, - { - "id": 946, - "name": "joinPush", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 15, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 945, - "name": "joinedOnce", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 14, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 937, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 7, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 938, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 939, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 940, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - } - } - }, - { - "id": 948, - "name": "pushBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 17, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - }, - { - "id": 947, - "name": "rejoinTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 16, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Timer", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 941, - "name": "socket", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 10, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 944, - "name": "state", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 13, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "CHANNEL_STATES", - "package": "@supabase/realtime-js", - "name": "CHANNEL_STATES" - } - }, - { - "id": 943, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 12, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 936, - "name": "topic", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 6, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 967, - "name": "canPush", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 27, - "character": 4 - } - ], - "signatures": [ - { - "id": 968, - "name": "canPush", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1004, - "name": "isClosed", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 54, - "character": 4 - } - ], - "signatures": [ - { - "id": 1005, - "name": "isClosed", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1006, - "name": "isErrored", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 55, - "character": 4 - } - ], - "signatures": [ - { - "id": 1007, - "name": "isErrored", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1008, - "name": "isJoined", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 56, - "character": 4 - } - ], - "signatures": [ - { - "id": 1009, - "name": "isJoined", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1010, - "name": "isJoining", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 57, - "character": 4 - } - ], - "signatures": [ - { - "id": 1011, - "name": "isJoining", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1012, - "name": "isLeaving", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 58, - "character": 4 - } - ], - "signatures": [ - { - "id": 1013, - "name": "isLeaving", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 988, - "name": "isMember", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 49, - "character": 4 - } - ], - "signatures": [ - { - "id": 989, - "name": "isMember", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 990, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 991, - "name": "joinRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 50, - "character": 4 - } - ], - "signatures": [ - { - "id": 992, - "name": "joinRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 964, - "name": "off", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 26, - "character": 4 - } - ], - "signatures": [ - { - "id": 965, - "name": "off", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 966, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 960, - "name": "on", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 25, - "character": 4 - } - ], - "signatures": [ - { - "id": 961, - "name": "on", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 962, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 963, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 954, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 23, - "character": 4 - } - ], - "signatures": [ - { - "id": 955, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 956, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 957, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 24, - "character": 4 - } - ], - "signatures": [ - { - "id": 958, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 959, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 983, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 48, - "character": 4 - } - ], - "signatures": [ - { - "id": 984, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Overridable message hook", - "text": "Receives all events for specialized message handling before dispatching to the channel callbacks.\nMust return the payload, modified or unmodified.\n" - }, - "parameters": [ - { - "id": 985, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 986, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 987, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - }, - { - "id": 969, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 28, - "character": 4 - } - ], - "signatures": [ - { - "id": 970, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 971, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "CHANNEL_EVENTS", - "package": "@supabase/realtime-js", - "name": "CHANNEL_EVENTS" - } - }, - { - "id": 972, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 973, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 993, - "name": "rejoin", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 51, - "character": 4 - } - ], - "signatures": [ - { - "id": 994, - "name": "rejoin", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 995, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 949, - "name": "rejoinUntilConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 21, - "character": 4 - } - ], - "signatures": [ - { - "id": 950, - "name": "rejoinUntilConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1001, - "name": "replyEventName", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 53, - "character": 4 - } - ], - "signatures": [ - { - "id": 1002, - "name": "replyEventName", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1003, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 951, - "name": "subscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 22, - "character": 4 - } - ], - "signatures": [ - { - "id": 952, - "name": "subscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 953, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 996, - "name": "trigger", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 52, - "character": 4 - } - ], - "signatures": [ - { - "id": 997, - "name": "trigger", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 998, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 999, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1000, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 980, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 41, - "character": 4 - } - ], - "signatures": [ - { - "id": 981, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Leaves the channel", - "text": "Unsubscribes from server events, and instructs channel to terminate on server.\nTriggers onClose() hooks.\n\nTo receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:\nchannel.unsubscribe().receive(\"ok\", () => alert(\"left!\") )\n" - }, - "parameters": [ - { - "id": 982, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 974, - "name": "updateJoinPayload", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 29, - "character": 4 - } - ], - "signatures": [ - { - "id": 975, - "name": "updateJoinPayload", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 976, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 977, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 978, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 979, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 928 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 942, - 946, - 945, - 937, - 948, - 947, - 941, - 944, - 943, - 936 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 967, - 1004, - 1006, - 1008, - 1010, - 1012, - 988, - 991, - 964, - 960, - 954, - 957, - 983, - 969, - 993, - 949, - 1001, - 951, - 996, - 980, - 974 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeSubscription.d.ts", - "line": 5, - "character": 21 - } - ] - }, - { - "id": 214, - "name": "SupabaseClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "comment": { - "shortText": "Supabase Client.", - "text": "An isomorphic Javascript client for interacting with Postgres.\n" - }, - "children": [ - { - "id": 215, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 61, - "character": 2 - } - ], - "signatures": [ - { - "id": 216, - "name": "new SupabaseClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "comment": { - "shortText": "Create a new client for use in the browser." - }, - "parameters": [ - { - "id": 217, - "name": "supabaseUrl", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The unique Supabase URL which is supplied when you create a new project in your project dashboard." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 218, - "name": "supabaseKey", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The unique Supabase Key which is supplied when you create a new project in your project dashboard." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 219, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 176, - "name": "SupabaseClientOptions" - } - } - ], - "type": { - "type": "reference", - "id": 214, - "name": "default" - } - } - ] - }, - { - "id": 220, - "name": "auth", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "Supabase Auth allows you to create and manage user sessions for access to data that is secured by access policies." - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 30, - "character": 2 - } - ], - "type": { - "type": "reference", - "name": "SupabaseAuthClient" - } - }, - { - "id": 224, - "name": "authUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 35, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 234, - "name": "changedAccessToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 41, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 229, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 40, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 230, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 231, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 232, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 233, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 226, - "name": "functionsUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 37, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 236, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 44, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 237, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 238, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 239, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 228, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 39, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 227, - "name": "realtime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 38, - "character": 12 - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 223, - "name": "realtimeUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 34, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 222, - "name": "restUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 33, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 221, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 32, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 235, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 42, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 225, - "name": "storageUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 36, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 241, - "name": "supabaseKey", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 240, - "name": "supabaseUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 242, - "name": "functions", - "kind": 262144, - "kindString": "Accessor", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 106, - "character": 6 - } - ], - "getSignature": [ - { - "id": 243, - "name": "functions", - "kind": 524288, - "kindString": "Get signature", - "flags": {}, - "comment": { - "shortText": "Supabase Functions allows you to deploy and invoke edge functions." - }, - "type": { - "type": "reference", - "qualifiedName": "FunctionsClient", - "package": "@supabase/functions-js", - "name": "FunctionsClient" - } - } - ] - }, - { - "id": 244, - "name": "storage", - "kind": 262144, - "kindString": "Accessor", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 116, - "character": 6 - } - ], - "getSignature": [ - { - "id": 245, - "name": "storage", - "kind": 524288, - "kindString": "Get signature", - "flags": {}, - "comment": { - "shortText": "Supabase Storage allows you to manage user-generated content, such as photos or videos." - }, - "type": { - "type": "reference", - "qualifiedName": "StorageClient", - "package": "@supabase/storage-js", - "name": "StorageClient" - } - } - ] - }, - { - "id": 274, - "name": "_closeSubscription", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 194, - "character": 16 - } - ], - "signatures": [ - { - "id": 275, - "name": "_closeSubscription", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 276, - "name": "subscription", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 277, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 278, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 196, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 278 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 294, - "name": "_getAuthHeaders", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 271, - "character": 10 - } - ], - "signatures": [ - { - "id": 295, - "name": "_getAuthHeaders", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reference", - "id": 171, - "name": "GenericObject" - } - } - ] - }, - { - "id": 300, - "name": "_handleTokenChanged", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 313, - "character": 10 - } - ], - "signatures": [ - { - "id": 301, - "name": "_handleTokenChanged", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 302, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 736, - "qualifiedName": "AuthChangeEvent", - "package": "@supabase/gotrue-js", - "name": "AuthChangeEvent" - } - }, - { - "id": 303, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 304, - "name": "source", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "CLIENT" - }, - { - "type": "literal", - "value": "STORAGE" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 292, - "name": "_initPostgRESTClient", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 262, - "character": 10 - } - ], - "signatures": [ - { - "id": 293, - "name": "_initPostgRESTClient", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "PostgrestClient", - "package": "@supabase/postgrest-js", - "name": "default" - } - } - ] - }, - { - "id": 289, - "name": "_initRealtimeClient", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 255, - "character": 10 - } - ], - "signatures": [ - { - "id": 290, - "name": "_initRealtimeClient", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 291, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 909, - "qualifiedName": "Options", - "package": "@supabase/realtime-js", - "name": "Options" - } - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 286, - "name": "_initSupabaseAuthClient", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 228, - "character": 10 - } - ], - "signatures": [ - { - "id": 287, - "name": "_initSupabaseAuthClient", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 288, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 176, - "name": "SupabaseClientOptions" - } - } - ], - "type": { - "type": "reference", - "name": "SupabaseAuthClient" - } - } - ] - }, - { - "id": 298, - "name": "_listenForAuthEvents", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 306, - "character": 10 - } - ], - "signatures": [ - { - "id": 299, - "name": "_listenForAuthEvents", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 769, - "qualifiedName": "Subscription", - "package": "@supabase/gotrue-js", - "name": "Subscription" - } - ] - } - } - ] - }, - { - "id": 296, - "name": "_listenForMultiTabEvents", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 279, - "character": 10 - } - ], - "signatures": [ - { - "id": 297, - "name": "_listenForMultiTabEvents", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "void" - } - ] - } - } - ] - }, - { - "id": 279, - "name": "_unsubscribeSubscription", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 209, - "character": 10 - } - ], - "signatures": [ - { - "id": 280, - "name": "_unsubscribeSubscription", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 281, - "name": "subscription", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 282, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 283, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 211, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 283 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 246, - "name": "from", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 125, - "character": 2 - } - ], - "signatures": [ - { - "id": 247, - "name": "from", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Perform a table operation." - }, - "typeParameter": [ - { - "id": 248, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "parameters": [ - { - "id": 249, - "name": "table", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The table name to operate on.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 8, - "typeArguments": [ - { - "type": "reference", - "id": 248, - "name": "T" - } - ], - "name": "SupabaseQueryBuilder" - } - } - ] - }, - { - "id": 284, - "name": "getSubscriptions", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 224, - "character": 2 - } - ], - "signatures": [ - { - "id": 285, - "name": "getSubscriptions", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Returns an array of all your subscriptions." - }, - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - } - ] - }, - { - "id": 259, - "name": "removeAllSubscriptions", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 162, - "character": 8 - } - ], - "signatures": [ - { - "id": 260, - "name": "removeAllSubscriptions", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Closes and removes all subscriptions and returns a list of removed\nsubscriptions and their errors." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 261, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 262, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 163, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 263, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 264, - "name": "subscription", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 163, - "character": 14 - } - ], - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 264 - ] - } - ] - } - } - }, - { - "id": 265, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 163, - "character": 52 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 262, - 265 - ] - } - ] - } - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 266, - "name": "removeSubscription", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 182, - "character": 8 - } - ], - "signatures": [ - { - "id": 267, - "name": "removeSubscription", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Closes and removes a subscription and returns the number of open subscriptions." - }, - "parameters": [ - { - "id": 268, - "name": "subscription", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The subscription you want to close and remove.\n" - }, - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 269, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 270, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 184, - "character": 15 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 271, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 272, - "name": "openSubscriptions", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 184, - "character": 23 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 272 - ] - } - ] - } - } - }, - { - "id": 273, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 184, - "character": 52 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 270, - 273 - ] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 250, - "name": "rpc", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 146, - "character": 2 - } - ], - "signatures": [ - { - "id": 251, - "name": "rpc", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Perform a function call." - }, - "typeParameter": [ - { - "id": 252, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "parameters": [ - { - "id": 253, - "name": "fn", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The function name to call." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 254, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The parameters to pass to the function call." - }, - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 255, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 256, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 258, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 152, - "character": 25 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 257, - "name": "head", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 152, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 258, - 257 - ] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 252, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 215 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 220, - 224, - 234, - 229, - 226, - 236, - 228, - 227, - 223, - 222, - 221, - 235, - 225, - 241, - 240 - ] - }, - { - "title": "Accessors", - "kind": 262144, - "children": [ - 242, - 244 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 274, - 294, - 300, - 292, - 289, - 286, - 298, - 296, - 279, - 246, - 284, - 259, - 266, - 250 - ] - } - ], - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 26, - "character": 21 - } - ] - }, - { - "id": 759, - "name": "AdminUserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 761, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for app_metadata that.", - "text": "Only a service role can modify.\n\nCan be any JSON that includes app-specific info, such as identity providers, roles, and other\naccess control information.\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 103, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 768, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 80, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - }, - "inheritedFrom": { - "type": "reference", - "id": 758, - "name": "UserAttributes.data" - } - }, - { - "id": 764, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 64, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 754, - "name": "UserAttributes.email" - } - }, - { - "id": 767, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 76, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 757, - "name": "UserAttributes.email_change_token" - } - }, - { - "id": 762, - "name": "email_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their email address.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 109, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 766, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 72, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 756, - "name": "UserAttributes.password" - } - }, - { - "id": 765, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 68, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 755, - "name": "UserAttributes.phone" - } - }, - { - "id": 763, - "name": "phone_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their phone number.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 115, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 760, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata.", - "text": "Can be any JSON.\n\nOnly a service role can modify.\n\nNote: When using the GoTrueAdminApi and wanting to modify a user's user_metadata,\nthis attribute is used instead of UserAttributes data.\n\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 94, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 761, - 768, - 764, - 767, - 762, - 766, - 765, - 763, - 760 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 82, - "character": 17 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 753, - "qualifiedName": "UserAttributes", - "package": "@supabase/gotrue-js", - "name": "UserAttributes" - } - ] - }, - { - "id": 737, - "name": "ApiError", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 738, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 4, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 739, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 5, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 738, - 739 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 3, - "character": 17 - } - ] - }, - { - "id": 335, - "name": "AuthSession", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 337, - "name": "access_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 9, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 339, - "name": "expires_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A timestamp of when the token will expire. Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 17, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 338, - "name": "expires_in", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The number of seconds until the token expires (since it was issued). Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 13, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 336, - "name": "provider_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 8, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 340, - "name": "refresh_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 18, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 341, - "name": "token_type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 19, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 342, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 20, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 307, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 337, - 339, - 338, - 336, - 340, - 341, - 342 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 7, - "character": 17 - } - ] - }, - { - "id": 307, - "name": "AuthUser", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 324, - "name": "action_link", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 48, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 309, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 35, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 310, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 311, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 36, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 311 - ] - } - ], - "indexSignature": { - "id": 312, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 313, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 318, - "name": "aud", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 42, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 319, - "name": "confirmation_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 43, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 328, - "name": "confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 52, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 327, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 51, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 325, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 49, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 321, - "name": "email_change_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 45, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 329, - "name": "email_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 53, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 308, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 34, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 334, - "name": "identities", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 58, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 741, - "qualifiedName": "UserIdentity", - "package": "@supabase/gotrue-js", - "name": "UserIdentity" - } - } - }, - { - "id": 323, - "name": "invited_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 47, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 331, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 55, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 322, - "name": "new_email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 46, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 326, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 50, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 330, - "name": "phone_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 54, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 320, - "name": "recovery_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 44, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 332, - "name": "role", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 56, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 333, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 57, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 314, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 39, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 315, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 316, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 317, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 324, - 309, - 318, - 319, - 328, - 327, - 325, - 321, - 329, - 308, - 334, - 323, - 331, - 322, - 326, - 330, - 320, - 332, - 333, - 314 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 33, - "character": 17 - } - ] - }, - { - "id": 777, - "name": "CookieOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 780, - "name": "domain", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 134, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 779, - "name": "lifetime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 133, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 778, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 132, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 781, - "name": "path", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 135, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 782, - "name": "sameSite", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 136, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 780, - 779, - 778, - 781, - 782 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 131, - "character": 17 - } - ] - }, - { - "id": 803, - "name": "OpenIDConnectCredentials", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 807, - "name": "client_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 165, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 804, - "name": "id_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 162, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 808, - "name": "issuer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 166, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 805, - "name": "nonce", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 163, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 806, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 164, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 735, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 807, - 804, - 808, - 805, - 806 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 161, - "character": 17 - } - ] - }, - { - "id": 769, - "name": "Subscription", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 770, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The subscriber UUID. This will be set by the client." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 121, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 771, - "name": "callback", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 125, - "character": 4 - } - ], - "signatures": [ - { - "id": 772, - "name": "callback", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The function to call every time there is an event. eg: (eventName) => {}" - }, - "parameters": [ - { - "id": 773, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 736, - "qualifiedName": "AuthChangeEvent", - "package": "@supabase/gotrue-js", - "name": "AuthChangeEvent" - } - }, - { - "id": 774, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 335, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 775, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 129, - "character": 4 - } - ], - "signatures": [ - { - "id": 776, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Call this to remove the listener." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 770 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 771, - 775 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 117, - "character": 17 - } - ] - }, - { - "id": 753, - "name": "UserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 758, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 80, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 754, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 64, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 757, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 76, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 756, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 72, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 755, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 68, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 758, - 754, - 757, - 756, - 755 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 60, - "character": 17 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 759, - "name": "AdminUserAttributes" - } - ] - }, - { - "id": 783, - "name": "UserCredentials", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 784, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 139, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 789, - "name": "oidc", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 144, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 803, - "qualifiedName": "OpenIDConnectCredentials", - "package": "@supabase/gotrue-js", - "name": "OpenIDConnectCredentials" - } - }, - { - "id": 786, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 141, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 785, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 140, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 788, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 143, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 735, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - }, - { - "id": 787, - "name": "refreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 142, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 784, - 789, - 786, - 785, - 788, - 787 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 138, - "character": 17 - } - ] - }, - { - "id": 741, - "name": "UserIdentity", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 749, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 29, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 742, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 23, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 744, - "name": "identity_data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 25, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 745, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 746, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 747, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 750, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 30, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 748, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 28, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 751, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 31, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 743, - "name": "user_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 24, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 749, - 742, - 744, - 750, - 748, - 751, - 743 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 22, - "character": 17 - } - ] - }, - { - "id": 796, - "name": "VerifyEmailOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 797, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 154, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 798, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 155, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 799, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 156, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 800, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 157, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 802, - "qualifiedName": "EmailOTPType", - "package": "@supabase/gotrue-js", - "name": "EmailOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 797, - 798, - 799, - 800 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 153, - "character": 17 - } - ] - }, - { - "id": 791, - "name": "VerifyMobileOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 792, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 148, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 793, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 149, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 794, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 150, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 795, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 151, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 801, - "qualifiedName": "MobileOTPType", - "package": "@supabase/gotrue-js", - "name": "MobileOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 792, - 793, - 794, - 795 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 147, - "character": 17 - } - ] - }, - { - "id": 736, - "name": "AuthChangeEvent", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 2, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "PASSWORD_RECOVERY" - }, - { - "type": "literal", - "value": "SIGNED_IN" - }, - { - "type": "literal", - "value": "SIGNED_OUT" - }, - { - "type": "literal", - "value": "TOKEN_REFRESHED" - }, - { - "type": "literal", - "value": "USER_UPDATED" - }, - { - "type": "literal", - "value": "USER_DELETED" - } - ] - } - }, - { - "id": 802, - "name": "EmailOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 160, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "invite" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "email_change" - } - ] - } - }, - { - "id": 801, - "name": "MobileOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 159, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "sms" - }, - { - "type": "literal", - "value": "phone_change" - } - ] - } - }, - { - "id": 208, - "name": "PostgrestError", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Error format", - "text": "{@link https://postgrest.org/en/stable/api.html?highlight=options#errors-and-http-status-codes}\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 7, - "character": 20 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 209, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 213, - "name": "code", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 11, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 211, - "name": "details", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 9, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 212, - "name": "hint", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 10, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 210, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 8, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 213, - 211, - 212, - 210 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 7, - "character": 37 - } - ] - } - } - }, - { - "id": 206, - "name": "PostgrestMaybeSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 41, - "character": 20 - } - ], - "typeParameter": [ - { - "id": 207, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - } - } - ], - "type": { - "type": "reference", - "id": 204, - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reference", - "id": 207, - "qualifiedName": "T", - "package": "@supabase/postgrest-js", - "name": "T" - }, - { - "type": "literal", - "value": null - } - ] - } - ], - "qualifiedName": "PostgrestSingleResponse", - "package": "@supabase/postgrest-js", - "name": "PostgrestSingleResponse" - } - }, - { - "id": 202, - "name": "PostgrestResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 34, - "character": 20 - } - ], - "typeParameter": [ - { - "id": 203, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 203, - "qualifiedName": "T", - "package": "@supabase/postgrest-js", - "name": "T" - } - ], - "qualifiedName": "PostgrestResponseSuccess", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponseSuccess" - }, - { - "type": "reference", - "qualifiedName": "PostgrestResponseFailure", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponseFailure" - } - ] - } - }, - { - "id": 204, - "name": "PostgrestSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 40, - "character": 20 - } - ], - "typeParameter": [ - { - "id": 205, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 205, - "qualifiedName": "T", - "package": "@supabase/postgrest-js", - "name": "T" - } - ], - "qualifiedName": "PostgrestSingleResponseSuccess", - "package": "@supabase/postgrest-js", - "name": "PostgrestSingleResponseSuccess" - }, - { - "type": "reference", - "qualifiedName": "PostgrestResponseFailure", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponseFailure" - } - ] - } - }, - { - "id": 735, - "name": "Provider", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 1, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "apple" - }, - { - "type": "literal", - "value": "azure" - }, - { - "type": "literal", - "value": "bitbucket" - }, - { - "type": "literal", - "value": "discord" - }, - { - "type": "literal", - "value": "facebook" - }, - { - "type": "literal", - "value": "github" - }, - { - "type": "literal", - "value": "gitlab" - }, - { - "type": "literal", - "value": "google" - }, - { - "type": "literal", - "value": "keycloak" - }, - { - "type": "literal", - "value": "linkedin" - }, - { - "type": "literal", - "value": "notion" - }, - { - "type": "literal", - "value": "slack" - }, - { - "type": "literal", - "value": "spotify" - }, - { - "type": "literal", - "value": "twitch" - }, - { - "type": "literal", - "value": "twitter" - }, - { - "type": "literal", - "value": "workos" - } - ] - } - }, - { - "id": 909, - "name": "RealtimeClientOptions", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 5, - "character": 20 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 910, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 917, - "name": "decode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 12, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 916, - "name": "encode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 11, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 919, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 14, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 920, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 14, - "character": 14 - } - ], - "indexSignature": { - "id": 921, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 922, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 913, - "name": "heartbeatIntervalMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 8, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 915, - "name": "logger", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 10, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 914, - "name": "longpollerTimeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 9, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 923, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 17, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 924, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 17, - "character": 13 - } - ], - "indexSignature": { - "id": 925, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 926, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 918, - "name": "reconnectAfterMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 13, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 912, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 7, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 911, - "name": "transport", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 6, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "WebSocket", - "package": "typescript", - "name": "WebSocket" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 917, - 916, - 919, - 913, - 915, - 914, - 923, - 918, - 912, - 911 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 5, - "character": 30 - } - ] - } - } - }, - { - "id": 809, - "name": "SupportedStorage", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 173, - "character": 20 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - } - }, - { - "id": 790, - "name": "VerifyOTPParams", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 146, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 791, - "qualifiedName": "VerifyMobileOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyMobileOTPParams" - }, - { - "type": "reference", - "id": 796, - "qualifiedName": "VerifyEmailOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyEmailOTPParams" - } - ] - } - }, - { - "id": 2, - "name": "createClient", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 16, - "character": 6 - } - ], - "signatures": [ - { - "id": 3, - "name": "createClient", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new Supabase Client." - }, - "parameters": [ - { - "id": 4, - "name": "supabaseUrl", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 5, - "name": "supabaseKey", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 6, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 176, - "name": "SupabaseClientOptions" - } - } - ], - "type": { - "type": "reference", - "id": 214, - "name": "default" - } - } - ] - } - ], - "groups": [ - { - "title": "References", - "kind": 16777216, - "children": [ - 740, - 305, - 306, - 752 - ] - }, - { - "title": "Namespaces", - "kind": 4, - "children": [ - 1014 - ] - }, - { - "title": "Classes", - "kind": 128, - "children": [ - 343, - 601, - 810, - 927, - 214 - ] - }, - { - "title": "Interfaces", - "kind": 256, - "children": [ - 759, - 737, - 335, - 307, - 777, - 803, - 769, - 753, - 783, - 741, - 796, - 791 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 736, - 802, - 801, - 208, - 206, - 202, - 204, - 735, - 909, - 809, - 790 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [ - 2 - ] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 7, - "name": "lib/SupabaseQueryBuilder", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 8, - "name": "SupabaseQueryBuilder", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 9, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 13, - "character": 2 - } - ], - "signatures": [ - { - "id": 10, - "name": "new SupabaseQueryBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "typeParameter": [ - { - "id": 11, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "parameters": [ - { - "id": 12, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 13, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 14, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 19, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 27, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 20, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 21, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 22, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 23, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 15, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 23, - "character": 6 - } - ], - "type": { - "type": "reference", - "id": 171, - "name": "GenericObject" - } - }, - { - "id": 17, - "name": "realtime", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 25, - "character": 6 - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 16, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 24, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 24, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 28, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 18, - "name": "table", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 26, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 19, - 15, - 17, - 16, - 24, - 18 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 8, - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "name": "SupabaseQueryBuilder" - }, - "overwrites": { - "type": "reference", - "name": "PostgrestQueryBuilder.constructor" - } - } - ], - "overwrites": { - "type": "reference", - "name": "PostgrestQueryBuilder.constructor" - } - }, - { - "id": 27, - "name": "_headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 9, - "character": 10 - } - ], - "type": { - "type": "reference", - "id": 171, - "name": "GenericObject" - } - }, - { - "id": 26, - "name": "_realtime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 8, - "character": 10 - } - ], - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 28, - "name": "_schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 10, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 25, - "name": "_subscription", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 7, - "character": 10 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 114, - "name": "SupabaseRealtimeClient" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 29, - "name": "_table", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 11, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 96, - "name": "allowEmpty", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 53, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.allowEmpty" - } - }, - { - "id": 88, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 49, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - } - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.body" - } - }, - { - "id": 91, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 52, - "character": 14 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 92, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 93, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 94, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 95, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.fetch" - } - }, - { - "id": 83, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 45, - "character": 14 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 84, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 85, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 86, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.headers" - } - }, - { - "id": 81, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 43, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "DELETE" - }, - { - "type": "literal", - "value": "GET" - }, - { - "type": "literal", - "value": "HEAD" - }, - { - "type": "literal", - "value": "POST" - }, - { - "type": "literal", - "value": "PATCH" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.method" - } - }, - { - "id": 87, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 48, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.schema" - } - }, - { - "id": 89, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 50, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.shouldThrowOnError" - } - }, - { - "id": 90, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 51, - "character": 14 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AbortSignal", - "package": "typescript", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.signal" - } - }, - { - "id": 82, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 44, - "character": 14 - } - ], - "type": { - "type": "reference", - "qualifiedName": "URL", - "package": "typescript", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.url" - } - }, - { - "id": 75, - "name": "delete", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 75, - "character": 4 - } - ], - "signatures": [ - { - "id": 76, - "name": "delete", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Performs a DELETE on the table." - }, - "parameters": [ - { - "id": 77, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 78, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 80, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 77, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 79, - "name": "returning", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 76, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "minimal" - }, - { - "type": "literal", - "value": "representation" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 80, - 79 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.delete" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.delete" - } - }, - { - "id": 44, - "name": "insert", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 30, - "character": 4 - } - ], - "signatures": [ - { - "id": 45, - "name": "insert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Performs an INSERT into the table." - }, - "parameters": [ - { - "id": 46, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The values to insert." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - } - } - ] - } - }, - { - "id": 47, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 48, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 50, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 32, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 49, - "name": "returning", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 31, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "minimal" - }, - { - "type": "literal", - "value": "representation" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 50, - 49 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.insert" - } - }, - { - "id": 51, - "name": "insert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `upsert()` instead.\n" - } - ] - }, - "parameters": [ - { - "id": 52, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - } - } - ] - } - }, - { - "id": 53, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 54, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 58, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 41, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 56, - "name": "onConflict", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 39, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 57, - "name": "returning", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 40, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "minimal" - }, - { - "type": "literal", - "value": "representation" - } - ] - } - }, - { - "id": 55, - "name": "upsert", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 38, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 58, - 56, - 57, - 55 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.insert" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.insert" - } - }, - { - "id": 30, - "name": "on", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 44, - "character": 2 - } - ], - "signatures": [ - { - "id": 31, - "name": "on", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Subscribe to realtime changes in your database." - }, - "parameters": [ - { - "id": 32, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The database event which you would like to receive updates for, or you can use the special wildcard `*` to listen to all changes." - }, - "type": { - "type": "reference", - "id": 199, - "name": "SupabaseEventTypes" - } - }, - { - "id": 33, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A callback that will handle the payload that is sent whenever your database changes.\n" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 34, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 35, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 36, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 189, - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "name": "SupabaseRealtimePayload" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 114, - "name": "SupabaseRealtimeClient" - } - } - ] - }, - { - "id": 37, - "name": "select", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 19, - "character": 4 - } - ], - "signatures": [ - { - "id": 38, - "name": "select", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Performs vertical filtering with SELECT." - }, - "parameters": [ - { - "id": 39, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The columns to retrieve, separated by commas." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 40, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 41, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 43, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 21, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 42, - "name": "head", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 20, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 43, - 42 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.select" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.select" - } - }, - { - "id": 100, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 62, - "character": 4 - } - ], - "signatures": [ - { - "id": 101, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "typeParameter": [ - { - "id": 102, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - }, - "default": { - "type": "reference", - "id": 202, - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestResponse", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponse" - } - }, - { - "id": 103, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - }, - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "parameters": [ - { - "id": 104, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 105, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 106, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 107, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 202, - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestResponse", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 102, - "qualifiedName": "TResult1", - "package": "@supabase/postgrest-js", - "name": "TResult1" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 102, - "qualifiedName": "TResult1", - "package": "@supabase/postgrest-js", - "name": "TResult1" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - ] - } - } - ] - } - } - ] - } - }, - { - "id": 108, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 109, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 110, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 111, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 103, - "qualifiedName": "TResult2", - "package": "@supabase/postgrest-js", - "name": "TResult2" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 103, - "qualifiedName": "TResult2", - "package": "@supabase/postgrest-js", - "name": "TResult2" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - ] - } - } - ] - } - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reference", - "id": 102, - "qualifiedName": "TResult1", - "package": "@supabase/postgrest-js", - "name": "TResult1" - }, - { - "type": "reference", - "id": 103, - "qualifiedName": "TResult2", - "package": "@supabase/postgrest-js", - "name": "TResult2" - } - ] - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.then" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.then" - } - }, - { - "id": 97, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/types.d.ts", - "line": 61, - "character": 4 - } - ], - "signatures": [ - { - "id": 98, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n" - }, - "parameters": [ - { - "id": 99, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "type": { - "type": "reference", - "id": 8, - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "name": "SupabaseQueryBuilder" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.throwOnError" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.throwOnError" - } - }, - { - "id": 68, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 65, - "character": 4 - } - ], - "signatures": [ - { - "id": 69, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Performs an UPDATE on the table." - }, - "parameters": [ - { - "id": 70, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The values to update." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - } - }, - { - "id": 71, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 72, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 74, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 67, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 73, - "name": "returning", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 66, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "minimal" - }, - { - "type": "literal", - "value": "representation" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 74, - 73 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.update" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.update" - } - }, - { - "id": 59, - "name": "upsert", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 52, - "character": 4 - } - ], - "signatures": [ - { - "id": 60, - "name": "upsert", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Performs an UPSERT into the table." - }, - "parameters": [ - { - "id": 61, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The values to insert." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "Partial", - "package": "typescript", - "name": "Partial" - } - } - ] - } - }, - { - "id": 62, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 63, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 66, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 55, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 67, - "name": "ignoreDuplicates", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 56, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 64, - "name": "onConflict", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 53, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 65, - "name": "returning", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/lib/PostgrestQueryBuilder.d.ts", - "line": 54, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "minimal" - }, - { - "type": "literal", - "value": "representation" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 66, - 67, - 64, - 65 - ] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.upsert" - } - } - ], - "inheritedFrom": { - "type": "reference", - "name": "PostgrestQueryBuilder.upsert" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 9 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 27, - 26, - 28, - 25, - 29, - 96, - 88, - 91, - 83, - 81, - 87, - 89, - 90, - 82 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 75, - 44, - 30, - 37, - 100, - 97, - 68, - 59 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 6, - "character": 13 - } - ], - "typeParameter": [ - { - "id": 112, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "extendedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 11, - "name": "T" - } - ], - "qualifiedName": "PostgrestQueryBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 8 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/SupabaseQueryBuilder.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 113, - "name": "lib/SupabaseRealtimeClient", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 114, - "name": "SupabaseRealtimeClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 115, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 7, - "character": 2 - } - ], - "signatures": [ - { - "id": 116, - "name": "new SupabaseRealtimeClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 117, - "name": "socket", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 810, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 118, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 171, - "name": "GenericObject" - } - }, - { - "id": 119, - "name": "schema", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 120, - "name": "tableName", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 114, - "name": "SupabaseRealtimeClient" - } - } - ] - }, - { - "id": 121, - "name": "subscription", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 5, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 122, - "name": "getPayloadRecords", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 19, - "character": 10 - } - ], - "signatures": [ - { - "id": 123, - "name": "getPayloadRecords", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 124, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 125, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 126, - "name": "new", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 127, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - }, - "defaultValue": "{}" - }, - { - "id": 128, - "name": "old", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 129, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - }, - "defaultValue": "{}" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 126, - 128 - ] - } - ] - } - } - } - ] - }, - { - "id": 130, - "name": "on", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 42, - "character": 2 - } - ], - "signatures": [ - { - "id": 131, - "name": "on", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "The event you want to listen to." - }, - "parameters": [ - { - "id": 132, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The event" - }, - "type": { - "type": "reference", - "id": 199, - "name": "SupabaseEventTypes" - } - }, - { - "id": 133, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "A callback function that is called whenever the event occurs.\n" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 134, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 135, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 136, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 189, - "typeArguments": [ - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "SupabaseRealtimePayload" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 114, - "name": "SupabaseRealtimeClient" - } - } - ] - }, - { - "id": 137, - "name": "subscribe", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 64, - "character": 2 - } - ], - "signatures": [ - { - "id": 138, - "name": "subscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Enables the subscription." - }, - "parameters": [ - { - "id": 139, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - }, - "defaultValue": "..." - } - ], - "type": { - "type": "reference", - "id": 927, - "qualifiedName": "RealtimeSubscription", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [ - 115 - ] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 121 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 122, - 130, - 137 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 4, - "character": 13 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [ - 114 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeClient.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 140, - "name": "lib/constants", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 141, - "name": "DEFAULT_HEADERS", - "kind": 32, - "kindString": "Variable", - "flags": { - "isConst": true - }, - "sources": [ - { - "fileName": "src/lib/constants.ts", - "line": 3, - "character": 13 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 142, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 143, - "name": "X-Client-Info", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "..." - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 143 - ] - } - ] - } - }, - "defaultValue": "..." - }, - { - "id": 144, - "name": "STORAGE_KEY", - "kind": 32, - "kindString": "Variable", - "flags": { - "isConst": true - }, - "sources": [ - { - "fileName": "src/lib/constants.ts", - "line": 4, - "character": 13 - } - ], - "type": { - "type": "literal", - "value": "supabase.auth.token" - }, - "defaultValue": "'supabase.auth.token'" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 141, - 144 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/constants.ts", - "line": 2, - "character": 0 - } - ] - }, - { - "id": 145, - "name": "lib/helpers", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 151, - "name": "isBrowser", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 15, - "character": 13 - } - ], - "signatures": [ - { - "id": 152, - "name": "isBrowser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 148, - "name": "stripTrailingSlash", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 11, - "character": 16 - } - ], - "signatures": [ - { - "id": 149, - "name": "stripTrailingSlash", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 150, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 146, - "name": "uuid", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 3, - "character": 16 - } - ], - "signatures": [ - { - "id": 147, - "name": "uuid", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - ], - "groups": [ - { - "title": "Functions", - "kind": 64, - "children": [ - 151, - 148, - 146 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 3, - "character": 0 - } - ] - }, - { - "id": 153, - "name": "lib/types", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 154, - "name": "SupabaseAuthClientOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 161, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 43, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.autoRefreshToken" - } - }, - { - "id": 165, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 47, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 777, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.cookieOptions" - } - }, - { - "id": 160, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 42, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.detectSessionInUrl" - } - }, - { - "id": 166, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 48, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 167, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 168, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 169, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 170, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.fetch" - } - }, - { - "id": 156, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 39, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 157, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 158, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 159, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.headers" - } - }, - { - "id": 163, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 45, - "character": 8 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.localStorage" - } - }, - { - "id": 164, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 46, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.multiTab" - } - }, - { - "id": 162, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 44, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.persistSession" - } - }, - { - "id": 155, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 38, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.url" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 161, - 165, - 160, - 166, - 156, - 163, - 164, - 162, - 155 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 6, - "character": 17 - } - ], - "extendedTypes": [ - { - "type": "reference", - "name": "GoTrueClientOptions" - } - ] - }, - { - "id": 175, - "name": "Fetch", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 10, - "character": 12 - } - ], - "type": { - "type": "query", - "queryType": { - "type": "reference", - "id": 20, - "qualifiedName": "fetch", - "package": "typescript", - "name": "fetch" - } - } - }, - { - "id": 171, - "name": "GenericObject", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 8, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 172, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 8, - "character": 28 - } - ], - "indexSignature": { - "id": 173, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 174, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 176, - "name": "SupabaseClientOptions", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 12, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 177, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 180, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Automatically refreshes the token for logged in users." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 24, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 188, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Options passed to the gotrue-js instance" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 60, - "character": 2 - } - ], - "type": { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "cookieOptions" - }, - "objectType": { - "type": "reference", - "id": 154, - "name": "SupabaseAuthClientOptions" - } - } - }, - { - "id": 183, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Detect a session from the URL. Used for OAuth login callbacks." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 36, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 186, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom `fetch` implementation." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 50, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 175, - "name": "Fetch" - } - }, - { - "id": 179, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Optional headers for initializing the client." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 20, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 171, - "name": "GenericObject" - } - }, - { - "id": 184, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A storage provider. Used to store the logged in session." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 40, - "character": 2 - } - ], - "type": { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "localStorage" - }, - "objectType": { - "type": "reference", - "id": 154, - "name": "SupabaseAuthClientOptions" - } - } - }, - { - "id": 181, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Allows to enable/disable multi-tab/window events" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 28, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 182, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Whether to persist a logged in session to storage." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 32, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 185, - "name": "realtime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Options passed to the realtime-js instance" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 45, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 909, - "qualifiedName": "Options", - "package": "@supabase/realtime-js", - "name": "RealtimeClientOptions" - } - }, - { - "id": 178, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The Postgres schema which your tables belong to. Must be on the list of exposed schemas in Supabase. Defaults to 'public'." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 16, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 187, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Throw errors, instead of returning them." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 55, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 180, - 188, - 183, - 186, - 179, - 184, - 181, - 182, - 185, - 178, - 187 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 12, - "character": 36 - } - ] - } - } - }, - { - "id": 199, - "name": "SupabaseEventTypes", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 75, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "INSERT" - }, - { - "type": "literal", - "value": "UPDATE" - }, - { - "type": "literal", - "value": "DELETE" - }, - { - "type": "literal", - "value": "*" - } - ] - } - }, - { - "id": 189, - "name": "SupabaseRealtimePayload", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 63, - "character": 12 - } - ], - "typeParameter": [ - { - "id": 198, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 190, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 191, - "name": "commit_timestamp", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 64, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 197, - "name": "errors", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 72, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - }, - { - "type": "literal", - "value": null - } - ] - } - }, - { - "id": 192, - "name": "eventType", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 65, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "INSERT" - }, - { - "type": "literal", - "value": "UPDATE" - }, - { - "type": "literal", - "value": "DELETE" - } - ] - } - }, - { - "id": 195, - "name": "new", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "The new record. Present for 'INSERT' and 'UPDATE' events." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 69, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 198, - "name": "T" - } - }, - { - "id": 196, - "name": "old", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "The previous record. Present for 'UPDATE' and 'DELETE' events." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 71, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 198, - "name": "T" - } - }, - { - "id": 193, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 66, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 194, - "name": "table", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 67, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 191, - 197, - 192, - 195, - 196, - 193, - 194 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 63, - "character": 41 - } - ] - } - } - } - ], - "groups": [ - { - "title": "Interfaces", - "kind": 256, - "children": [ - 154 - ] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 175, - 171, - 176, - 199, - 189 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 200, - "name": "lib/version", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 201, - "name": "version", - "kind": 32, - "kindString": "Variable", - "flags": { - "isConst": true - }, - "sources": [ - { - "fileName": "src/lib/version.ts", - "line": 1, - "character": 13 - } - ], - "type": { - "type": "literal", - "value": "0.0.0-automated" - }, - "defaultValue": "'0.0.0-automated'" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [ - 201 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/version.ts", - "line": 1, - "character": 0 - } - ] - } - ], - "groups": [ - { - "title": "Modules", - "kind": 2, - "children": [ - 1, - 7, - 113, - 140, - 145, - 153, - 200 - ] - } - ] -} \ No newline at end of file diff --git a/web/spec/tsdoc_v2/combined.json b/web/spec/tsdoc_v2/combined.json deleted file mode 100644 index 6a66796c40f..00000000000 --- a/web/spec/tsdoc_v2/combined.json +++ /dev/null @@ -1,70554 +0,0 @@ -{ - "name": "Combined Specs", - "children": [ - { - "id": 0, - "name": "@supabase/supabase-js", - "kind": 1, - "flags": {}, - "originalName": "", - "children": [ - { - "id": 1, - "name": "index", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 823, - "name": "Session", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "target": 203 - }, - { - "id": 335, - "name": "SupabaseClientOptions", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 14, - "character": 14 - } - ], - "target": 133 - }, - { - "id": 336, - "name": "SupabaseRealtimePayload", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 14, - "character": 37 - } - ], - "target": 150 - }, - { - "id": 835, - "name": "User", - "kind": 16777216, - "kindString": "Reference", - "flags": {}, - "target": 175 - }, - { - "id": 1194, - "name": "Transformers", - "kind": 4, - "kindString": "Namespace", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 1195, - "name": "PostgresTypes", - "kind": 8, - "kindString": "Enumeration", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Helpers to convert the change Payload into native JS types." - }, - "children": [ - { - "id": 1196, - "name": "abstime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 5, - "character": 4 - } - ], - "defaultValue": "\"abstime\"" - }, - { - "id": 1197, - "name": "bool", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 6, - "character": 4 - } - ], - "defaultValue": "\"bool\"" - }, - { - "id": 1198, - "name": "date", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 7, - "character": 4 - } - ], - "defaultValue": "\"date\"" - }, - { - "id": 1199, - "name": "daterange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 8, - "character": 4 - } - ], - "defaultValue": "\"daterange\"" - }, - { - "id": 1200, - "name": "float4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 9, - "character": 4 - } - ], - "defaultValue": "\"float4\"" - }, - { - "id": 1201, - "name": "float8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 10, - "character": 4 - } - ], - "defaultValue": "\"float8\"" - }, - { - "id": 1202, - "name": "int2", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 11, - "character": 4 - } - ], - "defaultValue": "\"int2\"" - }, - { - "id": 1203, - "name": "int4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 12, - "character": 4 - } - ], - "defaultValue": "\"int4\"" - }, - { - "id": 1204, - "name": "int4range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 13, - "character": 4 - } - ], - "defaultValue": "\"int4range\"" - }, - { - "id": 1205, - "name": "int8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 14, - "character": 4 - } - ], - "defaultValue": "\"int8\"" - }, - { - "id": 1206, - "name": "int8range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 15, - "character": 4 - } - ], - "defaultValue": "\"int8range\"" - }, - { - "id": 1207, - "name": "json", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 16, - "character": 4 - } - ], - "defaultValue": "\"json\"" - }, - { - "id": 1208, - "name": "jsonb", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 17, - "character": 4 - } - ], - "defaultValue": "\"jsonb\"" - }, - { - "id": 1209, - "name": "money", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 18, - "character": 4 - } - ], - "defaultValue": "\"money\"" - }, - { - "id": 1210, - "name": "numeric", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 19, - "character": 4 - } - ], - "defaultValue": "\"numeric\"" - }, - { - "id": 1211, - "name": "oid", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 20, - "character": 4 - } - ], - "defaultValue": "\"oid\"" - }, - { - "id": 1212, - "name": "reltime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 21, - "character": 4 - } - ], - "defaultValue": "\"reltime\"" - }, - { - "id": 1213, - "name": "text", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 22, - "character": 4 - } - ], - "defaultValue": "\"text\"" - }, - { - "id": 1214, - "name": "time", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 23, - "character": 4 - } - ], - "defaultValue": "\"time\"" - }, - { - "id": 1215, - "name": "timestamp", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 24, - "character": 4 - } - ], - "defaultValue": "\"timestamp\"" - }, - { - "id": 1216, - "name": "timestamptz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 25, - "character": 4 - } - ], - "defaultValue": "\"timestamptz\"" - }, - { - "id": 1217, - "name": "timetz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 26, - "character": 4 - } - ], - "defaultValue": "\"timetz\"" - }, - { - "id": 1218, - "name": "tsrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 27, - "character": 4 - } - ], - "defaultValue": "\"tsrange\"" - }, - { - "id": 1219, - "name": "tstzrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 28, - "character": 4 - } - ], - "defaultValue": "\"tstzrange\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, - 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 4, - "character": 20 - } - ] - }, - { - "id": 1233, - "name": "convertCell", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 84, - "character": 21 - } - ], - "signatures": [ - { - "id": 1234, - "name": "convertCell", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "If the value of the cell is `null`, returns null.\nOtherwise converts the string value to the correct type.", - "tags": [ - { - "tag": "example", - "text": "convertCell('bool', 't')\n//=> true" - }, - { - "tag": "example", - "text": "convertCell('int8', '10')\n//=> 10" - }, - { - "tag": "example", - "text": "convertCell('_int4', '{1,2,3,4}')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 1235, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A postgres column type" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1236, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1220, - "name": "convertChangeData", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 53, - "character": 21 - } - ], - "signatures": [ - { - "id": 1221, - "name": "convertChangeData", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Takes an array of columns and an object of string values then converts each string value\nto its mapped type.", - "tags": [ - { - "tag": "example", - "text": "convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n//=>{ first_name: 'Paul', age: 33 }\n" - } - ] - }, - "parameters": [ - { - "id": 1222, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Columns", - "package": "@supabase/realtime-js", - "name": "Columns" - } - }, - { - "id": 1223, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": {}, - "type": { - "type": "reference", - "qualifiedName": "Record", - "package": "@supabase/realtime-js", - "name": "Record" - } - }, - { - "id": 1224, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The map of various options that can be applied to the mapper" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 1225, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 1226, - "name": "skipTypes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The array of types that should not be converted\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 54, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [1226] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Record", - "package": "@supabase/realtime-js", - "name": "Record" - } - } - ] - }, - { - "id": 1227, - "name": "convertColumn", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 70, - "character": 21 - } - ], - "signatures": [ - { - "id": 1228, - "name": "convertColumn", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Converts the value of an individual column.", - "returns": "Useless information\n", - "tags": [ - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n//=> 33" - }, - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n//=> \"33\"\n" - } - ] - }, - "parameters": [ - { - "id": 1229, - "name": "columnName", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The column that you want to convert" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1230, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Columns", - "package": "@supabase/realtime-js", - "name": "Columns" - } - }, - { - "id": 1231, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The map of string values" - }, - "type": { - "type": "reference", - "qualifiedName": "Record", - "package": "@supabase/realtime-js", - "name": "Record" - } - }, - { - "id": 1232, - "name": "skipTypes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "An array of types that should not be converted" - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1246, - "name": "toArray", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 98, - "character": 21 - } - ], - "signatures": [ - { - "id": 1247, - "name": "toArray", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Converts a Postgres Array into a native JS array", - "tags": [ - { - "tag": "example", - "text": "toArray('{}', 'int4')\n//=> []" - }, - { - "tag": "example", - "text": "toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n//=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']" - }, - { - "tag": "example", - "text": "toArray([1,2,3,4], 'int4')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 1248, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - }, - { - "id": 1249, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1237, - "name": "toBoolean", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 85, - "character": 21 - } - ], - "signatures": [ - { - "id": 1238, - "name": "toBoolean", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1239, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1243, - "name": "toJson", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 87, - "character": 21 - } - ], - "signatures": [ - { - "id": 1244, - "name": "toJson", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1245, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1240, - "name": "toNumber", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 86, - "character": 21 - } - ], - "signatures": [ - { - "id": 1241, - "name": "toNumber", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1242, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - }, - { - "id": 1250, - "name": "toTimestampString", - "kind": 64, - "kindString": "Function", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 106, - "character": 21 - } - ], - "signatures": [ - { - "id": 1251, - "name": "toTimestampString", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\nSee https://github.com/supabase/supabase/issues/18", - "tags": [ - { - "tag": "example", - "text": "toTimestampString('2019-09-10 00:00:00')\n//=> '2019-09-10T00:00:00'\n" - } - ] - }, - "parameters": [ - { - "id": 1252, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "RecordValue", - "package": "@supabase/realtime-js", - "name": "RecordValue" - } - } - ] - } - ], - "groups": [ - { - "title": "Enumerations", - "kind": 8, - "children": [1195] - }, - { - "title": "Functions", - "kind": 64, - "children": [1233, 1220, 1227, 1246, 1237, 1243, 1240, 1250] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/lib/transformers.d.ts", - "line": 4, - "character": 0 - } - ] - }, - { - "id": 337, - "name": "GoTrueApi", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 338, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 11, - "character": 4 - } - ], - "signatures": [ - { - "id": 339, - "name": "new GoTrueApi", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 340, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 341, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 347, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 16, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 860, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - } - }, - { - "id": 348, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 17, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 349, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 350, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 351, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 352, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 343, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 13, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 344, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 345, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 346, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 342, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 12, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [347, 348, 343, 342] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 337, - "qualifiedName": "GoTrueApi", - "package": "@supabase/gotrue-js", - "name": "default" - } - } - ] - }, - { - "id": 364, - "name": "_createRequestHeaders", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Create a temporary object with all configured headers and\nadds the Authorization token to be used on request methods", - "tags": [ - { - "tag": "param", - "text": "A valid, logged-in JWT.\n", - "param": "jwt" - } - ] - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 24, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 365, - "name": "cookieName", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 25, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 358, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 9, - "character": 14 - } - ], - "type": { - "type": "reference", - "id": 860, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - } - }, - { - "id": 359, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 10, - "character": 14 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 360, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 361, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 362, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 363, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 354, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 6, - "character": 14 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 355, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 356, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 357, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 353, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 5, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 581, - "name": "createUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 298, - "character": 4 - } - ], - "signatures": [ - { - "id": 582, - "name": "createUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Creates a new user.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 583, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The data you want to create the user with.\n" - }, - "type": { - "type": "reference", - "id": 842, - "qualifiedName": "AdminUserAttributes", - "package": "@supabase/gotrue-js", - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 584, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 586, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 300, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - }, - { - "id": 587, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 301, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 585, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 299, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [586, 587, 585] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 588, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 590, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 304, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 591, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 305, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 589, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 303, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [590, 591, 589] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 552, - "name": "deleteAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 259, - "character": 4 - } - ], - "signatures": [ - { - "id": 553, - "name": "deleteAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Deletes the Auth Cookies and redirects to the" - }, - "parameters": [ - { - "id": 554, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 555, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 556, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Optionally specify a `redirectTo` URL in the options.\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 557, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 558, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 260, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [558] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - }, - { - "id": 633, - "name": "deleteUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 369, - "character": 4 - } - ], - "signatures": [ - { - "id": 634, - "name": "deleteUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Delete a user. Requires a `service_role` key.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "parameters": [ - { - "id": 635, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user uid you want to remove.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 636, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 638, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 371, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 637, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 370, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [638, 637] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 639, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 641, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 374, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 640, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 373, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [641, 640] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 563, - "name": "generateLink", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 277, - "character": 4 - } - ], - "signatures": [ - { - "id": 564, - "name": "generateLink", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Generates links to be sent via email or other." - }, - "parameters": [ - { - "id": 565, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The link type (\"signup\" or \"magiclink\" or \"recovery\" or \"invite\")." - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "invite" - } - ] - } - }, - { - "id": 566, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's email." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 567, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 568, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 570, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 279, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 569, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 278, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 571, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 280, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [570, 569, 571] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 572, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 573, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 282, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - }, - { - "id": 574, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 283, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [573, 574] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 575, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 576, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 285, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - }, - { - "id": 577, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 286, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [576, 577] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 578, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 579, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 288, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 580, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 289, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [579, 580] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 559, - "name": "getAuthCookieString", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 268, - "character": 4 - } - ], - "signatures": [ - { - "id": 560, - "name": "getAuthCookieString", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Helper method to generate the Auth Cookie string for you in case you can't use `setAuthCookie`.", - "returns": "The Cookie string that needs to be set as the value for the `Set-Cookie` header.\n" - }, - "parameters": [ - { - "id": 561, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 562, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The response object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ] - }, - { - "id": 366, - "name": "getUrlForProvider", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 32, - "character": 4 - } - ], - "signatures": [ - { - "id": 367, - "name": "getUrlForProvider", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Generates the relevant login URL for a third-party provider." - }, - "parameters": [ - { - "id": 368, - "name": "provider", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "One of the providers supported by GoTrue." - }, - "type": { - "type": "reference", - "id": 803, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - }, - { - "id": 369, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 370, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 373, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 35, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 374, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 375, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 376, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 371, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 33, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 372, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 34, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [373, 371, 372] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 642, - "name": "getUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 385, - "character": 4 - } - ], - "signatures": [ - { - "id": 643, - "name": "getUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Gets the current user details.", - "text": "This method is called by the GoTrueClient `update` where\nthe jwt is set to this.currentSession.access_token\nand therefore, acts like getting the currently authenticated user\n" - }, - "parameters": [ - { - "id": 644, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid, logged-in JWT. Typically, the access_token for the currentSession\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 645, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 647, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 387, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 646, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 386, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [647, 646] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 648, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 650, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 390, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 649, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 389, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [650, 649] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 609, - "name": "getUserByCookie", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 337, - "character": 4 - } - ], - "signatures": [ - { - "id": 610, - "name": "getUserByCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Get user by reading the cookie from the request.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 611, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 612, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 613, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 616, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 340, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 617, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 341, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 614, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 338, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 615, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 339, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [616, 617, 614, 615] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 618, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 621, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 345, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - }, - { - "id": 622, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 346, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 619, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 343, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 620, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 344, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [621, 622, 619, 620] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 600, - "name": "getUserById", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 326, - "character": 4 - } - ], - "signatures": [ - { - "id": 601, - "name": "getUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Get user by id." - }, - "parameters": [ - { - "id": 602, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's unique identifier\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 603, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 605, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 328, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 604, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 327, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [605, 604] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 606, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 608, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 331, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 607, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 330, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [608, 607] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 512, - "name": "inviteUserByEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 210, - "character": 4 - } - ], - "signatures": [ - { - "id": 513, - "name": "inviteUserByEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends an invite link to an email address." - }, - "parameters": [ - { - "id": 514, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 515, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 516, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 518, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 212, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 517, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 211, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [518, 517] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 519, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 521, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 215, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 520, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 214, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [521, 520] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 522, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 524, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 218, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 523, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 217, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [524, 523] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 592, - "name": "listUsers", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 312, - "character": 4 - } - ], - "signatures": [ - { - "id": 593, - "name": "listUsers", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Get a list of users.", - "text": "This function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 594, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 596, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 314, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 595, - "name": "users", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 313, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [596, 595] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 597, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 599, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 317, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 598, - "name": "users", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 316, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [599, 598] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 539, - "name": "refreshAccessToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 239, - "character": 4 - } - ], - "signatures": [ - { - "id": 540, - "name": "refreshAccessToken", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Generates a new JWT." - }, - "parameters": [ - { - "id": 541, - "name": "refreshToken", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid refresh token that was returned on login.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 542, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 544, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 241, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 543, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 240, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [544, 543] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 545, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 547, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 244, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 546, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 243, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [547, 546] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 525, - "name": "resetPasswordForEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 225, - "character": 4 - } - ], - "signatures": [ - { - "id": 526, - "name": "resetPasswordForEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends a reset request to an email address." - }, - "parameters": [ - { - "id": 527, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 528, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 529, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 531, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 227, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 530, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 226, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [531, 530] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 532, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 533, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 229, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 534, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - } - } - } - }, - { - "id": 535, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 230, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [533, 535] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 536, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 537, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 232, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 538, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 233, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [537, 538] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 447, - "name": "sendMagicLinkEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 133, - "character": 4 - } - ], - "signatures": [ - { - "id": 448, - "name": "sendMagicLinkEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends a magic login link to an email address." - }, - "parameters": [ - { - "id": 449, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 450, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 451, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 454, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 136, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 453, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 135, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 452, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 134, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [454, 453, 452] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 455, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 456, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 138, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 457, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - } - } - } - }, - { - "id": 458, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 139, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [456, 458] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 459, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 460, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 141, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 461, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 142, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [460, 461] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 462, - "name": "sendMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 149, - "character": 4 - } - ], - "signatures": [ - { - "id": 463, - "name": "sendMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sends a mobile OTP via SMS. Will register the account if it doesn't already exist" - }, - "parameters": [ - { - "id": 464, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 465, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 466, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 468, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 151, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 467, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 150, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [468, 467] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 469, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 470, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 153, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 471, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - } - } - } - }, - { - "id": 472, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 154, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [470, 472] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 473, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 474, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 156, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 475, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 157, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [474, 475] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 548, - "name": "setAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 252, - "character": 4 - } - ], - "signatures": [ - { - "id": 549, - "name": "setAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Set/delete the auth cookie based on the AuthChangeEvent.\nWorks for Next.js & Express (requires cookie-parser middleware)." - }, - "parameters": [ - { - "id": 550, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The request object." - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 551, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The response object.\n" - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 395, - "name": "signInWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 69, - "character": 4 - } - ], - "signatures": [ - { - "id": 396, - "name": "signInWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs in an existing user using their email address." - }, - "parameters": [ - { - "id": 397, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 398, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 399, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 400, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 401, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 70, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [401] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 402, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 403, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 72, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - }, - { - "id": 404, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 73, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [403, 404] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 405, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 406, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 75, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 407, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 76, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [406, 407] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 438, - "name": "signInWithOpenIDConnect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 120, - "character": 4 - } - ], - "signatures": [ - { - "id": 439, - "name": "signInWithOpenIDConnect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs in an OpenID Connect user using their id_token." - }, - "parameters": [ - { - "id": 440, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 919, - "qualifiedName": "OpenIDConnectCredentials", - "package": "@supabase/gotrue-js", - "name": "OpenIDConnectCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 441, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 443, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 122, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 442, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 121, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [443, 442] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 444, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 446, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 125, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 445, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 124, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [446, 445] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 425, - "name": "signInWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 103, - "character": 4 - } - ], - "signatures": [ - { - "id": 426, - "name": "signInWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs in an existing user using their phone number and password." - }, - "parameters": [ - { - "id": 427, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 428, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 429, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 430, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 431, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 104, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [431] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 432, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 434, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 107, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 433, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 106, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [434, 433] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 435, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 437, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 110, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 436, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 109, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [437, 436] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 476, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 163, - "character": 4 - } - ], - "signatures": [ - { - "id": 477, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Removes a logged-in session." - }, - "parameters": [ - { - "id": 478, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid, logged-in JWT.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 479, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 480, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 164, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [480] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 377, - "name": "signUpWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 49, - "character": 4 - } - ], - "signatures": [ - { - "id": 378, - "name": "signUpWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Creates a new user using their email address.", - "returns": "A logged-in session if the server has \"autoconfirm\" ON" - }, - "parameters": [ - { - "id": 379, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The email address of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 380, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 381, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 382, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 385, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 52, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 384, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 51, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 383, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 50, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [385, 384, 383] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 386, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 387, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 54, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - }, - { - "id": 388, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 55, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [387, 388] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 389, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 390, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 57, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - }, - { - "id": 391, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 58, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [390, 391] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 392, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 393, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 60, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 394, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 61, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [393, 394] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 408, - "name": "signUpWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 84, - "character": 4 - } - ], - "signatures": [ - { - "id": 409, - "name": "signUpWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Signs up a new user using their phone number and a password." - }, - "parameters": [ - { - "id": 410, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The phone number of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 411, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The password of the user." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 412, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 413, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 415, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 86, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 414, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 85, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [415, 414] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 416, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 417, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 88, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - }, - { - "id": 418, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 89, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [417, 418] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 419, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 420, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 91, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - }, - { - "id": 421, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 92, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [420, 421] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 422, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 423, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 94, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 424, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 95, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [423, 424] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 651, - "name": "updateUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 397, - "character": 4 - } - ], - "signatures": [ - { - "id": 652, - "name": "updateUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 653, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A valid, logged-in JWT." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 654, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The data you want to update.\n" - }, - "type": { - "type": "reference", - "id": 836, - "qualifiedName": "UserAttributes", - "package": "@supabase/gotrue-js", - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 655, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 657, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 399, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 656, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 398, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [657, 656] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 658, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 660, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 402, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 659, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 401, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [660, 659] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 623, - "name": "updateUserById", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 355, - "character": 4 - } - ], - "signatures": [ - { - "id": 624, - "name": "updateUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Updates the user data." - }, - "parameters": [ - { - "id": 625, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 626, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The data you want to update.\n\nThis function should only be called on a server. Never expose your `service_role` key in the browser.\n" - }, - "type": { - "type": "reference", - "id": 842, - "qualifiedName": "AdminUserAttributes", - "package": "@supabase/gotrue-js", - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 627, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 629, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 357, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 628, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 356, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [629, 628] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 630, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 632, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 360, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 631, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 359, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [632, 631] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 481, - "name": "verifyMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 172, - "character": 4 - } - ], - "signatures": [ - { - "id": 482, - "name": "verifyMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "tags": [ - { - "tag": "deprecated", - "text": "Use `verifyOTP` instead!" - } - ] - }, - "parameters": [ - { - "id": 483, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The user's phone number WITH international prefix" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 484, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "token that user was sent to their mobile phone" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 485, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 486, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 487, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 173, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [487] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 488, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 489, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 175, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - }, - { - "id": 490, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 176, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [489, 490] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 491, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 492, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 178, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - }, - { - "id": 493, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 179, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [492, 493] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 494, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 495, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 181, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 496, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 182, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [495, 496] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 497, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 192, - "character": 4 - } - ], - "signatures": [ - { - "id": 498, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Send User supplied Email / Mobile OTP to be verified" - }, - "parameters": [ - { - "id": 499, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 906, - "qualifiedName": "VerifyOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyOTPParams" - } - }, - { - "id": 500, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 501, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 502, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 193, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [502] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 503, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 504, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 195, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - }, - { - "id": 505, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 196, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [504, 505] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 506, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 507, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 198, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - }, - { - "id": 508, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 199, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [507, 508] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 509, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 510, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 201, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 511, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 202, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [510, 511] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [338] - }, - { - "title": "Properties", - "kind": 1024, - "children": [364, 365, 358, 359, 354, 353] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 581, 552, 633, 563, 559, 366, 642, 609, 600, 512, 592, 539, 525, 447, 462, 548, - 395, 438, 425, 476, 377, 408, 651, 623, 481, 497 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueApi.d.ts", - "line": 4, - "character": 21 - } - ] - }, - { - "id": 661, - "name": "GoTrueClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 662, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 44, - "character": 4 - } - ], - "signatures": [ - { - "id": 663, - "name": "new GoTrueClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Create a new client for use in the browser." - }, - "parameters": [ - { - "id": 664, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 665, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 673, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically refresh the token before expiring." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 51, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 677, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": {}, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 55, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 860, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - } - }, - { - "id": 672, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 50, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 678, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 56, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 679, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 680, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A custom fetch implementation.\n" - }, - "parameters": [ - { - "id": 681, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 682, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 667, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Any additional headers to send to the GoTrue server." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 46, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 668, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 669, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 670, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 675, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Provide your own local storage implementation to use instead of the browser's local storage." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 53, - "character": 8 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - } - }, - { - "id": 676, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"false\" if you want to disable multi-tab/window events." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 54, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 674, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Set to \"true\" if you want to automatically save the user session into local storage. If set to false, session will just be saved in memory." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 52, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 671, - "name": "storageKey", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Optional key name used for storing tokens in local storage" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 49, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 666, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The URL of the GoTrue server." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 45, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [673, 677, 672, 678, 667, 675, 676, 674, 671, 666] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 661, - "qualifiedName": "GoTrueClient", - "package": "@supabase/gotrue-js", - "name": "default" - } - } - ] - }, - { - "id": 796, - "name": "_callRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 206, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 790, - "name": "_handleEmailSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 192, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 793, - "name": "_handleOpenIDConnectSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 195, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 791, - "name": "_handlePhoneSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 193, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 792, - "name": "_handleProviderSignIn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 194, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 802, - "name": "_handleVisibilityChange", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 220, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 797, - "name": "_notifyAllSubscribers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 207, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 799, - "name": "_persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 213, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 795, - "name": "_recoverAndRefresh", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Recovers the session from LocalStorage and refreshes\nNote: this method is async to accommodate for AsyncStorage e.g. in React native." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 205, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 794, - "name": "_recoverSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Attempts to get the session from LocalStorage\nNote: this should never be async (even for React Native), as we need it to return immediately in the constructor." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 200, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 800, - "name": "_removeSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 214, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 798, - "name": "_saveSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "set currentSession and currentUser\nprocess to _startAutoRefreshToken if possible" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 212, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 801, - "name": "_startAutoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "comment": { - "shortText": "Clear and re-create refresh token timer", - "tags": [ - { - "tag": "param", - "text": "time intervals in milliseconds\n", - "param": "value" - } - ] - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 219, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 683, - "name": "api", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Namespace for the GoTrue API methods.\nThese can be used for example to get a user from a JWT in a server environment or reset a user's password." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 11, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 337, - "qualifiedName": "GoTrueApi", - "package": "@supabase/gotrue-js", - "name": "default" - } - }, - { - "id": 686, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 21, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 685, - "name": "inMemorySession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "comment": { - "shortText": "The session object for the currently logged in user or null.\nOnly used if persistSession is false." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 20, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - }, - { - "id": 688, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 23, - "character": 14 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - } - }, - { - "id": 691, - "name": "networkRetries", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 26, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 687, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 22, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 690, - "name": "refreshTokenTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 25, - "character": 14 - } - ], - "type": { - "type": "reference", - "qualifiedName": "global.NodeJS.Timeout", - "package": "@types/node", - "name": "Timeout" - } - }, - { - "id": 692, - "name": "refreshingDeferred", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 27, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 693, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 695, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 29, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 694, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 28, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [695, 694] - } - ] - } - } - ], - "qualifiedName": "Deferred", - "package": "@supabase/gotrue-js", - "name": "Deferred" - } - ] - } - }, - { - "id": 689, - "name": "stateChangeEmitters", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 24, - "character": 14 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "id": 852, - "qualifiedName": "Subscription", - "package": "@supabase/gotrue-js", - "name": "Subscription" - } - ], - "qualifiedName": "Map", - "package": "typescript", - "name": "Map" - } - }, - { - "id": 684, - "name": "storageKey", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isExternal": true - }, - "comment": { - "shortText": "The storage key used to identity the values saved in localStorage" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 15, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 719, - "name": "getSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 112, - "character": 4 - } - ], - "signatures": [ - { - "id": 720, - "name": "getSession", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns the session data, refreshing it if necessary." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 721, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 723, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 114, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 722, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 113, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [723, 722] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 724, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 726, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 117, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 725, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 116, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [726, 725] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 727, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 729, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 120, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 728, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 119, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [729, 728] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 762, - "name": "getSessionFromUrl", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 163, - "character": 4 - } - ], - "signatures": [ - { - "id": 763, - "name": "getSessionFromUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Gets the session data from a URL string" - }, - "parameters": [ - { - "id": 764, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 765, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 766, - "name": "storeSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Optionally store the session in the browser\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 164, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [766] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 767, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 769, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 167, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 768, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 166, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [769, 768] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 770, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 772, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 170, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 771, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 169, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [772, 771] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 730, - "name": "getUser", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 125, - "character": 4 - } - ], - "signatures": [ - { - "id": 731, - "name": "getUser", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns the user data, refreshing the session if necessary." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 732, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 734, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 127, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 733, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 126, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [734, 733] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 735, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 737, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 130, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 736, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 129, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [737, 736] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 738, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 740, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 133, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 739, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 132, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [740, 739] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 777, - "name": "onAuthStateChange", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 185, - "character": 4 - } - ], - "signatures": [ - { - "id": 778, - "name": "onAuthStateChange", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Receive a notification every time an auth event happens.", - "returns": "A subscription object which can be used to unsubscribe itself.\n" - }, - "parameters": [ - { - "id": 779, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 780, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 781, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 782, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 804, - "qualifiedName": "AuthChangeEvent", - "package": "@supabase/gotrue-js", - "name": "AuthChangeEvent" - } - }, - { - "id": 783, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 784, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 786, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 187, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 785, - "name": "subscription", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 186, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 852, - "qualifiedName": "Subscription", - "package": "@supabase/gotrue-js", - "name": "Subscription" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [786, 785] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 787, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 789, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 190, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 788, - "name": "subscription", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 189, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [789, 788] - } - ] - } - } - ] - } - } - ] - }, - { - "id": 750, - "name": "setSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 149, - "character": 4 - } - ], - "signatures": [ - { - "id": 751, - "name": "setSession", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sets the session data from refresh_token and returns current Session and Error" - }, - "parameters": [ - { - "id": 752, - "name": "refresh_token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "a JWT token\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 753, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 755, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 151, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 754, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 150, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [755, 754] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 756, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 758, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 154, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 757, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 153, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [758, 757] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 759, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 761, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 157, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 760, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 156, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [761, 760] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 707, - "name": "signInWithOAuth", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 89, - "character": 4 - } - ], - "signatures": [ - { - "id": 708, - "name": "signInWithOAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Log in an existing user via a third-party provider." - }, - "parameters": [ - { - "id": 709, - "name": "credentials", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 895, - "qualifiedName": "SignInWithOAuthCredentials", - "package": "@supabase/gotrue-js", - "name": "SignInWithOAuthCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 814, - "qualifiedName": "OAuthResponse", - "package": "@supabase/gotrue-js", - "name": "OAuthResponse" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 710, - "name": "signInWithOtp", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 97, - "character": 4 - } - ], - "signatures": [ - { - "id": 711, - "name": "signInWithOtp", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Passwordless method for logging in an existing user." - }, - "parameters": [ - { - "id": 712, - "name": "credentials", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 884, - "qualifiedName": "SignInWithPasswordlessCredentials", - "package": "@supabase/gotrue-js", - "name": "SignInWithPasswordlessCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 805, - "qualifiedName": "AuthResponse", - "package": "@supabase/gotrue-js", - "name": "AuthResponse" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 704, - "name": "signInWithPassword", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 80, - "character": 4 - } - ], - "signatures": [ - { - "id": 705, - "name": "signInWithPassword", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Log in an existing user, or login via a third-party provider." - }, - "parameters": [ - { - "id": 706, - "name": "credentials", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 873, - "qualifiedName": "SignInWithPasswordCredentials", - "package": "@supabase/gotrue-js", - "name": "SignInWithPasswordCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 805, - "qualifiedName": "AuthResponse", - "package": "@supabase/gotrue-js", - "name": "AuthResponse" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 773, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 178, - "character": 4 - } - ], - "signatures": [ - { - "id": 774, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Inside a browser context, `signOut()` will remove the logged in user from the browser session\nand log them out - removing all items from localstorage and then trigger a \"SIGNED_OUT\" event.", - "text": "For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`. There is no way to revoke a user's session JWT before it automatically expires\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 775, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 776, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 179, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [776] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 696, - "name": "signUp", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 67, - "character": 4 - } - ], - "signatures": [ - { - "id": 697, - "name": "signUp", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Creates a new user." - }, - "parameters": [ - { - "id": 698, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 866, - "qualifiedName": "UserCredentials", - "package": "@supabase/gotrue-js", - "name": "UserCredentials" - } - }, - { - "id": 699, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 700, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 703, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 70, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 702, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 69, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 701, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 68, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [703, 702, 701] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 805, - "qualifiedName": "AuthResponse", - "package": "@supabase/gotrue-js", - "name": "AuthResponse" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 741, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 138, - "character": 4 - } - ], - "signatures": [ - { - "id": 742, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Updates user data, if there is a logged in user." - }, - "parameters": [ - { - "id": 743, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 836, - "qualifiedName": "UserAttributes", - "package": "@supabase/gotrue-js", - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 744, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 746, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 140, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 745, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 139, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [746, 745] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 747, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 749, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 143, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 748, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 142, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [749, 748] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 713, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 106, - "character": 4 - } - ], - "signatures": [ - { - "id": 714, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Log in a user given a User supplied OTP received via mobile." - }, - "parameters": [ - { - "id": 715, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 906, - "qualifiedName": "VerifyOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyOTPParams" - } - }, - { - "id": 716, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 717, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 718, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 107, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [718] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 805, - "qualifiedName": "AuthResponse", - "package": "@supabase/gotrue-js", - "name": "AuthResponse" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [662] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 796, 790, 793, 791, 792, 802, 797, 799, 795, 794, 800, 798, 801, 683, 686, 685, - 688, 691, 687, 690, 692, 689, 684 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [719, 762, 730, 777, 750, 707, 710, 704, 773, 696, 741, 713] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 6, - "character": 21 - } - ] - }, - { - "id": 1043, - "name": "RealtimeChannel", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 1045, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 20, - "character": 4 - } - ], - "signatures": [ - { - "id": 1046, - "name": "new RealtimeChannel", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1047, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1048, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 1049, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 1050, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1051, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 1052, - "name": "socket", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 926, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 1059, - "name": "bindings", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 12, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "any" - } - } - }, - { - "id": 1063, - "name": "joinPush", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 16, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 1062, - "name": "joinedOnce", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 15, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 1054, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 8, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 1055, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 1056, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1057, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 1066, - "name": "presence", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 19, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 1143, - "qualifiedName": "RealtimePresence", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 1065, - "name": "pushBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 18, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - }, - { - "id": 1064, - "name": "rejoinTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 17, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Timer", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 1058, - "name": "socket", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 11, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 926, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 1061, - "name": "state", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 14, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "CHANNEL_STATES", - "package": "@supabase/realtime-js", - "name": "CHANNEL_STATES" - } - }, - { - "id": 1060, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 13, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 1053, - "name": "topic", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 7, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1044, - "name": "isEqual", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isStatic": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 76, - "character": 19 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1093, - "name": "canPush", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 42, - "character": 4 - } - ], - "signatures": [ - { - "id": 1094, - "name": "canPush", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns `true` if the socket is connected and the channel has been joined." - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1133, - "name": "isClosed", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 71, - "character": 4 - } - ], - "signatures": [ - { - "id": 1134, - "name": "isClosed", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1135, - "name": "isErrored", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 72, - "character": 4 - } - ], - "signatures": [ - { - "id": 1136, - "name": "isErrored", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1137, - "name": "isJoined", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 73, - "character": 4 - } - ], - "signatures": [ - { - "id": 1138, - "name": "isJoined", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1139, - "name": "isJoining", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 74, - "character": 4 - } - ], - "signatures": [ - { - "id": 1140, - "name": "isJoining", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1141, - "name": "isLeaving", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 75, - "character": 4 - } - ], - "signatures": [ - { - "id": 1142, - "name": "isLeaving", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1117, - "name": "isMember", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 66, - "character": 4 - } - ], - "signatures": [ - { - "id": 1118, - "name": "isMember", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1119, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1120, - "name": "joinRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 67, - "character": 4 - } - ], - "signatures": [ - { - "id": 1121, - "name": "joinRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 1086, - "name": "off", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 36, - "character": 4 - } - ], - "signatures": [ - { - "id": 1087, - "name": "off", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1088, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1089, - "name": "filter", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 1090, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 1091, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1092, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - } - ], - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 1078, - "name": "on", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 33, - "character": 4 - } - ], - "signatures": [ - { - "id": 1079, - "name": "on", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1080, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1081, - "name": "filter", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 1082, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 1083, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1084, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 1085, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 1072, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 28, - "character": 4 - } - ], - "signatures": [ - { - "id": 1073, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Registers a callback that will be executed when the channel closes." - }, - "parameters": [ - { - "id": 1074, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1075, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 32, - "character": 4 - } - ], - "signatures": [ - { - "id": 1076, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Registers a callback that will be executed when the channel encounteres an error." - }, - "parameters": [ - { - "id": 1077, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1112, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 65, - "character": 4 - } - ], - "signatures": [ - { - "id": 1113, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Overridable message hook", - "text": "Receives all events for specialized message handling before dispatching to the channel callbacks.\nMust return the payload, modified or unmodified.\n" - }, - "parameters": [ - { - "id": 1114, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1115, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1116, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - }, - { - "id": 1095, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 43, - "character": 4 - } - ], - "signatures": [ - { - "id": 1096, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1097, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1098, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 1099, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 1100, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1101, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 1102, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 1122, - "name": "rejoin", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 68, - "character": 4 - } - ], - "signatures": [ - { - "id": 1123, - "name": "rejoin", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1124, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1067, - "name": "rejoinUntilConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 23, - "character": 4 - } - ], - "signatures": [ - { - "id": 1068, - "name": "rejoinUntilConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1130, - "name": "replyEventName", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 70, - "character": 4 - } - ], - "signatures": [ - { - "id": 1131, - "name": "replyEventName", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1132, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 1069, - "name": "subscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 24, - "character": 4 - } - ], - "signatures": [ - { - "id": 1070, - "name": "subscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1071, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 1125, - "name": "trigger", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 69, - "character": 4 - } - ], - "signatures": [ - { - "id": 1126, - "name": "trigger", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1127, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 1128, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1129, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1109, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 58, - "character": 4 - } - ], - "signatures": [ - { - "id": 1110, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Leaves the channel.", - "text": "Unsubscribes from server events, and instructs channel to terminate on server.\nTriggers onClose() hooks.\n\nTo receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:\nchannel.unsubscribe().receive(\"ok\", () => alert(\"left!\") )\n" - }, - "parameters": [ - { - "id": 1111, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "Push", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 1103, - "name": "updateJoinPayload", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 46, - "character": 4 - } - ], - "signatures": [ - { - "id": 1104, - "name": "updateJoinPayload", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1105, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 1106, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 1107, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1108, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [1045] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 1059, 1063, 1062, 1054, 1066, 1065, 1064, 1058, 1061, 1060, 1053, 1044 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 1093, 1133, 1135, 1137, 1139, 1141, 1117, 1120, 1086, 1078, 1072, 1075, 1112, - 1095, 1122, 1067, 1130, 1069, 1125, 1109, 1103 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.d.ts", - "line": 6, - "character": 21 - } - ] - }, - { - "id": 926, - "name": "RealtimeClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 927, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 77, - "character": 4 - } - ], - "signatures": [ - { - "id": 928, - "name": "new RealtimeClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Initializes the Socket." - }, - "parameters": [ - { - "id": 929, - "name": "endPoint", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 930, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 1025, - "qualifiedName": "Options", - "package": "@supabase/realtime-js", - "name": "Options" - } - } - ], - "type": { - "type": "reference", - "id": 926, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 1022, - "name": "_appendParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 180, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1023, - "name": "_flushSendBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 181, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1019, - "name": "_onConnClose", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 177, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1020, - "name": "_onConnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 178, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1018, - "name": "_onConnOpen", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 176, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1024, - "name": "_sendHeartbeat", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 182, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1021, - "name": "_triggerChanError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 179, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 931, - "name": "accessToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 32, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 932, - "name": "channels", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 33, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - }, - { - "id": 954, - "name": "conn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 53, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "WebSocket", - "package": "typescript", - "name": "WebSocket" - } - ] - } - }, - { - "id": 952, - "name": "decode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 51, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 951, - "name": "encode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 50, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 933, - "name": "endPoint", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 34, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 934, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 35, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 935, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 936, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 937, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 944, - "name": "heartbeatIntervalMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 43, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 946, - "name": "heartbeatTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 45, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reference", - "qualifiedName": "global.NodeJS.Timer", - "package": "@types/node", - "name": "Timer" - } - ] - } - }, - { - "id": 950, - "name": "logger", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 49, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 945, - "name": "longpollerTimeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 44, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 938, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 38, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 939, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 940, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 941, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 947, - "name": "pendingHeartbeatRef", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 46, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 953, - "name": "reconnectAfterMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 52, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 949, - "name": "reconnectTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 48, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Timer", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 948, - "name": "ref", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 47, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 955, - "name": "sendBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 54, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 956, - "name": "serializer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 55, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Serializer", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 957, - "name": "stateChangeCallbacks", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 56, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 958, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 960, - "name": "close", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 58, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 961, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 59, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 962, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 60, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - }, - { - "id": 959, - "name": "open", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 57, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [960, 961, 962, 959] - } - ] - } - } - }, - { - "id": 942, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 41, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 943, - "name": "transport", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 42, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 996, - "name": "channel", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 148, - "character": 4 - } - ], - "signatures": [ - { - "id": 997, - "name": "channel", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 998, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 999, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "ChannelParams", - "package": "@supabase/realtime-js", - "name": "ChannelParams" - } - } - ], - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 963, - "name": "connect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 81, - "character": 4 - } - ], - "signatures": [ - { - "id": 964, - "name": "connect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Connects the socket, unless already connected." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 989, - "name": "connectionState", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 137, - "character": 4 - } - ], - "signatures": [ - { - "id": 990, - "name": "connectionState", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns the current state of the socket." - }, - "type": { - "type": "reference", - "qualifiedName": "CONNECTION_STATE", - "package": "@supabase/realtime-js", - "name": "CONNECTION_STATE" - } - } - ] - }, - { - "id": 965, - "name": "disconnect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 88, - "character": 4 - } - ], - "signatures": [ - { - "id": 966, - "name": "disconnect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Disconnects the socket." - }, - "parameters": [ - { - "id": 967, - "name": "code", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A numeric status code to send on disconnect." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 968, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom reason for the disconnect.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 969, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 971, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 90, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 970, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 89, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [971, 970] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 1008, - "name": "endPointURL", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 161, - "character": 4 - } - ], - "signatures": [ - { - "id": 1009, - "name": "endPointURL", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns the URL of the websocket." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 991, - "name": "isConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 141, - "character": 4 - } - ], - "signatures": [ - { - "id": 992, - "name": "isConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Retuns `true` is the connection is open." - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 1015, - "name": "leaveOpenTopic", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 175, - "character": 4 - } - ], - "signatures": [ - { - "id": 1016, - "name": "leaveOpenTopic", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Unsubscribe from channels with the specified topic." - }, - "parameters": [ - { - "id": 1017, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 972, - "name": "log", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 97, - "character": 4 - } - ], - "signatures": [ - { - "id": 973, - "name": "log", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Logs the message.", - "text": "For customized logging, `this.logger` can be overriden.\n" - }, - "parameters": [ - { - "id": 974, - "name": "kind", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 975, - "name": "msg", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 976, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1010, - "name": "makeRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 165, - "character": 4 - } - ], - "signatures": [ - { - "id": 1011, - "name": "makeRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Return the next message ref, accounting for overflows" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 980, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 115, - "character": 4 - } - ], - "signatures": [ - { - "id": 981, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket closed.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 982, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1003, - "name": "onConnMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 155, - "character": 4 - } - ], - "signatures": [ - { - "id": 1004, - "name": "onConnMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1005, - "name": "rawMessage", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 1006, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 1007, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 156, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [1007] - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 983, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 124, - "character": 4 - } - ], - "signatures": [ - { - "id": 984, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen((error) => console.log(\"An error occurred\"))\n" - } - ] - }, - "parameters": [ - { - "id": 985, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 986, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 133, - "character": 4 - } - ], - "signatures": [ - { - "id": 987, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Calls a function any time a message is received.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onMessage((message) => console.log(message))\n" - } - ] - }, - "parameters": [ - { - "id": 988, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 977, - "name": "onOpen", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 106, - "character": 4 - } - ], - "signatures": [ - { - "id": 978, - "name": "onOpen", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Registers a callback for connection state change event.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket opened.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 979, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1000, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 154, - "character": 4 - } - ], - "signatures": [ - { - "id": 1001, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Push out a message if the socket is connected.", - "text": "If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.\n" - }, - "parameters": [ - { - "id": 1002, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "Message", - "package": "@supabase/realtime-js", - "name": "Message" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 993, - "name": "remove", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 147, - "character": 4 - } - ], - "signatures": [ - { - "id": 994, - "name": "remove", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Removes a subscription from the socket." - }, - "parameters": [ - { - "id": 995, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "An open subscription.\n" - }, - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1012, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 171, - "character": 4 - } - ], - "signatures": [ - { - "id": 1013, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Sets the JWT access token used for channel subscription authorization and Realtime RLS." - }, - "parameters": [ - { - "id": 1014, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "A JWT string.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [927] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 1022, 1023, 1019, 1020, 1018, 1024, 1021, 931, 932, 954, 952, 951, 933, 934, - 944, 946, 950, 945, 938, 947, 953, 949, 948, 955, 956, 957, 942, 943 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 996, 963, 989, 965, 1008, 991, 1015, 972, 1010, 980, 1003, 983, 986, 977, 1000, - 993, 1012 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 31, - "character": 21 - } - ] - }, - { - "id": 1143, - "name": "RealtimePresence", - "kind": 128, - "kindString": "Class", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 1164, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 43, - "character": 4 - } - ], - "signatures": [ - { - "id": 1165, - "name": "new RealtimePresence", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Initializes the Presence." - }, - "parameters": [ - { - "id": 1166, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The RealtimeChannel" - }, - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 1167, - "name": "opts", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The options,\n for example `{events: {state: 'state', diff: 'diff'}}`\n" - }, - "type": { - "type": "reference", - "qualifiedName": "PresenceOpts", - "package": "@types/phoenix", - "name": "PresenceOpts" - } - } - ], - "type": { - "type": "reference", - "id": 1143, - "qualifiedName": "RealtimePresence", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 1172, - "name": "caller", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 31, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 1173, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 1174, - "name": "onJoin", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 32, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "PresenceOnJoinCallback", - "package": "@types/phoenix", - "name": "PresenceOnJoinCallback" - } - }, - { - "id": 1175, - "name": "onLeave", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 33, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "PresenceOnLeaveCallback", - "package": "@types/phoenix", - "name": "PresenceOnLeaveCallback" - } - }, - { - "id": 1176, - "name": "onSync", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 34, - "character": 8 - } - ], - "signatures": [ - { - "id": 1177, - "name": "onSync", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [1174, 1175] - }, - { - "title": "Methods", - "kind": 2048, - "children": [1176] - } - ] - } - } - }, - { - "id": 1168, - "name": "channel", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 27, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 1193, - "name": "inPendingSyncState", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 94, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1171, - "name": "joinRef", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 30, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 1170, - "name": "pendingDiffs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 29, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "qualifiedName": "RawPresenceDiff", - "package": "@supabase/realtime-js", - "name": "RawPresenceDiff" - } - } - }, - { - "id": 1169, - "name": "state", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 28, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "PresenceState", - "package": "@supabase/realtime-js", - "name": "PresenceState" - } - }, - { - "id": 1163, - "name": "cloneDeep", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isStatic": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 89, - "character": 19 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1161, - "name": "map", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isStatic": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 66, - "character": 19 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1162, - "name": "transformState", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPrivate": true, - "isStatic": true, - "isExternal": true - }, - "comment": { - "shortText": "Remove 'metas' key\nChange 'phx_ref' to 'presence_ref'\nRemove 'phx_ref' and 'phx_ref_prev'", - "tags": [ - { - "tag": "example", - "text": "\n// returns {\n abc123: [\n { presence_ref: '2', user_id: 1 },\n { presence_ref: '3', user_id: 2 }\n ]\n}\nRealtimePresence.transformState({\n abc123: {\n metas: [\n { phx_ref: '2', phx_ref_prev: '1' user_id: 1 },\n { phx_ref: '3', user_id: 2 }\n ]\n }\n})\n" - } - ] - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 88, - "character": 19 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 1189, - "name": "list", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 93, - "character": 4 - } - ], - "signatures": [ - { - "id": 1190, - "name": "list", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "typeParameter": [ - { - "id": 1191, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - }, - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "parameters": [ - { - "id": 1192, - "name": "by", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true, - "isOptional": true - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 1191, - "qualifiedName": "T", - "package": "@supabase/realtime-js", - "name": "T" - } - ], - "qualifiedName": "PresenceChooser", - "package": "@supabase/realtime-js", - "name": "PresenceChooser" - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 1191, - "qualifiedName": "T", - "package": "@supabase/realtime-js", - "name": "T" - } - } - } - ] - }, - { - "id": 1178, - "name": "onJoin", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 90, - "character": 4 - } - ], - "signatures": [ - { - "id": 1179, - "name": "onJoin", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1180, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "PresenceOnJoinCallback", - "package": "@types/phoenix", - "name": "PresenceOnJoinCallback" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1181, - "name": "onLeave", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 91, - "character": 4 - } - ], - "signatures": [ - { - "id": 1182, - "name": "onLeave", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1183, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "PresenceOnLeaveCallback", - "package": "@types/phoenix", - "name": "PresenceOnLeaveCallback" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1184, - "name": "onSync", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 92, - "character": 4 - } - ], - "signatures": [ - { - "id": 1185, - "name": "onSync", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1186, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 1187, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "signatures": [ - { - "id": 1188, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 1156, - "name": "list", - "kind": 2048, - "kindString": "Method", - "flags": { - "isStatic": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 65, - "character": 11 - } - ], - "signatures": [ - { - "id": 1157, - "name": "list", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Returns the array of presences, with selected metadata." - }, - "typeParameter": [ - { - "id": 1158, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - }, - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "parameters": [ - { - "id": 1159, - "name": "presences", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "PresenceState", - "package": "@supabase/realtime-js", - "name": "PresenceState" - } - }, - { - "id": 1160, - "name": "chooser", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 1158, - "qualifiedName": "T", - "package": "@supabase/realtime-js", - "name": "T" - } - ], - "qualifiedName": "PresenceChooser", - "package": "@supabase/realtime-js", - "name": "PresenceChooser" - } - ] - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 1158, - "qualifiedName": "T", - "package": "@supabase/realtime-js", - "name": "T" - } - } - } - ] - }, - { - "id": 1150, - "name": "syncDiff", - "kind": 2048, - "kindString": "Method", - "flags": { - "isStatic": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 61, - "character": 11 - } - ], - "signatures": [ - { - "id": 1151, - "name": "syncDiff", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Used to sync a diff of presence join and leave events from the\nserver, as they happen.", - "text": "Like `syncState`, `syncDiff` accepts optional `onJoin` and\n`onLeave` callbacks to react to a user joining or leaving from a\ndevice.\n" - }, - "parameters": [ - { - "id": 1152, - "name": "state", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "PresenceState", - "package": "@supabase/realtime-js", - "name": "PresenceState" - } - }, - { - "id": 1153, - "name": "diff", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "qualifiedName": "RawPresenceDiff", - "package": "@supabase/realtime-js", - "name": "RawPresenceDiff" - }, - { - "type": "reference", - "qualifiedName": "PresenceDiff", - "package": "@supabase/realtime-js", - "name": "PresenceDiff" - } - ] - } - }, - { - "id": 1154, - "name": "onJoin", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "PresenceOnJoinCallback", - "package": "@types/phoenix", - "name": "PresenceOnJoinCallback" - } - }, - { - "id": 1155, - "name": "onLeave", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "PresenceOnLeaveCallback", - "package": "@types/phoenix", - "name": "PresenceOnLeaveCallback" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "PresenceState", - "package": "@supabase/realtime-js", - "name": "PresenceState" - } - } - ] - }, - { - "id": 1144, - "name": "syncState", - "kind": 2048, - "kindString": "Method", - "flags": { - "isStatic": true, - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 52, - "character": 11 - } - ], - "signatures": [ - { - "id": 1145, - "name": "syncState", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Used to sync the list of presences on the server with the\nclient's state.", - "text": "An optional `onJoin` and `onLeave` callback can be provided to\nreact to changes in the client's local presences across\ndisconnects and reconnects with the server.\n" - }, - "parameters": [ - { - "id": 1146, - "name": "currentState", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "PresenceState", - "package": "@supabase/realtime-js", - "name": "PresenceState" - } - }, - { - "id": 1147, - "name": "newState", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "qualifiedName": "PresenceState", - "package": "@supabase/realtime-js", - "name": "PresenceState" - }, - { - "type": "reference", - "qualifiedName": "RawPresenceState", - "package": "@supabase/realtime-js", - "name": "RawPresenceState" - } - ] - } - }, - { - "id": 1148, - "name": "onJoin", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "PresenceOnJoinCallback", - "package": "@types/phoenix", - "name": "PresenceOnJoinCallback" - } - }, - { - "id": 1149, - "name": "onLeave", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "qualifiedName": "PresenceOnLeaveCallback", - "package": "@types/phoenix", - "name": "PresenceOnLeaveCallback" - } - } - ], - "type": { - "type": "reference", - "qualifiedName": "PresenceState", - "package": "@supabase/realtime-js", - "name": "PresenceState" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [1164] - }, - { - "title": "Properties", - "kind": 1024, - "children": [1172, 1168, 1193, 1171, 1170, 1169, 1163, 1161, 1162] - }, - { - "title": "Methods", - "kind": 2048, - "children": [1189, 1178, 1181, 1184, 1156, 1150, 1144] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimePresence.d.ts", - "line": 26, - "character": 21 - } - ] - }, - { - "id": 223, - "name": "SupabaseClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "comment": { - "shortText": "Supabase Client.", - "text": "An isomorphic Javascript client for interacting with Postgres.\n" - }, - "children": [ - { - "id": 224, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 70, - "character": 2 - } - ], - "signatures": [ - { - "id": 225, - "name": "new SupabaseClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "comment": { - "shortText": "Create a new client for use in the browser." - }, - "typeParameter": [ - { - "id": 226, - "name": "Database", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 227, - "name": "SchemaName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - }, - "default": { - "type": "conditional", - "checkType": { - "type": "literal", - "value": "public" - }, - "extendsType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 226, - "name": "Database" - } - }, - "trueType": { - "type": "literal", - "value": "public" - }, - "falseType": { - "type": "intersection", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 226, - "name": "Database" - } - } - ] - } - } - }, - { - "id": 228, - "name": "Schema", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 169, - "name": "GenericSchema" - }, - "default": { - "type": "conditional", - "checkType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 227, - "name": "SchemaName" - }, - "objectType": { - "type": "reference", - "id": 226, - "name": "Database" - } - }, - "extendsType": { - "type": "reference", - "id": 169, - "name": "GenericSchema" - }, - "trueType": { - "type": "indexedAccess", - "indexType": { - "type": "intrinsic", - "name": "any" - }, - "objectType": { - "type": "intrinsic", - "name": "any" - } - }, - "falseType": { - "type": "intrinsic", - "name": "any" - } - } - } - ], - "parameters": [ - { - "id": 229, - "name": "supabaseUrl", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The unique Supabase URL which is supplied when you create a new project in your project dashboard." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 230, - "name": "supabaseKey", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The unique Supabase Key which is supplied when you create a new project in your project dashboard." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 231, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 133, - "typeArguments": [ - { - "type": "reference", - "id": 227, - "name": "SchemaName" - } - ], - "name": "SupabaseClientOptions" - } - } - ], - "type": { - "type": "reference", - "id": 223, - "typeArguments": [ - { - "type": "reference", - "id": 226, - "name": "Database" - }, - { - "type": "reference", - "id": 227, - "name": "SchemaName" - }, - { - "type": "reference", - "id": 228, - "name": "Schema" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 232, - "name": "auth", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "Supabase Auth allows you to create and manage user sessions for access to data that is secured by access policies." - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 42, - "character": 2 - } - ], - "type": { - "type": "reference", - "name": "SupabaseAuthClient" - } - }, - { - "id": 234, - "name": "authUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 45, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 245, - "name": "changedAccessToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 52, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 240, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 51, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 241, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 242, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 243, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 244, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 236, - "name": "functionsUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 47, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 246, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 54, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 247, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 248, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 249, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 237, - "name": "realtime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 48, - "character": 12 - } - ], - "type": { - "type": "reference", - "id": 926, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 233, - "name": "realtimeUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 44, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 238, - "name": "rest", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 49, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 226, - "name": "Database" - }, - { - "type": "reference", - "id": 227, - "name": "SchemaName" - }, - { - "type": "conditional", - "checkType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 227, - "name": "SchemaName" - }, - "objectType": { - "type": "reference", - "id": 226, - "name": "Database" - } - }, - "extendsType": { - "type": "reference", - "qualifiedName": "GenericSchema", - "package": "@supabase/postgrest-js", - "name": "GenericSchema" - }, - "trueType": { - "type": "indexedAccess", - "indexType": { - "type": "intrinsic", - "name": "any" - }, - "objectType": { - "type": "intrinsic", - "name": "any" - } - }, - "falseType": { - "type": "intrinsic", - "name": "any" - } - } - ], - "qualifiedName": "PostgrestClient", - "package": "@supabase/postgrest-js", - "name": "default" - } - }, - { - "id": 239, - "name": "storageKey", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 50, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 235, - "name": "storageUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 46, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 251, - "name": "supabaseKey", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 250, - "name": "supabaseUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 252, - "name": "functions", - "kind": 262144, - "kindString": "Accessor", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 120, - "character": 6 - } - ], - "getSignature": [ - { - "id": 253, - "name": "functions", - "kind": 524288, - "kindString": "Get signature", - "flags": {}, - "comment": { - "shortText": "Supabase Functions allows you to deploy and invoke edge functions." - }, - "type": { - "type": "reference", - "qualifiedName": "FunctionsClient", - "package": "@supabase/functions-js", - "name": "FunctionsClient" - } - } - ] - }, - { - "id": 254, - "name": "storage", - "kind": 262144, - "kindString": "Accessor", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 130, - "character": 6 - } - ], - "getSignature": [ - { - "id": 255, - "name": "storage", - "kind": 524288, - "kindString": "Get signature", - "flags": {}, - "comment": { - "shortText": "Supabase Storage allows you to manage user-generated content, such as photos or videos." - }, - "type": { - "type": "reference", - "qualifiedName": "StorageClient", - "package": "@supabase/storage-js", - "name": "StorageClient" - } - } - ] - }, - { - "id": 295, - "name": "_closeChannel", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 229, - "character": 16 - } - ], - "signatures": [ - { - "id": 296, - "name": "_closeChannel", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 297, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 298, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 299, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 229, - "character": 67 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [299] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 293, - "name": "_getAccessToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 223, - "character": 16 - } - ], - "signatures": [ - { - "id": 294, - "name": "_getAccessToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 327, - "name": "_handleTokenChanged", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 302, - "character": 10 - } - ], - "signatures": [ - { - "id": 328, - "name": "_handleTokenChanged", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 329, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 804, - "qualifiedName": "AuthChangeEvent", - "package": "@supabase/gotrue-js", - "name": "AuthChangeEvent" - } - }, - { - "id": 330, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 331, - "name": "source", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "CLIENT" - }, - { - "type": "literal", - "value": "STORAGE" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 316, - "name": "_initRealtimeClient", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 288, - "character": 10 - } - ], - "signatures": [ - { - "id": 317, - "name": "_initRealtimeClient", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 318, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 1025, - "qualifiedName": "Options", - "package": "@supabase/realtime-js", - "name": "Options" - } - } - ], - "type": { - "type": "reference", - "id": 926, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 307, - "name": "_initSupabaseAuthClient", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 259, - "character": 10 - } - ], - "signatures": [ - { - "id": 308, - "name": "_initSupabaseAuthClient", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 309, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 114, - "name": "SupabaseAuthClientOptions" - } - }, - { - "id": 310, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 311, - "name": "fetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 312, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 313, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 314, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 315, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - } - ], - "type": { - "type": "reference", - "name": "SupabaseAuthClient" - } - } - ] - }, - { - "id": 319, - "name": "_listenForAuthEvents", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 295, - "character": 10 - } - ], - "signatures": [ - { - "id": 320, - "name": "_listenForAuthEvents", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 321, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 323, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 187, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 322, - "name": "subscription", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 186, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 852, - "qualifiedName": "Subscription", - "package": "@supabase/gotrue-js", - "name": "Subscription" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [323, 322] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 324, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 326, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 190, - "character": 8 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 325, - "name": "subscription", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 189, - "character": 8 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [326, 325] - } - ] - } - } - ] - } - } - ] - }, - { - "id": 300, - "name": "_unsubscribeChannel", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 242, - "character": 10 - } - ], - "signatures": [ - { - "id": 301, - "name": "_unsubscribeChannel", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 302, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 303, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 304, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 242, - "character": 67 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [304] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 271, - "name": "channel", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 179, - "character": 2 - } - ], - "signatures": [ - { - "id": 272, - "name": "channel", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a channel with Broadcast and Presence." - }, - "parameters": [ - { - "id": 273, - "name": "name", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 274, - "name": "opts", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 275, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 276, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 277, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - } - ], - "type": { - "type": "reference", - "id": 11, - "name": "SupabaseRealtimeChannel" - } - } - ] - }, - { - "id": 256, - "name": "from", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 139, - "character": 2 - } - ], - "signatures": [ - { - "id": 257, - "name": "from", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Perform a table operation." - }, - "typeParameter": [ - { - "id": 258, - "name": "TableName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 259, - "name": "Table", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 160, - "name": "GenericTable" - } - } - ], - "parameters": [ - { - "id": 260, - "name": "table", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The table name to operate on.\n" - }, - "type": { - "type": "reference", - "id": 258, - "name": "TableName" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 259, - "name": "Table" - } - ], - "qualifiedName": "PostgrestQueryBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - } - } - ] - }, - { - "id": 305, - "name": "getChannels", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 255, - "character": 2 - } - ], - "signatures": [ - { - "id": 306, - "name": "getChannels", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Returns an array of all your channels." - }, - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - } - ] - }, - { - "id": 278, - "name": "removeAllChannels", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 191, - "character": 8 - } - ], - "signatures": [ - { - "id": 279, - "name": "removeAllChannels", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Closes and removes all channels and returns a list of removed\nchannels and their errors." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 280, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 281, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 192, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 282, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 283, - "name": "channels", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 192, - "character": 14 - } - ], - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [283] - } - ] - } - } - }, - { - "id": 284, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 192, - "character": 43 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [281, 284] - } - ] - } - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 285, - "name": "removeChannel", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 211, - "character": 8 - } - ], - "signatures": [ - { - "id": 286, - "name": "removeChannel", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Closes and removes a channel and returns the number of open channels." - }, - "parameters": [ - { - "id": 287, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The channel you want to close and remove.\n" - }, - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 288, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 289, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 213, - "character": 15 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 290, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 291, - "name": "openChannels", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 213, - "character": 23 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [291] - } - ] - } - } - }, - { - "id": 292, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 213, - "character": 47 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [289, 292] - } - ] - } - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 261, - "name": "rpc", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 155, - "character": 2 - } - ], - "signatures": [ - { - "id": 262, - "name": "rpc", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Perform a function call." - }, - "typeParameter": [ - { - "id": 263, - "name": "FunctionName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 264, - "name": "Function_", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 165, - "name": "GenericFunction" - } - } - ], - "parameters": [ - { - "id": 265, - "name": "fn", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The function name to call." - }, - "type": { - "type": "reference", - "id": 263, - "name": "FunctionName" - } - }, - { - "id": 266, - "name": "args", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Args" - }, - "objectType": { - "type": "reference", - "id": 264, - "name": "Function_" - } - }, - "defaultValue": "{}" - }, - { - "id": 267, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 268, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 270, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 163, - "character": 6 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 269, - "name": "head", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 162, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [270, 269] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "conditional", - "checkType": { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Returns" - }, - "objectType": { - "type": "reference", - "id": 264, - "name": "Function_" - } - }, - "extendsType": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "any" - } - }, - "trueType": { - "type": "conditional", - "checkType": { - "type": "indexedAccess", - "indexType": { - "type": "intrinsic", - "name": "number" - }, - "objectType": { - "type": "indexedAccess", - "indexType": { - "type": "intrinsic", - "name": "any" - }, - "objectType": { - "type": "intrinsic", - "name": "any" - } - } - }, - "extendsType": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - }, - "trueType": { - "type": "indexedAccess", - "indexType": { - "type": "intrinsic", - "name": "any" - }, - "objectType": { - "type": "intrinsic", - "name": "any" - } - }, - "falseType": { - "type": "intrinsic", - "name": "never" - } - }, - "falseType": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Returns" - }, - "objectType": { - "type": "reference", - "id": 264, - "name": "Function_" - } - } - ], - "qualifiedName": "PostgrestFilterBuilder", - "package": "@supabase/postgrest-js", - "name": "default" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [224] - }, - { - "title": "Properties", - "kind": 1024, - "children": [232, 234, 245, 240, 236, 246, 237, 233, 238, 239, 235, 251, 250] - }, - { - "title": "Accessors", - "kind": 262144, - "children": [252, 254] - }, - { - "title": "Methods", - "kind": 2048, - "children": [295, 293, 327, 316, 307, 319, 300, 271, 256, 305, 278, 285, 261] - } - ], - "sources": [ - { - "fileName": "src/SupabaseClient.ts", - "line": 30, - "character": 21 - } - ], - "typeParameter": [ - { - "id": 332, - "name": "Database", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 333, - "name": "SchemaName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intersection", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 226, - "name": "Database" - } - } - ] - }, - "default": { - "type": "conditional", - "checkType": { - "type": "literal", - "value": "public" - }, - "extendsType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 226, - "name": "Database" - } - }, - "trueType": { - "type": "literal", - "value": "public" - }, - "falseType": { - "type": "intersection", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 226, - "name": "Database" - } - } - ] - } - } - }, - { - "id": 334, - "name": "Schema", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 169, - "name": "GenericSchema" - }, - "default": { - "type": "conditional", - "checkType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 227, - "name": "SchemaName" - }, - "objectType": { - "type": "reference", - "id": 226, - "name": "Database" - } - }, - "extendsType": { - "type": "reference", - "id": 169, - "name": "GenericSchema" - }, - "trueType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 227, - "name": "SchemaName" - }, - "objectType": { - "type": "reference", - "id": 226, - "name": "Database" - } - }, - "falseType": { - "type": "intrinsic", - "name": "any" - } - } - } - ] - }, - { - "id": 842, - "name": "AdminUserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 844, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for app_metadata that.", - "text": "Only a service role can modify.\n\nCan be any JSON that includes app-specific info, such as identity providers, roles, and other\naccess control information.\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 118, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 851, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 95, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - }, - "inheritedFrom": { - "type": "reference", - "id": 841, - "name": "UserAttributes.data" - } - }, - { - "id": 847, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 79, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 837, - "name": "UserAttributes.email" - } - }, - { - "id": 850, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 91, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 840, - "name": "UserAttributes.email_change_token" - } - }, - { - "id": 845, - "name": "email_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their email address.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 124, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 849, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 87, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 839, - "name": "UserAttributes.password" - } - }, - { - "id": 848, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 83, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 838, - "name": "UserAttributes.phone" - } - }, - { - "id": 846, - "name": "phone_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "Sets if a user has confirmed their phone number.", - "text": "Only a service role can modify.\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 130, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 843, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata.", - "text": "Can be any JSON.\n\nOnly a service role can modify.\n\nNote: When using the GoTrueAdminApi and wanting to modify a user's user_metadata,\nthis attribute is used instead of UserAttributes data.\n\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 109, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [844, 851, 847, 850, 845, 849, 848, 846, 843] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 97, - "character": 17 - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 836, - "qualifiedName": "UserAttributes", - "package": "@supabase/gotrue-js", - "name": "UserAttributes" - } - ] - }, - { - "id": 203, - "name": "AuthSession", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 205, - "name": "access_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 24, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 207, - "name": "expires_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A timestamp of when the token will expire. Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 32, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 206, - "name": "expires_in", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The number of seconds until the token expires (since it was issued). Returned when a login is confirmed." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 28, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 204, - "name": "provider_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 23, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 208, - "name": "refresh_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 33, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 209, - "name": "token_type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 34, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 210, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 35, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [205, 207, 206, 204, 208, 209, 210] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 22, - "character": 17 - } - ] - }, - { - "id": 175, - "name": "AuthUser", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 192, - "name": "action_link", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 63, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 177, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 50, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 178, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 179, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 51, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [179] - } - ], - "indexSignature": { - "id": 180, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 181, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 186, - "name": "aud", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 57, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 187, - "name": "confirmation_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 58, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 196, - "name": "confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 67, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 195, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 66, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 193, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 64, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 189, - "name": "email_change_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 60, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 197, - "name": "email_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 68, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 176, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 49, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 202, - "name": "identities", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 73, - "character": 4 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 824, - "qualifiedName": "UserIdentity", - "package": "@supabase/gotrue-js", - "name": "UserIdentity" - } - } - }, - { - "id": 191, - "name": "invited_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 62, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 199, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 70, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 190, - "name": "new_email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 61, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 194, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 65, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 198, - "name": "phone_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 69, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 188, - "name": "recovery_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 59, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 200, - "name": "role", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 71, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 201, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 72, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 182, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 54, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 183, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 184, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 185, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [ - 192, 177, 186, 187, 196, 195, 193, 189, 197, 176, 202, 191, 199, 190, 194, 198, - 188, 200, 201, 182 - ] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 48, - "character": 17 - } - ] - }, - { - "id": 860, - "name": "CookieOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 863, - "name": "domain", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 149, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 862, - "name": "lifetime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 148, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 861, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 147, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 864, - "name": "path", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 150, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 865, - "name": "sameSite", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 151, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [863, 862, 861, 864, 865] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 146, - "character": 17 - } - ] - }, - { - "id": 919, - "name": "OpenIDConnectCredentials", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 923, - "name": "client_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 215, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 920, - "name": "id_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 212, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 924, - "name": "issuer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 216, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 921, - "name": "nonce", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 213, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 922, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 214, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 803, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [923, 920, 924, 921, 922] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 211, - "character": 17 - } - ] - }, - { - "id": 899, - "name": "SignInWithOAuthOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 902, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 192, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 903, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 904, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 905, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 900, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 190, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 901, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 191, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [902, 900, 901] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 189, - "character": 17 - } - ] - }, - { - "id": 882, - "name": "SignInWithPasswordOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 883, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 171, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [883] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 170, - "character": 17 - } - ] - }, - { - "id": 891, - "name": "SignInWithPasswordlessOptions", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 894, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 183, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 892, - "name": "emailRedirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 181, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 893, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 182, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [894, 892, 893] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 180, - "character": 17 - } - ] - }, - { - "id": 852, - "name": "Subscription", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 853, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The subscriber UUID. This will be set by the client." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 136, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 854, - "name": "callback", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 140, - "character": 4 - } - ], - "signatures": [ - { - "id": 855, - "name": "callback", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "The function to call every time there is an event. eg: (eventName) => {}" - }, - "parameters": [ - { - "id": 856, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "reference", - "id": 804, - "qualifiedName": "AuthChangeEvent", - "package": "@supabase/gotrue-js", - "name": "AuthChangeEvent" - } - }, - { - "id": 857, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExternal": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 858, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 144, - "character": 4 - } - ], - "signatures": [ - { - "id": 859, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Call this to remove the listener." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [853] - }, - { - "title": "Methods", - "kind": 2048, - "children": [854, 858] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 132, - "character": 17 - } - ] - }, - { - "id": 836, - "name": "UserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 841, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "A custom data object for user_metadata that a user can modify. Can be any JSON." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 95, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 837, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's email." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 79, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 840, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "An email change token." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 91, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 839, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's password." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 87, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 838, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "comment": { - "shortText": "The user's phone." - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 83, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [841, 837, 840, 839, 838] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 75, - "character": 17 - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 842, - "name": "AdminUserAttributes" - } - ] - }, - { - "id": 866, - "name": "UserCredentials", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 867, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 154, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 872, - "name": "oidc", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 159, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 919, - "qualifiedName": "OpenIDConnectCredentials", - "package": "@supabase/gotrue-js", - "name": "OpenIDConnectCredentials" - } - }, - { - "id": 869, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 156, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 868, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 155, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 871, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 158, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 803, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - }, - { - "id": 870, - "name": "refreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 157, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [867, 872, 869, 868, 871, 870] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 153, - "character": 17 - } - ] - }, - { - "id": 824, - "name": "UserIdentity", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 832, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 44, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 825, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 38, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 827, - "name": "identity_data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 40, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 828, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "indexSignature": { - "id": 829, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 830, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 833, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 45, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 831, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 43, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 834, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 46, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 826, - "name": "user_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 39, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [832, 825, 827, 833, 831, 834, 826] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 37, - "character": 17 - } - ] - }, - { - "id": 912, - "name": "VerifyEmailOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 913, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 204, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 914, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 205, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 915, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 206, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 916, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 207, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 918, - "qualifiedName": "EmailOTPType", - "package": "@supabase/gotrue-js", - "name": "EmailOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [913, 914, 915, 916] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 203, - "character": 17 - } - ] - }, - { - "id": 907, - "name": "VerifyMobileOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 908, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 198, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 909, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 199, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 910, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 200, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 911, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 201, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 917, - "qualifiedName": "MobileOTPType", - "package": "@supabase/gotrue-js", - "name": "MobileOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [908, 909, 910, 911] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 197, - "character": 17 - } - ] - }, - { - "id": 804, - "name": "AuthChangeEvent", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 3, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "PASSWORD_RECOVERY" - }, - { - "type": "literal", - "value": "SIGNED_IN" - }, - { - "type": "literal", - "value": "SIGNED_OUT" - }, - { - "type": "literal", - "value": "TOKEN_REFRESHED" - }, - { - "type": "literal", - "value": "USER_UPDATED" - }, - { - "type": "literal", - "value": "USER_DELETED" - } - ] - } - }, - { - "id": 805, - "name": "AuthResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 4, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 806, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 809, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 7, - "character": 4 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 808, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 6, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 203, - "qualifiedName": "Session", - "package": "@supabase/gotrue-js", - "name": "Session" - }, - { - "type": "literal", - "value": null - } - ] - } - }, - { - "id": 807, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 5, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 175, - "qualifiedName": "User", - "package": "@supabase/gotrue-js", - "name": "User" - }, - { - "type": "literal", - "value": null - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [809, 808, 807] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 4, - "character": 35 - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 810, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 813, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 11, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 812, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 10, - "character": 4 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 811, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 9, - "character": 4 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [813, 812, 811] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 8, - "character": 4 - } - ] - } - } - ] - } - }, - { - "id": 918, - "name": "EmailOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 210, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "invite" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "email_change" - } - ] - } - }, - { - "id": 917, - "name": "MobileOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 209, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "sms" - }, - { - "type": "literal", - "value": "phone_change" - } - ] - } - }, - { - "id": 814, - "name": "OAuthResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 13, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 815, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 818, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 16, - "character": 4 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 816, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 14, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 803, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - }, - { - "id": 817, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 15, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [818, 816, 817] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 13, - "character": 36 - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 819, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 822, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 20, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AuthError", - "package": "@supabase/gotrue-js", - "name": "AuthError" - } - }, - { - "id": 820, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 18, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 803, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - }, - { - "id": 821, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 19, - "character": 4 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [822, 820, 821] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 17, - "character": 4 - } - ] - } - } - ] - } - }, - { - "id": 217, - "name": "PostgrestError", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "comment": { - "shortText": "Error format", - "text": "{@link https://postgrest.org/en/stable/api.html?highlight=options#errors-and-http-status-codes}\n" - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/types.d.ts", - "line": 7, - "character": 20 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 218, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 222, - "name": "code", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/types.d.ts", - "line": 11, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 220, - "name": "details", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/types.d.ts", - "line": 9, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 221, - "name": "hint", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/types.d.ts", - "line": 10, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 219, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/types.d.ts", - "line": 8, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [222, 220, 221, 219] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/types.d.ts", - "line": 7, - "character": 37 - } - ] - } - } - }, - { - "id": 215, - "name": "PostgrestMaybeSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/types.d.ts", - "line": 39, - "character": 20 - } - ], - "typeParameter": [ - { - "id": 216, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - } - } - ], - "type": { - "type": "reference", - "id": 213, - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reference", - "id": 216, - "qualifiedName": "T", - "package": "@supabase/postgrest-js", - "name": "T" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - } - ], - "qualifiedName": "PostgrestSingleResponse", - "package": "@supabase/postgrest-js", - "name": "PostgrestSingleResponse" - } - }, - { - "id": 211, - "name": "PostgrestResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/types.d.ts", - "line": 32, - "character": 20 - } - ], - "typeParameter": [ - { - "id": 212, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 212, - "qualifiedName": "T", - "package": "@supabase/postgrest-js", - "name": "T" - } - ], - "qualifiedName": "PostgrestResponseSuccess", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponseSuccess" - }, - { - "type": "reference", - "qualifiedName": "PostgrestResponseFailure", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponseFailure" - } - ] - } - }, - { - "id": 213, - "name": "PostgrestSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/postgrest-js/dist/module/types.d.ts", - "line": 38, - "character": 20 - } - ], - "typeParameter": [ - { - "id": 214, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExternal": true - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 214, - "qualifiedName": "T", - "package": "@supabase/postgrest-js", - "name": "T" - } - ], - "qualifiedName": "PostgrestSingleResponseSuccess", - "package": "@supabase/postgrest-js", - "name": "PostgrestSingleResponseSuccess" - }, - { - "type": "reference", - "qualifiedName": "PostgrestResponseFailure", - "package": "@supabase/postgrest-js", - "name": "PostgrestResponseFailure" - } - ] - } - }, - { - "id": 803, - "name": "Provider", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 2, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "apple" - }, - { - "type": "literal", - "value": "azure" - }, - { - "type": "literal", - "value": "bitbucket" - }, - { - "type": "literal", - "value": "discord" - }, - { - "type": "literal", - "value": "facebook" - }, - { - "type": "literal", - "value": "github" - }, - { - "type": "literal", - "value": "gitlab" - }, - { - "type": "literal", - "value": "google" - }, - { - "type": "literal", - "value": "keycloak" - }, - { - "type": "literal", - "value": "linkedin" - }, - { - "type": "literal", - "value": "notion" - }, - { - "type": "literal", - "value": "slack" - }, - { - "type": "literal", - "value": "spotify" - }, - { - "type": "literal", - "value": "twitch" - }, - { - "type": "literal", - "value": "twitter" - }, - { - "type": "literal", - "value": "workos" - } - ] - } - }, - { - "id": 1025, - "name": "RealtimeClientOptions", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 5, - "character": 20 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 1026, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 1033, - "name": "decode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 12, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 1032, - "name": "encode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 11, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 1035, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 14, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 1036, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 14, - "character": 14 - } - ], - "indexSignature": { - "id": 1037, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1038, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 1029, - "name": "heartbeatIntervalMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 8, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 1031, - "name": "logger", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 10, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 1030, - "name": "longpollerTimeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 9, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 1039, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 17, - "character": 4 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 1040, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 17, - "character": 13 - } - ], - "indexSignature": { - "id": 1041, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExternal": true - }, - "parameters": [ - { - "id": 1042, - "name": "key", - "kind": 32768, - "flags": { - "isExternal": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 1034, - "name": "reconnectAfterMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 13, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - } - }, - { - "id": 1028, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 7, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 1027, - "name": "transport", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 6, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "WebSocket", - "package": "typescript", - "name": "WebSocket" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [1033, 1032, 1035, 1029, 1031, 1030, 1039, 1034, 1028, 1027] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/realtime-js/dist/module/RealtimeClient.d.ts", - "line": 5, - "character": 30 - } - ] - } - } - }, - { - "id": 895, - "name": "SignInWithOAuthCredentials", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 185, - "character": 20 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 896, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 898, - "name": "options", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 187, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 899, - "qualifiedName": "SignInWithOAuthOptions", - "package": "@supabase/gotrue-js", - "name": "SignInWithOAuthOptions" - } - }, - { - "id": 897, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 186, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 803, - "qualifiedName": "Provider", - "package": "@supabase/gotrue-js", - "name": "Provider" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [898, 897] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 185, - "character": 49 - } - ] - } - } - }, - { - "id": 873, - "name": "SignInWithPasswordCredentials", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 161, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 874, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 875, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 162, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 877, - "name": "options", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 164, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 882, - "qualifiedName": "SignInWithPasswordOptions", - "package": "@supabase/gotrue-js", - "name": "SignInWithPasswordOptions" - } - }, - { - "id": 876, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 163, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [875, 877, 876] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 161, - "character": 52 - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 878, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 881, - "name": "options", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 168, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 882, - "qualifiedName": "SignInWithPasswordOptions", - "package": "@supabase/gotrue-js", - "name": "SignInWithPasswordOptions" - } - }, - { - "id": 880, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 167, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 879, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 166, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [881, 880, 879] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 165, - "character": 4 - } - ] - } - } - ] - } - }, - { - "id": 884, - "name": "SignInWithPasswordlessCredentials", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 173, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 885, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 886, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 174, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 887, - "name": "options", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 175, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 891, - "qualifiedName": "SignInWithPasswordlessOptions", - "package": "@supabase/gotrue-js", - "name": "SignInWithPasswordlessOptions" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [886, 887] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 173, - "character": 56 - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 888, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExternal": true - }, - "children": [ - { - "id": 890, - "name": "options", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 178, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 891, - "qualifiedName": "SignInWithPasswordlessOptions", - "package": "@supabase/gotrue-js", - "name": "SignInWithPasswordlessOptions" - } - }, - { - "id": 889, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 177, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [890, 889] - } - ], - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 176, - "character": 4 - } - ] - } - } - ] - } - }, - { - "id": 925, - "name": "SupportedStorage", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 223, - "character": 20 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - } - }, - { - "id": 906, - "name": "VerifyOTPParams", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/lib/types.d.ts", - "line": 196, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 907, - "qualifiedName": "VerifyMobileOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyMobileOTPParams" - }, - { - "type": "reference", - "id": 912, - "qualifiedName": "VerifyEmailOTPParams", - "package": "@supabase/gotrue-js", - "name": "VerifyEmailOTPParams" - } - ] - } - }, - { - "id": 2, - "name": "createClient", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 19, - "character": 13 - } - ], - "signatures": [ - { - "id": 3, - "name": "createClient", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Creates a new Supabase Client." - }, - "typeParameter": [ - { - "id": 4, - "name": "Database", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 5, - "name": "SchemaName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - }, - "default": { - "type": "conditional", - "checkType": { - "type": "literal", - "value": "public" - }, - "extendsType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 4, - "name": "Database" - } - }, - "trueType": { - "type": "literal", - "value": "public" - }, - "falseType": { - "type": "intersection", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 4, - "name": "Database" - } - } - ] - } - } - }, - { - "id": 6, - "name": "Schema", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 169, - "name": "GenericSchema" - }, - "default": { - "type": "conditional", - "checkType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 5, - "name": "SchemaName" - }, - "objectType": { - "type": "reference", - "id": 4, - "name": "Database" - } - }, - "extendsType": { - "type": "reference", - "id": 169, - "name": "GenericSchema" - }, - "trueType": { - "type": "indexedAccess", - "indexType": { - "type": "intrinsic", - "name": "any" - }, - "objectType": { - "type": "intrinsic", - "name": "any" - } - }, - "falseType": { - "type": "intrinsic", - "name": "any" - } - } - } - ], - "parameters": [ - { - "id": 7, - "name": "supabaseUrl", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 8, - "name": "supabaseKey", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 9, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "id": 133, - "typeArguments": [ - { - "type": "reference", - "id": 5, - "name": "SchemaName" - } - ], - "name": "SupabaseClientOptions" - } - } - ], - "type": { - "type": "reference", - "id": 223, - "typeArguments": [ - { - "type": "reference", - "id": 4, - "name": "Database" - }, - { - "type": "reference", - "id": 5, - "name": "SchemaName" - }, - { - "type": "reference", - "id": 6, - "name": "Schema" - } - ], - "name": "default" - } - } - ] - } - ], - "groups": [ - { - "title": "References", - "kind": 16777216, - "children": [823, 335, 336, 835] - }, - { - "title": "Namespaces", - "kind": 4, - "children": [1194] - }, - { - "title": "Classes", - "kind": 128, - "children": [337, 661, 1043, 926, 1143, 223] - }, - { - "title": "Interfaces", - "kind": 256, - "children": [842, 203, 175, 860, 919, 899, 882, 891, 852, 836, 866, 824, 912, 907] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [ - 804, 805, 918, 917, 814, 217, 215, 211, 213, 803, 1025, 895, 873, 884, 925, 906 - ] - }, - { - "title": "Functions", - "kind": 64, - "children": [2] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 10, - "name": "lib/SupabaseRealtimeChannel", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 11, - "name": "SupabaseRealtimeChannel", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 12, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 7, - "character": 2 - } - ], - "signatures": [ - { - "id": 13, - "name": "new SupabaseRealtimeChannel", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 14, - "name": "name", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 15, - "name": "opts", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 16, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 17, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 18, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - }, - "defaultValue": "{}" - }, - { - "id": 19, - "name": "socket", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 926, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ], - "type": { - "type": "reference", - "id": 11, - "name": "SupabaseRealtimeChannel" - } - } - ] - }, - { - "id": 21, - "name": "channel", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 5, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 20, - "name": "socket", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 4, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 926, - "qualifiedName": "RealtimeClient", - "package": "@supabase/realtime-js", - "name": "default" - } - }, - { - "id": 62, - "name": "getPayloadRecords", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 122, - "character": 10 - } - ], - "signatures": [ - { - "id": 63, - "name": "getPayloadRecords", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 64, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 65, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 66, - "name": "new", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 67, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - }, - "defaultValue": "{}" - }, - { - "id": 68, - "name": "old", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 69, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - }, - "defaultValue": "{}" - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [66, 68] - } - ] - } - } - } - ] - }, - { - "id": 22, - "name": "on", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 19, - "character": 2 - } - ], - "signatures": [ - { - "id": 23, - "name": "on", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "The event you want to listen to." - }, - "parameters": [ - { - "id": 24, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The event" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 25, - "name": "filter", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "An object that specifies what you want to listen to from the event." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 26, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A callback function that is called whenever the event occurs.\n" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 27, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 28, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 29, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 11, - "name": "SupabaseRealtimeChannel" - } - } - ] - }, - { - "id": 33, - "name": "presenceList", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 74, - "character": 2 - } - ], - "signatures": [ - { - "id": 34, - "name": "presenceList", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "any" - } - } - } - ] - }, - { - "id": 35, - "name": "send", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 78, - "character": 2 - } - ], - "signatures": [ - { - "id": 36, - "name": "send", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 37, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 38, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 39, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 79, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [39] - } - ], - "indexSignature": { - "id": 40, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 41, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 42, - "name": "opts", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 43, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 44, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 45, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "tuple", - "elements": [ - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "ok" - }, - { - "type": "literal", - "value": "timeout" - } - ] - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 30, - "name": "subscribe", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 46, - "character": 2 - } - ], - "signatures": [ - { - "id": 31, - "name": "subscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Enables the channel." - }, - "parameters": [ - { - "id": 32, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "Function", - "package": "typescript", - "name": "Function" - }, - "defaultValue": "..." - } - ], - "type": { - "type": "reference", - "id": 1043, - "qualifiedName": "RealtimeChannel", - "package": "@supabase/realtime-js", - "name": "default" - } - } - ] - }, - { - "id": 46, - "name": "track", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 98, - "character": 8 - } - ], - "signatures": [ - { - "id": 47, - "name": "track", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 48, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 49, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 50, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 51, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 52, - "name": "opts", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 53, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 54, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 55, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "tuple", - "elements": [ - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "ok" - }, - { - "type": "literal", - "value": "timeout" - } - ] - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 56, - "name": "untrack", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 112, - "character": 8 - } - ], - "signatures": [ - { - "id": 57, - "name": "untrack", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 58, - "name": "opts", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 59, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 60, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 61, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "tuple", - "elements": [ - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "ok" - }, - { - "type": "literal", - "value": "timeout" - } - ] - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [12] - }, - { - "title": "Properties", - "kind": 1024, - "children": [21, 20] - }, - { - "title": "Methods", - "kind": 2048, - "children": [62, 22, 33, 35, 30, 46, 56] - } - ], - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 3, - "character": 13 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [11] - } - ], - "sources": [ - { - "fileName": "src/lib/SupabaseRealtimeChannel.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 70, - "name": "lib/constants", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 71, - "name": "DEFAULT_HEADERS", - "kind": 32, - "kindString": "Variable", - "flags": { - "isConst": true - }, - "sources": [ - { - "fileName": "src/lib/constants.ts", - "line": 3, - "character": 13 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 72, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 73, - "name": "X-Client-Info", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "..." - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [73] - } - ] - } - }, - "defaultValue": "..." - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [71] - } - ], - "sources": [ - { - "fileName": "src/lib/constants.ts", - "line": 2, - "character": 0 - } - ] - }, - { - "id": 74, - "name": "lib/fetch", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 90, - "name": "fetchWithAuth", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/fetch.ts", - "line": 25, - "character": 13 - } - ], - "signatures": [ - { - "id": 91, - "name": "fetchWithAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 92, - "name": "supabaseKey", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 93, - "name": "getAccessToken", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 94, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 95, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 96, - "name": "customFetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 97, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 98, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 99, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 100, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 101, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 102, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 103, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 104, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - } - ] - }, - { - "id": 75, - "name": "resolveFetch", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/fetch.ts", - "line": 5, - "character": 13 - } - ], - "signatures": [ - { - "id": 76, - "name": "resolveFetch", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 77, - "name": "customFetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 78, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 79, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 80, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 81, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 82, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 83, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 84, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 85, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - } - ] - }, - { - "id": 86, - "name": "resolveHeadersConstructor", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/fetch.ts", - "line": 17, - "character": 13 - } - ], - "signatures": [ - { - "id": 87, - "name": "resolveHeadersConstructor", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 88, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 89, - "name": "prototype", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true - }, - "sources": [ - { - "fileName": "node_modules/typescript/lib/lib.dom.d.ts", - "line": 8291, - "character": 4 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Headers", - "package": "typescript", - "name": "Headers" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [89] - } - ] - } - } - } - ] - } - ], - "groups": [ - { - "title": "Functions", - "kind": 64, - "children": [90, 75, 86] - } - ], - "sources": [ - { - "fileName": "src/lib/fetch.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 105, - "name": "lib/helpers", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 111, - "name": "isBrowser", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 15, - "character": 13 - } - ], - "signatures": [ - { - "id": 112, - "name": "isBrowser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ] - }, - { - "id": 108, - "name": "stripTrailingSlash", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 11, - "character": 16 - } - ], - "signatures": [ - { - "id": 109, - "name": "stripTrailingSlash", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 110, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 106, - "name": "uuid", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 3, - "character": 16 - } - ], - "signatures": [ - { - "id": 107, - "name": "uuid", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - ], - "groups": [ - { - "title": "Functions", - "kind": 64, - "children": [111, 108, 106] - } - ], - "sources": [ - { - "fileName": "src/lib/helpers.ts", - "line": 3, - "character": 0 - } - ] - }, - { - "id": 113, - "name": "lib/types", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 114, - "name": "SupabaseAuthClientOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 122, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 51, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.autoRefreshToken" - } - }, - { - "id": 126, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 55, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 860, - "qualifiedName": "CookieOptions", - "package": "@supabase/gotrue-js", - "name": "CookieOptions" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.cookieOptions" - } - }, - { - "id": 121, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 50, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.detectSessionInUrl" - } - }, - { - "id": 127, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 56, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 128, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 129, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 130, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 131, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.fetch" - } - }, - { - "id": 116, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 46, - "character": 8 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 117, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": { - "id": 118, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 119, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.headers" - } - }, - { - "id": 124, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 53, - "character": 8 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Storage", - "package": "typescript", - "name": "Storage" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "qualifiedName": "Pick", - "package": "typescript", - "name": "Pick" - } - ], - "qualifiedName": "PromisifyMethods", - "package": "@supabase/gotrue-js", - "name": "PromisifyMethods" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.localStorage" - } - }, - { - "id": 125, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 54, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.multiTab" - } - }, - { - "id": 123, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 52, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.persistSession" - } - }, - { - "id": 120, - "name": "storageKey", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 49, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.storageKey" - } - }, - { - "id": 115, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExternal": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "node_modules/@supabase/gotrue-js/dist/module/GoTrueClient.d.ts", - "line": 45, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "GoTrueClientOptions.url" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [122, 126, 121, 127, 116, 124, 125, 123, 120, 115] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 6, - "character": 17 - } - ], - "extendedTypes": [ - { - "type": "reference", - "name": "GoTrueClientOptions" - } - ] - }, - { - "id": 132, - "name": "Fetch", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 8, - "character": 12 - } - ], - "type": { - "type": "query", - "queryType": { - "type": "reference", - "id": 78, - "qualifiedName": "fetch", - "package": "typescript", - "name": "fetch" - } - } - }, - { - "id": 165, - "name": "GenericFunction", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 76, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 166, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 167, - "name": "Args", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 77, - "character": 2 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 168, - "name": "Returns", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 78, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [167, 168] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 76, - "character": 30 - } - ] - } - } - }, - { - "id": 169, - "name": "GenericSchema", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 81, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 170, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 172, - "name": "Functions", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 83, - "character": 2 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "id": 165, - "name": "GenericFunction" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 171, - "name": "Tables", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 82, - "character": 2 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "id": 160, - "name": "GenericTable" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [172, 171] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 81, - "character": 28 - } - ] - } - } - }, - { - "id": 160, - "name": "GenericTable", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 70, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 161, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 163, - "name": "Insert", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 72, - "character": 2 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 162, - "name": "Row", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 71, - "character": 2 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 164, - "name": "Update", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 73, - "character": 2 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [163, 162, 164] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 70, - "character": 27 - } - ] - } - } - }, - { - "id": 133, - "name": "SupabaseClientOptions", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 10, - "character": 12 - } - ], - "typeParameter": [ - { - "id": 149, - "name": "SchemaName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 134, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 138, - "name": "auth", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 18, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 139, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 140, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Automatically refreshes the token for logged in users." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 22, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 145, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Options passed to the gotrue-js instance" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 42, - "character": 4 - } - ], - "type": { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "cookieOptions" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "SupabaseAuthClientOptions" - } - } - }, - { - "id": 143, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Detect a session from the URL. Used for OAuth login callbacks." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 34, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 144, - "name": "localStorage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A storage provider. Used to store the logged in session." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 38, - "character": 4 - } - ], - "type": { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "localStorage" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "SupabaseAuthClientOptions" - } - } - }, - { - "id": 142, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Whether to persist a logged in session to storage." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 30, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 141, - "name": "storageKey", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Optional key name used for storing tokens in local storage" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 26, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [140, 145, 143, 144, 142, 141] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 18, - "character": 9 - } - ] - } - } - }, - { - "id": 135, - "name": "db", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The Postgres schema which your tables belong to. Must be on the list of exposed schemas in Supabase. Defaults to 'public'." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 14, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 136, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 137, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 15, - "character": 4 - } - ], - "type": { - "type": "reference", - "id": 149, - "name": "SchemaName" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [137] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 14, - "character": 7 - } - ] - } - } - }, - { - "id": 147, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "A custom `fetch` implementation." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 51, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 132, - "name": "Fetch" - } - }, - { - "id": 148, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Optional headers for initializing the client." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 55, - "character": 2 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 146, - "name": "realtime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Options passed to the realtime-js instance" - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 47, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 1025, - "qualifiedName": "Options", - "package": "@supabase/realtime-js", - "name": "RealtimeClientOptions" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [138, 135, 147, 148, 146] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 10, - "character": 48 - } - ] - } - } - }, - { - "id": 150, - "name": "SupabaseRealtimePayload", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 58, - "character": 12 - } - ], - "typeParameter": [ - { - "id": 159, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 151, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 152, - "name": "commit_timestamp", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 59, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 158, - "name": "errors", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 67, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - }, - { - "type": "literal", - "value": null - } - ] - } - }, - { - "id": 153, - "name": "eventType", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 60, - "character": 2 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "INSERT" - }, - { - "type": "literal", - "value": "UPDATE" - }, - { - "type": "literal", - "value": "DELETE" - } - ] - } - }, - { - "id": 156, - "name": "new", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "The new record. Present for 'INSERT' and 'UPDATE' events." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 64, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 159, - "name": "T" - } - }, - { - "id": 157, - "name": "old", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "shortText": "The previous record. Present for 'UPDATE' and 'DELETE' events." - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 66, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 159, - "name": "T" - } - }, - { - "id": 154, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 61, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 155, - "name": "table", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 62, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [152, 158, 153, 156, 157, 154, 155] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 58, - "character": 41 - } - ] - } - } - } - ], - "groups": [ - { - "title": "Interfaces", - "kind": 256, - "children": [114] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [132, 165, 169, 160, 133, 150] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 173, - "name": "lib/version", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 174, - "name": "version", - "kind": 32, - "kindString": "Variable", - "flags": { - "isConst": true - }, - "sources": [ - { - "fileName": "src/lib/version.ts", - "line": 1, - "character": 13 - } - ], - "type": { - "type": "literal", - "value": "0.0.0-automated" - }, - "defaultValue": "'0.0.0-automated'" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [174] - } - ], - "sources": [ - { - "fileName": "src/lib/version.ts", - "line": 1, - "character": 0 - } - ] - } - ], - "groups": [ - { - "title": "Modules", - "kind": 2, - "children": [1, 10, 70, 74, 105, 113, 173] - } - ] - }, - { - "id": 0, - "name": "@supabase/gotrue-js", - "kind": 1, - "kindString": "Project", - "flags": {}, - "originalName": "", - "children": [ - { - "id": 1, - "name": "GoTrueApi", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 2, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 33, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L33" - } - ], - "signatures": [ - { - "id": 3, - "name": "new GoTrueApi", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 4, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 5, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 11, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 43, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L43" - } - ], - "type": { - "type": "reference", - "id": 636, - "name": "CookieOptions" - } - }, - { - "id": 12, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 44, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L44" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 13, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "node_modules/typescript/lib/lib.dom.d.ts", - "line": 18095, - "character": 17 - } - ], - "signatures": [ - { - "id": 14, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 15, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "RequestInfo", - "qualifiedName": "RequestInfo", - "package": "typescript" - }, - { - "type": "reference", - "name": "URL", - "qualifiedName": "URL", - "package": "typescript" - } - ] - } - }, - { - "id": 16, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "name": "RequestInit", - "qualifiedName": "RequestInit", - "package": "typescript" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Response", - "qualifiedName": "Response", - "package": "typescript" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - } - }, - { - "id": 7, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 40, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L40" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 8, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 40, - "character": 14, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L40" - } - ], - "indexSignature": { - "id": 9, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 10, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 6, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 39, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L39" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [11, 12, 7, 6] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 38, - "character": 5, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L38" - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 1, - "name": "default" - } - } - ] - }, - { - "id": 22, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 30, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L30" - } - ], - "type": { - "type": "reference", - "id": 636, - "name": "CookieOptions" - } - }, - { - "id": 23, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 31, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L31" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 24, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "node_modules/typescript/lib/lib.dom.d.ts", - "line": 18095, - "character": 17 - } - ], - "signatures": [ - { - "id": 25, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 26, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "RequestInfo", - "qualifiedName": "RequestInfo", - "package": "typescript" - }, - { - "type": "reference", - "name": "URL", - "qualifiedName": "URL", - "package": "typescript" - } - ] - } - }, - { - "id": 27, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "name": "RequestInit", - "qualifiedName": "RequestInit", - "package": "typescript" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Response", - "qualifiedName": "Response", - "package": "typescript" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - } - }, - { - "id": 18, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 27, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L27" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 19, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 27, - "character": 21, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L27" - } - ], - "indexSignature": { - "id": 20, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 21, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 17, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 26, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L26" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 28, - "name": "_createRequestHeaders", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 57, - "character": 10, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L57" - } - ], - "signatures": [ - { - "id": 29, - "name": "_createRequestHeaders", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Create a temporary object with all configured headers and\nadds the Authorization token to be used on request methods" - } - ] - }, - "parameters": [ - { - "id": 30, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A valid, logged-in JWT." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 31, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 58, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L58" - } - ] - } - } - } - ] - }, - { - "id": 32, - "name": "cookieName", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 63, - "character": 10, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L63" - } - ], - "signatures": [ - { - "id": 33, - "name": "cookieName", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 249, - "name": "createUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 799, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L799" - } - ], - "signatures": [ - { - "id": 250, - "name": "createUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Creates a new user.\n\nThis function should only be called on a server. Never expose your " - }, - { - "kind": "code", - "text": "`service_role`" - }, - { - "kind": "text", - "text": " key in the browser." - } - ] - }, - "parameters": [ - { - "id": 251, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The data you want to create the user with." - } - ] - }, - "type": { - "type": "reference", - "id": 616, - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 252, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 254, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 802, - "character": 18, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L802" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - }, - { - "id": 255, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 802, - "character": 30, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L802" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 253, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 802, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L802" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [254, 255, 253] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 802, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L802" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 256, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 258, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 802, - "character": 60, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L802" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 259, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 802, - "character": 72, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L802" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 257, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 802, - "character": 48, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L802" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [258, 259, 257] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 802, - "character": 46, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L802" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 220, - "name": "deleteAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 681, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L681" - } - ], - "signatures": [ - { - "id": 221, - "name": "deleteAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Deletes the Auth Cookies and redirects to the" - } - ] - }, - "parameters": [ - { - "id": 222, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The request object." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 223, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The response object." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 224, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Optionally specify a " - }, - { - "kind": "code", - "text": "`redirectTo`" - }, - { - "kind": "text", - "text": " URL in the options." - } - ] - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 225, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 226, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 681, - "character": 63, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L681" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [226] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 681, - "character": 61, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L681" - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ] - }, - { - "id": 301, - "name": "deleteUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 982, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L982" - } - ], - "signatures": [ - { - "id": 302, - "name": "deleteUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Delete a user. Requires a " - }, - { - "kind": "code", - "text": "`service_role`" - }, - { - "kind": "text", - "text": " key.\n\nThis function should only be called on a server. Never expose your " - }, - { - "kind": "code", - "text": "`service_role`" - }, - { - "kind": "text", - "text": " key in the browser." - } - ] - }, - "parameters": [ - { - "id": 303, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The user uid you want to remove." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 304, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 306, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 985, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L985" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 305, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 984, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L984" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [306, 305] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 983, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L983" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 307, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 309, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 987, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L987" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 308, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 987, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L987" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [309, 308] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 987, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L987" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 231, - "name": "generateLink", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 748, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L748" - } - ], - "signatures": [ - { - "id": 232, - "name": "generateLink", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Generates links to be sent via email or other." - } - ] - }, - "parameters": [ - { - "id": 233, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The link type (\"signup\" or \"magiclink\" or \"recovery\" or \"invite\")." - } - ] - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "invite" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - } - ] - } - }, - { - "id": 234, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The user's email." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 235, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 236, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 238, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 753, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L753" - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 237, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 752, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L752" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 239, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 754, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L754" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [238, 237, 239] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 751, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L751" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 240, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 241, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 758, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L758" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - }, - { - "id": 242, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 759, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L759" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [241, 242] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 757, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L757" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 243, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 244, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 762, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L762" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - }, - { - "id": 245, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 763, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L763" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [244, 245] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 761, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L761" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 246, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 247, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 765, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L765" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 248, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 765, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L765" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [247, 248] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 765, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L765" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 227, - "name": "getAuthCookieString", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 700, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L700" - } - ], - "signatures": [ - { - "id": 228, - "name": "getAuthCookieString", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Helper method to generate the Auth Cookie string for you in case you can't use " - }, - { - "kind": "code", - "text": "`setAuthCookie`" - }, - { - "kind": "text", - "text": "." - } - ], - "blockTags": [ - { - "tag": "@returns", - "content": [ - { - "kind": "text", - "text": "The Cookie string that needs to be set as the value for the " - }, - { - "kind": "code", - "text": "`Set-Cookie`" - }, - { - "kind": "text", - "text": " header." - } - ] - } - ] - }, - "parameters": [ - { - "id": 229, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The request object." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 230, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The response object." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ] - }, - { - "id": 34, - "name": "getUrlForProvider", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 73, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L73" - } - ], - "signatures": [ - { - "id": 35, - "name": "getUrlForProvider", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Generates the relevant login URL for a third-party provider." - } - ] - }, - "parameters": [ - { - "id": 36, - "name": "provider", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "One of the providers supported by GoTrue." - } - ] - }, - "type": { - "type": "reference", - "id": 535, - "name": "Provider" - } - }, - { - "id": 37, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 38, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 41, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 78, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L78" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 42, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 78, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L78" - } - ], - "indexSignature": { - "id": 43, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 44, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 39, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 76, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L76" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 40, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 77, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L77" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [41, 39, 40] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 75, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L75" - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 310, - "name": "getUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1017, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1017" - } - ], - "signatures": [ - { - "id": 311, - "name": "getUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Gets the current user details.\n\nThis method is called by the GoTrueClient " - }, - { - "kind": "code", - "text": "`update`" - }, - { - "kind": "text", - "text": " where\nthe jwt is set to this.currentSession.access_token\nand therefore, acts like getting the currently authenticated user" - } - ] - }, - "parameters": [ - { - "id": 312, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A valid, logged-in JWT. Typically, the access_token for the currentSession" - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 313, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 315, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1020, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1020" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 314, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1019, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1019" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [315, 314] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1018, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1018" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 316, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 318, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1022, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1022" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 317, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1022, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1022" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [318, 317] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1022, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1022" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 277, - "name": "getUserByCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 866, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L866" - } - ], - "signatures": [ - { - "id": 278, - "name": "getUserByCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Get user by reading the cookie from the request.\nWorks for Next.js & Express (requires cookie-parser middleware)." - } - ] - }, - "parameters": [ - { - "id": 279, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 280, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 281, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 284, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 873, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L873" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 582, - "name": "User" - } - ] - } - }, - { - "id": 285, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 874, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L874" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 282, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 871, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L871" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 283, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 872, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L872" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 582, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [284, 285, 282, 283] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 870, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L870" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 286, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 289, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 879, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L879" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 582, - "name": "User" - } - ] - } - }, - { - "id": 290, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 880, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L880" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 287, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 877, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L877" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 288, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 878, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L878" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 582, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [289, 290, 287, 288] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 876, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L876" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 268, - "name": "getUserById", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 845, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L845" - } - ], - "signatures": [ - { - "id": 269, - "name": "getUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Get user by id." - } - ] - }, - "parameters": [ - { - "id": 270, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The user's unique identifier\n\nThis function should only be called on a server. Never expose your " - }, - { - "kind": "code", - "text": "`service_role`" - }, - { - "kind": "text", - "text": " key in the browser." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 271, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 273, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 27, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L847" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 272, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 15, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L847" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [273, 272] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L847" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 274, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 276, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 57, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L847" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 275, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 45, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L847" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [276, 275] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 847, - "character": 43, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L847" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 180, - "name": "inviteUserByEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 524, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L524" - } - ], - "signatures": [ - { - "id": 181, - "name": "inviteUserByEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Sends an invite link to an email address." - } - ] - }, - "parameters": [ - { - "id": 182, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The email address of the user." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 183, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 184, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 186, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 528, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L528" - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 185, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 527, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L527" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [186, 185] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 526, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L526" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 187, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 189, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 533, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L533" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 188, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 532, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L532" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [189, 188] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 531, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L531" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 190, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 192, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 535, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L535" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 191, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 535, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L535" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [192, 191] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 535, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L535" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 260, - "name": "listUsers", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 823, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L823" - } - ], - "signatures": [ - { - "id": 261, - "name": "listUsers", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Get a list of users.\n\nThis function should only be called on a server. Never expose your " - }, - { - "kind": "code", - "text": "`service_role`" - }, - { - "kind": "text", - "text": " key in the browser." - } - ] - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 262, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 264, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 823, - "character": 46, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L823" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 263, - "name": "users", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 823, - "character": 31, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L823" - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 582, - "name": "User" - } - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [264, 263] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 823, - "character": 29, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L823" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 265, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 267, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 823, - "character": 77, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L823" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 266, - "name": "users", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 823, - "character": 64, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L823" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [267, 266] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 823, - "character": 62, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L823" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 207, - "name": "refreshAccessToken", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 603, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L603" - } - ], - "signatures": [ - { - "id": 208, - "name": "refreshAccessToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Generates a new JWT." - } - ] - }, - "parameters": [ - { - "id": 209, - "name": "refreshToken", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A valid refresh token that was returned on login." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 210, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 212, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 606, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L606" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 211, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 605, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L605" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [212, 211] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 604, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L604" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 213, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 215, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 608, - "character": 23, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L608" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 214, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 608, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L608" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [215, 214] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 608, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L608" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 193, - "name": "resetPasswordForEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 564, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L564" - } - ], - "signatures": [ - { - "id": 194, - "name": "resetPasswordForEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Sends a reset request to an email address." - } - ] - }, - "parameters": [ - { - "id": 195, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The email address of the user." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 196, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 197, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 199, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 568, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L568" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 198, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 567, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L567" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [199, 198] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 566, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L566" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 200, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 201, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 572, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L572" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 202, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - }, - { - "id": 203, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 573, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L573" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [201, 203] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 571, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L571" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 204, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 205, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 575, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L575" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 206, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 575, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L575" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [205, 206] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 575, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L575" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 115, - "name": "sendMagicLinkEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 326, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L326" - } - ], - "signatures": [ - { - "id": 116, - "name": "sendMagicLinkEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Sends a magic login link to an email address." - } - ] - }, - "parameters": [ - { - "id": 117, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The email address of the user." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 118, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 119, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 122, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 331, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L331" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 121, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 330, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L330" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 120, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 329, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L329" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [122, 121, 120] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 328, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L328" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 123, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 124, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 335, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L335" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 125, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - }, - { - "id": 126, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 336, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L336" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [124, 126] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 334, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L334" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 127, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 128, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 338, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L338" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 129, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 338, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L338" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [128, 129] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 338, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L338" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 130, - "name": "sendMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 373, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L373" - } - ], - "signatures": [ - { - "id": 131, - "name": "sendMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Sends a mobile OTP via SMS. Will register the account if it doesn't already exist" - } - ] - }, - "parameters": [ - { - "id": 132, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The user's phone number WITH international prefix" - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 133, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 134, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 136, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 377, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L377" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 135, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 376, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L376" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [136, 135] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 375, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L375" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 137, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 138, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 381, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L381" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 139, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {} - } - } - }, - { - "id": 140, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 382, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L382" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [138, 140] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 380, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L380" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 141, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 142, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 384, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L384" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 143, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 384, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L384" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [142, 143] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 384, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L384" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 216, - "name": "setAuthCookie", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 635, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L635" - } - ], - "signatures": [ - { - "id": 217, - "name": "setAuthCookie", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Set/delete the auth cookie based on the AuthChangeEvent.\nWorks for Next.js & Express (requires cookie-parser middleware)." - } - ] - }, - "parameters": [ - { - "id": 218, - "name": "req", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The request object." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 219, - "name": "res", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The response object." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 63, - "name": "signInWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 159, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L159" - } - ], - "signatures": [ - { - "id": 64, - "name": "signInWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Logs in an existing user using their email address." - } - ] - }, - "parameters": [ - { - "id": 65, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The email address of the user." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 66, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The password of the user." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 67, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 68, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 69, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 163, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L163" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [69] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 162, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L162" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 70, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 71, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 167, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L167" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - }, - { - "id": 72, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 168, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L168" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [71, 72] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 166, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L166" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 73, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 74, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 170, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L170" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 75, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 170, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L170" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [74, 75] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 170, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L170" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 106, - "name": "signInWithOpenIDConnect", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 286, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L286" - } - ], - "signatures": [ - { - "id": 107, - "name": "signInWithOpenIDConnect", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Logs in an OpenID Connect user using their id_token." - } - ] - }, - "parameters": [ - { - "id": 108, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 695, - "name": "OpenIDConnectCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 109, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 111, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 295, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L295" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 110, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 294, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L294" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [111, 110] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 293, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L293" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 112, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 114, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 297, - "character": 23, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L297" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 113, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 297, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L297" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [114, 113] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 297, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L297" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 93, - "name": "signInWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 246, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L246" - } - ], - "signatures": [ - { - "id": 94, - "name": "signInWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Logs in an existing user using their phone number and password." - } - ] - }, - "parameters": [ - { - "id": 95, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The phone number of the user." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 96, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The password of the user." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 97, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 98, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 99, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 250, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L250" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [99] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 249, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L249" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 100, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 102, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 255, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L255" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 101, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 254, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L254" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [102, 101] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 253, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L253" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 103, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 105, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 257, - "character": 23, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L257" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 104, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 257, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L257" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [105, 104] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 257, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L257" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 144, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 413, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L413" - } - ], - "signatures": [ - { - "id": 145, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Removes a logged-in session." - } - ] - }, - "parameters": [ - { - "id": 146, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A valid, logged-in JWT." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 147, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 148, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 413, - "character": 40, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L413" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "name": "AuthError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [148] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 413, - "character": 38, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L413" - } - ] - } - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 45, - "name": "signUpWithEmail", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 105, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L105" - } - ], - "signatures": [ - { - "id": 46, - "name": "signUpWithEmail", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Creates a new user using their email address." - } - ], - "blockTags": [ - { - "tag": "@returns", - "content": [ - { - "kind": "text", - "text": "A logged-in session if the server has \"autoconfirm\" ON" - } - ] - }, - { - "tag": "@returns", - "content": [ - { - "kind": "text", - "text": "A user if the server has \"autoconfirm\" OFF" - } - ] - } - ] - }, - "parameters": [ - { - "id": 47, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The email address of the user." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 48, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The password of the user." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 49, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 50, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 53, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 111, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L111" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 52, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 110, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L110" - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 51, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 109, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L109" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [53, 52, 51] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 108, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L108" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 54, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 55, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 115, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L115" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - }, - { - "id": 56, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 116, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L116" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [55, 56] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 114, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L114" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 57, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 58, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 119, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L119" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - }, - { - "id": 59, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 120, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L120" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [58, 59] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 118, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L118" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 60, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 61, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 122, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L122" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 62, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 122, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L122" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [61, 62] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 122, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L122" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 76, - "name": "signUpWithPhone", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 197, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L197" - } - ], - "signatures": [ - { - "id": 77, - "name": "signUpWithPhone", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Signs up a new user using their phone number and a password." - } - ] - }, - "parameters": [ - { - "id": 78, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The phone number of the user." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 79, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The password of the user." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 80, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 81, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 83, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 202, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L202" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 82, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 201, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L201" - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [83, 82] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 200, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L200" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 84, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 85, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 206, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L206" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - }, - { - "id": 86, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 207, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L207" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [85, 86] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 205, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L205" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 87, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 88, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 210, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L210" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - }, - { - "id": 89, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 211, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L211" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [88, 89] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 209, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L209" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 90, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 91, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 213, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L213" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 92, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 213, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L213" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [91, 92] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 213, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L213" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 319, - "name": "updateUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1043, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1043" - } - ], - "signatures": [ - { - "id": 320, - "name": "updateUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Updates the user data." - } - ] - }, - "parameters": [ - { - "id": 321, - "name": "jwt", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A valid, logged-in JWT." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 322, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The data you want to update." - } - ] - }, - "type": { - "type": "reference", - "id": 610, - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 323, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 325, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1049, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1049" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 324, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1048, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1048" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [325, 324] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1047, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1047" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 326, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 328, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1051, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1051" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 327, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1051, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1051" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [328, 327] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 1051, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L1051" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 291, - "name": "updateUserById", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 950, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L950" - } - ], - "signatures": [ - { - "id": 292, - "name": "updateUserById", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Updates the user data." - } - ] - }, - "parameters": [ - { - "id": 293, - "name": "uid", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 294, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The data you want to update.\n\nThis function should only be called on a server. Never expose your " - }, - { - "kind": "code", - "text": "`service_role`" - }, - { - "kind": "text", - "text": " key in the browser." - } - ] - }, - "type": { - "type": "reference", - "id": 616, - "name": "AdminUserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 295, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 297, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 956, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L956" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 296, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 955, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L955" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [297, 296] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 954, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L954" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 298, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 300, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 958, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L958" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 299, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 958, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L958" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [300, 299] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 958, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L958" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 149, - "name": "verifyMobileOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 437, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L437" - } - ], - "signatures": [ - { - "id": 150, - "name": "verifyMobileOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [], - "blockTags": [ - { - "tag": "@deprecated", - "content": [ - { - "kind": "text", - "text": "Use " - }, - { - "kind": "code", - "text": "`verifyOTP`" - }, - { - "kind": "text", - "text": " instead!" - } - ] - } - ] - }, - "parameters": [ - { - "id": 151, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The user's phone number WITH international prefix" - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 152, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "token that user was sent to their mobile phone" - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 153, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 154, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 155, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 441, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L441" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [155] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 440, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L440" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 156, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 157, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 445, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L445" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - }, - { - "id": 158, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 446, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L446" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [157, 158] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 444, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L444" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 159, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 160, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 449, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L449" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - }, - { - "id": 161, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 450, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L450" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [160, 161] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 448, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L448" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 162, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 163, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 452, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L452" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 164, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 452, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L452" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [163, 164] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 452, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L452" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 165, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 482, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L482" - } - ], - "signatures": [ - { - "id": 166, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Send User supplied Email / Mobile OTP to be verified" - } - ] - }, - "parameters": [ - { - "id": 167, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 682, - "name": "VerifyOTPParams" - } - }, - { - "id": 168, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 169, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 170, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 485, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L485" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [170] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 484, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L484" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 171, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 172, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 489, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L489" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - }, - { - "id": 173, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 490, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L490" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [172, 173] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 488, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L488" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 174, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 175, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 493, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L493" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - }, - { - "id": 176, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 494, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L494" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [175, 176] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 492, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L492" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 177, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 178, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 496, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L496" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 179, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 496, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L496" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [178, 179] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 496, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L496" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "children": [2] - }, - { - "title": "Properties", - "children": [22, 23, 18, 17] - }, - { - "title": "Methods", - "children": [ - 28, 32, 249, 220, 301, 231, 227, 34, 310, 277, 268, 180, 260, 207, 193, 115, 130, - 216, 63, 106, 93, 144, 45, 76, 319, 291, 149, 165 - ] - } - ], - "sources": [ - { - "fileName": "src/GoTrueApi.ts", - "line": 25, - "character": 21, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueApi.ts#L25" - } - ] - }, - { - "id": 329, - "name": "GoTrueClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 330, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 101, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L101" - } - ], - "signatures": [ - { - "id": 331, - "name": "new GoTrueClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Create a new client for use in the browser." - } - ] - }, - "parameters": [ - { - "id": 332, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 333, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 341, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Set to \"true\" if you want to automatically refresh the token before expiring." - } - ] - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 106, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L106" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 345, - "name": "cookieOptions", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 110, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L110" - } - ], - "type": { - "type": "reference", - "id": 636, - "name": "CookieOptions" - } - }, - { - "id": 340, - "name": "detectSessionInUrl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user." - } - ] - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 105, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L105" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 346, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 111, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L111" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 347, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "node_modules/typescript/lib/lib.dom.d.ts", - "line": 18095, - "character": 17 - } - ], - "signatures": [ - { - "id": 348, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A custom fetch implementation." - } - ] - }, - "parameters": [ - { - "id": 349, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "RequestInfo", - "qualifiedName": "RequestInfo", - "package": "typescript" - }, - { - "type": "reference", - "name": "URL", - "qualifiedName": "URL", - "package": "typescript" - } - ] - } - }, - { - "id": 350, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "name": "RequestInit", - "qualifiedName": "RequestInit", - "package": "typescript" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Response", - "qualifiedName": "Response", - "package": "typescript" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - } - }, - { - "id": 335, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Any additional headers to send to the GoTrue server." - } - ] - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 103, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L103" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 336, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 103, - "character": 14, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L103" - } - ], - "indexSignature": { - "id": 337, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 338, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 344, - "name": "multiTab", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Set to \"false\" if you want to disable multi-tab/window events." - } - ] - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 109, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L109" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 342, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Set to \"true\" if you want to automatically save the user session into local storage. If set to false, session will just be saved in memory." - } - ] - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 107, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L107" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 343, - "name": "storage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 108, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L108" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Storage", - "qualifiedName": "Storage", - "package": "typescript" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "removeItem" - }, - { - "type": "literal", - "value": "setItem" - } - ] - } - ], - "name": "Pick", - "qualifiedName": "Pick", - "package": "typescript" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 339, - "name": "storageKey", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Optional key name used for storing tokens in local storage" - } - ] - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 104, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L104" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 334, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The URL of the GoTrue server." - } - ] - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 102, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L102" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [341, 345, 340, 346, 335, 344, 342, 343, 339, 334] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 101, - "character": 23, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L101" - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 329, - "name": "default" - } - } - ] - }, - { - "id": 351, - "name": "api", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Namespace for the GoTrue API methods.\nThese can be used for example to get a user from a JWT in a server environment or reset a user's password." - } - ] - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 67, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L67" - } - ], - "type": { - "type": "reference", - "id": 1, - "name": "default" - } - }, - { - "id": 354, - "name": "autoRefreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 79, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L79" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 353, - "name": "inMemorySession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The session object for the currently logged in user or null.\nOnly used if persistSession is false." - } - ] - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 77, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L77" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 563, - "name": "Session" - } - ] - } - }, - { - "id": 359, - "name": "networkRetries", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 85, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L85" - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 355, - "name": "persistSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 80, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L80" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 358, - "name": "refreshTokenTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 83, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L83" - } - ], - "type": { - "type": "reference", - "name": "Timeout", - "qualifiedName": "global.NodeJS.Timeout", - "package": "@types/node" - } - }, - { - "id": 360, - "name": "refreshingDeferred", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 86, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L86" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 702, - "name": "CallRefreshTokenResult" - } - ], - "name": "Deferred" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 357, - "name": "stateChangeEmitters", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 82, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L82" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "id": 626, - "name": "Subscription" - } - ], - "name": "Map", - "qualifiedName": "Map", - "package": "typescript" - }, - "defaultValue": "..." - }, - { - "id": 356, - "name": "storage", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 81, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L81" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Storage", - "qualifiedName": "Storage", - "package": "typescript" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "removeItem" - }, - { - "type": "literal", - "value": "setItem" - } - ] - } - ], - "name": "Pick", - "qualifiedName": "Pick", - "package": "typescript" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 352, - "name": "storageKey", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The storage key used to identity the values saved in localStorage" - } - ] - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 71, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L71" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 514, - "name": "_callRefreshToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 780, - "character": 16, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L780" - } - ], - "signatures": [ - { - "id": 515, - "name": "_callRefreshToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 516, - "name": "refreshToken", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 702, - "name": "CallRefreshTokenResult" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 455, - "name": "_doesSessionExist", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 604, - "character": 10, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L604" - } - ], - "signatures": [ - { - "id": 456, - "name": "_doesSessionExist", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 457, - "name": "maybeSession", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "predicate", - "name": "maybeSession", - "asserts": false, - "targetType": { - "type": "reference", - "id": 563, - "name": "Session" - } - } - } - ] - }, - { - "id": 458, - "name": "_handleEmailSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 615, - "character": 16, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L615" - } - ], - "signatures": [ - { - "id": 459, - "name": "_handleEmailSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 460, - "name": "email", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 461, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 462, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 463, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 464, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 619, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L619" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [464] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 618, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L618" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 537, - "name": "AuthResponse" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 501, - "name": "_handleOpenIDConnectSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 691, - "character": 16, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L691" - } - ], - "signatures": [ - { - "id": 502, - "name": "_handleOpenIDConnectSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 503, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 695, - "name": "OpenIDConnectCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 504, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 507, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 701, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L701" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 506, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 700, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L700" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 563, - "name": "Session" - } - ] - } - }, - { - "id": 505, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 699, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L699" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 582, - "name": "User" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [507, 506, 505] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 698, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L698" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 508, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 511, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 703, - "character": 35, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L703" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 510, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 703, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L703" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 509, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 703, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L703" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [511, 510, 509] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 703, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L703" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 465, - "name": "_handlePhoneSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 643, - "character": 16, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L643" - } - ], - "signatures": [ - { - "id": 466, - "name": "_handlePhoneSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 467, - "name": "phone", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 468, - "name": "password", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 469, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 470, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 471, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 647, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L647" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [471] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 646, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L646" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 472, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 473, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 654, - "character": 38, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L654" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 474, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 475, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 654, - "character": 46, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L654" - } - ], - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - }, - { - "id": 476, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 654, - "character": 61, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L654" - } - ], - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "children": [475, 476] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 654, - "character": 44, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L654" - } - ] - } - }, - "defaultValue": "..." - }, - { - "id": 477, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 654, - "character": 75, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L654" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [473, 477] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 654, - "character": 36, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L654" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 478, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 479, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 661, - "character": 15, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L661" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 480, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 481, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 661, - "character": 23, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L661" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - }, - { - "id": 482, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 661, - "character": 32, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L661" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - }, - "defaultValue": "session.user" - } - ], - "groups": [ - { - "title": "Properties", - "children": [481, 482] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 661, - "character": 21, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L661" - } - ] - } - }, - "defaultValue": "..." - }, - { - "id": 483, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 661, - "character": 54, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L661" - } - ], - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "children": [479, 483] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 661, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L661" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 484, - "name": "_handleProviderSignIn", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 671, - "character": 10, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L671" - } - ], - "signatures": [ - { - "id": 485, - "name": "_handleProviderSignIn", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 486, - "name": "provider", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 535, - "name": "Provider" - } - }, - { - "id": 487, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 488, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 491, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 676, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L676" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 492, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 676, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L676" - } - ], - "indexSignature": { - "id": 493, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 494, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 489, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 674, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L674" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 490, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 675, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L675" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [491, 489, 490] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 673, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L673" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 495, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 496, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 688, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L688" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 497, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 498, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 688, - "character": 21, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L688" - } - ], - "type": { - "type": "reference", - "id": 535, - "name": "Provider" - } - }, - { - "id": 499, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 688, - "character": 31, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L688" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [498, 499] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 688, - "character": 19, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L688" - } - ] - } - }, - "defaultValue": "..." - }, - { - "id": 500, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 688, - "character": 38, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L688" - } - ], - "type": { - "type": "literal", - "value": null - }, - "defaultValue": "null" - } - ], - "groups": [ - { - "title": "Properties", - "children": [496, 500] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 688, - "character": 11, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L688" - } - ] - } - } - } - ] - }, - { - "id": 533, - "name": "_handleVisibilityChange", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 888, - "character": 10, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L888" - } - ], - "signatures": [ - { - "id": 534, - "name": "_handleVisibilityChange", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": false - } - ] - } - } - ] - }, - { - "id": 517, - "name": "_notifyAllSubscribers", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 820, - "character": 10, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L820" - } - ], - "signatures": [ - { - "id": 518, - "name": "_notifyAllSubscribers", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 519, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 536, - "name": "AuthChangeEvent" - } - }, - { - "id": 520, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 563, - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 524, - "name": "_persistSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 848, - "character": 10, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L848" - } - ], - "signatures": [ - { - "id": 525, - "name": "_persistSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 526, - "name": "currentSession", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 512, - "name": "_recoverAndRefresh", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 735, - "character": 16, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L735" - } - ], - "signatures": [ - { - "id": 513, - "name": "_recoverAndRefresh", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Recovers the session from LocalStorage and refreshes\nNote: this method is async to accommodate for AsyncStorage e.g. in React native." - } - ] - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "literal", - "value": null - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 527, - "name": "_removeSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 852, - "character": 16, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L852" - } - ], - "signatures": [ - { - "id": 528, - "name": "_removeSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "void" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 521, - "name": "_saveSession", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 828, - "character": 10, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L828" - } - ], - "signatures": [ - { - "id": 522, - "name": "_saveSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "set currentSession and currentUser\nprocess to _startAutoRefreshToken if possible" - } - ] - }, - "parameters": [ - { - "id": 523, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 529, - "name": "_startAutoRefreshToken", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 868, - "character": 10, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L868" - } - ], - "signatures": [ - { - "id": 530, - "name": "_startAutoRefreshToken", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Clear and re-create refresh token timer" - } - ] - }, - "parameters": [ - { - "id": 531, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "time intervals in milliseconds" - } - ] - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 532, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - }, - { - "id": 384, - "name": "getSession", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 346, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L346" - } - ], - "signatures": [ - { - "id": 385, - "name": "getSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Returns the session data, refreshing it if necessary." - } - ] - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 386, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 388, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 349, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L349" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 387, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 348, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L348" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [388, 387] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 347, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L347" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 389, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 391, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 353, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L353" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 390, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 352, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L352" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [391, 390] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 351, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L351" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 392, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 394, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 357, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L357" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 393, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 356, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L356" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [394, 393] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 355, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L355" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 427, - "name": "getSessionFromUrl", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 494, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L494" - } - ], - "signatures": [ - { - "id": 428, - "name": "getSessionFromUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Gets the session data from a URL string" - } - ] - }, - "parameters": [ - { - "id": 429, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 430, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 431, - "name": "storeSession", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Optionally store the session in the browser" - } - ] - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 494, - "character": 38, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L494" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [431] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 494, - "character": 36, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L494" - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 432, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 434, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 497, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L497" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 433, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 496, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L496" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [434, 433] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 495, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L495" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 435, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 437, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 499, - "character": 23, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L499" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 436, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 499, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L499" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [437, 436] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 499, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L499" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 395, - "name": "getUser", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 396, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L396" - } - ], - "signatures": [ - { - "id": 396, - "name": "getUser", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Returns the user data, refreshing the session if necessary." - } - ] - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 397, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 399, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 399, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L399" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 398, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 398, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L398" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [399, 398] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 397, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L397" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 400, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 402, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 403, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L403" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 401, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 402, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L402" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [402, 401] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 401, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L401" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 403, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 405, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 407, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L407" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 404, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 406, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L406" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [405, 404] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 405, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L405" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 442, - "name": "onAuthStateChange", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 578, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L578" - } - ], - "signatures": [ - { - "id": 443, - "name": "onAuthStateChange", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Receive a notification every time an auth event happens." - } - ], - "blockTags": [ - { - "tag": "@returns", - "content": [ - { - "kind": "text", - "text": "A subscription object which can be used to unsubscribe itself." - } - ] - } - ] - }, - "parameters": [ - { - "id": 444, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 445, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 578, - "character": 30, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L578" - } - ], - "signatures": [ - { - "id": 446, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 447, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 536, - "name": "AuthChangeEvent" - } - }, - { - "id": 448, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 563, - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 449, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 451, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 581, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L581" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 450, - "name": "subscription", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 580, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L580" - } - ], - "type": { - "type": "reference", - "id": 626, - "name": "Subscription" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [451, 450] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 579, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L579" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 452, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 454, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 583, - "character": 28, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L583" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 453, - "name": "subscription", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 583, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L583" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [454, 453] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 583, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L583" - } - ] - } - } - ] - } - } - ] - }, - { - "id": 415, - "name": "setSession", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 460, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L460" - } - ], - "signatures": [ - { - "id": 416, - "name": "setSession", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Sets the session data from refresh_token and returns current Session and Error" - } - ] - }, - "parameters": [ - { - "id": 417, - "name": "refresh_token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "a JWT token" - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 418, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 420, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 463, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L463" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 419, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 462, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L462" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [420, 419] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 461, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L461" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 421, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 423, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 465, - "character": 23, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L465" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 422, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 465, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L465" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [423, 422] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 465, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L465" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 424, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 426, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 466, - "character": 23, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L466" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 425, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 466, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L466" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [426, 425] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 466, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L466" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 372, - "name": "signInWithOAuth", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 245, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L245" - } - ], - "signatures": [ - { - "id": 373, - "name": "signInWithOAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Log in an existing user via a third-party provider." - } - ] - }, - "parameters": [ - { - "id": 374, - "name": "credentials", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 671, - "name": "SignInWithOAuthCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 550, - "name": "OAuthResponse" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 375, - "name": "signInWithOtp", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 261, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L261" - } - ], - "signatures": [ - { - "id": 376, - "name": "signInWithOtp", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Passwordless method for logging in an existing user." - } - ] - }, - "parameters": [ - { - "id": 377, - "name": "credentials", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 660, - "name": "SignInWithPasswordlessCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 537, - "name": "AuthResponse" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 369, - "name": "signInWithPassword", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 208, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L208" - } - ], - "signatures": [ - { - "id": 370, - "name": "signInWithPassword", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Log in an existing user, or login via a third-party provider." - } - ] - }, - "parameters": [ - { - "id": 371, - "name": "credentials", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 649, - "name": "SignInWithPasswordCredentials" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 537, - "name": "AuthResponse" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 438, - "name": "signOut", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 559, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L559" - } - ], - "signatures": [ - { - "id": 439, - "name": "signOut", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Inside a browser context, " - }, - { - "kind": "code", - "text": "`signOut()`" - }, - { - "kind": "text", - "text": " will remove the logged in user from the browser session\nand log them out - removing all items from localstorage and then trigger a \"SIGNED_OUT\" event.\n\nFor server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to " - }, - { - "kind": "code", - "text": "`auth.api.signOut(JWT: string)`" - }, - { - "kind": "text", - "text": ". There is no way to revoke a user's session JWT before it automatically expires" - } - ] - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 440, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 441, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 559, - "character": 29, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L559" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "name": "AuthError" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [441] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 559, - "character": 27, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L559" - } - ] - } - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 361, - "name": "signUp", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 147, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L147" - } - ], - "signatures": [ - { - "id": 362, - "name": "signUp", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Creates a new user." - } - ] - }, - "parameters": [ - { - "id": 363, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 642, - "name": "UserCredentials" - } - }, - { - "id": 364, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 365, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 368, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 152, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L152" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 367, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 151, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L151" - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 366, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 150, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L150" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [368, 367, 366] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 149, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L149" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 537, - "name": "AuthResponse" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 406, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 425, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L425" - } - ], - "signatures": [ - { - "id": 407, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Updates user data, if there is a logged in user." - } - ] - }, - "parameters": [ - { - "id": 408, - "name": "attributes", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 610, - "name": "UserAttributes" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 409, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 411, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 428, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L428" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 410, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 427, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L427" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [411, 410] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 426, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L426" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 412, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 414, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 430, - "character": 20, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L430" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 413, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 430, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L430" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [414, 413] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 430, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L430" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 378, - "name": "verifyOTP", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 300, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L300" - } - ], - "signatures": [ - { - "id": 379, - "name": "verifyOTP", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Log in a user given a User supplied OTP received via mobile." - } - ] - }, - "parameters": [ - { - "id": 380, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 682, - "name": "VerifyOTPParams" - } - }, - { - "id": 381, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 382, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 383, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 303, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L303" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [383] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 302, - "character": 13, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L302" - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 537, - "name": "AuthResponse" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "children": [330] - }, - { - "title": "Properties", - "children": [351, 354, 353, 359, 355, 358, 360, 357, 356, 352] - }, - { - "title": "Methods", - "children": [ - 514, 455, 458, 501, 465, 484, 533, 517, 524, 512, 527, 521, 529, 384, 427, 395, 442, - 415, 372, 375, 369, 438, 361, 406, 378 - ] - } - ], - "sources": [ - { - "fileName": "src/GoTrueClient.ts", - "line": 62, - "character": 21, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/GoTrueClient.ts#L62" - } - ] - }, - { - "id": 616, - "name": "AdminUserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 618, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A custom data object for app_metadata that.\n\nOnly a service role can modify.\n\nCan be any JSON that includes app-specific info, such as identity providers, roles, and other\naccess control information." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 165, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L165" - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 625, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A custom data object for user_metadata that a user can modify. Can be any JSON." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 140, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L140" - } - ], - "type": { - "type": "intrinsic", - "name": "object" - }, - "inheritedFrom": { - "type": "reference", - "id": 615, - "name": "UserAttributes.data" - } - }, - { - "id": 621, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The user's email." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 120, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L120" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 611, - "name": "UserAttributes.email" - } - }, - { - "id": 624, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "An email change token." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 135, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L135" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 614, - "name": "UserAttributes.email_change_token" - } - }, - { - "id": 619, - "name": "email_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Sets if a user has confirmed their email address.\n\nOnly a service role can modify." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 172, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L172" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 623, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The user's password." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 130, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L130" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 613, - "name": "UserAttributes.password" - } - }, - { - "id": 622, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The user's phone." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 125, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L125" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 612, - "name": "UserAttributes.phone" - } - }, - { - "id": 620, - "name": "phone_confirm", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Sets if a user has confirmed their phone number.\n\nOnly a service role can modify." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 179, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L179" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 617, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A custom data object for user_metadata.\n\nCan be any JSON.\n\nOnly a service role can modify.\n\nNote: When using the GoTrueAdminApi and wanting to modify a user's user_metadata,\nthis attribute is used instead of UserAttributes data." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 155, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L155" - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [618, 625, 621, 624, 619, 623, 622, 620, 617] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 143, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L143" - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 610, - "name": "UserAttributes" - } - ] - }, - { - "id": 636, - "name": "CookieOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 639, - "name": "domain", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 203, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L203" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 638, - "name": "lifetime", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 201, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L201" - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 637, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 199, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L199" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 640, - "name": "path", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 204, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L204" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 641, - "name": "sameSite", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 206, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L206" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [639, 638, 637, 640, 641] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 197, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L197" - } - ] - }, - { - "id": 695, - "name": "OpenIDConnectCredentials", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 699, - "name": "client_id", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 277, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L277" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 696, - "name": "id_token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 274, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L274" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 700, - "name": "issuer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 278, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L278" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 697, - "name": "nonce", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 275, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L275" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 698, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 276, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L276" - } - ], - "type": { - "type": "reference", - "id": 535, - "name": "Provider" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [699, 696, 700, 697, 698] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 273, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L273" - } - ] - }, - { - "id": 563, - "name": "Session", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 565, - "name": "access_token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 62, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L62" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 567, - "name": "expires_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A timestamp of when the token will expire. Returned when a login is confirmed." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 70, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L70" - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 566, - "name": "expires_in", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The number of seconds until the token expires (since it was issued). Returned when a login is confirmed." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 66, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L66" - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 564, - "name": "provider_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 61, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L61" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 568, - "name": "refresh_token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 71, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L71" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 569, - "name": "token_type", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 72, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L72" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 570, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 73, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L73" - } - ], - "type": { - "type": "reference", - "id": 582, - "name": "User" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [565, 567, 566, 564, 568, 569, 570] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 60, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L60" - } - ] - }, - { - "id": 675, - "name": "SignInWithOAuthOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 678, - "name": "queryParams", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 254, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L254" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 679, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 254, - "character": 16, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L254" - } - ], - "indexSignature": { - "id": 680, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 681, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 676, - "name": "redirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 252, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L252" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 677, - "name": "scopes", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 253, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L253" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [678, 676, 677] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 251, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L251" - } - ] - }, - { - "id": 658, - "name": "SignInWithPasswordOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 659, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 230, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L230" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [659] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 229, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L229" - } - ] - }, - { - "id": 667, - "name": "SignInWithPasswordlessOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 670, - "name": "captchaToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 245, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L245" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 668, - "name": "emailRedirectTo", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 243, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L243" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 669, - "name": "shouldCreateUser", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 244, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L244" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [670, 668, 669] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 241, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L241" - } - ] - }, - { - "id": 626, - "name": "Subscription", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 628, - "name": "callback", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 190, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L190" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 629, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 190, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L190" - } - ], - "signatures": [ - { - "id": 630, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The function to call every time there is an event. eg: (eventName) => {}" - } - ] - }, - "parameters": [ - { - "id": 631, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 536, - "name": "AuthChangeEvent" - } - }, - { - "id": 632, - "name": "session", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reference", - "id": 563, - "name": "Session" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - }, - { - "id": 627, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The subscriber UUID. This will be set by the client." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 186, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L186" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 633, - "name": "unsubscribe", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 194, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L194" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 634, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 194, - "character": 15, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L194" - } - ], - "signatures": [ - { - "id": 635, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Call this to remove the listener." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [628, 627, 633] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 182, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L182" - } - ] - }, - { - "id": 582, - "name": "User", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 599, - "name": "action_link", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 103, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L103" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 584, - "name": "app_metadata", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 90, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L90" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 585, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 586, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 91, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L91" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [586] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 90, - "character": 16, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L90" - } - ], - "indexSignature": { - "id": 587, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 588, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 593, - "name": "aud", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 97, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L97" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 594, - "name": "confirmation_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 98, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L98" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 603, - "name": "confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 107, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L107" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 602, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 106, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L106" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 600, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 104, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L104" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 596, - "name": "email_change_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 100, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L100" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 604, - "name": "email_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 108, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L108" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 583, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 89, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L89" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 609, - "name": "identities", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 113, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L113" - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 571, - "name": "UserIdentity" - } - } - }, - { - "id": 598, - "name": "invited_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 102, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L102" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 606, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 110, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L110" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 597, - "name": "new_email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 101, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L101" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 601, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 105, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L105" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 605, - "name": "phone_confirmed_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 109, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L109" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 595, - "name": "recovery_sent_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 99, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L99" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 607, - "name": "role", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 111, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L111" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 608, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 112, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L112" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 589, - "name": "user_metadata", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 94, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L94" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 590, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 94, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L94" - } - ], - "indexSignature": { - "id": 591, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 592, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [ - 599, 584, 593, 594, 603, 602, 600, 596, 604, 583, 609, 598, 606, 597, 601, 605, 595, - 607, 608, 589 - ] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 88, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L88" - } - ] - }, - { - "id": 610, - "name": "UserAttributes", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 615, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A custom data object for user_metadata that a user can modify. Can be any JSON." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 140, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L140" - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - }, - { - "id": 611, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The user's email." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 120, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L120" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 614, - "name": "email_change_token", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "An email change token." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 135, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L135" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 613, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The user's password." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 130, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L130" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 612, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The user's phone." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 125, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L125" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [615, 611, 614, 613, 612] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 116, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L116" - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 616, - "name": "AdminUserAttributes" - } - ] - }, - { - "id": 642, - "name": "UserCredentials", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 643, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 210, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L210" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 648, - "name": "oidc", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 216, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L216" - } - ], - "type": { - "type": "reference", - "id": 695, - "name": "OpenIDConnectCredentials" - } - }, - { - "id": 645, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 212, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L212" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 644, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 211, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L211" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 647, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 215, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L215" - } - ], - "type": { - "type": "reference", - "id": 535, - "name": "Provider" - } - }, - { - "id": 646, - "name": "refreshToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 213, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L213" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [643, 648, 645, 644, 647, 646] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 209, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L209" - } - ] - }, - { - "id": 571, - "name": "UserIdentity", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 579, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 83, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L83" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 572, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 77, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L77" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 574, - "name": "identity_data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 79, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L79" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 575, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 79, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L79" - } - ], - "indexSignature": { - "id": 576, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 577, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - } - } - }, - { - "id": 580, - "name": "last_sign_in_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 84, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L84" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 578, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 82, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L82" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 581, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 85, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L85" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 573, - "name": "user_id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 78, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L78" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [579, 572, 574, 580, 578, 581, 573] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 76, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L76" - } - ] - }, - { - "id": 688, - "name": "VerifyEmailOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 689, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 265, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L265" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 690, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 266, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L266" - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 691, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 267, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L267" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 692, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 268, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L268" - } - ], - "type": { - "type": "reference", - "id": 694, - "name": "EmailOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [689, 690, 691, 692] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 264, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L264" - } - ] - }, - { - "id": 683, - "name": "VerifyMobileOTPParams", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 684, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 259, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L259" - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 685, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 260, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L260" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 686, - "name": "token", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 261, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L261" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 687, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 262, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L262" - } - ], - "type": { - "type": "reference", - "id": 693, - "name": "MobileOTPType" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [684, 685, 686, 687] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 258, - "character": 17, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L258" - } - ] - }, - { - "id": 536, - "name": "AuthChangeEvent", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 21, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L21" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "PASSWORD_RECOVERY" - }, - { - "type": "literal", - "value": "SIGNED_IN" - }, - { - "type": "literal", - "value": "SIGNED_OUT" - }, - { - "type": "literal", - "value": "TOKEN_REFRESHED" - }, - { - "type": "literal", - "value": "USER_UPDATED" - }, - { - "type": "literal", - "value": "USER_DELETED" - } - ] - } - }, - { - "id": 537, - "name": "AuthResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 29, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L29" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 538, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 539, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 31, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L31" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 540, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 542, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 33, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L33" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 563, - "name": "Session" - }, - { - "type": "literal", - "value": null - } - ] - } - }, - { - "id": 541, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 32, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L32" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 582, - "name": "User" - }, - { - "type": "literal", - "value": null - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [542, 541] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 31, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L31" - } - ] - } - } - }, - { - "id": 543, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 35, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L35" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [539, 543] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 30, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L30" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 544, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 545, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 38, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L38" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 546, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 548, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 40, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L40" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 547, - "name": "user", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 39, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L39" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [548, 547] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 38, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L38" - } - ] - } - } - }, - { - "id": 549, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 42, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L42" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [545, 549] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 37, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L37" - } - ] - } - } - ] - } - }, - { - "id": 702, - "name": "CallRefreshTokenResult", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 292, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L292" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 703, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 705, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 295, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L295" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 704, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 294, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L294" - } - ], - "type": { - "type": "reference", - "id": 563, - "name": "Session" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [705, 704] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 293, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L293" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 706, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 708, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 299, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L299" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - }, - { - "id": 707, - "name": "session", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 298, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L298" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [708, 707] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 297, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L297" - } - ] - } - } - ] - } - }, - { - "id": 694, - "name": "EmailOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 271, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L271" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "signup" - }, - { - "type": "literal", - "value": "invite" - }, - { - "type": "literal", - "value": "magiclink" - }, - { - "type": "literal", - "value": "recovery" - }, - { - "type": "literal", - "value": "email_change" - } - ] - } - }, - { - "id": 693, - "name": "MobileOTPType", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 270, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L270" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "sms" - }, - { - "type": "literal", - "value": "phone_change" - } - ] - } - }, - { - "id": 550, - "name": "OAuthResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 45, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L45" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 551, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 552, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 47, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L47" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 553, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 554, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 48, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L48" - } - ], - "type": { - "type": "reference", - "id": 535, - "name": "Provider" - } - }, - { - "id": 555, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 49, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L49" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [554, 555] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 47, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L47" - } - ] - } - } - }, - { - "id": 556, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 51, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L51" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [552, 556] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 46, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L46" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 557, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 558, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 54, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L54" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 559, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 560, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 55, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L55" - } - ], - "type": { - "type": "reference", - "id": 535, - "name": "Provider" - } - }, - { - "id": 561, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 56, - "character": 8, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L56" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [560, 561] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 54, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L54" - } - ] - } - } - }, - { - "id": 562, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 58, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L58" - } - ], - "type": { - "type": "reference", - "name": "AuthError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [558, 562] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 53, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L53" - } - ] - } - } - ] - } - }, - { - "id": 535, - "name": "Provider", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 3, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L3" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "apple" - }, - { - "type": "literal", - "value": "azure" - }, - { - "type": "literal", - "value": "bitbucket" - }, - { - "type": "literal", - "value": "discord" - }, - { - "type": "literal", - "value": "facebook" - }, - { - "type": "literal", - "value": "github" - }, - { - "type": "literal", - "value": "gitlab" - }, - { - "type": "literal", - "value": "google" - }, - { - "type": "literal", - "value": "keycloak" - }, - { - "type": "literal", - "value": "linkedin" - }, - { - "type": "literal", - "value": "notion" - }, - { - "type": "literal", - "value": "slack" - }, - { - "type": "literal", - "value": "spotify" - }, - { - "type": "literal", - "value": "twitch" - }, - { - "type": "literal", - "value": "twitter" - }, - { - "type": "literal", - "value": "workos" - } - ] - } - }, - { - "id": 671, - "name": "SignInWithOAuthCredentials", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 247, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L247" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 672, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 674, - "name": "options", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 249, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L249" - } - ], - "type": { - "type": "reference", - "id": 675, - "name": "SignInWithOAuthOptions" - } - }, - { - "id": 673, - "name": "provider", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 248, - "character": 2, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L248" - } - ], - "type": { - "type": "reference", - "id": 535, - "name": "Provider" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [674, 673] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 247, - "character": 41, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L247" - } - ] - } - } - }, - { - "id": 649, - "name": "SignInWithPasswordCredentials", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 218, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L218" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 650, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 651, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 220, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L220" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 653, - "name": "options", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 222, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L222" - } - ], - "type": { - "type": "reference", - "id": 658, - "name": "SignInWithPasswordOptions" - } - }, - { - "id": 652, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 221, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L221" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [651, 653, 652] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 219, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L219" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 654, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 657, - "name": "options", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 227, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L227" - } - ], - "type": { - "type": "reference", - "id": 658, - "name": "SignInWithPasswordOptions" - } - }, - { - "id": 656, - "name": "password", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 226, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L226" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 655, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 225, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L225" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [657, 656, 655] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 224, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L224" - } - ] - } - } - ] - } - }, - { - "id": 660, - "name": "SignInWithPasswordlessCredentials", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 232, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L232" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 661, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 662, - "name": "email", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 234, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L234" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 663, - "name": "options", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 235, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L235" - } - ], - "type": { - "type": "reference", - "id": 667, - "name": "SignInWithPasswordlessOptions" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [662, 663] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 233, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L233" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 664, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 666, - "name": "options", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 239, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L239" - } - ], - "type": { - "type": "reference", - "id": 667, - "name": "SignInWithPasswordlessOptions" - } - }, - { - "id": 665, - "name": "phone", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 238, - "character": 6, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L238" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [666, 665] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 237, - "character": 4, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L237" - } - ] - } - } - ] - } - }, - { - "id": 701, - "name": "SupportedStorage", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 290, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L290" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Storage", - "qualifiedName": "Storage", - "package": "typescript" - }, - { - "type": "union", - "types": [ - { - "type": "literal", - "value": "getItem" - }, - { - "type": "literal", - "value": "setItem" - }, - { - "type": "literal", - "value": "removeItem" - } - ] - } - ], - "name": "Pick", - "qualifiedName": "Pick", - "package": "typescript" - } - ], - "name": "PromisifyMethods" - } - }, - { - "id": 682, - "name": "VerifyOTPParams", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 257, - "character": 12, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/lib/types.ts#L257" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 683, - "name": "VerifyMobileOTPParams" - }, - { - "type": "reference", - "id": 688, - "name": "VerifyEmailOTPParams" - } - ] - } - } - ], - "groups": [ - { - "title": "Classes", - "children": [1, 329] - }, - { - "title": "Interfaces", - "children": [616, 636, 695, 563, 675, 658, 667, 626, 582, 610, 642, 571, 688, 683] - }, - { - "title": "Type Aliases", - "children": [536, 537, 702, 694, 693, 550, 535, 671, 649, 660, 701, 682] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0, - "url": "https://github.com/supabase/gotrue-js/blob/b41bb84/src/index.ts#L1" - } - ] - }, - { - "id": 0, - "name": "@supabase/postgrest-js", - "kind": 1, - "kindString": "Project", - "flags": {}, - "originalName": "", - "children": [ - { - "id": 483, - "name": "PostgrestBuilder", - "kind": 128, - "kindString": "Class", - "flags": { - "isAbstract": true - }, - "children": [ - { - "id": 484, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 18, - "character": 2 - } - ], - "signatures": [ - { - "id": 485, - "name": "new PostgrestBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "typeParameter": [ - { - "id": 486, - "name": "Result", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "parameters": [ - { - "id": 487, - "name": "builder", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 483, - "typeArguments": [ - { - "type": "reference", - "id": 486, - "name": "Result" - } - ], - "name": "default" - } - } - ], - "type": { - "type": "reference", - "id": 483, - "typeArguments": [ - { - "type": "reference", - "id": 486, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 500, - "name": "allowEmpty", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 16, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 492, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 12, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - }, - { - "id": 495, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 15, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 496, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 497, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 498, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 499, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 490, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 10, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 488, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 8, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "GET" - }, - { - "type": "literal", - "value": "HEAD" - }, - { - "type": "literal", - "value": "POST" - }, - { - "type": "literal", - "value": "PATCH" - }, - { - "type": "literal", - "value": "DELETE" - } - ] - } - }, - { - "id": 491, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 11, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 493, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 13, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 494, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 14, - "character": 12 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AbortSignal", - "package": "typescript", - "name": "AbortSignal" - } - }, - { - "id": 489, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 9, - "character": 12 - } - ], - "type": { - "type": "reference", - "qualifiedName": "URL", - "package": "typescript", - "name": "URL" - } - }, - { - "id": 504, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 50, - "character": 2 - } - ], - "signatures": [ - { - "id": 505, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "typeParameter": [ - { - "id": 506, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "reference", - "id": 517, - "typeArguments": [ - { - "type": "reference", - "id": 486, - "name": "Result" - } - ], - "name": "PostgrestResponse" - } - }, - { - "id": 507, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "parameters": [ - { - "id": 508, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 509, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 510, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 511, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 517, - "typeArguments": [ - { - "type": "reference", - "id": 486, - "name": "Result" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 381, - "name": "TResult1" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 381, - "name": "TResult1" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - ] - } - } - ] - } - } - ] - } - }, - { - "id": 512, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 513, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 514, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 515, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 382, - "name": "TResult2" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 382, - "name": "TResult2" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - ] - } - } - ] - } - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reference", - "id": 381, - "name": "TResult1" - }, - { - "type": "reference", - "id": 382, - "name": "TResult2" - } - ] - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - }, - "implementationOf": { - "type": "reference", - "name": "PromiseLike.then" - } - } - ], - "implementationOf": { - "type": "reference", - "name": "PromiseLike.then" - } - }, - { - "id": 501, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 45, - "character": 2 - } - ], - "signatures": [ - { - "id": 502, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n", - "tags": [ - { - "tag": "deprecated", - "text": "Use `throwOnError` in the `PostgrestClient` constructor instead.\n" - } - ] - }, - "parameters": [ - { - "id": 503, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "type": { - "type": "reference", - "id": 483, - "typeArguments": [ - { - "type": "reference", - "id": 486, - "name": "Result" - } - ], - "name": "default" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [484] - }, - { - "title": "Properties", - "kind": 1024, - "children": [500, 492, 495, 490, 488, 491, 493, 494, 489] - }, - { - "title": "Methods", - "kind": 2048, - "children": [504, 501] - } - ], - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 5, - "character": 30 - } - ], - "typeParameter": [ - { - "id": 516, - "name": "Result", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 393, - "name": "PostgrestTransformBuilder" - } - ], - "implementedTypes": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 517, - "typeArguments": [ - { - "type": "reference", - "id": 486, - "name": "Result" - } - ], - "name": "PostgrestResponse" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - ] - }, - { - "id": 1, - "name": "PostgrestClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 2, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 29, - "character": 2 - } - ], - "signatures": [ - { - "id": 3, - "name": "new PostgrestClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "comment": { - "shortText": "Creates a PostgREST client." - }, - "typeParameter": [ - { - "id": 4, - "name": "Database", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 5, - "name": "SchemaName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - }, - "default": { - "type": "conditional", - "checkType": { - "type": "literal", - "value": "public" - }, - "extendsType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 4, - "name": "Database" - } - }, - "trueType": { - "type": "literal", - "value": "public" - }, - "falseType": { - "type": "intersection", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 4, - "name": "Database" - } - } - ] - } - } - }, - { - "id": 6, - "name": "Schema", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "GenericSchema" - }, - "default": { - "type": "conditional", - "checkType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 5, - "name": "SchemaName" - }, - "objectType": { - "type": "reference", - "id": 4, - "name": "Database" - } - }, - "extendsType": { - "type": "reference", - "name": "GenericSchema" - }, - "trueType": { - "type": "indexedAccess", - "indexType": { - "type": "intrinsic", - "name": "any" - }, - "objectType": { - "type": "intrinsic", - "name": "any" - } - }, - "falseType": { - "type": "intrinsic", - "name": "any" - } - } - } - ], - "parameters": [ - { - "id": 7, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "URL of the PostgREST endpoint." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 8, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 9, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 12, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 39, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 13, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 14, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 15, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 16, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 10, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 37, - "character": 6 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 11, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 38, - "character": 6 - } - ], - "type": { - "type": "reference", - "id": 5, - "name": "SchemaName" - } - }, - { - "id": 17, - "name": "throwOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 40, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [12, 10, 11, 17] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 1, - "typeArguments": [ - { - "type": "reference", - "id": 4, - "name": "Database" - }, - { - "type": "reference", - "id": 5, - "name": "SchemaName" - }, - { - "type": "reference", - "id": 6, - "name": "Schema" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 21, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 19, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 22, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 23, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 24, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 25, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 19, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 17, - "character": 2 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 20, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 18, - "character": 2 - } - ], - "type": { - "type": "reference", - "id": 5, - "name": "SchemaName" - } - }, - { - "id": 26, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 20, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 18, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 16, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 27, - "name": "auth", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 57, - "character": 2 - } - ], - "signatures": [ - { - "id": 28, - "name": "auth", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Authenticates the request with JWT.", - "tags": [ - { - "tag": "deprecated", - "text": "Use `headers` in constructor instead.\n" - } - ] - }, - "parameters": [ - { - "id": 29, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The JWT token to use.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 1, - "typeArguments": [ - { - "type": "reference", - "id": 4, - "name": "Database" - }, - { - "type": "reference", - "id": 5, - "name": "SchemaName" - }, - { - "type": "reference", - "id": 6, - "name": "Schema" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 30, - "name": "from", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 67, - "character": 2 - } - ], - "signatures": [ - { - "id": 31, - "name": "from", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Perform a table operation." - }, - "typeParameter": [ - { - "id": 32, - "name": "TableName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 33, - "name": "Table", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "GenericTable" - } - } - ], - "parameters": [ - { - "id": 34, - "name": "table", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The table name to operate on.\n" - }, - "type": { - "type": "reference", - "id": 32, - "name": "TableName" - } - } - ], - "type": { - "type": "reference", - "id": 48, - "typeArguments": [ - { - "type": "reference", - "id": 33, - "name": "Table" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 35, - "name": "rpc", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 89, - "character": 2 - } - ], - "signatures": [ - { - "id": 36, - "name": "rpc", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Perform a function call." - }, - "typeParameter": [ - { - "id": 37, - "name": "FunctionName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 38, - "name": "Function_", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "GenericFunction" - } - } - ], - "parameters": [ - { - "id": 39, - "name": "fn", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The function name to call." - }, - "type": { - "type": "reference", - "id": 37, - "name": "FunctionName" - } - }, - { - "id": 40, - "name": "args", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The parameters to pass to the function call." - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Args" - }, - "objectType": { - "type": "reference", - "id": 38, - "name": "Function_" - } - }, - "defaultValue": "{}" - }, - { - "id": 41, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "Named parameters." - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 42, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 44, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "Count algorithm to use to count rows in a table.\n" - }, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 100, - "character": 6 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 43, - "name": "head", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "When set to true, no data will be returned." - }, - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 99, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [44, 43] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "conditional", - "checkType": { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Returns" - }, - "objectType": { - "type": "reference", - "id": 38, - "name": "Function_" - } - }, - "extendsType": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "any" - } - }, - "trueType": { - "type": "conditional", - "checkType": { - "type": "indexedAccess", - "indexType": { - "type": "intrinsic", - "name": "number" - }, - "objectType": { - "type": "indexedAccess", - "indexType": { - "type": "intrinsic", - "name": "any" - }, - "objectType": { - "type": "intrinsic", - "name": "any" - } - } - }, - "extendsType": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - }, - "trueType": { - "type": "indexedAccess", - "indexType": { - "type": "intrinsic", - "name": "any" - }, - "objectType": { - "type": "intrinsic", - "name": "any" - } - }, - "falseType": { - "type": "intrinsic", - "name": "never" - } - }, - "falseType": { - "type": "intrinsic", - "name": "never" - } - }, - { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Returns" - }, - "objectType": { - "type": "reference", - "id": 38, - "name": "Function_" - } - } - ], - "name": "default" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [2] - }, - { - "title": "Properties", - "kind": 1024, - "children": [21, 19, 20, 26, 18] - }, - { - "title": "Methods", - "kind": 2048, - "children": [27, 30, 35] - } - ], - "sources": [ - { - "fileName": "src/PostgrestClient.ts", - "line": 7, - "character": 21 - } - ], - "typeParameter": [ - { - "id": 45, - "name": "Database", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 46, - "name": "SchemaName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intersection", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 4, - "name": "Database" - } - } - ] - }, - "default": { - "type": "conditional", - "checkType": { - "type": "literal", - "value": "public" - }, - "extendsType": { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 4, - "name": "Database" - } - }, - "trueType": { - "type": "literal", - "value": "public" - }, - "falseType": { - "type": "intersection", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "typeOperator", - "operator": "keyof", - "target": { - "type": "reference", - "id": 4, - "name": "Database" - } - } - ] - } - } - }, - { - "id": 47, - "name": "Schema", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "GenericSchema" - }, - "default": { - "type": "conditional", - "checkType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 5, - "name": "SchemaName" - }, - "objectType": { - "type": "reference", - "id": 4, - "name": "Database" - } - }, - "extendsType": { - "type": "reference", - "name": "GenericSchema" - }, - "trueType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 5, - "name": "SchemaName" - }, - "objectType": { - "type": "reference", - "id": 4, - "name": "Database" - } - }, - "falseType": { - "type": "intrinsic", - "name": "any" - } - } - } - ] - }, - { - "id": 111, - "name": "PostgrestFilterBuilder", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 112, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "signatures": [ - { - "id": 113, - "name": "new PostgrestFilterBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "typeParameter": [ - { - "id": 114, - "name": "Table", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 115, - "name": "Result", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "parameters": [ - { - "id": 116, - "name": "builder", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 483, - "typeArguments": [ - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "id": 395, - "name": "default.constructor" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 394, - "name": "default.constructor" - } - }, - { - "id": 375, - "name": "allowEmpty", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 16, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 465, - "name": "default.allowEmpty" - } - }, - { - "id": 367, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 12, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - }, - "inheritedFrom": { - "type": "reference", - "id": 457, - "name": "default.body" - } - }, - { - "id": 370, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 15, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 371, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 372, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 373, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 374, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 460, - "name": "default.fetch" - } - }, - { - "id": 365, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 10, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - }, - "inheritedFrom": { - "type": "reference", - "id": 455, - "name": "default.headers" - } - }, - { - "id": 363, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 8, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "GET" - }, - { - "type": "literal", - "value": "HEAD" - }, - { - "type": "literal", - "value": "POST" - }, - { - "type": "literal", - "value": "PATCH" - }, - { - "type": "literal", - "value": "DELETE" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 453, - "name": "default.method" - } - }, - { - "id": 366, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 11, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 456, - "name": "default.schema" - } - }, - { - "id": 368, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 13, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 458, - "name": "default.shouldThrowOnError" - } - }, - { - "id": 369, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 14, - "character": 12 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AbortSignal", - "package": "typescript", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "id": 459, - "name": "default.signal" - } - }, - { - "id": 364, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 9, - "character": 12 - } - ], - "type": { - "type": "reference", - "qualifiedName": "URL", - "package": "typescript", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "id": 454, - "name": "default.url" - } - }, - { - "id": 343, - "name": "abortSignal", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 110, - "character": 2 - } - ], - "signatures": [ - { - "id": 344, - "name": "abortSignal", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sets the AbortSignal for the fetch request." - }, - "parameters": [ - { - "id": 345, - "name": "signal", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "AbortSignal", - "package": "typescript", - "name": "AbortSignal" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "id": 434, - "name": "default.abortSignal" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 433, - "name": "default.abortSignal" - } - }, - { - "id": 221, - "name": "containedBy", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 250, - "character": 2 - } - ], - "signatures": [ - { - "id": 222, - "name": "containedBy", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose json, array, or range value on the stated `column` is\ncontained by the specified `value`." - }, - "typeParameter": [ - { - "id": 223, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 224, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 223, - "name": "ColumnName" - } - }, - { - "id": 225, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - }, - { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 223, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 226, - "name": "containedBy", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 227, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 228, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - }, - { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "unknown" - } - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 213, - "name": "contains", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 223, - "character": 2 - } - ], - "signatures": [ - { - "id": 214, - "name": "contains", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose json, array, or range value on the stated `column`\ncontains the values specified in `value`." - }, - "typeParameter": [ - { - "id": 215, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 216, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 215, - "name": "ColumnName" - } - }, - { - "id": 217, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - }, - { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 215, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 218, - "name": "contains", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 219, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 220, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - }, - { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "unknown" - } - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 350, - "name": "csv", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 138, - "character": 2 - } - ], - "signatures": [ - { - "id": 351, - "name": "csv", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Set the response type to CSV." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 519, - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 441, - "name": "default.csv" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 440, - "name": "default.csv" - } - }, - { - "id": 133, - "name": "eq", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 72, - "character": 2 - } - ], - "signatures": [ - { - "id": 134, - "name": "eq", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` exactly matches the\nspecified `value`." - }, - "typeParameter": [ - { - "id": 135, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 136, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 135, - "name": "ColumnName" - } - }, - { - "id": 137, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 135, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 138, - "name": "eq", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 139, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 140, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 354, - "name": "explain", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 160, - "character": 2 - } - ], - "signatures": [ - { - "id": 355, - "name": "explain", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Obtains the EXPLAIN plan for this request." - }, - "parameters": [ - { - "id": 356, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 357, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 358, - "name": "analyze", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 167, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 361, - "name": "buffers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 170, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 360, - "name": "settings", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 169, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 359, - "name": "verbose", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 168, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 362, - "name": "wal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 171, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [358, 361, 360, 359, 362] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 517, - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - ], - "name": "PostgrestResponse" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 445, - "name": "default.explain" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 444, - "name": "default.explain" - } - }, - { - "id": 293, - "name": "filter", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 406, - "character": 2 - } - ], - "signatures": [ - { - "id": 294, - "name": "filter", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose `column` satisfies the filter." - }, - "typeParameter": [ - { - "id": 295, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 296, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 295, - "name": "ColumnName" - } - }, - { - "id": 297, - "name": "operator", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The operator to filter with." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "FilterOperator" - }, - { - "type": "literal", - "value": "not.eq" - }, - { - "type": "literal", - "value": "not.neq" - }, - { - "type": "literal", - "value": "not.gt" - }, - { - "type": "literal", - "value": "not.gte" - }, - { - "type": "literal", - "value": "not.lt" - }, - { - "type": "literal", - "value": "not.lte" - }, - { - "type": "literal", - "value": "not.like" - }, - { - "type": "literal", - "value": "not.ilike" - }, - { - "type": "literal", - "value": "not.is" - }, - { - "type": "literal", - "value": "not.in" - }, - { - "type": "literal", - "value": "not.cs" - }, - { - "type": "literal", - "value": "not.cd" - }, - { - "type": "literal", - "value": "not.sl" - }, - { - "type": "literal", - "value": "not.sr" - }, - { - "type": "literal", - "value": "not.nxl" - }, - { - "type": "literal", - "value": "not.nxr" - }, - { - "type": "literal", - "value": "not.adj" - }, - { - "type": "literal", - "value": "not.ov" - }, - { - "type": "literal", - "value": "not.fts" - }, - { - "type": "literal", - "value": "not.plfts" - }, - { - "type": "literal", - "value": "not.phfts" - }, - { - "type": "literal", - "value": "not.wfts" - } - ] - } - }, - { - "id": 298, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 299, - "name": "filter", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 300, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 301, - "name": "operator", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 302, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 352, - "name": "geojson", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 146, - "character": 2 - } - ], - "signatures": [ - { - "id": 353, - "name": "geojson", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Set the response type to GeoJSON." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 519, - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 443, - "name": "default.geojson" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 442, - "name": "default.geojson" - } - }, - { - "id": 149, - "name": "gt", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 100, - "character": 2 - } - ], - "signatures": [ - { - "id": 150, - "name": "gt", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is greater than the\nspecified `value`." - }, - "typeParameter": [ - { - "id": 151, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 152, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 151, - "name": "ColumnName" - } - }, - { - "id": 153, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 151, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 154, - "name": "gt", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 155, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 156, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 157, - "name": "gte", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 114, - "character": 2 - } - ], - "signatures": [ - { - "id": 158, - "name": "gte", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is greater than or\nequal to the specified `value`." - }, - "typeParameter": [ - { - "id": 159, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 160, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 159, - "name": "ColumnName" - } - }, - { - "id": 161, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 159, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 162, - "name": "gte", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 163, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 164, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 189, - "name": "ilike", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 170, - "character": 2 - } - ], - "signatures": [ - { - "id": 190, - "name": "ilike", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose value in the stated `column` matches the supplied\n`pattern` (case insensitive)." - }, - "typeParameter": [ - { - "id": 191, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 192, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 191, - "name": "ColumnName" - } - }, - { - "id": 193, - "name": "pattern", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The pattern to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 194, - "name": "ilike", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 195, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 196, - "name": "pattern", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 205, - "name": "in", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 201, - "character": 2 - } - ], - "signatures": [ - { - "id": 206, - "name": "in", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is found on the\nspecified `values`." - }, - "typeParameter": [ - { - "id": 207, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 208, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 207, - "name": "ColumnName" - } - }, - { - "id": 209, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The values to filter with.\n" - }, - "type": { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 207, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 210, - "name": "in", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 211, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 212, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "unknown" - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 197, - "name": "is", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 184, - "character": 2 - } - ], - "signatures": [ - { - "id": 198, - "name": "is", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "A check for exact equality (null, true, false), finds all rows whose\nvalue on the stated `column` exactly match the specified `value`." - }, - "typeParameter": [ - { - "id": 199, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 200, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 199, - "name": "ColumnName" - } - }, - { - "id": 201, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "intersection", - "types": [ - { - "type": "intersection", - "types": [ - { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 199, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - }, - { - "type": "literal", - "value": null - } - ] - }, - { - "type": "intersection", - "types": [ - { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 199, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - }, - { - "type": "literal", - "value": false - } - ] - }, - { - "type": "intersection", - "types": [ - { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 199, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - }, - { - "type": "literal", - "value": true - } - ] - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 202, - "name": "is", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 203, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 204, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "boolean" - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 181, - "name": "like", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 156, - "character": 2 - } - ], - "signatures": [ - { - "id": 182, - "name": "like", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose value in the stated `column` matches the supplied\n`pattern` (case sensitive)." - }, - "typeParameter": [ - { - "id": 183, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 184, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 183, - "name": "ColumnName" - } - }, - { - "id": 185, - "name": "pattern", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The pattern to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 186, - "name": "like", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 187, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 188, - "name": "pattern", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 330, - "name": "limit", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 85, - "character": 2 - } - ], - "signatures": [ - { - "id": 331, - "name": "limit", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Limits the result with the specified `count`." - }, - "parameters": [ - { - "id": 332, - "name": "count", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The maximum no. of rows to limit to." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 333, - "name": "foreignTable", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The foreign table to use (for foreign columns).\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 334, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 335, - "name": "foreignTable", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 85, - "character": 43 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [335] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "id": 421, - "name": "default.limit" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 420, - "name": "default.limit" - } - }, - { - "id": 165, - "name": "lt", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 128, - "character": 2 - } - ], - "signatures": [ - { - "id": 166, - "name": "lt", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is less than the\nspecified `value`." - }, - "typeParameter": [ - { - "id": 167, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 168, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 167, - "name": "ColumnName" - } - }, - { - "id": 169, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 167, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 170, - "name": "lt", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 171, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 172, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 173, - "name": "lte", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 142, - "character": 2 - } - ], - "signatures": [ - { - "id": 174, - "name": "lte", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` is less than or equal\nto the specified `value`." - }, - "typeParameter": [ - { - "id": 175, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 176, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 175, - "name": "ColumnName" - } - }, - { - "id": 177, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 175, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 178, - "name": "lte", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 179, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 180, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 303, - "name": "match", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 423, - "character": 2 - } - ], - "signatures": [ - { - "id": 304, - "name": "match", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose columns match the specified `query` object." - }, - "typeParameter": [ - { - "id": 305, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 306, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The object to filter with, with column names as keys mapped\n to their filter values.\n" - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 305, - "name": "ColumnName" - }, - { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 305, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 307, - "name": "match", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 308, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 348, - "name": "maybeSingle", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 129, - "character": 2 - } - ], - "signatures": [ - { - "id": 349, - "name": "maybeSingle", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Retrieves at most one row from the result. Result must be at most one row\n(e.g. using `eq` on a UNIQUE column), otherwise this will result in an\nerror." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 521, - "typeArguments": [ - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "PostgrestMaybeSingleResponse" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 439, - "name": "default.maybeSingle" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 438, - "name": "default.maybeSingle" - } - }, - { - "id": 141, - "name": "neq", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 86, - "character": 2 - } - ], - "signatures": [ - { - "id": 142, - "name": "neq", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose value on the stated `column` doesn't match the\nspecified `value`." - }, - "typeParameter": [ - { - "id": 143, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 144, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 143, - "name": "ColumnName" - } - }, - { - "id": 145, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 143, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 146, - "name": "neq", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 147, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 148, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 117, - "name": "not", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 42, - "character": 2 - } - ], - "signatures": [ - { - "id": 118, - "name": "not", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows which doesn't satisfy the filter." - }, - "typeParameter": [ - { - "id": 119, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 120, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 119, - "name": "ColumnName" - } - }, - { - "id": 121, - "name": "operator", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The operator to filter with." - }, - "type": { - "type": "reference", - "name": "FilterOperator" - } - }, - { - "id": 122, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 119, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 123, - "name": "not", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 124, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 125, - "name": "operator", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 126, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 127, - "name": "or", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 59, - "character": 2 - } - ], - "signatures": [ - { - "id": 128, - "name": "or", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows satisfying at least one of the filters." - }, - "parameters": [ - { - "id": 129, - "name": "filters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The filters to use, separated by commas." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 130, - "name": "foreignTable", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The foreign table to use (if `column` is a foreign column).\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 131, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 132, - "name": "foreignTable", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 59, - "character": 42 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [132] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 314, - "name": "order", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 51, - "character": 2 - } - ], - "signatures": [ - { - "id": 315, - "name": "order", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Orders the result with the specified `column`." - }, - "typeParameter": [ - { - "id": 316, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 317, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to order on." - }, - "type": { - "type": "reference", - "id": 316, - "name": "ColumnName" - } - }, - { - "id": 318, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 319, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 320, - "name": "ascending", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 53, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 322, - "name": "foreignTable", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 53, - "character": 59 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 321, - "name": "nullsFirst", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 53, - "character": 37 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [320, 322, 321] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "id": 405, - "name": "default.order" - } - }, - { - "id": 323, - "name": "order", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 324, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 325, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 326, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 327, - "name": "ascending", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 57, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 329, - "name": "foreignTable", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 57, - "character": 59 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 328, - "name": "nullsFirst", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 57, - "character": 37 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [327, 329, 328] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "id": 413, - "name": "default.order" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 404, - "name": "default.order" - } - }, - { - "id": 269, - "name": "overlaps", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 346, - "character": 2 - } - ], - "signatures": [ - { - "id": 270, - "name": "overlaps", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose array or range value on the stated `column` overlaps\n(has a value in common) with the specified `value`." - }, - "typeParameter": [ - { - "id": 271, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 272, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 271, - "name": "ColumnName" - } - }, - { - "id": 273, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The value to filter with.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "array", - "elementType": { - "type": "indexedAccess", - "indexType": { - "type": "reference", - "id": 271, - "name": "ColumnName" - }, - "objectType": { - "type": "reference", - "id": 114, - "name": "Table" - } - } - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 274, - "name": "overlaps", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 275, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 276, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "unknown" - } - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 336, - "name": "range", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 98, - "character": 2 - } - ], - "signatures": [ - { - "id": 337, - "name": "range", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Limits the result to rows within the specified range, inclusive." - }, - "parameters": [ - { - "id": 338, - "name": "from", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The starting index from which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 339, - "name": "to", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The last index to which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 340, - "name": "foreignTable", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The foreign table to use (for foreign columns).\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 341, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 342, - "name": "foreignTable", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 98, - "character": 54 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [342] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "id": 427, - "name": "default.range" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 426, - "name": "default.range" - } - }, - { - "id": 261, - "name": "rangeAdjacent", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 332, - "character": 2 - } - ], - "signatures": [ - { - "id": 262, - "name": "rangeAdjacent", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` is adjacent to\nthe specified `range`." - }, - "typeParameter": [ - { - "id": 263, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 264, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 263, - "name": "ColumnName" - } - }, - { - "id": 265, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 266, - "name": "rangeAdjacent", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 267, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 268, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 237, - "name": "rangeGt", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 290, - "character": 2 - } - ], - "signatures": [ - { - "id": 238, - "name": "rangeGt", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` is strictly to\nthe right of the specified `range`." - }, - "typeParameter": [ - { - "id": 239, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 240, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 239, - "name": "ColumnName" - } - }, - { - "id": 241, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 242, - "name": "rangeGt", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 243, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 244, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 245, - "name": "rangeGte", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 304, - "character": 2 - } - ], - "signatures": [ - { - "id": 246, - "name": "rangeGte", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` does not extend\nto the left of the specified `range`." - }, - "typeParameter": [ - { - "id": 247, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 248, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 247, - "name": "ColumnName" - } - }, - { - "id": 249, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 250, - "name": "rangeGte", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 251, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 252, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 229, - "name": "rangeLt", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 276, - "character": 2 - } - ], - "signatures": [ - { - "id": 230, - "name": "rangeLt", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` is strictly to the\nleft of the specified `range`." - }, - "typeParameter": [ - { - "id": 231, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 232, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 231, - "name": "ColumnName" - } - }, - { - "id": 233, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 234, - "name": "rangeLt", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 235, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 236, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 253, - "name": "rangeLte", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 318, - "character": 2 - } - ], - "signatures": [ - { - "id": 254, - "name": "rangeLte", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose range value on the stated `column` does not extend\nto the right of the specified `range`." - }, - "typeParameter": [ - { - "id": 255, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 256, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 255, - "name": "ColumnName" - } - }, - { - "id": 257, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The range to filter with.\n" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 258, - "name": "rangeLte", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 259, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 260, - "name": "range", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 309, - "name": "select", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 18, - "character": 2 - } - ], - "signatures": [ - { - "id": 310, - "name": "select", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Performs vertical filtering with SELECT." - }, - "typeParameter": [ - { - "id": 311, - "name": "Query", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - }, - "default": { - "type": "literal", - "value": "*" - } - }, - { - "id": 312, - "name": "NewResult", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "conditional", - "checkType": { - "type": "reference", - "id": 311, - "name": "Query" - }, - "extendsType": { - "type": "literal", - "value": "*" - }, - "trueType": { - "type": "literal", - "value": "*" - }, - "falseType": { - "type": "reference", - "id": 311, - "name": "Query" - } - } - ], - "name": "GetResult" - } - } - ], - "parameters": [ - { - "id": 313, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The columns to retrieve, separated by commas.\n" - }, - "type": { - "type": "reference", - "id": 311, - "name": "Query" - } - } - ], - "type": { - "type": "reference", - "id": 393, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 312, - "name": "NewResult" - } - ], - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "id": 400, - "name": "default.select" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 399, - "name": "default.select" - } - }, - { - "id": 346, - "name": "single", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 119, - "character": 2 - } - ], - "signatures": [ - { - "id": 347, - "name": "single", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Retrieves only one row from the result. Result must be one row (e.g. using\n`limit`), otherwise this will result in an error." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 519, - "typeArguments": [ - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 437, - "name": "default.single" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 436, - "name": "default.single" - } - }, - { - "id": 277, - "name": "textSearch", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 371, - "character": 2 - } - ], - "signatures": [ - { - "id": 278, - "name": "textSearch", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Finds all rows whose text or tsvector value on the stated `column` matches\nthe tsquery in `query`." - }, - "typeParameter": [ - { - "id": 279, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 280, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to filter on." - }, - "type": { - "type": "reference", - "id": 279, - "name": "ColumnName" - } - }, - { - "id": 281, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The Postgres tsquery string to filter with." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 282, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 283, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 284, - "name": "config", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 374, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 285, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 374, - "character": 33 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "plain" - }, - { - "type": "literal", - "value": "phrase" - }, - { - "type": "literal", - "value": "websearch" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [284, 285] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 286, - "name": "textSearch", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 287, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 288, - "name": "query", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 289, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 290, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 291, - "name": "config", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 379, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 292, - "name": "type", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 379, - "character": 33 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "plain" - }, - { - "type": "literal", - "value": "phrase" - }, - { - "type": "literal", - "value": "websearch" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [291, 292] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 379, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 50, - "character": 2 - } - ], - "signatures": [ - { - "id": 380, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "typeParameter": [ - { - "id": 381, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "reference", - "id": 517, - "typeArguments": [ - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "PostgrestResponse" - } - }, - { - "id": 382, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "parameters": [ - { - "id": 383, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 384, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 385, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 386, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 517, - "typeArguments": [ - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 381, - "name": "TResult1" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 381, - "name": "TResult1" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - ] - } - } - ] - } - } - ] - } - }, - { - "id": 387, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 388, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 389, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 390, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 382, - "name": "TResult2" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 382, - "name": "TResult2" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - ] - } - } - ] - } - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reference", - "id": 381, - "name": "TResult1" - }, - { - "type": "reference", - "id": 382, - "name": "TResult2" - } - ] - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 470, - "name": "default.then" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 469, - "name": "default.then" - } - }, - { - "id": 376, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 45, - "character": 2 - } - ], - "signatures": [ - { - "id": 377, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n", - "tags": [ - { - "tag": "deprecated", - "text": "Use `throwOnError` in the `PostgrestClient` constructor instead.\n" - } - ] - }, - "parameters": [ - { - "id": 378, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "id": 467, - "name": "default.throwOnError" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 466, - "name": "default.throwOnError" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [112] - }, - { - "title": "Properties", - "kind": 1024, - "children": [375, 367, 370, 365, 363, 366, 368, 369, 364] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 343, 221, 213, 350, 133, 354, 293, 352, 149, 157, 189, 205, 197, 181, 330, 165, 173, - 303, 348, 141, 117, 127, 314, 269, 336, 261, 237, 245, 229, 253, 309, 346, 277, 379, - 376 - ] - } - ], - "sources": [ - { - "fileName": "src/PostgrestFilterBuilder.ts", - "line": 31, - "character": 21 - } - ], - "typeParameter": [ - { - "id": 391, - "name": "Table", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 392, - "name": "Result", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 393, - "typeArguments": [ - { - "type": "reference", - "id": 114, - "name": "Table" - }, - { - "type": "reference", - "id": 115, - "name": "Result" - } - ], - "name": "default" - } - ] - }, - { - "id": 48, - "name": "PostgrestQueryBuilder", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 49, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 14, - "character": 2 - } - ], - "signatures": [ - { - "id": 50, - "name": "new PostgrestQueryBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "typeParameter": [ - { - "id": 51, - "name": "Table", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "GenericTable" - } - } - ], - "parameters": [ - { - "id": 52, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "URL", - "package": "typescript", - "name": "URL" - } - }, - { - "id": 53, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 54, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 57, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 24, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 58, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 59, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 60, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 61, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 55, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 22, - "character": 6 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 56, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 23, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 62, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 25, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [57, 55, 56, 62] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 48, - "typeArguments": [ - { - "type": "reference", - "id": 51, - "name": "Table" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 68, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 12, - "character": 2 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 69, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 70, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 71, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 72, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 64, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 8, - "character": 2 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 65, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 9, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 66, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 10, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 67, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 11, - "character": 2 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AbortSignal", - "package": "typescript", - "name": "AbortSignal" - } - }, - { - "id": 63, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 7, - "character": 2 - } - ], - "type": { - "type": "reference", - "qualifiedName": "URL", - "package": "typescript", - "name": "URL" - } - }, - { - "id": 105, - "name": "delete", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 221, - "character": 2 - } - ], - "signatures": [ - { - "id": 106, - "name": "delete", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Performs a DELETE on the table." - }, - "parameters": [ - { - "id": 107, - "name": "count", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "Count algorithm to use to count rows in a table.\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 108, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 109, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 224, - "character": 4 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [109] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Row" - }, - "objectType": { - "type": "reference", - "id": 51, - "name": "Table" - } - }, - { - "type": "intrinsic", - "name": "undefined" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 82, - "name": "insert", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 92, - "character": 2 - } - ], - "signatures": [ - { - "id": 83, - "name": "insert", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Performs an INSERT into the table." - }, - "typeParameter": [ - { - "id": 84, - "name": "Row", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - } - ], - "parameters": [ - { - "id": 85, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The values to insert." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 84, - "name": "Row" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "id": 84, - "name": "Row" - } - } - ] - } - }, - { - "id": 86, - "name": "count", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "Count algorithm to use to count rows in a table.\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 87, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 88, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 97, - "character": 6 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [88] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Row" - }, - "objectType": { - "type": "reference", - "id": 51, - "name": "Table" - } - }, - { - "type": "intrinsic", - "name": "undefined" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 73, - "name": "select", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 42, - "character": 2 - } - ], - "signatures": [ - { - "id": 74, - "name": "select", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Performs vertical filtering with SELECT." - }, - "typeParameter": [ - { - "id": 75, - "name": "Query", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - }, - "default": { - "type": "literal", - "value": "*" - } - }, - { - "id": 76, - "name": "Result", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Row" - }, - "objectType": { - "type": "reference", - "id": 51, - "name": "Table" - } - }, - { - "type": "conditional", - "checkType": { - "type": "reference", - "id": 75, - "name": "Query" - }, - "extendsType": { - "type": "literal", - "value": "*" - }, - "trueType": { - "type": "literal", - "value": "*" - }, - "falseType": { - "type": "reference", - "id": 75, - "name": "Query" - } - } - ], - "name": "GetResult" - } - } - ], - "parameters": [ - { - "id": 77, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The columns to retrieve, separated by commas." - }, - "type": { - "type": "reference", - "id": 75, - "name": "Query" - } - }, - { - "id": 78, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 79, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 81, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 52, - "character": 6 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 80, - "name": "head", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 51, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [81, 80] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Row" - }, - "objectType": { - "type": "reference", - "id": 51, - "name": "Table" - } - }, - { - "type": "reference", - "id": 76, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 98, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 185, - "character": 2 - } - ], - "signatures": [ - { - "id": 99, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Performs an UPDATE on the table." - }, - "typeParameter": [ - { - "id": 100, - "name": "Row", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - } - ], - "parameters": [ - { - "id": 101, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The values to update." - }, - "type": { - "type": "reference", - "id": 100, - "name": "Row" - } - }, - { - "id": 102, - "name": "count", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "Count algorithm to use to count rows in a table.\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 103, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 104, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 190, - "character": 6 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [104] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Row" - }, - "objectType": { - "type": "reference", - "id": 51, - "name": "Table" - } - }, - { - "type": "intrinsic", - "name": "undefined" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 89, - "name": "upsert", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 141, - "character": 2 - } - ], - "signatures": [ - { - "id": 90, - "name": "upsert", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Performs an UPSERT into the table." - }, - "typeParameter": [ - { - "id": 91, - "name": "Row", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - } - ], - "parameters": [ - { - "id": 92, - "name": "values", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The values to insert." - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 91, - "name": "Row" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "id": 91, - "name": "Row" - } - } - ] - } - }, - { - "id": 93, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 94, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 96, - "name": "count", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 149, - "character": 6 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "exact" - }, - { - "type": "literal", - "value": "planned" - }, - { - "type": "literal", - "value": "estimated" - } - ] - } - }, - { - "id": 97, - "name": "ignoreDuplicates", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 150, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 95, - "name": "onConflict", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 148, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [96, 97, 95] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 111, - "typeArguments": [ - { - "type": "indexedAccess", - "indexType": { - "type": "literal", - "value": "Row" - }, - "objectType": { - "type": "reference", - "id": 51, - "name": "Table" - } - }, - { - "type": "intrinsic", - "name": "undefined" - } - ], - "name": "default" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [49] - }, - { - "title": "Properties", - "kind": 1024, - "children": [68, 64, 65, 66, 67, 63] - }, - { - "title": "Methods", - "kind": 2048, - "children": [105, 82, 73, 98, 89] - } - ], - "sources": [ - { - "fileName": "src/PostgrestQueryBuilder.ts", - "line": 6, - "character": 21 - } - ], - "typeParameter": [ - { - "id": 110, - "name": "Table", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "GenericTable" - } - } - ] - }, - { - "id": 393, - "name": "PostgrestTransformBuilder", - "kind": 128, - "kindString": "Class", - "flags": {}, - "comment": { - "shortText": "Post-filters (transforms)" - }, - "children": [ - { - "id": 394, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "signatures": [ - { - "id": 395, - "name": "new PostgrestTransformBuilder", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "typeParameter": [ - { - "id": 396, - "name": "Table", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 397, - "name": "Result", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "parameters": [ - { - "id": 398, - "name": "builder", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 483, - "typeArguments": [ - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "default" - } - } - ], - "type": { - "type": "reference", - "id": 393, - "typeArguments": [ - { - "type": "reference", - "id": 396, - "name": "Table" - }, - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "id": 485, - "name": "default.constructor" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 484, - "name": "default.constructor" - } - }, - { - "id": 465, - "name": "allowEmpty", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 16, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 500, - "name": "default.allowEmpty" - } - }, - { - "id": 457, - "name": "body", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 12, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - }, - "inheritedFrom": { - "type": "reference", - "id": 492, - "name": "default.body" - } - }, - { - "id": 460, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 15, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 461, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 462, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 463, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 464, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 495, - "name": "default.fetch" - } - }, - { - "id": 455, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 10, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - }, - "inheritedFrom": { - "type": "reference", - "id": 490, - "name": "default.headers" - } - }, - { - "id": 453, - "name": "method", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 8, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": "GET" - }, - { - "type": "literal", - "value": "HEAD" - }, - { - "type": "literal", - "value": "POST" - }, - { - "type": "literal", - "value": "PATCH" - }, - { - "type": "literal", - "value": "DELETE" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "id": 488, - "name": "default.method" - } - }, - { - "id": 456, - "name": "schema", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 11, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 491, - "name": "default.schema" - } - }, - { - "id": 458, - "name": "shouldThrowOnError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 13, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "id": 493, - "name": "default.shouldThrowOnError" - } - }, - { - "id": 459, - "name": "signal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 14, - "character": 12 - } - ], - "type": { - "type": "reference", - "qualifiedName": "AbortSignal", - "package": "typescript", - "name": "AbortSignal" - }, - "inheritedFrom": { - "type": "reference", - "id": 494, - "name": "default.signal" - } - }, - { - "id": 454, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 9, - "character": 12 - } - ], - "type": { - "type": "reference", - "qualifiedName": "URL", - "package": "typescript", - "name": "URL" - }, - "inheritedFrom": { - "type": "reference", - "id": 489, - "name": "default.url" - } - }, - { - "id": 433, - "name": "abortSignal", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 110, - "character": 2 - } - ], - "signatures": [ - { - "id": 434, - "name": "abortSignal", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Sets the AbortSignal for the fetch request." - }, - "parameters": [ - { - "id": 435, - "name": "signal", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "AbortSignal", - "package": "typescript", - "name": "AbortSignal" - } - } - ], - "type": { - "type": "reference", - "id": 393, - "typeArguments": [ - { - "type": "reference", - "id": 396, - "name": "Table" - }, - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 440, - "name": "csv", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 138, - "character": 2 - } - ], - "signatures": [ - { - "id": 441, - "name": "csv", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Set the response type to CSV." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 519, - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - } - ] - }, - { - "id": 444, - "name": "explain", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 160, - "character": 2 - } - ], - "signatures": [ - { - "id": 445, - "name": "explain", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Obtains the EXPLAIN plan for this request." - }, - "parameters": [ - { - "id": 446, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 447, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 448, - "name": "analyze", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 167, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 451, - "name": "buffers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 170, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 450, - "name": "settings", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 169, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 449, - "name": "verbose", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 168, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 452, - "name": "wal", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 171, - "character": 4 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [448, 451, 450, 449, 452] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 517, - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - ], - "name": "PostgrestResponse" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - } - ] - }, - { - "id": 442, - "name": "geojson", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 146, - "character": 2 - } - ], - "signatures": [ - { - "id": 443, - "name": "geojson", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Set the response type to GeoJSON." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 519, - "typeArguments": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - } - ] - }, - { - "id": 420, - "name": "limit", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 85, - "character": 2 - } - ], - "signatures": [ - { - "id": 421, - "name": "limit", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Limits the result with the specified `count`." - }, - "parameters": [ - { - "id": 422, - "name": "count", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The maximum no. of rows to limit to." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 423, - "name": "foreignTable", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The foreign table to use (for foreign columns).\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 424, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 425, - "name": "foreignTable", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 85, - "character": 43 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [425] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 393, - "typeArguments": [ - { - "type": "reference", - "id": 396, - "name": "Table" - }, - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 438, - "name": "maybeSingle", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 129, - "character": 2 - } - ], - "signatures": [ - { - "id": 439, - "name": "maybeSingle", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Retrieves at most one row from the result. Result must be at most one row\n(e.g. using `eq` on a UNIQUE column), otherwise this will result in an\nerror." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 521, - "typeArguments": [ - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "PostgrestMaybeSingleResponse" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - } - ] - }, - { - "id": 404, - "name": "order", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 51, - "character": 2 - } - ], - "signatures": [ - { - "id": 405, - "name": "order", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Orders the result with the specified `column`." - }, - "typeParameter": [ - { - "id": 406, - "name": "ColumnName", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "parameters": [ - { - "id": 407, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The column to order on." - }, - "type": { - "type": "reference", - "id": 316, - "name": "ColumnName" - } - }, - { - "id": 408, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 409, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 410, - "name": "ascending", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 53, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 412, - "name": "foreignTable", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 53, - "character": 59 - } - ], - "type": { - "type": "intrinsic", - "name": "undefined" - } - }, - { - "id": 411, - "name": "nullsFirst", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 53, - "character": 37 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [410, 412, 411] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 393, - "typeArguments": [ - { - "type": "reference", - "id": 396, - "name": "Table" - }, - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "default" - } - }, - { - "id": 413, - "name": "order", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 414, - "name": "column", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 415, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 416, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 417, - "name": "ascending", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 57, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 419, - "name": "foreignTable", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 57, - "character": 59 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 418, - "name": "nullsFirst", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 57, - "character": 37 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [417, 419, 418] - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 393, - "typeArguments": [ - { - "type": "reference", - "id": 396, - "name": "Table" - }, - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 426, - "name": "range", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 98, - "character": 2 - } - ], - "signatures": [ - { - "id": 427, - "name": "range", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Limits the result to rows within the specified range, inclusive." - }, - "parameters": [ - { - "id": 428, - "name": "from", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The starting index from which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 429, - "name": "to", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The last index to which to limit the result, inclusive." - }, - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 430, - "name": "foreignTable", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "The foreign table to use (for foreign columns).\n" - }, - "originalName": "__namedParameters", - "type": { - "type": "reflection", - "declaration": { - "id": 431, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 432, - "name": "foreignTable", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 98, - "character": 54 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [432] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 393, - "typeArguments": [ - { - "type": "reference", - "id": 396, - "name": "Table" - }, - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 399, - "name": "select", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 18, - "character": 2 - } - ], - "signatures": [ - { - "id": 400, - "name": "select", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Performs vertical filtering with SELECT." - }, - "typeParameter": [ - { - "id": 401, - "name": "Query", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - }, - "default": { - "type": "literal", - "value": "*" - } - }, - { - "id": 402, - "name": "NewResult", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 396, - "name": "Table" - }, - { - "type": "conditional", - "checkType": { - "type": "reference", - "id": 311, - "name": "Query" - }, - "extendsType": { - "type": "literal", - "value": "*" - }, - "trueType": { - "type": "literal", - "value": "*" - }, - "falseType": { - "type": "reference", - "id": 311, - "name": "Query" - } - } - ], - "name": "GetResult" - } - } - ], - "parameters": [ - { - "id": 403, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "The columns to retrieve, separated by commas.\n" - }, - "type": { - "type": "reference", - "id": 311, - "name": "Query" - } - } - ], - "type": { - "type": "reference", - "id": 393, - "typeArguments": [ - { - "type": "reference", - "id": 396, - "name": "Table" - }, - { - "type": "reference", - "id": 312, - "name": "NewResult" - } - ], - "name": "default" - } - } - ] - }, - { - "id": 436, - "name": "single", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 119, - "character": 2 - } - ], - "signatures": [ - { - "id": 437, - "name": "single", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Retrieves only one row from the result. Result must be one row (e.g. using\n`limit`), otherwise this will result in an error." - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 519, - "typeArguments": [ - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "PostgrestSingleResponse" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - } - ] - }, - { - "id": 469, - "name": "then", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 50, - "character": 2 - } - ], - "signatures": [ - { - "id": 470, - "name": "then", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "typeParameter": [ - { - "id": 471, - "name": "TResult1", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "reference", - "id": 517, - "typeArguments": [ - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "PostgrestResponse" - } - }, - { - "id": 472, - "name": "TResult2", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "never" - } - } - ], - "parameters": [ - { - "id": 473, - "name": "onfulfilled", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 474, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 475, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 476, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 517, - "typeArguments": [ - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "PostgrestResponse" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 381, - "name": "TResult1" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 381, - "name": "TResult1" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - ] - } - } - ] - } - } - ] - } - }, - { - "id": 477, - "name": "onrejected", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "reflection", - "declaration": { - "id": 478, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 479, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 480, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 382, - "name": "TResult2" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 382, - "name": "TResult2" - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - } - ] - } - } - ] - } - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reference", - "id": 381, - "name": "TResult1" - }, - { - "type": "reference", - "id": 382, - "name": "TResult2" - } - ] - } - ], - "qualifiedName": "PromiseLike", - "package": "typescript", - "name": "PromiseLike" - }, - "inheritedFrom": { - "type": "reference", - "id": 505, - "name": "default.then" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 504, - "name": "default.then" - } - }, - { - "id": 466, - "name": "throwOnError", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/PostgrestBuilder.ts", - "line": 45, - "character": 2 - } - ], - "signatures": [ - { - "id": 467, - "name": "throwOnError", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "If there's an error with the query, throwOnError will reject the promise by\nthrowing the error instead of returning it as part of a successful response.", - "text": "{@link https://github.com/supabase/supabase-js/issues/92}\n", - "tags": [ - { - "tag": "deprecated", - "text": "Use `throwOnError` in the `PostgrestClient` constructor instead.\n" - } - ] - }, - "parameters": [ - { - "id": 468, - "name": "throwOnError", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "type": { - "type": "reference", - "id": 393, - "typeArguments": [ - { - "type": "reference", - "id": 396, - "name": "Table" - }, - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "default" - }, - "inheritedFrom": { - "type": "reference", - "id": 502, - "name": "default.throwOnError" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 501, - "name": "default.throwOnError" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [394] - }, - { - "title": "Properties", - "kind": 1024, - "children": [465, 457, 460, 455, 453, 456, 458, 459, 454] - }, - { - "title": "Methods", - "kind": 2048, - "children": [433, 440, 444, 442, 420, 438, 404, 426, 399, 436, 469, 466] - } - ], - "sources": [ - { - "fileName": "src/PostgrestTransformBuilder.ts", - "line": 9, - "character": 21 - } - ], - "typeParameter": [ - { - "id": 481, - "name": "Table", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "unknown" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 482, - "name": "Result", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 483, - "typeArguments": [ - { - "type": "reference", - "id": 397, - "name": "Result" - } - ], - "name": "default" - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 111, - "name": "PostgrestFilterBuilder" - } - ] - }, - { - "id": 523, - "name": "PostgrestError", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "comment": { - "shortText": "Error format", - "text": "{@link https://postgrest.org/en/stable/api.html?highlight=options#errors-and-http-status-codes}\n" - }, - "sources": [ - { - "fileName": "src/types.ts", - "line": 8, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 524, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 528, - "name": "code", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/types.ts", - "line": 12, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 526, - "name": "details", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/types.ts", - "line": 10, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 527, - "name": "hint", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/types.ts", - "line": 11, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 525, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/types.ts", - "line": 9, - "character": 2 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [528, 526, 527, 525] - } - ], - "sources": [ - { - "fileName": "src/types.ts", - "line": 8, - "character": 29 - } - ] - } - } - }, - { - "id": 521, - "name": "PostgrestMaybeSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/types.ts", - "line": 45, - "character": 12 - } - ], - "typeParameter": [ - { - "id": 522, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "type": { - "type": "reference", - "id": 519, - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reference", - "id": 522, - "name": "T" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - } - ], - "name": "PostgrestSingleResponse" - } - }, - { - "id": 517, - "name": "PostgrestResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/types.ts", - "line": 35, - "character": 12 - } - ], - "typeParameter": [ - { - "id": 518, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 518, - "name": "T" - } - ], - "name": "PostgrestResponseSuccess" - }, - { - "type": "reference", - "name": "PostgrestResponseFailure" - } - ] - } - }, - { - "id": 519, - "name": "PostgrestSingleResponse", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "src/types.ts", - "line": 42, - "character": 12 - } - ], - "typeParameter": [ - { - "id": 520, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 520, - "name": "T" - } - ], - "name": "PostgrestSingleResponseSuccess" - }, - { - "type": "reference", - "name": "PostgrestResponseFailure" - } - ] - } - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [483, 1, 111, 48, 393] - }, - { - "title": "Type Aliases", - "kind": 4194304, - "children": [523, 521, 517, 519] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 0, - "name": "@supabase/realtime-js", - "kind": 0, - "flags": {}, - "originalName": "", - "children": [ - { - "id": 386, - "name": "\"RealtimeChannel\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/Users/inian/dev/supabase/realtime-js/src/RealtimeChannel.ts", - "children": [ - { - "id": 387, - "name": "RealtimeChannel", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 396, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 403, - "name": "new RealtimeChannel", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 404, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 405, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 406, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 407, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 408, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 19, - "character": 18 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 409, - "name": "socket", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 146, - "name": "RealtimeClient" - } - } - ], - "type": { - "type": "reference", - "id": 387, - "name": "RealtimeChannel" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 15, - "character": 28 - } - ] - }, - { - "id": 388, - "name": "bindings", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 8, - "character": 10 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "any" - } - }, - "defaultValue": "[]" - }, - { - "id": 392, - "name": "joinPush", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 12, - "character": 10 - } - ], - "type": { - "type": "reference", - "id": 35, - "name": "Push" - } - }, - { - "id": 391, - "name": "joinedOnce", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 11, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - }, - { - "id": 398, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 19, - "character": 17 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 399, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 400, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 401, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 19, - "character": 18 - } - ] - } - } - }, - { - "id": 395, - "name": "presence", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 15, - "character": 10 - } - ], - "type": { - "type": "reference", - "id": 290, - "name": "RealtimePresence" - } - }, - { - "id": 394, - "name": "pushBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 14, - "character": 12 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 35, - "name": "Push" - } - }, - "defaultValue": "[]" - }, - { - "id": 393, - "name": "rejoinTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 13, - "character": 13 - } - ], - "type": { - "type": "reference", - "id": 101, - "name": "Timer" - } - }, - { - "id": 402, - "name": "socket", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 20, - "character": 17 - } - ], - "type": { - "type": "reference", - "id": 146, - "name": "RealtimeClient" - } - }, - { - "id": 390, - "name": "state", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 10, - "character": 7 - } - ], - "type": { - "type": "reference", - "id": 9, - "name": "CHANNEL_STATES" - }, - "defaultValue": "CHANNEL_STATES.closed" - }, - { - "id": 389, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 9, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 397, - "name": "topic", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 18, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 436, - "name": "canPush", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 437, - "name": "canPush", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Returns `true` if the socket is connected and the channel has been joined." - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 160, - "character": 9 - } - ] - }, - { - "id": 476, - "name": "isClosed", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 477, - "name": "isClosed", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 264, - "character": 10 - } - ] - }, - { - "id": 478, - "name": "isErrored", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 479, - "name": "isErrored", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 267, - "character": 11 - } - ] - }, - { - "id": 480, - "name": "isJoined", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 481, - "name": "isJoined", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 270, - "character": 10 - } - ] - }, - { - "id": 482, - "name": "isJoining", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 483, - "name": "isJoining", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 273, - "character": 11 - } - ] - }, - { - "id": 484, - "name": "isLeaving", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 485, - "name": "isLeaving", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 276, - "character": 11 - } - ] - }, - { - "id": 460, - "name": "isMember", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 461, - "name": "isMember", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 462, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 221, - "character": 10 - } - ] - }, - { - "id": 463, - "name": "joinRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 464, - "name": "joinRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 225, - "character": 9 - } - ] - }, - { - "id": 429, - "name": "off", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 430, - "name": "off", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 431, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 432, - "name": "filter", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 433, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 434, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 435, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 148, - "character": 27 - } - ] - } - } - } - ], - "type": { - "type": "unknown", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 148, - "character": 5 - } - ] - }, - { - "id": 421, - "name": "on", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 422, - "name": "on", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 423, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 424, - "name": "filter", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 425, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 426, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 427, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 428, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "unknown", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 139, - "character": 4 - } - ] - }, - { - "id": 415, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 416, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Registers a callback that will be executed when the channel closes." - }, - "parameters": [ - { - "id": 417, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 128, - "character": 9 - } - ] - }, - { - "id": 418, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 419, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Registers a callback that will be executed when the channel encounteres an error." - }, - "parameters": [ - { - "id": 420, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 135, - "character": 9 - } - ] - }, - { - "id": 455, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 456, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Overridable message hook", - "text": "Receives all events for specialized message handling before dispatching to the channel callbacks.\nMust return the payload, modified or unmodified.\n" - }, - "parameters": [ - { - "id": 457, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 458, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 459, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 217, - "character": 11 - } - ] - }, - { - "id": 438, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 439, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 440, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 441, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 442, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 443, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 444, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 164, - "character": 30 - } - ] - } - } - }, - { - "id": 445, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "reference", - "id": 35, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 164, - "character": 6 - } - ] - }, - { - "id": 465, - "name": "rejoin", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 466, - "name": "rejoin", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 467, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 229, - "character": 8 - } - ] - }, - { - "id": 410, - "name": "rejoinUntilConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 411, - "name": "rejoinUntilConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 94, - "character": 22 - } - ] - }, - { - "id": 473, - "name": "replyEventName", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 474, - "name": "replyEventName", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 475, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 260, - "character": 16 - } - ] - }, - { - "id": 412, - "name": "subscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 413, - "name": "subscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 414, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "reference", - "id": 35, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 101, - "character": 11 - } - ] - }, - { - "id": 468, - "name": "trigger", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 469, - "name": "trigger", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 470, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 471, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 472, - "name": "ref", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 238, - "character": 9 - } - ] - }, - { - "id": 452, - "name": "unsubscribe", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 453, - "name": "unsubscribe", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Leaves the channel.", - "text": "Unsubscribes from server events, and instructs channel to terminate on server.\nTriggers onClose() hooks.\n\nTo receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:\nchannel.unsubscribe().receive(\"ok\", () => alert(\"left!\") )\n" - }, - "parameters": [ - { - "id": 454, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "this.timeout" - } - ], - "type": { - "type": "reference", - "id": 35, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 192, - "character": 13 - } - ] - }, - { - "id": 446, - "name": "updateJoinPayload", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 447, - "name": "updateJoinPayload", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 448, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 449, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 450, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 451, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 179, - "character": 28 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 179, - "character": 19 - } - ] - }, - { - "id": 486, - "name": "isEqual", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isStatic": true, - "isExported": true - }, - "signatures": [ - { - "id": 487, - "name": "isEqual", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 488, - "name": "obj1", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 489, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 490, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 491, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 281, - "character": 9 - } - ] - } - } - }, - { - "id": 492, - "name": "obj2", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 493, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 494, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 495, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 282, - "character": 9 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 280, - "character": 24 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [396] - }, - { - "title": "Properties", - "kind": 1024, - "children": [388, 392, 391, 398, 395, 394, 393, 402, 390, 389, 397] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 436, 476, 478, 480, 482, 484, 460, 463, 429, 421, 415, 418, 455, 438, 465, 410, - 473, 412, 468, 452, 446, 486 - ] - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 7, - "character": 36 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [387] - } - ], - "sources": [ - { - "fileName": "RealtimeChannel.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 145, - "name": "\"RealtimeClient\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/Users/inian/dev/supabase/realtime-js/src/RealtimeClient.ts", - "children": [ - { - "id": 146, - "name": "RealtimeClient", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 178, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Socket." - }, - "signatures": [ - { - "id": 179, - "name": "new RealtimeClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Socket." - }, - "parameters": [ - { - "id": 180, - "name": "endPoint", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 181, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 258, - "name": "Options" - } - } - ], - "type": { - "type": "reference", - "id": 146, - "name": "RealtimeClient" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 73, - "character": 3 - } - ] - }, - { - "id": 147, - "name": "accessToken", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 43, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 148, - "name": "channels", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 44, - "character": 10 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 387, - "name": "RealtimeChannel" - } - }, - "defaultValue": "[]" - }, - { - "id": 170, - "name": "conn", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 60, - "character": 6 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "WebSocket" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 168, - "name": "decode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 58, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 167, - "name": "encode", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 57, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 149, - "name": "endPoint", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 45, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"\"" - }, - { - "id": 150, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 46, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 151, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 152, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 153, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - }, - "defaultValue": "DEFAULT_HEADERS" - }, - { - "id": 160, - "name": "heartbeatIntervalMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 50, - "character": 21 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "30000" - }, - { - "id": 162, - "name": "heartbeatTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 52, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "typeArguments": [ - { - "type": "query", - "queryType": { - "type": "reference", - "name": "setInterval" - } - } - ], - "name": "ReturnType" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "defaultValue": "undefined" - }, - { - "id": 166, - "name": "logger", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 56, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - }, - "defaultValue": "noop" - }, - { - "id": 161, - "name": "longpollerTimeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 51, - "character": 19 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "20000" - }, - { - "id": 154, - "name": "params", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 47, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 155, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 156, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 157, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 163, - "name": "pendingHeartbeatRef", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 53, - "character": 21 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 169, - "name": "reconnectAfterMs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 59, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 165, - "name": "reconnectTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 55, - "character": 16 - } - ], - "type": { - "type": "reference", - "id": 101, - "name": "Timer" - } - }, - { - "id": 164, - "name": "ref", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 54, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 171, - "name": "sendBuffer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 61, - "character": 12 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "name": "Function" - } - }, - "defaultValue": "[]" - }, - { - "id": 172, - "name": "serializer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 62, - "character": 12 - } - ], - "type": { - "type": "reference", - "id": 115, - "name": "Serializer" - }, - "defaultValue": "new Serializer()" - }, - { - "id": 158, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 48, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "DEFAULT_TIMEOUT" - }, - { - "id": 159, - "name": "transport", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 49, - "character": 11 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - }, - "defaultValue": "w3cwebsocket" - }, - { - "id": 247, - "name": "_appendParams", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 248, - "name": "_appendParams", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 249, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 250, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 251, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 252, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 253, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 405, - "character": 11 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 403, - "character": 23 - } - ] - }, - { - "id": 254, - "name": "_flushSendBuffer", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 255, - "name": "_flushSendBuffer", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 416, - "character": 26 - } - ] - }, - { - "id": 239, - "name": "_onConnClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 240, - "name": "_onConnClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 241, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 383, - "character": 22 - } - ] - }, - { - "id": 242, - "name": "_onConnError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 243, - "name": "_onConnError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 244, - "name": "error", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "ErrorEvent" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 391, - "character": 22 - } - ] - }, - { - "id": 237, - "name": "_onConnOpen", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 238, - "name": "_onConnOpen", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 371, - "character": 21 - } - ] - }, - { - "id": 256, - "name": "_sendHeartbeat", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 257, - "name": "_sendHeartbeat", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 423, - "character": 24 - } - ] - }, - { - "id": 245, - "name": "_triggerChanError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 246, - "name": "_triggerChanError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 397, - "character": 27 - } - ] - }, - { - "id": 215, - "name": "channel", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 216, - "name": "channel", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 217, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 218, - "name": "params", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 282, - "name": "ChannelParams" - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 387, - "name": "RealtimeChannel" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 264, - "character": 9 - } - ] - }, - { - "id": 182, - "name": "connect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 183, - "name": "connect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Connects the socket, unless already connected." - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 125, - "character": 9 - } - ] - }, - { - "id": 208, - "name": "connectionState", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 209, - "name": "connectionState", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Returns the current state of the socket." - }, - "type": { - "type": "reference", - "id": 24, - "name": "CONNECTION_STATE" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 233, - "character": 17 - } - ] - }, - { - "id": 184, - "name": "disconnect", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 185, - "name": "disconnect", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Disconnects the socket." - }, - "parameters": [ - { - "id": 186, - "name": "code", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "A numeric status code to send on disconnect." - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 187, - "name": "reason", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "text": "A custom reason for the disconnect.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reflection", - "declaration": { - "id": 188, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 190, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 151, - "character": 40 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 189, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 151, - "character": 20 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "Error" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [190, 189] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 151, - "character": 13 - } - ] - } - } - ], - "name": "Promise" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 148, - "character": 12 - } - ] - }, - { - "id": 227, - "name": "endPointURL", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 228, - "name": "endPointURL", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Returns the URL of the websocket." - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 320, - "character": 13 - } - ] - }, - { - "id": 210, - "name": "isConnected", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 211, - "name": "isConnected", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Retuns `true` is the connection is open." - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 249, - "character": 13 - } - ] - }, - { - "id": 234, - "name": "leaveOpenTopic", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 235, - "name": "leaveOpenTopic", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Unsubscribe from channels with the specified topic." - }, - "parameters": [ - { - "id": 236, - "name": "topic", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 361, - "character": 16 - } - ] - }, - { - "id": 191, - "name": "log", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 192, - "name": "log", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Logs the message.", - "text": "For customized logging, `this.logger` can be overriden.\n" - }, - "parameters": [ - { - "id": 193, - "name": "kind", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 194, - "name": "msg", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 195, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 178, - "character": 5 - } - ] - }, - { - "id": 229, - "name": "makeRef", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 230, - "name": "makeRef", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Return the next message ref, accounting for overflows" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 330, - "character": 9 - } - ] - }, - { - "id": 199, - "name": "onClose", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 200, - "name": "onClose", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket closed.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 201, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 202, - "character": 9 - } - ] - }, - { - "id": 222, - "name": "onConnMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 223, - "name": "onConnMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 224, - "name": "rawMessage", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 225, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 226, - "name": "data", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 290, - "character": 34 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [226] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 290, - "character": 27 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 290, - "character": 15 - } - ] - }, - { - "id": 202, - "name": "onError", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 203, - "name": "onError", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Registers a callback for connection state change events.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen((error) => console.log(\"An error occurred\"))\n" - } - ] - }, - "parameters": [ - { - "id": 204, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 214, - "character": 9 - } - ] - }, - { - "id": 205, - "name": "onMessage", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 206, - "name": "onMessage", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Calls a function any time a message is received.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onMessage((message) => console.log(message))\n" - } - ] - }, - "parameters": [ - { - "id": 207, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 226, - "character": 11 - } - ] - }, - { - "id": 196, - "name": "onOpen", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 197, - "name": "onOpen", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Registers a callback for connection state change event.", - "tags": [ - { - "tag": "example", - "text": "\n socket.onOpen(() => console.log(\"Socket opened.\"))\n" - } - ] - }, - "parameters": [ - { - "id": 198, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A function to be called when the event occurs.\n" - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 190, - "character": 8 - } - ] - }, - { - "id": 219, - "name": "push", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 220, - "name": "push", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Push out a message if the socket is connected.", - "text": "If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.\n" - }, - "parameters": [ - { - "id": 221, - "name": "data", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 276, - "name": "Message" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 275, - "character": 6 - } - ] - }, - { - "id": 212, - "name": "remove", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 213, - "name": "remove", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Removes a subscription from the socket." - }, - "parameters": [ - { - "id": 214, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "An open subscription.\n" - }, - "type": { - "type": "reference", - "id": 387, - "name": "RealtimeChannel" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 258, - "character": 8 - } - ] - }, - { - "id": 231, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 232, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Sets the JWT access token used for channel subscription authorization and Realtime RLS." - }, - "parameters": [ - { - "id": 233, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "text": "A JWT string.\n" - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 346, - "character": 9 - } - ] - }, - { - "id": 173, - "name": "stateChangeCallbacks", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 175, - "name": "close", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 70, - "character": 9 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - }, - { - "id": 176, - "name": "error", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 71, - "character": 9 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - }, - { - "id": 177, - "name": "message", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 72, - "character": 11 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - }, - { - "id": 174, - "name": "open", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 69, - "character": 8 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "never" - } - }, - "defaultValue": "[]" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [175, 176, 177, 174] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 63, - "character": 22 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [178] - }, - { - "title": "Properties", - "kind": 1024, - "children": [ - 147, 148, 170, 168, 167, 149, 150, 160, 162, 166, 161, 154, 163, 169, 165, 164, - 171, 172, 158, 159 - ] - }, - { - "title": "Methods", - "kind": 2048, - "children": [ - 247, 254, 239, 242, 237, 256, 245, 215, 182, 208, 184, 227, 210, 234, 191, 229, - 199, 222, 202, 205, 196, 219, 212, 231 - ] - }, - { - "title": "Object literals", - "kind": 2097152, - "children": [173] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 42, - "character": 35 - } - ] - }, - { - "id": 282, - "name": "ChannelParams", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 35, - "character": 18 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 283, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 285, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 286, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "children": [ - { - "id": 284, - "name": "selfBroadcast", - "kind": 32, - "kindString": "Variable", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 36, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [284] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 35, - "character": 20 - } - ] - } - } - }, - { - "id": 276, - "name": "Message", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 28, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 277, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 279, - "name": "event", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 30, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 280, - "name": "payload", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 31, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - }, - { - "id": 281, - "name": "ref", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 32, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 278, - "name": "topic", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 29, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [279, 280, 281, 278] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 28, - "character": 14 - } - ] - } - } - }, - { - "id": 258, - "name": "Options", - "kind": 4194304, - "kindString": "Type alias", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 16, - "character": 19 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 259, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 266, - "name": "decode", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 23, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 265, - "name": "encode", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 22, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 268, - "name": "headers", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 25, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 269, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 270, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 271, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 262, - "name": "heartbeatIntervalMs", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 19, - "character": 21 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 264, - "name": "logger", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 21, - "character": 8 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 263, - "name": "longpollerTimeout", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 20, - "character": 19 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 272, - "name": "params", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 26, - "character": 8 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "reflection", - "declaration": { - "id": 273, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 274, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 275, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - } - } - ] - } - }, - { - "id": 267, - "name": "reconnectAfterMs", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 24, - "character": 18 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 261, - "name": "timeout", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 18, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - }, - { - "id": 260, - "name": "transport", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 17, - "character": 11 - } - ], - "type": { - "type": "reference", - "name": "WebSocket" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [266, 265, 268, 262, 264, 263, 272, 267, 261, 260] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 16, - "character": 21 - } - ] - } - } - }, - { - "id": 287, - "name": "noop", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 288, - "name": "noop", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 40, - "character": 10 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [146] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [282, 276, 258] - }, - { - "title": "Functions", - "kind": 64, - "children": [287] - } - ], - "sources": [ - { - "fileName": "RealtimeClient.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 289, - "name": "\"RealtimePresence\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/Users/inian/dev/supabase/realtime-js/src/RealtimePresence.ts", - "children": [ - { - "id": 290, - "name": "RealtimePresence", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 301, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Presence." - }, - "signatures": [ - { - "id": 303, - "name": "new RealtimePresence", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Presence." - }, - "parameters": [ - { - "id": 304, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The RealtimeChannel" - }, - "type": { - "type": "reference", - "id": 387, - "name": "RealtimeChannel" - } - }, - { - "id": 305, - "name": "opts", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "comment": { - "shortText": "The options,\n for example `{events: {state: 'state', diff: 'diff'}}`\n" - }, - "type": { - "type": "reference", - "name": "PresenceOpts" - } - } - ], - "type": { - "type": "reference", - "id": 290, - "name": "RealtimePresence" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 55, - "character": 3 - } - ] - }, - { - "id": 302, - "name": "channel", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The RealtimeChannel" - }, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 64, - "character": 28 - } - ], - "type": { - "type": "reference", - "id": 387, - "name": "RealtimeChannel" - } - }, - { - "id": 293, - "name": "joinRef", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 46, - "character": 9 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 292, - "name": "pendingDiffs", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 45, - "character": 14 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 376, - "name": "RawPresenceDiff" - } - }, - "defaultValue": "[]" - }, - { - "id": 291, - "name": "state", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 44, - "character": 7 - } - ], - "type": { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - }, - { - "id": 352, - "name": "inPendingSyncState", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 353, - "name": "inPendingSyncState", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 327, - "character": 28 - } - ] - }, - { - "id": 348, - "name": "list", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 349, - "name": "list", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 350, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 351, - "name": "by", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true, - "isOptional": true - }, - "type": { - "type": "reference", - "id": 380, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T", - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "name": "PresenceChooser" - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "typeParameter", - "name": "T", - "default": { - "type": "intrinsic", - "name": "any" - } - } - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 323, - "character": 6 - } - ] - }, - { - "id": 337, - "name": "onJoin", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 338, - "name": "onJoin", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 339, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "PresenceOnJoinCallback" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 311, - "character": 8 - } - ] - }, - { - "id": 340, - "name": "onLeave", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 341, - "name": "onLeave", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 342, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "PresenceOnLeaveCallback" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 315, - "character": 9 - } - ] - }, - { - "id": 343, - "name": "onSync", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 344, - "name": "onSync", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 345, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 346, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 347, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 319, - "character": 18 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 319, - "character": 8 - } - ] - }, - { - "id": 331, - "name": "cloneDeep", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isStatic": true, - "isExported": true - }, - "signatures": [ - { - "id": 332, - "name": "cloneDeep", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 333, - "name": "obj", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 334, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 335, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 336, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 307, - "character": 31 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 307, - "character": 26 - } - ] - }, - { - "id": 318, - "name": "list", - "kind": 2048, - "kindString": "Method", - "flags": { - "isStatic": true, - "isExported": true - }, - "signatures": [ - { - "id": 319, - "name": "list", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Returns the array of presences, with selected metadata." - }, - "typeParameter": [ - { - "id": 320, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 321, - "name": "presences", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - }, - { - "id": 322, - "name": "chooser", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 380, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T", - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "name": "PresenceChooser" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "typeParameter", - "name": "T", - "default": { - "type": "intrinsic", - "name": "any" - } - } - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 241, - "character": 13 - } - ] - }, - { - "id": 323, - "name": "map", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isStatic": true, - "isExported": true - }, - "signatures": [ - { - "id": 324, - "name": "map", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "typeParameter": [ - { - "id": 325, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": { - "isExported": true - } - } - ], - "parameters": [ - { - "id": 326, - "name": "obj", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - }, - { - "id": 327, - "name": "func", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 380, - "typeArguments": [ - { - "type": "typeParameter", - "name": "T", - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "name": "PresenceChooser" - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "typeParameter", - "name": "T", - "default": { - "type": "intrinsic", - "name": "any" - } - } - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 254, - "character": 20 - } - ] - }, - { - "id": 312, - "name": "syncDiff", - "kind": 2048, - "kindString": "Method", - "flags": { - "isStatic": true, - "isExported": true - }, - "signatures": [ - { - "id": 313, - "name": "syncDiff", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Used to sync a diff of presence join and leave events from the\nserver, as they happen.", - "text": "Like `syncState`, `syncDiff` accepts optional `onJoin` and\n`onLeave` callbacks to react to a user joining or leaving from a\ndevice.\n" - }, - "parameters": [ - { - "id": 314, - "name": "state", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - }, - { - "id": 315, - "name": "diff", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 376, - "name": "RawPresenceDiff" - }, - { - "type": "reference", - "id": 363, - "name": "PresenceDiff" - } - ] - } - }, - { - "id": 316, - "name": "onJoin", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "PresenceOnJoinCallback" - } - }, - { - "id": 317, - "name": "onLeave", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "PresenceOnLeaveCallback" - } - } - ], - "type": { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 179, - "character": 17 - } - ] - }, - { - "id": 306, - "name": "syncState", - "kind": 2048, - "kindString": "Method", - "flags": { - "isStatic": true, - "isExported": true - }, - "signatures": [ - { - "id": 307, - "name": "syncState", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Used to sync the list of presences on the server with the\nclient's state.", - "text": "An optional `onJoin` and `onLeave` callback can be provided to\nreact to changes in the client's local presences across\ndisconnects and reconnects with the server.\n" - }, - "parameters": [ - { - "id": 308, - "name": "currentState", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - }, - { - "id": 309, - "name": "newState", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 367, - "name": "RawPresenceState" - }, - { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - ] - } - }, - { - "id": 310, - "name": "onJoin", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "PresenceOnJoinCallback" - } - }, - { - "id": 311, - "name": "onLeave", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "PresenceOnLeaveCallback" - } - } - ], - "type": { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 122, - "character": 18 - } - ] - }, - { - "id": 328, - "name": "transformState", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isStatic": true, - "isExported": true - }, - "signatures": [ - { - "id": 329, - "name": "transformState", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Remove 'metas' key\nChange 'phx_ref' to 'presence_ref'\nRemove 'phx_ref' and 'phx_ref_prev'", - "tags": [ - { - "tag": "example", - "text": "\n// returns {\n abc123: [\n { presence_ref: '2', user_id: 1 },\n { presence_ref: '3', user_id: 2 }\n ]\n}\nRealtimePresence.transformState({\n abc123: {\n metas: [\n { phx_ref: '2', phx_ref_prev: '1' user_id: 1 },\n { phx_ref: '3', user_id: 2 }\n ]\n }\n})\n" - } - ] - }, - "parameters": [ - { - "id": 330, - "name": "state", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 367, - "name": "RawPresenceState" - }, - { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - ] - } - } - ], - "type": { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 282, - "character": 31 - } - ] - }, - { - "id": 294, - "name": "caller", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 295, - "name": "onJoin", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 296, - "name": "onJoin", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 52, - "character": 10 - } - ] - }, - { - "id": 297, - "name": "onLeave", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 298, - "name": "onLeave", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 53, - "character": 11 - } - ] - }, - { - "id": 299, - "name": "onSync", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 300, - "name": "onSync", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 54, - "character": 10 - } - ] - } - ], - "groups": [ - { - "title": "Functions", - "kind": 64, - "children": [295, 297, 299] - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 47, - "character": 8 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [301] - }, - { - "title": "Properties", - "kind": 1024, - "children": [302, 293, 292, 291] - }, - { - "title": "Methods", - "kind": 2048, - "children": [352, 348, 337, 340, 343, 331, 318, 323, 312, 306, 328] - }, - { - "title": "Object literals", - "kind": 2097152, - "children": [294] - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 43, - "character": 37 - } - ] - }, - { - "id": 354, - "name": "Presence", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 13, - "character": 13 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 355, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 357, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 358, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "children": [ - { - "id": 356, - "name": "presence_ref", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 14, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [356] - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 13, - "character": 15 - } - ] - } - } - }, - { - "id": 380, - "name": "PresenceChooser", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "typeParameter": [ - { - "id": 381, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {} - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 41, - "character": 20 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 382, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 383, - "name": "__call", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 384, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 385, - "name": "presences", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "typeParameter", - "name": "T" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 41, - "character": 25 - } - ] - } - } - }, - { - "id": 363, - "name": "PresenceDiff", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 20, - "character": 17 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 364, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 365, - "name": "joins", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 21, - "character": 7 - } - ], - "type": { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - }, - { - "id": 366, - "name": "leaves", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 22, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 359, - "name": "PresenceState" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [365, 366] - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 20, - "character": 19 - } - ] - } - } - }, - { - "id": 359, - "name": "PresenceState", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 18, - "character": 18 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 360, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 361, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 362, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 354, - "name": "Presence" - } - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 18, - "character": 20 - } - ] - } - } - }, - { - "id": 376, - "name": "RawPresenceDiff", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 36, - "character": 20 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 377, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 378, - "name": "joins", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 37, - "character": 7 - } - ], - "type": { - "type": "reference", - "id": 367, - "name": "RawPresenceState" - } - }, - { - "id": 379, - "name": "leaves", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 38, - "character": 8 - } - ], - "type": { - "type": "reference", - "id": 367, - "name": "RawPresenceState" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [378, 379] - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 36, - "character": 22 - } - ] - } - } - }, - { - "id": 367, - "name": "RawPresenceState", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 25, - "character": 21 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 368, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 369, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 370, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 530, - "typeArguments": [ - { - "type": "stringLiteral", - "value": "metas" - }, - { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 371, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 374, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 375, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "children": [ - { - "id": 372, - "name": "phx_ref", - "kind": 32, - "kindString": "Variable", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 29, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 373, - "name": "phx_ref_prev", - "kind": 32, - "kindString": "Variable", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 30, - "character": 18 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [372, 373] - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 27, - "character": 12 - } - ] - } - } - } - ], - "name": "Record" - } - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 25, - "character": 23 - } - ] - } - } - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [290] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [354, 380, 363, 359, 376, 367] - } - ], - "sources": [ - { - "fileName": "RealtimePresence.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 570, - "name": "\"index\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/Users/inian/dev/supabase/realtime-js/src/index.ts", - "sources": [ - { - "fileName": "index.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 3, - "name": "\"lib/constants\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/Users/inian/dev/supabase/realtime-js/src/lib/constants.ts", - "children": [ - { - "id": 15, - "name": "CHANNEL_EVENTS", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 21, - "name": "access_token", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 32, - "character": 14 - } - ], - "defaultValue": "\"access_token\"" - }, - { - "id": 16, - "name": "close", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 27, - "character": 7 - } - ], - "defaultValue": "\"phx_close\"" - }, - { - "id": 17, - "name": "error", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 28, - "character": 7 - } - ], - "defaultValue": "\"phx_error\"" - }, - { - "id": 18, - "name": "join", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 29, - "character": 6 - } - ], - "defaultValue": "\"phx_join\"" - }, - { - "id": 20, - "name": "leave", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 31, - "character": 7 - } - ], - "defaultValue": "\"phx_leave\"" - }, - { - "id": 19, - "name": "reply", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 30, - "character": 7 - } - ], - "defaultValue": "\"phx_reply\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [21, 16, 17, 18, 20, 19] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 26, - "character": 26 - } - ] - }, - { - "id": 9, - "name": "CHANNEL_STATES", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 10, - "name": "closed", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 19, - "character": 8 - } - ], - "defaultValue": "\"closed\"" - }, - { - "id": 11, - "name": "errored", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 20, - "character": 9 - } - ], - "defaultValue": "\"errored\"" - }, - { - "id": 12, - "name": "joined", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 21, - "character": 8 - } - ], - "defaultValue": "\"joined\"" - }, - { - "id": 13, - "name": "joining", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 22, - "character": 9 - } - ], - "defaultValue": "\"joining\"" - }, - { - "id": 14, - "name": "leaving", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 23, - "character": 9 - } - ], - "defaultValue": "\"leaving\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [10, 11, 12, 13, 14] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 18, - "character": 26 - } - ] - }, - { - "id": 24, - "name": "CONNECTION_STATE", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 28, - "name": "Closed", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 43, - "character": 8 - } - ], - "defaultValue": "\"closed\"" - }, - { - "id": 27, - "name": "Closing", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 42, - "character": 9 - } - ], - "defaultValue": "\"closing\"" - }, - { - "id": 25, - "name": "Connecting", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 40, - "character": 12 - } - ], - "defaultValue": "\"connecting\"" - }, - { - "id": 26, - "name": "Open", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 41, - "character": 6 - } - ], - "defaultValue": "\"open\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [28, 27, 25, 26] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 39, - "character": 28 - } - ] - }, - { - "id": 4, - "name": "SOCKET_STATES", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 8, - "name": "closed", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 15, - "character": 8 - } - ], - "defaultValue": "3" - }, - { - "id": 7, - "name": "closing", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 14, - "character": 9 - } - ], - "defaultValue": "2" - }, - { - "id": 5, - "name": "connecting", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 12, - "character": 12 - } - ], - "defaultValue": "0" - }, - { - "id": 6, - "name": "open", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 13, - "character": 6 - } - ], - "defaultValue": "1" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [8, 7, 5, 6] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 11, - "character": 25 - } - ] - }, - { - "id": 22, - "name": "TRANSPORTS", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 23, - "name": "websocket", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 36, - "character": 11 - } - ], - "defaultValue": "\"websocket\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [23] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 35, - "character": 22 - } - ] - }, - { - "id": 32, - "name": "DEFAULT_TIMEOUT", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 7, - "character": 28 - } - ], - "type": { - "type": "unknown", - "name": "10000" - }, - "defaultValue": "10000" - }, - { - "id": 31, - "name": "VSN", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 5, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"1.0.0\"" - }, - { - "id": 33, - "name": "WS_CLOSE_NORMAL", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 9, - "character": 28 - } - ], - "type": { - "type": "unknown", - "name": "1000" - }, - "defaultValue": "1000" - }, - { - "id": 29, - "name": "DEFAULT_HEADERS", - "kind": 2097152, - "kindString": "Object literal", - "flags": { - "isExported": true, - "isConst": true - }, - "children": [ - { - "id": 30, - "name": "X-Client-Info", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 3, - "character": 48 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "`realtime-js/${version}`" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [30] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 3, - "character": 28 - } - ], - "type": { - "type": "intrinsic", - "name": "object" - } - } - ], - "groups": [ - { - "title": "Enumerations", - "kind": 4, - "children": [15, 9, 24, 4, 22] - }, - { - "title": "Variables", - "kind": 32, - "children": [32, 31, 33] - }, - { - "title": "Object literals", - "kind": 2097152, - "children": [29] - } - ], - "sources": [ - { - "fileName": "lib/constants.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 34, - "name": "\"lib/push\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/Users/inian/dev/supabase/realtime-js/src/lib/push.ts", - "children": [ - { - "id": 35, - "name": "Push", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 48, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Push" - }, - "signatures": [ - { - "id": 56, - "name": "new Push", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Initializes the Push" - }, - "parameters": [ - { - "id": 57, - "name": "channel", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The Channel" - }, - "type": { - "type": "reference", - "id": 387, - "name": "RealtimeChannel" - } - }, - { - "id": 58, - "name": "event", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The event, for example `\"phx_join\"`" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 59, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The payload, for example `{user_id: 123}`" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 60, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 61, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 62, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 29, - "character": 19 - } - ] - } - }, - "defaultValue": "{}" - }, - { - "id": 63, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The push timeout in milliseconds\n" - }, - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "DEFAULT_TIMEOUT" - } - ], - "type": { - "type": "reference", - "id": 35, - "name": "Push" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 16, - "character": 32 - } - ] - }, - { - "id": 49, - "name": "channel", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The Channel" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 27, - "character": 18 - } - ], - "type": { - "type": "reference", - "id": 387, - "name": "RealtimeChannel" - } - }, - { - "id": 50, - "name": "event", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The event, for example `\"phx_join\"`" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 28, - "character": 16 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 51, - "name": "payload", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The payload, for example `{user_id: 123}`" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 29, - "character": 18 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 52, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 53, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 54, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 29, - "character": 19 - } - ] - } - } - }, - { - "id": 43, - "name": "recHooks", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 12, - "character": 10 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 44, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 46, - "name": "callback", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 14, - "character": 12 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 45, - "name": "status", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 13, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [46, 45] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 12, - "character": 11 - } - ] - } - } - }, - "defaultValue": "[]" - }, - { - "id": 39, - "name": "receivedResp", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 8, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 40, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 42, - "name": "response", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 10, - "character": 12 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 41, - "name": "status", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 9, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [42, 41] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 8, - "character": 15 - } - ] - } - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 38, - "name": "ref", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 7, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "\"\"" - }, - { - "id": 47, - "name": "refEvent", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 16, - "character": 10 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "null" - } - ] - }, - "defaultValue": "null" - }, - { - "id": 36, - "name": "sent", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 5, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "false" - }, - { - "id": 55, - "name": "timeout", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "comment": { - "shortText": "The push timeout in milliseconds\n" - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 30, - "character": 18 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 37, - "name": "timeoutTimer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 6, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "number" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "defaultValue": "undefined" - }, - { - "id": 87, - "name": "_cancelRefEvent", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 88, - "name": "_cancelRefEvent", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 100, - "character": 25 - } - ] - }, - { - "id": 89, - "name": "_cancelTimeout", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 90, - "name": "_cancelTimeout", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 108, - "character": 24 - } - ] - }, - { - "id": 97, - "name": "_hasReceived", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 98, - "name": "_hasReceived", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 99, - "name": "status", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "intrinsic", - "name": "false" - }, - { - "type": "intrinsic", - "name": "true" - } - ] - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 125, - "character": 22 - } - ] - }, - { - "id": 91, - "name": "_matchReceive", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 92, - "name": "_matchReceive", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 93, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "originalName": "__0", - "type": { - "type": "reflection", - "declaration": { - "id": 94, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 96, - "name": "response", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 115, - "character": 12 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 95, - "name": "status", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/push.ts", - "line": 114, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [96, 95] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 113, - "character": 24 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 113, - "character": 23 - } - ] - }, - { - "id": 85, - "name": "destroy", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 86, - "name": "destroy", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 95, - "character": 9 - } - ] - }, - { - "id": 75, - "name": "receive", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 76, - "name": "receive", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 77, - "name": "status", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 78, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "unknown", - "name": "this" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 61, - "character": 9 - } - ] - }, - { - "id": 64, - "name": "resend", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 65, - "name": "resend", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 66, - "name": "timeout", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 33, - "character": 8 - } - ] - }, - { - "id": 67, - "name": "send", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 68, - "name": "send", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 43, - "character": 6 - } - ] - }, - { - "id": 79, - "name": "startTimeout", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 80, - "name": "startTimeout", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 70, - "character": 14 - } - ] - }, - { - "id": 81, - "name": "trigger", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 82, - "name": "trigger", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 83, - "name": "status", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 84, - "name": "response", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 91, - "character": 9 - } - ] - }, - { - "id": 69, - "name": "updatePayload", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 70, - "name": "updatePayload", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 71, - "name": "payload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 72, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 73, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 74, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 57, - "character": 24 - } - ] - } - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 57, - "character": 15 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [48] - }, - { - "title": "Properties", - "kind": 1024, - "children": [49, 50, 51, 43, 39, 38, 47, 36, 55, 37] - }, - { - "title": "Methods", - "kind": 2048, - "children": [87, 89, 97, 91, 85, 75, 64, 67, 79, 81, 69] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 4, - "character": 25 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [35] - } - ], - "sources": [ - { - "fileName": "lib/push.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 114, - "name": "\"lib/serializer\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/Users/inian/dev/supabase/realtime-js/src/lib/serializer.ts", - "children": [ - { - "id": 115, - "name": "Serializer", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 116, - "name": "HEADER_LENGTH", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 5, - "character": 15 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "1" - }, - { - "id": 121, - "name": "_binaryDecode", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 122, - "name": "_binaryDecode", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 123, - "name": "buffer", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "ArrayBuffer" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 124, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 127, - "name": "event", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 33, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 128, - "name": "payload", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 34, - "character": 11 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 129, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 130, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 131, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 34, - "character": 12 - } - ] - } - } - }, - { - "id": 125, - "name": "ref", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 31, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 126, - "name": "topic", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 32, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [127, 128, 125, 126] - } - ] - } - } - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 19, - "character": 23 - } - ] - }, - { - "id": 132, - "name": "_decodeBroadcast", - "kind": 2048, - "kindString": "Method", - "flags": { - "isPrivate": true, - "isExported": true - }, - "signatures": [ - { - "id": 133, - "name": "_decodeBroadcast", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 134, - "name": "buffer", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "ArrayBuffer" - } - }, - { - "id": 135, - "name": "view", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "DataView" - } - }, - { - "id": 136, - "name": "decoder", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "TextDecoder" - } - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 137, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 140, - "name": "event", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 33, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 141, - "name": "payload", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 34, - "character": 11 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 142, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "indexSignature": [ - { - "id": 143, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 144, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 34, - "character": 12 - } - ] - } - } - }, - { - "id": 138, - "name": "ref", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 31, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "null" - } - }, - { - "id": 139, - "name": "topic", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 32, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [140, 141, 138, 139] - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 30, - "character": 4 - } - ] - } - } - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 26, - "character": 26 - } - ] - }, - { - "id": 117, - "name": "decode", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 118, - "name": "decode", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 119, - "name": "rawPayload", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "name": "ArrayBuffer" - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 120, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "intrinsic", - "name": "any" - } - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 7, - "character": 8 - } - ] - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [116] - }, - { - "title": "Methods", - "kind": 2048, - "children": [121, 132, 117] - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 4, - "character": 31 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [115] - } - ], - "sources": [ - { - "fileName": "lib/serializer.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 100, - "name": "\"lib/timer\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/Users/inian/dev/supabase/realtime-js/src/lib/timer.ts", - "children": [ - { - "id": 101, - "name": "Timer", - "kind": 128, - "kindString": "Class", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Creates a timer that accepts a `timerCalc` function to perform calculated timeout retries, such as exponential backoff.", - "tags": [ - { - "tag": "example", - "text": "\n let reconnectTimer = new Timer(() => this.connect(), function(tries){\n return [1000, 5000, 10000][tries - 1] || 10000\n })\n reconnectTimer.scheduleTimeout() // fires after 1000\n reconnectTimer.scheduleTimeout() // fires after 5000\n reconnectTimer.reset()\n reconnectTimer.scheduleTimeout() // fires after 1000\n" - } - ] - }, - "children": [ - { - "id": 104, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 107, - "name": "new Timer", - "kind": 16384, - "kindString": "Constructor signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 108, - "name": "callback", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 109, - "name": "timerCalc", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "name": "Function" - } - } - ], - "type": { - "type": "reference", - "id": 101, - "name": "Timer" - } - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 15, - "character": 19 - } - ] - }, - { - "id": 105, - "name": "callback", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 17, - "character": 29 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 102, - "name": "timer", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 14, - "character": 7 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "number" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "defaultValue": "undefined" - }, - { - "id": 106, - "name": "timerCalc", - "kind": 1024, - "kindString": "Property", - "flags": { - "isPublic": true, - "isExported": true, - "isConstructorProperty": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 17, - "character": 57 - } - ], - "type": { - "type": "reference", - "name": "Function" - } - }, - { - "id": 103, - "name": "tries", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 15, - "character": 7 - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "0" - }, - { - "id": 110, - "name": "reset", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 111, - "name": "reset", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 22, - "character": 7 - } - ] - }, - { - "id": 112, - "name": "scheduleTimeout", - "kind": 2048, - "kindString": "Method", - "flags": { - "isExported": true - }, - "signatures": [ - { - "id": 113, - "name": "scheduleTimeout", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "void" - } - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 28, - "character": 17 - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [104] - }, - { - "title": "Properties", - "kind": 1024, - "children": [105, 102, 106, 103] - }, - { - "title": "Methods", - "kind": 2048, - "children": [110, 112] - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 13, - "character": 26 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [101] - } - ], - "sources": [ - { - "fileName": "lib/timer.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 496, - "name": "\"lib/transformers\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/Users/inian/dev/supabase/realtime-js/src/lib/transformers.ts", - "children": [ - { - "id": 497, - "name": "PostgresTypes", - "kind": 4, - "kindString": "Enumeration", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Helpers to convert the change Payload into native JS types." - }, - "children": [ - { - "id": 498, - "name": "abstime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 9, - "character": 9 - } - ], - "defaultValue": "\"abstime\"" - }, - { - "id": 499, - "name": "bool", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 10, - "character": 6 - } - ], - "defaultValue": "\"bool\"" - }, - { - "id": 500, - "name": "date", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 11, - "character": 6 - } - ], - "defaultValue": "\"date\"" - }, - { - "id": 501, - "name": "daterange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 12, - "character": 11 - } - ], - "defaultValue": "\"daterange\"" - }, - { - "id": 502, - "name": "float4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 13, - "character": 8 - } - ], - "defaultValue": "\"float4\"" - }, - { - "id": 503, - "name": "float8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 14, - "character": 8 - } - ], - "defaultValue": "\"float8\"" - }, - { - "id": 504, - "name": "int2", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 15, - "character": 6 - } - ], - "defaultValue": "\"int2\"" - }, - { - "id": 505, - "name": "int4", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 16, - "character": 6 - } - ], - "defaultValue": "\"int4\"" - }, - { - "id": 506, - "name": "int4range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 17, - "character": 11 - } - ], - "defaultValue": "\"int4range\"" - }, - { - "id": 507, - "name": "int8", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 18, - "character": 6 - } - ], - "defaultValue": "\"int8\"" - }, - { - "id": 508, - "name": "int8range", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 19, - "character": 11 - } - ], - "defaultValue": "\"int8range\"" - }, - { - "id": 509, - "name": "json", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 20, - "character": 6 - } - ], - "defaultValue": "\"json\"" - }, - { - "id": 510, - "name": "jsonb", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 21, - "character": 7 - } - ], - "defaultValue": "\"jsonb\"" - }, - { - "id": 511, - "name": "money", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 22, - "character": 7 - } - ], - "defaultValue": "\"money\"" - }, - { - "id": 512, - "name": "numeric", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 23, - "character": 9 - } - ], - "defaultValue": "\"numeric\"" - }, - { - "id": 513, - "name": "oid", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 24, - "character": 5 - } - ], - "defaultValue": "\"oid\"" - }, - { - "id": 514, - "name": "reltime", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 25, - "character": 9 - } - ], - "defaultValue": "\"reltime\"" - }, - { - "id": 515, - "name": "text", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 26, - "character": 6 - } - ], - "defaultValue": "\"text\"" - }, - { - "id": 516, - "name": "time", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 27, - "character": 6 - } - ], - "defaultValue": "\"time\"" - }, - { - "id": 517, - "name": "timestamp", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 28, - "character": 11 - } - ], - "defaultValue": "\"timestamp\"" - }, - { - "id": 518, - "name": "timestamptz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 29, - "character": 13 - } - ], - "defaultValue": "\"timestamptz\"" - }, - { - "id": 519, - "name": "timetz", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 30, - "character": 8 - } - ], - "defaultValue": "\"timetz\"" - }, - { - "id": 520, - "name": "tsrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 31, - "character": 9 - } - ], - "defaultValue": "\"tsrange\"" - }, - { - "id": 521, - "name": "tstzrange", - "kind": 16, - "kindString": "Enumeration member", - "flags": { - "isExported": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 32, - "character": 11 - } - ], - "defaultValue": "\"tstzrange\"" - } - ], - "groups": [ - { - "title": "Enumeration members", - "kind": 16, - "children": [ - 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 521 - ] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 8, - "character": 25 - } - ] - }, - { - "id": 528, - "name": "BaseValue", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 42, - "character": 14 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "null" - }, - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "number" - }, - { - "type": "intrinsic", - "name": "boolean" - } - ] - } - }, - { - "id": 522, - "name": "Columns", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 35, - "character": 12 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 523, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 526, - "name": "flags", - "kind": 32, - "kindString": "Variable", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 38, - "character": 7 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - }, - { - "id": 524, - "name": "name", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 36, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 525, - "name": "type", - "kind": 32, - "kindString": "Variable", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 37, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 527, - "name": "type_modifier", - "kind": 32, - "kindString": "Variable", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 39, - "character": 15 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "undefined" - }, - { - "type": "intrinsic", - "name": "number" - } - ] - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [526, 524, 525, 527] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 35, - "character": 14 - } - ] - } - } - } - }, - { - "id": 530, - "name": "Record", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 45, - "character": 11 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 531, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "indexSignature": [ - { - "id": 532, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 533, - "name": "key", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 45, - "character": 13 - } - ] - } - } - }, - { - "id": 529, - "name": "RecordValue", - "kind": 4194304, - "kindString": "Type alias", - "flags": {}, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 43, - "character": 16 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "reference", - "id": 528, - "name": "BaseValue" - }, - { - "type": "array", - "elementType": { - "type": "reference", - "id": 528, - "name": "BaseValue" - } - } - ] - } - }, - { - "id": 547, - "name": "convertCell", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "If the value of the cell is `null`, returns null.\nOtherwise converts the string value to the correct type.", - "tags": [ - { - "tag": "example", - "text": "convertCell('bool', 't')\n//=> true" - }, - { - "tag": "example", - "text": "convertCell('int8', '10')\n//=> 10" - }, - { - "tag": "example", - "text": "convertCell('_int4', '{1,2,3,4}')\n//=> [1,2,3,4]\n" - } - ] - }, - "signatures": [ - { - "id": 548, - "name": "convertCell", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "If the value of the cell is `null`, returns null.\nOtherwise converts the string value to the correct type.", - "tags": [ - { - "tag": "example", - "text": "convertCell('bool', 't')\n//=> true" - }, - { - "tag": "example", - "text": "convertCell('int8', '10')\n//=> 10" - }, - { - "tag": "example", - "text": "convertCell('_int4', '{1,2,3,4}')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 549, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "A postgres column type" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 550, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 118, - "character": 24 - } - ] - }, - { - "id": 534, - "name": "convertChangeData", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Takes an array of columns and an object of string values then converts each string value\nto its mapped type.", - "tags": [ - { - "tag": "example", - "text": "convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n//=>{ first_name: 'Paul', age: 33 }\n" - } - ] - }, - "signatures": [ - { - "id": 535, - "name": "convertChangeData", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Takes an array of columns and an object of string values then converts each string value\nto its mapped type.", - "tags": [ - { - "tag": "example", - "text": "convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n//=>{ first_name: 'Paul', age: 33 }\n" - } - ] - }, - "parameters": [ - { - "id": 536, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 522, - "name": "Columns" - } - }, - { - "id": 537, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": {}, - "type": { - "type": "reference", - "id": 530, - "name": "Record" - } - }, - { - "id": 538, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The map of various options that can be applied to the mapper" - }, - "type": { - "type": "reflection", - "declaration": { - "id": 539, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": { - "isExported": true - }, - "children": [ - { - "id": 540, - "name": "skipTypes", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 64, - "character": 22 - } - ], - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [540] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 64, - "character": 10 - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 530, - "name": "Record" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 61, - "character": 30 - } - ] - }, - { - "id": 541, - "name": "convertColumn", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Converts the value of an individual column.", - "returns": "Useless information\n", - "tags": [ - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n//=> 33" - }, - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n//=> \"33\"\n" - } - ] - }, - "signatures": [ - { - "id": 542, - "name": "convertColumn", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Converts the value of an individual column.", - "returns": "Useless information\n", - "tags": [ - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n//=> 33" - }, - { - "tag": "example", - "text": "convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n//=> \"33\"\n" - } - ] - }, - "parameters": [ - { - "id": 543, - "name": "columnName", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The column that you want to convert" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 544, - "name": "columns", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 522, - "name": "Columns" - } - }, - { - "id": 545, - "name": "record", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "The map of string values" - }, - "type": { - "type": "reference", - "id": 530, - "name": "Record" - } - }, - { - "id": 546, - "name": "skipTypes", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "An array of types that should not be converted" - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 88, - "character": 26 - } - ] - }, - { - "id": 551, - "name": "noop", - "kind": 64, - "kindString": "Function", - "flags": { - "isConst": true - }, - "signatures": [ - { - "id": 552, - "name": "noop", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 553, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 162, - "character": 10 - } - ] - }, - { - "id": 563, - "name": "toArray", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Converts a Postgres Array into a native JS array", - "tags": [ - { - "tag": "example", - "text": "toArray('{}', 'int4')\n//=> []" - }, - { - "tag": "example", - "text": "toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n//=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']" - }, - { - "tag": "example", - "text": "toArray([1,2,3,4], 'int4')\n//=> [1,2,3,4]\n" - } - ] - }, - "signatures": [ - { - "id": 564, - "name": "toArray", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Converts a Postgres Array into a native JS array", - "tags": [ - { - "tag": "example", - "text": "toArray('{}', 'int4')\n//=> []" - }, - { - "tag": "example", - "text": "toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n//=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']" - }, - { - "tag": "example", - "text": "toArray([1,2,3,4], 'int4')\n//=> [1,2,3,4]\n" - } - ] - }, - "parameters": [ - { - "id": 565, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - }, - { - "id": 566, - "name": "type", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 206, - "character": 20 - } - ] - }, - { - "id": 554, - "name": "toBoolean", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "signatures": [ - { - "id": 555, - "name": "toBoolean", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 556, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 165, - "character": 22 - } - ] - }, - { - "id": 560, - "name": "toJson", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "signatures": [ - { - "id": 561, - "name": "toJson", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 562, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 184, - "character": 19 - } - ] - }, - { - "id": 557, - "name": "toNumber", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "signatures": [ - { - "id": 558, - "name": "toNumber", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "parameters": [ - { - "id": 559, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 175, - "character": 21 - } - ] - }, - { - "id": 567, - "name": "toTimestampString", - "kind": 64, - "kindString": "Function", - "flags": { - "isExported": true, - "isConst": true - }, - "comment": { - "shortText": "Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\nSee https://github.com/supabase/supabase/issues/18", - "tags": [ - { - "tag": "example", - "text": "toTimestampString('2019-09-10 00:00:00')\n//=> '2019-09-10T00:00:00'\n" - } - ] - }, - "signatures": [ - { - "id": 568, - "name": "toTimestampString", - "kind": 4096, - "kindString": "Call signature", - "flags": { - "isExported": true - }, - "comment": { - "shortText": "Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\nSee https://github.com/supabase/supabase/issues/18", - "tags": [ - { - "tag": "example", - "text": "toTimestampString('2019-09-10 00:00:00')\n//=> '2019-09-10T00:00:00'\n" - } - ] - }, - "parameters": [ - { - "id": 569, - "name": "value", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isExported": true - }, - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "type": { - "type": "reference", - "id": 529, - "name": "RecordValue" - } - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 241, - "character": 30 - } - ] - } - ], - "groups": [ - { - "title": "Enumerations", - "kind": 4, - "children": [497] - }, - { - "title": "Type aliases", - "kind": 4194304, - "children": [528, 522, 530, 529] - }, - { - "title": "Functions", - "kind": 64, - "children": [547, 534, 541, 551, 563, 554, 560, 557, 567] - } - ], - "sources": [ - { - "fileName": "lib/transformers.ts", - "line": 1, - "character": 0 - } - ] - }, - { - "id": 1, - "name": "\"lib/version\"", - "kind": 1, - "kindString": "Module", - "flags": { - "isExported": true - }, - "originalName": "/Users/inian/dev/supabase/realtime-js/src/lib/version.ts", - "children": [ - { - "id": 2, - "name": "version", - "kind": 32, - "kindString": "Variable", - "flags": { - "isExported": true, - "isConst": true - }, - "sources": [ - { - "fileName": "lib/version.ts", - "line": 1, - "character": 20 - } - ], - "type": { - "type": "stringLiteral", - "value": "0.0.0-automated" - }, - "defaultValue": "\"0.0.0-automated\"" - } - ], - "groups": [ - { - "title": "Variables", - "kind": 32, - "children": [2] - } - ], - "sources": [ - { - "fileName": "lib/version.ts", - "line": 1, - "character": 0 - } - ] - } - ], - "groups": [ - { - "title": "Modules", - "kind": 1, - "children": [386, 145, 289, 570, 3, 34, 114, 100, 496, 1] - } - ] - }, - { - "id": 0, - "name": "@supabase/storage-js", - "kind": 1, - "flags": {}, - "originalName": "", - "children": [ - { - "id": 1, - "name": "index", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 375, - "name": "StorageApiError", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 376, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 17, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L17" - } - ], - "signatures": [ - { - "id": 377, - "name": "new StorageApiError", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 378, - "name": "message", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 379, - "name": "status", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "id": 375, - "name": "StorageApiError" - }, - "overwrites": { - "type": "reference", - "id": 372, - "name": "StorageError.constructor" - } - } - ], - "overwrites": { - "type": "reference", - "id": 371, - "name": "StorageError.constructor" - } - }, - { - "id": 387, - "name": "__isStorageError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 2, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L2" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "true", - "inheritedFrom": { - "type": "reference", - "id": 374, - "name": "StorageError.__isStorageError" - } - }, - { - "id": 380, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 15, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L15" - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 381, - "name": "toJSON", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 23, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L23" - } - ], - "signatures": [ - { - "id": 382, - "name": "toJSON", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 383, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 385, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 26, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L26" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "..." - }, - { - "id": 384, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 25, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L25" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "defaultValue": "..." - }, - { - "id": 386, - "name": "status", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 27, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L27" - } - ], - "type": { - "type": "intrinsic", - "name": "number" - }, - "defaultValue": "..." - } - ], - "groups": [ - { - "title": "Properties", - "children": [385, 384, 386] - } - ], - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 24, - "character": 11, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L24" - } - ] - } - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "children": [376] - }, - { - "title": "Properties", - "children": [387, 380] - }, - { - "title": "Methods", - "children": [381] - } - ], - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 14, - "character": 13, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L14" - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 370, - "name": "StorageError" - } - ] - }, - { - "id": 245, - "name": "StorageClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 246, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/StorageClient.ts", - "line": 6, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/StorageClient.ts#L6" - } - ], - "signatures": [ - { - "id": 247, - "name": "new StorageClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 248, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 249, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 250, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/StorageClient.ts", - "line": 6, - "character": 36, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/StorageClient.ts#L6" - } - ], - "indexSignature": { - "id": 251, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 252, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - }, - "defaultValue": "{}" - }, - { - "id": 253, - "name": "fetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 254, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "node_modules/typescript/lib/lib.dom.d.ts", - "line": 17731, - "character": 17 - } - ], - "signatures": [ - { - "id": 255, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 256, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "RequestInfo", - "qualifiedName": "RequestInfo", - "package": "typescript" - } - }, - { - "id": 257, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "name": "RequestInit", - "qualifiedName": "RequestInit", - "package": "typescript" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Response", - "qualifiedName": "Response", - "package": "typescript" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 245, - "name": "StorageClient" - }, - "overwrites": { - "type": "reference", - "id": 5, - "name": "default.constructor" - } - } - ], - "overwrites": { - "type": "reference", - "id": 4, - "name": "default.constructor" - } - }, - { - "id": 266, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 10, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L10" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 267, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "node_modules/typescript/lib/lib.dom.d.ts", - "line": 17731, - "character": 17 - } - ], - "signatures": [ - { - "id": 268, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 269, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "RequestInfo", - "qualifiedName": "RequestInfo", - "package": "typescript" - } - }, - { - "id": 270, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "name": "RequestInit", - "qualifiedName": "RequestInit", - "package": "typescript" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Response", - "qualifiedName": "Response", - "package": "typescript" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - }, - "inheritedFrom": { - "type": "reference", - "id": 21, - "name": "default.fetch" - } - }, - { - "id": 262, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 9, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L9" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 263, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 9, - "character": 21, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L9" - } - ], - "indexSignature": { - "id": 264, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 265, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - }, - "inheritedFrom": { - "type": "reference", - "id": 17, - "name": "default.headers" - } - }, - { - "id": 261, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 8, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L8" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "id": 16, - "name": "default.url" - } - }, - { - "id": 288, - "name": "createBucket", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 78, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L78" - } - ], - "signatures": [ - { - "id": 289, - "name": "createBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Creates a new Storage bucket" - } - ], - "blockTags": [ - { - "tag": "@returns", - "content": [ - { - "kind": "text", - "text": "newly created bucket id" - } - ] - } - ] - }, - "parameters": [ - { - "id": 290, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A unique identifier for the bucket you are creating." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 291, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 292, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 293, - "name": "public", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 80, - "character": 15, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L80" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [293] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 80, - "character": 13, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L80" - } - ] - } - }, - "defaultValue": "..." - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 294, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 295, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 83, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L83" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 336, - "name": "Bucket" - }, - { - "type": "literal", - "value": "name" - } - ], - "name": "Pick", - "qualifiedName": "Pick", - "package": "typescript" - } - }, - { - "id": 296, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 84, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L84" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [295, 296] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 82, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L82" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 297, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 298, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 87, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L87" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 299, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 88, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L88" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [298, 299] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 86, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L86" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - }, - "inheritedFrom": { - "type": "reference", - "id": 44, - "name": "default.createBucket" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 43, - "name": "default.createBucket" - } - }, - { - "id": 325, - "name": "deleteBucket", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 183, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L183" - } - ], - "signatures": [ - { - "id": 326, - "name": "deleteBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\nYou must first " - }, - { - "kind": "code", - "text": "`empty()`" - }, - { - "kind": "text", - "text": " the bucket." - } - ] - }, - "parameters": [ - { - "id": 327, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The unique identifier of the bucket you would like to delete." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 328, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 329, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 187, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L187" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 330, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 331, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 187, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L187" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [331] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 187, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L187" - } - ] - } - } - }, - { - "id": 332, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 188, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L188" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [329, 332] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 186, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L186" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 333, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 334, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 191, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L191" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 335, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 192, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L192" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [334, 335] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 190, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L190" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - }, - "inheritedFrom": { - "type": "reference", - "id": 81, - "name": "default.deleteBucket" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 80, - "name": "default.deleteBucket" - } - }, - { - "id": 314, - "name": "emptyBucket", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 148, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L148" - } - ], - "signatures": [ - { - "id": 315, - "name": "emptyBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Removes all objects inside a single bucket." - } - ] - }, - "parameters": [ - { - "id": 316, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The unique identifier of the bucket you would like to empty." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 317, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 318, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 152, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L152" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 319, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 320, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 152, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L152" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [320] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 152, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L152" - } - ] - } - } - }, - { - "id": 321, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 153, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L153" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [318, 321] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 151, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L151" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 322, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 323, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 156, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L156" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 324, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 157, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L157" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [323, 324] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 155, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L155" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - }, - "inheritedFrom": { - "type": "reference", - "id": 70, - "name": "default.emptyBucket" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 69, - "name": "default.emptyBucket" - } - }, - { - "id": 258, - "name": "from", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/StorageClient.ts", - "line": 15, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/StorageClient.ts#L15" - } - ], - "signatures": [ - { - "id": 259, - "name": "from", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Perform file operation in a bucket." - } - ] - }, - "parameters": [ - { - "id": 260, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The bucket id to operate on." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 92, - "name": "default" - } - } - ] - }, - { - "id": 279, - "name": "getBucket", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 48, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L48" - } - ], - "signatures": [ - { - "id": 280, - "name": "getBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Retrieves the details of an existing Storage bucket." - } - ] - }, - "parameters": [ - { - "id": 281, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The unique identifier of the bucket you would like to retrieve." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 282, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 283, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 52, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L52" - } - ], - "type": { - "type": "reference", - "id": 336, - "name": "Bucket" - } - }, - { - "id": 284, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 53, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L53" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [283, 284] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 51, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L51" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 285, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 286, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 56, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L56" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 287, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 57, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L57" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [286, 287] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 55, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L55" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - }, - "inheritedFrom": { - "type": "reference", - "id": 35, - "name": "default.getBucket" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 34, - "name": "default.getBucket" - } - }, - { - "id": 271, - "name": "listBuckets", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 21, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L21" - } - ], - "signatures": [ - { - "id": 272, - "name": "listBuckets", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Retrieves the details of all Storage buckets within an existing project." - } - ] - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 273, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 274, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 23, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L23" - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 336, - "name": "Bucket" - } - } - }, - { - "id": 275, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 24, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L24" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [274, 275] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 22, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L22" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 276, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 277, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 27, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L27" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 278, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 28, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L28" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [277, 278] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 26, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L26" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - }, - "inheritedFrom": { - "type": "reference", - "id": 27, - "name": "default.listBuckets" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 26, - "name": "default.listBuckets" - } - }, - { - "id": 300, - "name": "updateBucket", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 113, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L113" - } - ], - "signatures": [ - { - "id": 301, - "name": "updateBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Updates a new Storage bucket" - } - ] - }, - "parameters": [ - { - "id": 302, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A unique identifier for the bucket you are updating." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 303, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 304, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 305, - "name": "public", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 115, - "character": 15, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L115" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [305] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 115, - "character": 13, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L115" - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 306, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 307, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 118, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L118" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 308, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 309, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 118, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L118" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [309] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 118, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L118" - } - ] - } - } - }, - { - "id": 310, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 119, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L119" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [307, 310] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 117, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L117" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 311, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 312, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 122, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L122" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 313, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 123, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L123" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [312, 313] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 121, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L121" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - }, - "inheritedFrom": { - "type": "reference", - "id": 56, - "name": "default.updateBucket" - } - } - ], - "inheritedFrom": { - "type": "reference", - "id": 55, - "name": "default.updateBucket" - } - } - ], - "groups": [ - { - "title": "Constructors", - "children": [246] - }, - { - "title": "Properties", - "children": [266, 262, 261] - }, - { - "title": "Methods", - "children": [288, 325, 314, 258, 279, 271, 300] - } - ], - "sources": [ - { - "fileName": "src/StorageClient.ts", - "line": 5, - "character": 13, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/StorageClient.ts#L5" - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 3, - "name": "default" - } - ] - }, - { - "id": 370, - "name": "StorageError", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 371, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 4, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L4" - } - ], - "signatures": [ - { - "id": 372, - "name": "new StorageError", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 373, - "name": "message", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - }, - "overwrites": { - "type": "reference", - "name": "Error.constructor" - } - } - ], - "overwrites": { - "type": "reference", - "name": "Error.constructor" - } - }, - { - "id": 374, - "name": "__isStorageError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 2, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L2" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "true" - } - ], - "groups": [ - { - "title": "Constructors", - "children": [371] - }, - { - "title": "Properties", - "children": [374] - } - ], - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 1, - "character": 13, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L1" - } - ], - "extendedTypes": [ - { - "type": "reference", - "name": "Error", - "qualifiedName": "Error", - "package": "typescript" - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 375, - "name": "StorageApiError" - }, - { - "type": "reference", - "id": 388, - "name": "StorageUnknownError" - } - ] - }, - { - "id": 388, - "name": "StorageUnknownError", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 389, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 35, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L35" - } - ], - "signatures": [ - { - "id": 390, - "name": "new StorageUnknownError", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 391, - "name": "message", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 392, - "name": "originalError", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "reference", - "id": 388, - "name": "StorageUnknownError" - }, - "overwrites": { - "type": "reference", - "id": 372, - "name": "StorageError.constructor" - } - } - ], - "overwrites": { - "type": "reference", - "id": 371, - "name": "StorageError.constructor" - } - }, - { - "id": 394, - "name": "__isStorageError", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 2, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L2" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "defaultValue": "true", - "inheritedFrom": { - "type": "reference", - "id": 374, - "name": "StorageError.__isStorageError" - } - }, - { - "id": 393, - "name": "originalError", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 33, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L33" - } - ], - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "groups": [ - { - "title": "Constructors", - "children": [389] - }, - { - "title": "Properties", - "children": [394, 393] - } - ], - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 32, - "character": 13, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L32" - } - ], - "extendedTypes": [ - { - "type": "reference", - "id": 370, - "name": "StorageError" - } - ] - }, - { - "id": 336, - "name": "Bucket", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 340, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 5, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L5" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 337, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 2, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L2" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 338, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 3, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L3" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 339, - "name": "owner", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 4, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L4" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 342, - "name": "public", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 7, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L7" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - }, - { - "id": 341, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 6, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L6" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [340, 337, 338, 339, 342, 341] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 1, - "character": 17, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L1" - } - ] - }, - { - "id": 343, - "name": "FileObject", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 345, - "name": "bucket_id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 12, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L12" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 352, - "name": "buckets", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 19, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L19" - } - ], - "type": { - "type": "reference", - "id": 336, - "name": "Bucket" - } - }, - { - "id": 349, - "name": "created_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 16, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L16" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 347, - "name": "id", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 14, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L14" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 350, - "name": "last_accessed_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 17, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L17" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 351, - "name": "metadata", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 18, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L18" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "any" - } - ], - "name": "Record", - "qualifiedName": "Record", - "package": "typescript" - } - }, - { - "id": 344, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 11, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L11" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 346, - "name": "owner", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 13, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L13" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 348, - "name": "updated_at", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 15, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L15" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [345, 352, 349, 347, 350, 351, 344, 346, 348] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 10, - "character": 17, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L10" - } - ] - }, - { - "id": 356, - "name": "FileOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 357, - "name": "cacheControl", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 28, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L28" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 358, - "name": "contentType", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 29, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L29" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 359, - "name": "upsert", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 30, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L30" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [357, 358, 359] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 27, - "character": 17, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L27" - } - ] - }, - { - "id": 365, - "name": "Metadata", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 366, - "name": "name", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 49, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L49" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [366] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 48, - "character": 17, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L48" - } - ] - }, - { - "id": 360, - "name": "SearchOptions", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 361, - "name": "limit", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The number of files you want to be returned." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 35, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L35" - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 362, - "name": "offset", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The starting position." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 38, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L38" - } - ], - "type": { - "type": "intrinsic", - "name": "number" - } - }, - { - "id": 364, - "name": "search", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The search string to filter files by." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 44, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L44" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 363, - "name": "sortBy", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The column to sort by. Can be any column inside a FileObject." - } - ] - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 41, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L41" - } - ], - "type": { - "type": "reference", - "id": 353, - "name": "SortBy" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [361, 362, 364, 363] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 33, - "character": 17, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L33" - } - ] - }, - { - "id": 353, - "name": "SortBy", - "kind": 256, - "kindString": "Interface", - "flags": {}, - "children": [ - { - "id": 354, - "name": "column", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 23, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L23" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 355, - "name": "order", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 24, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L24" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [354, 355] - } - ], - "sources": [ - { - "fileName": "src/lib/types.ts", - "line": 22, - "character": 17, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/types.ts#L22" - } - ] - }, - { - "id": 367, - "name": "isStorageError", - "kind": 64, - "kindString": "Function", - "flags": {}, - "sources": [ - { - "fileName": "src/lib/errors.ts", - "line": 10, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/lib/errors.ts#L10" - } - ], - "signatures": [ - { - "id": 368, - "name": "isStorageError", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 369, - "name": "error", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "unknown" - } - } - ], - "type": { - "type": "predicate", - "name": "error", - "asserts": false, - "targetType": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "children": [375, 245, 370, 388] - }, - { - "title": "Interfaces", - "children": [336, 343, 356, 365, 360, 353] - }, - { - "title": "Functions", - "children": [367] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/index.ts#L1" - } - ] - }, - { - "id": 2, - "name": "packages/StorageBucketApi", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 3, - "name": "default", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 4, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 12, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L12" - } - ], - "signatures": [ - { - "id": 5, - "name": "new default", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 6, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 7, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 8, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 12, - "character": 36, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L12" - } - ], - "indexSignature": { - "id": 9, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 10, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - }, - "defaultValue": "{}" - }, - { - "id": 11, - "name": "fetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 12, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "node_modules/typescript/lib/lib.dom.d.ts", - "line": 17731, - "character": 17 - } - ], - "signatures": [ - { - "id": 13, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 14, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "RequestInfo", - "qualifiedName": "RequestInfo", - "package": "typescript" - } - }, - { - "id": 15, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "name": "RequestInit", - "qualifiedName": "RequestInit", - "package": "typescript" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Response", - "qualifiedName": "Response", - "package": "typescript" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 3, - "name": "default" - } - } - ] - }, - { - "id": 21, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 10, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L10" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 22, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "node_modules/typescript/lib/lib.dom.d.ts", - "line": 17731, - "character": 17 - } - ], - "signatures": [ - { - "id": 23, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 24, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "RequestInfo", - "qualifiedName": "RequestInfo", - "package": "typescript" - } - }, - { - "id": 25, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "name": "RequestInit", - "qualifiedName": "RequestInit", - "package": "typescript" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Response", - "qualifiedName": "Response", - "package": "typescript" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - } - }, - { - "id": 17, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 9, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L9" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 18, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 9, - "character": 21, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L9" - } - ], - "indexSignature": { - "id": 19, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 20, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 16, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 8, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L8" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 43, - "name": "createBucket", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 78, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L78" - } - ], - "signatures": [ - { - "id": 44, - "name": "createBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Creates a new Storage bucket" - } - ], - "blockTags": [ - { - "tag": "@returns", - "content": [ - { - "kind": "text", - "text": "newly created bucket id" - } - ] - } - ] - }, - "parameters": [ - { - "id": 45, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A unique identifier for the bucket you are creating." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 46, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 47, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 48, - "name": "public", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 80, - "character": 15, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L80" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [48] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 80, - "character": 13, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L80" - } - ] - } - }, - "defaultValue": "..." - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 49, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 50, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 83, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L83" - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "id": 336, - "name": "Bucket" - }, - { - "type": "literal", - "value": "name" - } - ], - "name": "Pick", - "qualifiedName": "Pick", - "package": "typescript" - } - }, - { - "id": 51, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 84, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L84" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [50, 51] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 82, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L82" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 52, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 53, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 87, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L87" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 54, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 88, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L88" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [53, 54] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 86, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L86" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 80, - "name": "deleteBucket", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 183, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L183" - } - ], - "signatures": [ - { - "id": 81, - "name": "deleteBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\nYou must first " - }, - { - "kind": "code", - "text": "`empty()`" - }, - { - "kind": "text", - "text": " the bucket." - } - ] - }, - "parameters": [ - { - "id": 82, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The unique identifier of the bucket you would like to delete." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 83, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 84, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 187, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L187" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 85, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 86, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 187, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L187" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [86] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 187, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L187" - } - ] - } - } - }, - { - "id": 87, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 188, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L188" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [84, 87] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 186, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L186" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 88, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 89, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 191, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L191" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 90, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 192, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L192" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [89, 90] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 190, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L190" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 69, - "name": "emptyBucket", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 148, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L148" - } - ], - "signatures": [ - { - "id": 70, - "name": "emptyBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Removes all objects inside a single bucket." - } - ] - }, - "parameters": [ - { - "id": 71, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The unique identifier of the bucket you would like to empty." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 72, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 73, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 152, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L152" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 74, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 75, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 152, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L152" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [75] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 152, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L152" - } - ] - } - } - }, - { - "id": 76, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 153, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L153" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [73, 76] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 151, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L151" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 77, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 78, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 156, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L156" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 79, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 157, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L157" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [78, 79] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 155, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L155" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 34, - "name": "getBucket", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 48, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L48" - } - ], - "signatures": [ - { - "id": 35, - "name": "getBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Retrieves the details of an existing Storage bucket." - } - ] - }, - "parameters": [ - { - "id": 36, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The unique identifier of the bucket you would like to retrieve." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 37, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 38, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 52, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L52" - } - ], - "type": { - "type": "reference", - "id": 336, - "name": "Bucket" - } - }, - { - "id": 39, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 53, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L53" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [38, 39] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 51, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L51" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 40, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 41, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 56, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L56" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 42, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 57, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L57" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [41, 42] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 55, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L55" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 26, - "name": "listBuckets", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 21, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L21" - } - ], - "signatures": [ - { - "id": 27, - "name": "listBuckets", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Retrieves the details of all Storage buckets within an existing project." - } - ] - }, - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 28, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 29, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 23, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L23" - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 336, - "name": "Bucket" - } - } - }, - { - "id": 30, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 24, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L24" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [29, 30] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 22, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L22" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 31, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 32, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 27, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L27" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 33, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 28, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L28" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [32, 33] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 26, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L26" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 55, - "name": "updateBucket", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 113, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L113" - } - ], - "signatures": [ - { - "id": 56, - "name": "updateBucket", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Updates a new Storage bucket" - } - ] - }, - "parameters": [ - { - "id": 57, - "name": "id", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "A unique identifier for the bucket you are updating." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 58, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 59, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 60, - "name": "public", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 115, - "character": 15, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L115" - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [60] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 115, - "character": 13, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L115" - } - ] - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 61, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 62, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 118, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L118" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 63, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 64, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 118, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L118" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [64] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 118, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L118" - } - ] - } - } - }, - { - "id": 65, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 119, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L119" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [62, 65] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 117, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L117" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 66, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 67, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 122, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L122" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 68, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 123, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L123" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [67, 68] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 121, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L121" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "children": [4] - }, - { - "title": "Properties", - "children": [21, 17, 16] - }, - { - "title": "Methods", - "children": [43, 80, 69, 34, 26, 55] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 7, - "character": 21, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L7" - } - ], - "extendedBy": [ - { - "type": "reference", - "id": 245, - "name": "StorageClient" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "children": [3] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageBucketApi.ts", - "line": 1, - "character": 0, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageBucketApi.ts#L1" - } - ] - }, - { - "id": 91, - "name": "packages/StorageFileApi", - "kind": 2, - "kindString": "Module", - "flags": {}, - "children": [ - { - "id": 92, - "name": "default", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 93, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 27, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L27" - } - ], - "signatures": [ - { - "id": 94, - "name": "new default", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 95, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 96, - "name": "headers", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 97, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 29, - "character": 13, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L29" - } - ], - "indexSignature": { - "id": 98, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 99, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - }, - "defaultValue": "{}" - }, - { - "id": 100, - "name": "bucketId", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 101, - "name": "fetch", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reflection", - "declaration": { - "id": 102, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "node_modules/typescript/lib/lib.dom.d.ts", - "line": 17731, - "character": 17 - } - ], - "signatures": [ - { - "id": 103, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 104, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "RequestInfo", - "qualifiedName": "RequestInfo", - "package": "typescript" - } - }, - { - "id": 105, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "name": "RequestInit", - "qualifiedName": "RequestInit", - "package": "typescript" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Response", - "qualifiedName": "Response", - "package": "typescript" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - } - } - ], - "type": { - "type": "reference", - "id": 92, - "name": "default" - } - } - ] - }, - { - "id": 111, - "name": "bucketId", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true, - "isOptional": true - }, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 24, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L24" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 112, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 25, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L25" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 113, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "node_modules/typescript/lib/lib.dom.d.ts", - "line": 17731, - "character": 17 - } - ], - "signatures": [ - { - "id": 114, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 115, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "name": "RequestInfo", - "qualifiedName": "RequestInfo", - "package": "typescript" - } - }, - { - "id": 116, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "name": "RequestInit", - "qualifiedName": "RequestInit", - "package": "typescript" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Response", - "qualifiedName": "Response", - "package": "typescript" - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - } - }, - { - "id": 107, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 23, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L23" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 108, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 23, - "character": 21, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L23" - } - ], - "indexSignature": { - "id": 109, - "name": "__index", - "kind": 8192, - "kindString": "Index signature", - "flags": {}, - "parameters": [ - { - "id": 110, - "name": "key", - "kind": 32768, - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - } - } - }, - { - "id": 106, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 22, - "character": 12, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L22" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 169, - "name": "copy", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 238, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L238" - } - ], - "signatures": [ - { - "id": 170, - "name": "copy", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Copies an existing file." - } - ] - }, - "parameters": [ - { - "id": 171, - "name": "fromPath", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The original file path, including the current file name. For example " - }, - { - "kind": "code", - "text": "`folder/image.png`" - }, - { - "kind": "text", - "text": "." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 172, - "name": "toPath", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The new file path, including the new file name. For example " - }, - { - "kind": "code", - "text": "`folder/image-copy.png`" - }, - { - "kind": "text", - "text": "." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 173, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 174, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 243, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L243" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 175, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 176, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 243, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L243" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [176] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 243, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L243" - } - ] - } - } - }, - { - "id": 177, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 244, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L244" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [174, 177] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 242, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L242" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 178, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 179, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 247, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L247" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 180, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 248, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L248" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [179, 180] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 246, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L246" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 181, - "name": "createSignedUrl", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 274, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L274" - } - ], - "signatures": [ - { - "id": 182, - "name": "createSignedUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Create signed URL to download file without requiring permissions. This URL can be valid for a set number of seconds." - } - ] - }, - "parameters": [ - { - "id": 183, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The file path to be downloaded, including the current file name. For example " - }, - { - "kind": "code", - "text": "`folder/image.png`" - }, - { - "kind": "text", - "text": "." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 184, - "name": "expiresIn", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The number of seconds until the signed URL expires. For example, " - }, - { - "kind": "code", - "text": "`60`" - }, - { - "kind": "text", - "text": " for a URL which is valid for one minute." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 185, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 186, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 279, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L279" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 187, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 188, - "name": "signedURL", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 279, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L279" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [188] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 279, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L279" - } - ] - } - } - }, - { - "id": 189, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 280, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L280" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [186, 189] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 278, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L278" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 190, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 191, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 283, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L283" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 192, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 284, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L284" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [191, 192] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 282, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L282" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 193, - "name": "createSignedUrls", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 313, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L313" - } - ], - "signatures": [ - { - "id": 194, - "name": "createSignedUrls", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Create signed URLs to download files without requiring permissions. These URLs can be valid for a set number of seconds." - } - ] - }, - "parameters": [ - { - "id": 195, - "name": "paths", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The file paths to be downloaded, including the current file names. For example " - }, - { - "kind": "code", - "text": "`['folder/image.png', 'folder2/image2.png']`" - }, - { - "kind": "text", - "text": "." - } - ] - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - }, - { - "id": 196, - "name": "expiresIn", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The number of seconds until the signed URLs expire. For example, " - }, - { - "kind": "code", - "text": "`60`" - }, - { - "kind": "text", - "text": " for URLs which are valid for one minute." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "number" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 197, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 198, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 318, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L318" - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reflection", - "declaration": { - "id": 199, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 200, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 318, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L318" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 201, - "name": "path", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 318, - "character": 38, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L318" - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "literal", - "value": null - }, - { - "type": "intrinsic", - "name": "string" - } - ] - } - }, - { - "id": 202, - "name": "signedURL", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 318, - "character": 59, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L318" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [200, 201, 202] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 318, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L318" - } - ] - } - } - } - }, - { - "id": 203, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 319, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L319" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [198, 203] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 317, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L317" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 204, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 205, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 322, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L322" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 206, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 323, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L323" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [205, 206] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 321, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L321" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 207, - "name": "download", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 354, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L354" - } - ], - "signatures": [ - { - "id": 208, - "name": "download", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Downloads a file." - } - ] - }, - "parameters": [ - { - "id": 209, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The file path to be downloaded, including the path and file name. For example " - }, - { - "kind": "code", - "text": "`folder/image.png`" - }, - { - "kind": "text", - "text": "." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 210, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 211, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 358, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L358" - } - ], - "type": { - "type": "reference", - "name": "Blob", - "qualifiedName": "Blob", - "package": "typescript" - } - }, - { - "id": 212, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 359, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L359" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [211, 212] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 357, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L357" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 213, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 214, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 362, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L362" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 215, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 363, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L363" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [214, 215] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 361, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L361" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 216, - "name": "getPublicUrl", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 388, - "character": 2, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L388" - } - ], - "signatures": [ - { - "id": 217, - "name": "getPublicUrl", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Retrieve URLs for assets in public buckets and encapsulates it in a return object" - } - ] - }, - "parameters": [ - { - "id": 218, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The file path to be downloaded, including the path and file name. For example " - }, - { - "kind": "code", - "text": "`folder/image.png`" - }, - { - "kind": "text", - "text": "." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ] - }, - { - "id": 228, - "name": "list", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 496, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L496" - } - ], - "signatures": [ - { - "id": 229, - "name": "list", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Lists all the files within a bucket." - } - ] - }, - "parameters": [ - { - "id": 230, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The folder path." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 231, - "name": "options", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Search options, including " - }, - { - "kind": "code", - "text": "`limit`" - }, - { - "kind": "text", - "text": ", " - }, - { - "kind": "code", - "text": "`offset`" - }, - { - "kind": "text", - "text": ", " - }, - { - "kind": "code", - "text": "`sortBy`" - }, - { - "kind": "text", - "text": ", and " - }, - { - "kind": "code", - "text": "`search`" - }, - { - "kind": "text", - "text": "." - } - ] - }, - "type": { - "type": "reference", - "id": 360, - "name": "SearchOptions" - } - }, - { - "id": 232, - "name": "parameters", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Fetch parameters, currently only supports " - }, - { - "kind": "code", - "text": "`signal`" - }, - { - "kind": "text", - "text": ", which is an AbortController's signal" - } - ] - }, - "type": { - "type": "reference", - "name": "FetchParameters" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 233, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 234, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 502, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L502" - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 343, - "name": "FileObject" - } - } - }, - { - "id": 235, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 503, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L503" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [234, 235] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 501, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L501" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 236, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 237, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 506, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L506" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 238, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 507, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L507" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [237, 238] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 505, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L505" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 157, - "name": "move", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 202, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L202" - } - ], - "signatures": [ - { - "id": 158, - "name": "move", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Moves an existing file." - } - ] - }, - "parameters": [ - { - "id": 159, - "name": "fromPath", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The original file path, including the current file name. For example " - }, - { - "kind": "code", - "text": "`folder/image.png`" - }, - { - "kind": "text", - "text": "." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 160, - "name": "toPath", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The new file path, including the new file name. For example " - }, - { - "kind": "code", - "text": "`folder/image-new.png`" - }, - { - "kind": "text", - "text": "." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 161, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 162, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 207, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L207" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 163, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 164, - "name": "message", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 207, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L207" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [164] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 207, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L207" - } - ] - } - } - }, - { - "id": 165, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 208, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L208" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [162, 165] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 206, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L206" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 166, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 167, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 211, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L211" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 168, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 212, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L212" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [167, 168] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 210, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L210" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 219, - "name": "remove", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 398, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L398" - } - ], - "signatures": [ - { - "id": 220, - "name": "remove", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Deletes files within the same bucket" - } - ] - }, - "parameters": [ - { - "id": 221, - "name": "paths", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "An array of files to be deleted, including the path and file name. For example [" - }, - { - "kind": "code", - "text": "`folder/image.png`" - }, - { - "kind": "text", - "text": "]." - } - ] - }, - "type": { - "type": "array", - "elementType": { - "type": "intrinsic", - "name": "string" - } - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 222, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 223, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 402, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L402" - } - ], - "type": { - "type": "array", - "elementType": { - "type": "reference", - "id": 343, - "name": "FileObject" - } - } - }, - { - "id": 224, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 403, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L403" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [223, 224] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 401, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L401" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 225, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 226, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 406, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L406" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 227, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 407, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L407" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [226, 227] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 405, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L405" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 144, - "name": "update", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 169, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L169" - } - ], - "signatures": [ - { - "id": 145, - "name": "update", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Replaces an existing file at the specified path with a new one." - } - ] - }, - "parameters": [ - { - "id": 146, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The relative file path. Should be of the format " - }, - { - "kind": "code", - "text": "`folder/subfolder/filename.png`" - }, - { - "kind": "text", - "text": ". The bucket must already exist before attempting to upload." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 147, - "name": "fileBody", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The body of the file to be stored in the bucket." - } - ] - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "name": "ArrayBuffer", - "qualifiedName": "ArrayBuffer", - "package": "typescript" - }, - { - "type": "reference", - "name": "ArrayBufferView", - "qualifiedName": "ArrayBufferView", - "package": "typescript" - }, - { - "type": "reference", - "name": "Blob", - "qualifiedName": "Blob", - "package": "typescript" - }, - { - "type": "reference", - "name": "Buffer", - "qualifiedName": "Buffer", - "package": "@types/node" - }, - { - "type": "reference", - "name": "File", - "qualifiedName": "File", - "package": "typescript" - }, - { - "type": "reference", - "name": "FormData", - "qualifiedName": "FormData", - "package": "typescript" - }, - { - "type": "reference", - "name": "ReadableStream", - "qualifiedName": "NodeJS.ReadableStream", - "package": "@types/node" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Uint8Array", - "qualifiedName": "Uint8Array", - "package": "typescript" - } - ], - "name": "ReadableStream", - "qualifiedName": "ReadableStream", - "package": "typescript" - }, - { - "type": "reference", - "name": "URLSearchParams", - "qualifiedName": "URLSearchParams", - "package": "typescript" - } - ] - } - }, - { - "id": 148, - "name": "fileOptions", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "HTTP headers.\n" - }, - { - "kind": "code", - "text": "`cacheControl`" - }, - { - "kind": "text", - "text": ": string, the " - }, - { - "kind": "code", - "text": "`Cache-Control: max-age=`" - }, - { - "kind": "text", - "text": " seconds value.\n" - }, - { - "kind": "code", - "text": "`contentType`" - }, - { - "kind": "text", - "text": ": string, the " - }, - { - "kind": "code", - "text": "`Content-Type`" - }, - { - "kind": "text", - "text": " header value. Should be specified if using a " - }, - { - "kind": "code", - "text": "`fileBody`" - }, - { - "kind": "text", - "text": " that is neither " - }, - { - "kind": "code", - "text": "`Blob`" - }, - { - "kind": "text", - "text": " nor " - }, - { - "kind": "code", - "text": "`File`" - }, - { - "kind": "text", - "text": " nor " - }, - { - "kind": "code", - "text": "`FormData`" - }, - { - "kind": "text", - "text": ", otherwise will default to " - }, - { - "kind": "code", - "text": "`text/plain;charset=UTF-8`" - }, - { - "kind": "text", - "text": ".\n" - }, - { - "kind": "code", - "text": "`upsert`" - }, - { - "kind": "text", - "text": ": boolean, whether to perform an upsert." - } - ] - }, - "type": { - "type": "reference", - "id": 356, - "name": "FileOptions" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 149, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 150, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 185, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L185" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 151, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 152, - "name": "path", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 185, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L185" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [152] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 185, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L185" - } - ] - } - } - }, - { - "id": 153, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 186, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L186" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [150, 153] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 184, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L184" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 154, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 155, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 189, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L189" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 156, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 190, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L190" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [155, 156] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 188, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L188" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - }, - { - "id": 131, - "name": "upload", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 132, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L132" - } - ], - "signatures": [ - { - "id": 132, - "name": "upload", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "Uploads a file to an existing bucket." - } - ] - }, - "parameters": [ - { - "id": 133, - "name": "path", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The relative file path. Should be of the format " - }, - { - "kind": "code", - "text": "`folder/subfolder/filename.png`" - }, - { - "kind": "text", - "text": ". The bucket must already exist before attempting to upload." - } - ] - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 134, - "name": "fileBody", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "summary": [ - { - "kind": "text", - "text": "The body of the file to be stored in the bucket." - } - ] - }, - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "reference", - "name": "ArrayBuffer", - "qualifiedName": "ArrayBuffer", - "package": "typescript" - }, - { - "type": "reference", - "name": "ArrayBufferView", - "qualifiedName": "ArrayBufferView", - "package": "typescript" - }, - { - "type": "reference", - "name": "Blob", - "qualifiedName": "Blob", - "package": "typescript" - }, - { - "type": "reference", - "name": "Buffer", - "qualifiedName": "Buffer", - "package": "@types/node" - }, - { - "type": "reference", - "name": "File", - "qualifiedName": "File", - "package": "typescript" - }, - { - "type": "reference", - "name": "FormData", - "qualifiedName": "FormData", - "package": "typescript" - }, - { - "type": "reference", - "name": "ReadableStream", - "qualifiedName": "NodeJS.ReadableStream", - "package": "@types/node" - }, - { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "name": "Uint8Array", - "qualifiedName": "Uint8Array", - "package": "typescript" - } - ], - "name": "ReadableStream", - "qualifiedName": "ReadableStream", - "package": "typescript" - }, - { - "type": "reference", - "name": "URLSearchParams", - "qualifiedName": "URLSearchParams", - "package": "typescript" - } - ] - } - }, - { - "id": 135, - "name": "fileOptions", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "summary": [ - { - "kind": "text", - "text": "HTTP headers.\n" - }, - { - "kind": "code", - "text": "`cacheControl`" - }, - { - "kind": "text", - "text": ": string, the " - }, - { - "kind": "code", - "text": "`Cache-Control: max-age=`" - }, - { - "kind": "text", - "text": " seconds value.\n" - }, - { - "kind": "code", - "text": "`contentType`" - }, - { - "kind": "text", - "text": ": string, the " - }, - { - "kind": "code", - "text": "`Content-Type`" - }, - { - "kind": "text", - "text": " header value. Should be specified if using a " - }, - { - "kind": "code", - "text": "`fileBody`" - }, - { - "kind": "text", - "text": " that is neither " - }, - { - "kind": "code", - "text": "`Blob`" - }, - { - "kind": "text", - "text": " nor " - }, - { - "kind": "code", - "text": "`File`" - }, - { - "kind": "text", - "text": " nor " - }, - { - "kind": "code", - "text": "`FormData`" - }, - { - "kind": "text", - "text": ", otherwise will default to " - }, - { - "kind": "code", - "text": "`text/plain;charset=UTF-8`" - }, - { - "kind": "text", - "text": ".\n" - }, - { - "kind": "code", - "text": "`upsert`" - }, - { - "kind": "text", - "text": ": boolean, whether to perform an upsert." - } - ] - }, - "type": { - "type": "reference", - "id": 356, - "name": "FileOptions" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 136, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 137, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 148, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L148" - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 138, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 139, - "name": "path", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 148, - "character": 16, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L148" - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [139] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 148, - "character": 14, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L148" - } - ] - } - } - }, - { - "id": 140, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 149, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L149" - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [137, 140] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 147, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L147" - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 141, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 142, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 152, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L152" - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 143, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 153, - "character": 8, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L153" - } - ], - "type": { - "type": "reference", - "id": 370, - "name": "StorageError" - } - } - ], - "groups": [ - { - "title": "Properties", - "children": [142, 143] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 151, - "character": 6, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L151" - } - ] - } - } - ] - } - ], - "name": "Promise", - "qualifiedName": "Promise", - "package": "typescript" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "children": [93] - }, - { - "title": "Properties", - "children": [111, 112, 107, 106] - }, - { - "title": "Methods", - "children": [169, 181, 193, 207, 216, 228, 157, 219, 144, 131] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 21, - "character": 21, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L21" - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "children": [92] - } - ], - "sources": [ - { - "fileName": "src/packages/StorageFileApi.ts", - "line": 1, - "character": 0, - "url": "https://github.com/supabase/storage-js/blob/15aaea2/src/packages/StorageFileApi.ts#L1" - } - ] - } - ], - "groups": [ - { - "title": "Modules", - "children": [1, 2, 91] - } - ] - }, - { - "id": 0, - "name": "@supabase/functions-js", - "kind": 1, - "kindString": "Project", - "flags": {}, - "originalName": "", - "children": [ - { - "id": 1, - "name": "FunctionsClient", - "kind": 128, - "kindString": "Class", - "flags": {}, - "children": [ - { - "id": 2, - "name": "constructor", - "kind": 512, - "kindString": "Constructor", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 9, - "character": 2 - } - ], - "signatures": [ - { - "id": 3, - "name": "new FunctionsClient", - "kind": 16384, - "kindString": "Constructor signature", - "flags": {}, - "parameters": [ - { - "id": 4, - "name": "url", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 5, - "name": "__namedParameters", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reflection", - "declaration": { - "id": 6, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 8, - "name": "customFetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 16, - "character": 6 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 9, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 10, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 11, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 12, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 7, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isOptional": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 15, - "character": 6 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [8, 7] - } - ] - } - }, - "defaultValue": "{}" - } - ], - "type": { - "type": "reference", - "id": 1, - "name": "FunctionsClient" - } - } - ] - }, - { - "id": 15, - "name": "fetch", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 7, - "character": 12 - } - ], - "type": { - "type": "reflection", - "declaration": { - "id": 16, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "signatures": [ - { - "id": 17, - "name": "__type", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "parameters": [ - { - "id": 18, - "name": "input", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "reference", - "qualifiedName": "RequestInfo", - "package": "typescript", - "name": "RequestInfo" - } - }, - { - "id": 19, - "name": "init", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "type": { - "type": "reference", - "qualifiedName": "RequestInit", - "package": "typescript", - "name": "RequestInit" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "reference", - "qualifiedName": "Response", - "package": "typescript", - "name": "Response" - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - } - } - }, - { - "id": 14, - "name": "headers", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 6, - "character": 12 - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "string" - } - ], - "qualifiedName": "Record", - "package": "typescript", - "name": "Record" - } - }, - { - "id": 13, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isProtected": true - }, - "sources": [ - { - "fileName": "src/index.ts", - "line": 5, - "character": 12 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 23, - "name": "invoke", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 40, - "character": 8 - } - ], - "signatures": [ - { - "id": 24, - "name": "invoke", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Invokes a function" - }, - "typeParameter": [ - { - "id": 25, - "name": "T", - "kind": 131072, - "kindString": "Type parameter", - "flags": {}, - "default": { - "type": "intrinsic", - "name": "any" - } - } - ], - "parameters": [ - { - "id": 26, - "name": "functionName", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "comment": { - "shortText": "the name of the function to invoke" - }, - "type": { - "type": "intrinsic", - "name": "string" - } - }, - { - "id": 27, - "name": "invokeOptions", - "kind": 32768, - "kindString": "Parameter", - "flags": { - "isOptional": true - }, - "comment": { - "shortText": "object with the following properties\n`headers`: object representing the headers to send with the request\n`body`: the body of the request\n`responseType`: how the response should be parsed. The default is `json`\n" - }, - "type": { - "type": "reference", - "name": "FunctionInvokeOptions" - } - } - ], - "type": { - "type": "reference", - "typeArguments": [ - { - "type": "union", - "types": [ - { - "type": "reflection", - "declaration": { - "id": 28, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 29, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 15 - } - ], - "type": { - "type": "reference", - "id": 25, - "name": "T" - } - }, - { - "id": 30, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 24 - } - ], - "type": { - "type": "literal", - "value": null - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [29, 30] - } - ] - } - }, - { - "type": "reflection", - "declaration": { - "id": 31, - "name": "__type", - "kind": 65536, - "kindString": "Type literal", - "flags": {}, - "children": [ - { - "id": 32, - "name": "data", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 42 - } - ], - "type": { - "type": "literal", - "value": null - } - }, - { - "id": 33, - "name": "error", - "kind": 1024, - "kindString": "Property", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 43, - "character": 54 - } - ], - "type": { - "type": "reference", - "qualifiedName": "Error", - "package": "typescript", - "name": "Error" - } - } - ], - "groups": [ - { - "title": "Properties", - "kind": 1024, - "children": [32, 33] - } - ] - } - } - ] - } - ], - "qualifiedName": "Promise", - "package": "typescript", - "name": "Promise" - } - } - ] - }, - { - "id": 20, - "name": "setAuth", - "kind": 2048, - "kindString": "Method", - "flags": {}, - "sources": [ - { - "fileName": "src/index.ts", - "line": 28, - "character": 2 - } - ], - "signatures": [ - { - "id": 21, - "name": "setAuth", - "kind": 4096, - "kindString": "Call signature", - "flags": {}, - "comment": { - "shortText": "Updates the authorization header", - "tags": [ - { - "tag": "params", - "text": "token - the new jwt token sent in the authorisation header\n" - } - ] - }, - "parameters": [ - { - "id": 22, - "name": "token", - "kind": 32768, - "kindString": "Parameter", - "flags": {}, - "type": { - "type": "intrinsic", - "name": "string" - } - } - ], - "type": { - "type": "intrinsic", - "name": "void" - } - } - ] - } - ], - "groups": [ - { - "title": "Constructors", - "kind": 512, - "children": [2] - }, - { - "title": "Properties", - "kind": 1024, - "children": [15, 14, 13] - }, - { - "title": "Methods", - "kind": 2048, - "children": [23, 20] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 4, - "character": 13 - } - ] - } - ], - "groups": [ - { - "title": "Classes", - "kind": 128, - "children": [1] - } - ], - "sources": [ - { - "fileName": "src/index.ts", - "line": 1, - "character": 0 - } - ] - } - ] -} diff --git a/web/sponsors.js b/web/sponsors.js deleted file mode 100644 index f24dd077fba..00000000000 --- a/web/sponsors.js +++ /dev/null @@ -1,75 +0,0 @@ -require('dotenv').config() -var axios = require('axios') -var fs = require('fs') - -const query = ` -query Sponsors { - organization(login: "supabase") { - id - sponsors(first: 100) { - nodes { - ... on Organization { - id - createdAt - name : login - } - ... on User { - id - createdAt - login - } - } - totalCount - } - } -} -` - -const fetchAllSponsors = async () => { - const { data } = await axios.post( - `https://api.github.com/graphql`, - { - query, - variables: { - username: 'supabase', - }, - }, - { - headers: { - 'Content-Type': 'application/json', - Authorization: `token ${process.env.GITHUB_SPONSORS_TOKEN}`, - }, - } - ) - return data.data.organization.sponsors -} - -const formatResults = (graphqlResponse) => { - console.log('graph', graphqlResponse) - return graphqlResponse.nodes - .filter((x) => !!x.sponsor) - .map((x) => ({ - tier: x.tier.name, - sponsor: x.sponsor.login, - })) -} - -const writeFile = (data) => { - fs.writeFile( - './src/data/sponsors.json', - JSON.stringify(data, null, 2), - 'utf8', - function (err) { - if (err) throw err - console.log('sponsors.json saved.') - } - ) -} - -const main = async () => { - const sponsorsResponse = await fetchAllSponsors() - // console.log('sponsorsResponse.totalCount', sponsorsResponse.totalCount) - const formatted = formatResults(sponsorsResponse) - writeFile(formatted) -} -main() diff --git a/web/src/components/Collapsable.js b/web/src/components/Collapsable.js deleted file mode 100644 index 467da37cc18..00000000000 --- a/web/src/components/Collapsable.js +++ /dev/null @@ -1,10 +0,0 @@ -import React from 'react' - -export default function Collapsable({ title, children }) { - return ( -
    - {title} -
    {children}
    -
    - ) -} diff --git a/web/src/components/CustomCodeBlock.js b/web/src/components/CustomCodeBlock.js deleted file mode 100644 index 43f60f47b73..00000000000 --- a/web/src/components/CustomCodeBlock.js +++ /dev/null @@ -1,66 +0,0 @@ -import React, { useState } from 'react' -import CodeBlock from '@theme/CodeBlock' - -export default function CustomCodeBlock({ - header, - code, - highlight, - js, - jsHighlight, - response, - language, -}) { - const [showResponse, toggleResponse] = useState(false) - - let wrapperClass = '' - if (header) wrapperClass += ' code-with-header' - if (response) wrapperClass += ' code-with-response' - - return ( - <> -
    - {header &&
    {header}
    } - <> - {code && ( - - {code} - - )} - {js && {js}} - -
    - {response && ( - <> - - - )} - - ) -} - -const styles = { - responseShown: { - textAlign: 'right', - display: 'block', - borderRadius: '0', - color: 'var(--custom-primary)', - borderTop: '1px solid #444', - }, - responseHidden: { - textAlign: 'right', - display: 'block', - borderBottom: 'none', - borderRadius: '0 0 4px 4px', - borderTop: '1px solid #444', - color: '#ccc', - }, -} diff --git a/web/src/components/Extensions.js b/web/src/components/Extensions.js deleted file mode 100644 index 2708e1c0f60..00000000000 --- a/web/src/components/Extensions.js +++ /dev/null @@ -1,67 +0,0 @@ -import React, { useState } from 'react' -import extensions from '@site/src/data/extensions.json' - -export default function Extensions() { - const [filter, setFilter] = useState('') - return ( - <> -
    - setFilter(e.target.value)} - /> -
    -
    - {extensions - .filter((x) => x.name.indexOf(filter) >= 0) - .map((extension) => ( -
    -
    -

    - {extension.name} -

    -

    - {extension.comment.charAt(0).toUpperCase() + extension.comment.slice(1)} -

    -
    -
    - ))} -
    - - ) -} - -const styles = { - inputContainer: { - marginBottom: '15px', - }, - input: { - border: '1px solid var(--ifm-panel-border-color)', - borderRadius: 4, - backgroundColor: 'var(--custom-background-color-diff)', - color: 'var(--ifm-font-color-base)', - margin: 0, - padding: '6px 8px', - width: 300, - }, - column: { - margin: '5px 0px', - padding: '0px 5px', - }, - card: { - border: '1px solid var(--ifm-panel-border-color)', - borderRadius: 5, - padding: 8, - }, - title: { - margin: 0, - fontSize: '0.9rem', - border: '1px solid var(--ifm-panel-border-color)', - }, - description: { - fontSize: '0.8rem', - margin: 0, - }, -} diff --git a/web/src/components/Figure.js b/web/src/components/Figure.js deleted file mode 100644 index 2e90ff02667..00000000000 --- a/web/src/components/Figure.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react' - -export default function Figure({ src, alt, caption }) { - return ( -
    -
    - {alt} -
    {caption}
    -
    -
    - ) -} diff --git a/web/src/components/GithubCard.js b/web/src/components/GithubCard.js deleted file mode 100644 index 3eea2d0cef9..00000000000 --- a/web/src/components/GithubCard.js +++ /dev/null @@ -1,36 +0,0 @@ -import React from 'react' - -export default function GithubCard({ title, description, href, stars, handle }) { - return ( - -
    -

    - {title.toUpperCase()} -

    - {description} -
    -
    -
    -
    @{handle}
    -
    {stars} ★
    -
    -
    - ) -} - -const styles = { - hr: { - margin: '15px 0 10px 0', - }, - h3: { - margin: 0, - textTransform: 'capitalize', - }, - cardBase: { - display: 'flex', - flexDirection: 'row', - justifyContent: 'space-between', - padding: '0 15px 10px 15px', - fontSize: '0.8em', - }, -} diff --git a/web/src/components/HowCard.js b/web/src/components/HowCard.js deleted file mode 100644 index 335c7f70bf1..00000000000 --- a/web/src/components/HowCard.js +++ /dev/null @@ -1,52 +0,0 @@ -import React from 'react' - -export default function HowCard({ title, description, featureTitle, features }) { - return ( -
    -
    -

    {title}

    -
    - {description} -
    {featureTitle}
    -
    - {features.map((x, i) => ( -
    - - ✔ - - {x} -
    - ))} -
    -
    -
    -
    - ) -} - -const styles = { - h4: { - padding: 10, - textAlign: 'center', - borderBottom: '1px solid #000', - margin: 0, - }, - h5: { - textTransform: 'uppercase', - // opacity: 0.5, - margin: '10px 0 0px 0', - fontSize: '0.9em', - }, - card: { - border: '1px solid #000', - boxShadow: 'none', - }, - cardBase: { - fontSize: '0.9em', - }, - check: { - width: 10, - height: 10, - marginRight: 10, - }, -} diff --git a/web/src/components/JwtGenerator.js b/web/src/components/JwtGenerator.js deleted file mode 100644 index aa768cb3374..00000000000 --- a/web/src/components/JwtGenerator.js +++ /dev/null @@ -1,115 +0,0 @@ -import React, { useState } from 'react' -import KJUR from 'jsrsasign' -import CustomCodeBlock from './CustomCodeBlock' - -const JWT_HEADER = { alg: 'HS256', typ: 'JWT' } -const now = new Date() -const today = new Date(now.getFullYear(), now.getMonth(), now.getDate()) -const fiveYears = new Date(now.getFullYear() + 5, now.getMonth(), now.getDate()) -const anonToken = ` -{ - "role": "anon", - "iss": "supabase", - "iat": ${Math.floor(today / 1000)}, - "exp": ${Math.floor(fiveYears / 1000)} -} -`.trim() - -const serviceToken = ` -{ - "role": "service_role", - "iss": "supabase", - "iat": ${Math.floor(today / 1000)}, - "exp": ${Math.floor(fiveYears / 1000)} -} -`.trim() - -export default function JwtGenerator({}) { - const [jwtSecret, setJwtSecret] = useState( - 'your-super-secret-jwt-secret-with-at-least-32-characters-long' - ) - const [token, setToken] = useState(anonToken) - const [signedToken, setSignedToken] = useState('') - - const handleKeySelection = (e) => { - const val = e.target.value - if (val == 'service') setToken(serviceToken) - else setToken(anonToken) - } - - const generate = () => { - const signedJWT = KJUR.jws.JWS.sign(null, JWT_HEADER, token, jwtSecret) - setSignedToken(signedJWT) - } - - return ( -
    -
    - - setJwtSecret(e.target.value)} - /> -
    -
    - - -
    -
    - -